"Nagyobb" mennyiségű (30-50TB) adatot szeretnék archiválni, évi rendszerességgel kellene adatot visszaállitanom. Ki, mit ajánlana? Amiket néztem:
- sima HDD -> nem tudom hogy mennyire tolerálják, ha adott esetben hónapoking vagy évekig állnak a polcon
- Bluray/Mdisc -> alacsony kapacitás, sérülékeny, drága, cserében azt mondják hogy hosszú életű
- LTO -> drága drive, de relative olcsó a kazetta, megbizható
Ki mit ajánl/használ?
Hozzászólások
Az LTO-nak párja nincs szerintem, főleg ekkora adatmennyiséghez. Linuxban mtx/mt/tar és te vagy a
világmentéseid ura.LTO 4/5/7-es tape library-k vannak kezem ügyében, soksok szalaggal. Egyetlen kivétellel kifogástalanul működött minden. Az pedig, hogy véletlenül egy felmágnesezett páncélszekrénybe tették be megőrzésre a szalagokat, nem a backup rendszer hibája :)
Pont most hoztam vissza egy mentést egy 2009-ben kiírt LTO4-es szalagról.
Hmmm, itt relative olcsón lehet drive-ot venni:
HP StorageWorks Ultrium 1760 EH919B LTO-4 SAS BRSLA-0703-DC (interbolt.eu)
Ehhez csak egy mezei PCIe SAS vezérlő kell és kész. Speckó szoftver vagy valami? Ez a szalagos mentés eddig kimaradt az életemből
Szerintem legalább LTO5-öt (2010) vegyél, de inkább LTO7-et (2015).
Linux alatt nem kell semmi extra. Ha elvagy parancssorral, akkor nagyon egyszerű: mt-vel a szalagot tudod kezelni, tar-ral pedig írni/olvasni. Általában /dev/[n]st0 eszközként tudod elérni, de dmesg/lsscsi megmondja. Ha lsscsi st0-ként mutatja, ez a visszatekerős üzemmód (minden írás/olvasás után automatikusan kiad egy rewind-ot), a párja pedig az nst0 (non-rewinding), amikor az írás/olvasás után ottmarad a szalagpozíció.
Egy szalagra több filet lehet kiírni egymás után, amíg be nem telik a szalag. Én tar-ral írok, komplett könyvtárakat összepakolva egy szalagos file-ba. Nem érdemes tömörítéssel pazarolni az időt/erőforrásokat, a drive hardveresen egész jól tömörít.
Kis gyorstalpaló:
mt status - megmutatja hányadik file-ban vagy (file number), illetve státuszállapotokat (BOT, EOD stb.)
mt eom - további íráshoz áll be, az eddig kiírt fileok után.
mt rewind - visszatekeri a szalagot az elejére
mt fsf x - x file-t lép előre
tar cf /dev/nst0 /backup/fs/20220101 - kiírja a szalag aktuális pozíciójától kezdve a megadott könyvtárat/filet
tar df /dev/nst0 /backup/fs/20220101 - összehasonlítja a szalag aktuális fileja és a megadott könyvtár/file tartalmát
cd /restore; tar xf /dev/nst0 - visszaállítja a szalag aktuális pozíciójában a file tartalmát az aktuális könyvtárba
Az sg_logs -a /dev/nst0 kimenetet érdemes nézegetni, van benne sok érdekesség, kiolvassa a drive és a betöltött szalag legfontosabb információit (minden szalagban van egy kis memória, amit a driveok tudnak olvasni):
Total native capacity [MB]: 6000000
Total used native capacity [MB]: 2147291
Volume serial number: MJ90YHP8M1
Volume personality: Ultrium-7
Bocs sose dolgoztam szalagos egységgel, ezért érdekelnek az alábbiak:
Mit csinálsz ha nem fér el 1 fájl a szalagon? (VM image nagyobb 1T)
Hány írást bír ki?
Mi a gyakorlati sebesség?
Léteznek ebből elérhető áron önnáló szalagos egységek is? Új áron 2milka, abból kisebb stroge is kijön...
https://en.wikipedia.org/wiki/Linear_Tape-Open
Google a barátod, egyébként meg a számok azok a generációkat jelölik - drive írja a sajátot és olvassa a sajátjánál kettővel régebbi generációs szalagokat is.
Az LTO-4 nyers, tömörítetlen kapacitása 800GiB, a drive tömörítésével optimális esetben rá lehet pakolni 1.6TiB adatot. (Ha jellemzően tömörített nagy fájlokat raksz rá, akkor 1TiB is szűkösen fér rájuk. (tapasztalat...).
Direktben/natívan mt, dd, tar meg bármi :) tudja kezelni, de a darabolást, azt neked kell sw-ből megoldanod.
A kolléga archiválásra kérdezett rá - ott ez mindegy :) archiválásra jellemzően az egyszer írható kazettákat használják, akik tehetik (drágábbak sajnos). Egyébként meg sokszor újra lehet írni egy kazettát - vagy az írásnál fog visítani, hogy hiba van, vagy amikor a kiírt adatokat visszaolvasva ellenőrzöd. (Ha nem olvastatod vissza kiírás után az a Scrödinger backup...).
jelen esetben erősen hiányos a specifikáció, hiszen nem tudjuk, a 30-50TiB-ből mennyit és milyen időközönként szeretne archiválni, illetve hogy menteni és/vagy archiválni szeretne? Nagyon nem mindegy, hogy 50-ből rendszeresen 10-20TiB változik, és azt kell mindenestől archívba rakni, vagy ennél jóval kisebb a delta, és elég azt. És az sincs specifikálva, hogy mekkora a mentési időablak, mennyi idő alatt kell mennyi adatot visszaállítani, ha úgy hozza a sors... De az is fontos lenne, hogy az archiválandó adatmennyiség mennyi idő alatt jön össze? lehet-e havi archívokat csinálni, mondjuk havonta egy LTO-7 kazira?
VM-image-ek archiválására ekkora adatmennyiség esetén én VTL-ben, vagy erős dedup-ot tudó storage-ban gondolkodnék, nem egyedi szalagegységben és 23 tonna kazettában.
Eleg egyszeru a keplet. 1x archivalom es utana nem valtozik az adat, tehat polcra felkerul a kazetta es elkepzelheto 1 even belul vissza kell olvasom valamilyen adatot rola, de lehet hogy csak evek mulva. Ha jol ertem LTO5 tamogatja az LTFS-t ami kvazi random hozzaferest biztosit.
Korábban én is lto streamer párti voltam. De ma már van jobb, személyes használatra https://en.wikipedia.org/wiki/M-DISC
Persze adatmennyiség függő.
"Persze adatmennyiség függő." - No igen... GB-os nagyságrendben tökéletes, de ahol néhány TiB vagy több a tárolandó adatmennyiség, ott nem rúg labdába.
A generáció számát. Jelenleg LTO9-nél tartunk, ez egy szalagon 18TB nyers adatot tud tárolni, kb. 45TB-ot tömörítve. Bővebben:
https://en.wikipedia.org/wiki/Linear_Tape-Open#Generations
Tömörítve valószínűleg elfér még egy LTO4-en is (800G/1.6T), és mégegyszer: nem nekünk kell tömöríteni írás nélkül, egyszerűen csak le kell küldeni a drive-nak, és megoldja. Ha mégsem férne el, vagy nagyobb fileokkal kell dolgozni, akkor nagyobb generáció kell, vagy a mentéseket kell diszken először darabolni, de ez felejtős. Egyébként úgy van, hogy a drive mindig a saját és megelőző 2 generáció szalagjait kell tudnia olvasni, sajátot és megelőzőt pedig írni. Tehát LTO7 drive ír LTO6/7-et, és olvas LTO5/6/7-et.
100+ teljes ciklust LTO7 esetében. Ez több, mint amennyire általában szükség lehet.
Én az LTO library-kat szeretem. Ezek 1U kivitelű eszközök, belepakolható 8 szalag, szépen távolról mtx cserélgeti a szalagokat a drive-ban. Ne a storage-hoz hasonlítsd, teljesen másra való. Itt ha kiírtad szalagra, elrakod egy jó helyre, a következő 10-20 évben nem kell foglalkozni vele (csak mindig legyen egy olyan drive/library, ami az adott szalagot olvassa).
Egyébként még egy érdekesség: az LTO írás után automatikusan visszaellenőriz, de mindenki visszaellenőrzi utána explicit mégegyszer :)
Beruhaztam egy LTO5-os drive-ra. Ha jol ertem ket generaciot lehet ugrani olvasassal, tehat mondjuk 10 ev mulva, beruhazok egy LTO7-re, azzal meg tudom majd olvasni az LTO5-os szalagokat.
Így van, de az a tapasztalatom, hogy nagyon nagy ez a piac, még a mai napig simán találsz működő drive-okat bármelyik generációhoz. A szalagok kb 30 évig bírják.
ja, meglájtuk 30 év múlva :) Mindenesetre király, hogyha most archiválok akkor életemben majd csak még egyszer kell majd átemelni egy másik tape-re, utána majd a gyerekeim foglalkoznak vele (vagy nem)
Kérhetnék linket, hogy hol vetted.
Köszönöm.
Interbolt.eu
Mivel távoli gépre kellett áttólni, ezért nálam a tar így nézett ki:
tar cvf - /mnt/sde1 | ssh -p x a.b.c.d "cat > /dev/st0"
Elkészült hibakód nélkül néhány óra alatt.
Ahogy írtad, df-el megpróbáltam összehasonlítani
tar df - /mnt/sde1 | ssh -p x a.b.c.d "cat > /dev/st0"
A következő hibát kaptam:
tar: Az archívumtartalom olvasásának visszautasítása a terminálról (hiányzó -f kapcsoló?)
Szeretnék tanulás céljából beruházni LTO-ra. Nem számít a generáció. Sőt, igazából a régebbi jobb lenne. Bőven elég lesz 200-300 GB kamu adatot legyártani többszalagos mentés szimulálásához. Linux (Debian) támogatással hogyan állnak ezek? Ebay-en HP-t találtam LTO1 20E alatt, ott RedHat és Suse van megjelölve támogatott oprendszerként. Tudnátok ajánlani márka/típust?
Szórakozni kvázi bármilyen tape drive megteszi, OS felé ugyanúgy "néznek ki" szerintem. Amit érdemes hozzászámolni, az nulladik körben egy scsi-kártya, meg néhány kazetta plusz egy új(!) tisztítószalag költsége - nem hazai árakon, mert ha meglátod, mennyiért adnak itthon egy LTO1 kazettát, secperc alatt befonod a hajadat...
Tisztító kazi?! Ez komoly?! Régebben rácsaptam annak a kezére, aki a videó magnóba megpróbált ilyen förmedvényt bele tenni. Főleg svhs és umatic magnóba. Kereszfejes csavarhúzó és alkohol. Itt ez nem működik?
Scsi van a régi szerverben, habár az 64 bites. Párezerért az is van pci-e-ben.
Kell a tisztító kazi. A drive nyilvántartja a tisztításokat, és megköveteli amikor kell.
sg_logs -a /dev/nst0 megmondja:
Így már értem, köszönöm!
Szerk:
Nem találom ezeket az infokat, csak ezt: Cleaning action not required (or completed).
A drive status értékét is segítenél értelmezni?
https://pastebin.com/6wFCTTRE
https://pastebin.com/AL9S7XdK
Elvileg egy felújított, tisztított drive-ról van szó.
Köszönöm!
drive status = 1107296256 = 0x42000000
Ebből a 0x40000000-nek van értelme az mt-st forrása szerint:
Tehát a szalag elején van, BOT azaz Beginning of Tape. Sajnos a következő bitet nem definiálja (0x02000000)
https://github.com/iustin/mt-st/blob/master/mtio.h
Igazából ami ennél fontosabb, az a file number = 0
Amikor több részletben írsz ki szalagra, akkor ez a file number növekszik. Ezek között lehet ugrálni mt fsf/bsf segítségével, illetve mt eom az utolsó kiírt file utánra ugrik, hogy írhasd ki a következőt.
Az sg_logs-ból ezt érdemes még nézni:
Main partition remaining capacity (in MiB): 200448
Main partition maximum capacity (in MiB): 200448
Ez mutatja, hogy még üres a szalag. Még LTO2-nél is tömörít a drive, tehát itt a ténylegesen a szalagon elfoglalt, tömörítetten kiírt adatmennyiséget méri.
Rendben, köszönöm!
A tisztítás akkor történjen, amikor már nem tudom visszaolvasni, vagy fixen minden x üzemórában? De akkor mennyi az x? :)
Tippre:
[ $( sg_logs -a /dev/nst0 | grep -c "Cleaning action required") -gt 0 ] && tisztogatni_kell :-)
"Ezek között lehet ugrálni mt fsf/bsf segítségével, illetve mt eom az utolsó kiírt file utánra ugrik, hogy írhasd ki a következőt." - Ha a megfelelő, azaz "n"-nel kezdődő (no-rewind) device nevet használja.
pedig elolvastam, mégis megkajáltam :)
szépen beállt a file végére, majd szépen vissza is tekert... :)
majd belejövök... :)
A tömörítéssel kapcsolatban írtátok, hogy ne a tar, majd a drive.. Ez pontosan mit jelent? Csak szalagsebességgel játszik vagy ténylegesen tömörít. Ha tényleges tömörítést végez, akkor a drive vagy a szerver (csak azért kérdezem, mert p3)?
Az LTO driveok hardveres SDLC (LZS alapú) tömörítést használnak. Nem értek mélységeiben hozzá, így találtam:
A gyakorlatban azt vettem észre, hogy teljesen felesleges időt/CPU-t pocsékolni a tömörítésre szalagra írás előtt/közben. Ténylegesen tömörít a drive, ráadásul röptében. Persze eleve tömörített fileokat már nem tud tovább tömöríteni.
+1 - amit viszont célszerű csinálni, az nagyon sok fájl esetén valamilyen tömörítés nélküli formátumba összepakolni, és úgy kiküldeni szalagra (mondjuk könyvtáranként egy tar vagy épp cpio fájl), mert nagyon sok fájl esetén (10M+) igen jelentős időveszteséget tud okozni, ha darabonként kerülnek a fájlok szalagra.
Rendben, köszi.
Már csak egy kérdésem lenne:
tar cvf - /mnt/sde1 | ssh -p x a.b.c.d "cat > /dev/nst0" esetében az írás nem folyamatos. "Rángatja" a szalagot, ami nem jó.
A drive max. 80 MBps-ot igényel. A scsi kártya: Ultra 160. Az alaplapi PCI 64 bites. Van benne gigabites lankártya. Tehát ezek elég erősek a drive-hoz.
Top szerint a szűk keresztmetszet a cpu (ssh 100%). Pedig 2 db 1GHz p3 van benne.
Amit próbáltam: arcfour, de az 8-as ssh-nál már nincs. -c none ami openssh-nál nincs. aes128-cbc ez elvileg a leggyorsabb a támogatottak között, de nem segített.
Szóval hogyan lehetne átküldeni hálózaton keresztül? (Hálózat itt nem a netet jelenti. Gigabiter routerből a backupnál -elvileg- kifelé nem megy csomag, csak egyik szerverről a másikra. A backup szerver meg amúgy sem fogad csomagot máshonnan. Valamint csak a mentés idejére van áram alatt.) Tehát sebesség most fontosabb lenne a titkosításnál.
Ha nem akarsz titkositast, akkor nezd meg az rsh-t.
hasznalj netcat-ot, felesleges ss-val bekodolni az adatfolyamot
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!
Köszönöm, ez bevált.
30-40 % cpu a dual p3-on.
Az egyik procit akár el is adhatnám hajbinak, ha volna időm megkeresni a cpu terminátort ;)
Már csak a bufferen kell egy kicsit kalapálni, és akkor pöpec lesz :)
Esetleg nézd meg ezt a VTL implementációt, a tape sw részét ezzel is tudod próbálgatni:
https://quadstor.com/
De jó lenne...
Kár, hogy deb 11-el nem megy.
Nem megy, vagy nem próbáltad? Egyébként meg ahogy nézem, RHEL/CentOS vonalon jobb (é. újabb/tovább támogatott OS release-hez van csomag) a támogatása.
Az mondjuk minimum cinkes, hogy 8.4.17-es PG-t hoz magával, bár gondolom, le lehet beszélni arról, hogy azt használja...
Próbáltam:
szerk.:
A 9-es Debian a közös nevező. Lehet, hogy játszni felrakom azt.
Valaki LTFS-t használ? Valamivel egyszerűbbnek tűnik a használata, mint az mt-nek
Mennyire megbizhatóak a log-ok ezekben vagy egyáltalán hogy kell értelmezni? Ha lehet hinni a drivenak, akkor 22e km van benne :) Ami nagyjaból 26e kazetta hossza (egy LTO5 kazetta 850m). Ehhez képest 555 load van benne, ami azt jelenti hogy egy kazira 40km jut (tehát 47 szalagnyi). Tehát mondjuk egy kazit 24x írtak (1 visszatekerés, 1 írás?)
root@pop-os:/home/rezo/ltfs-master# sg_logs -a /dev/nst0 | grep metr
Lifetime metres of tape processed: 22571363
root@pop-os:/home/rezo/ltfs-master# sg_logs -a /dev/nst0 | grep hour
Lifetime power on hours: 28015
Lifetime media motion (head) hours: 1482
root@pop-os:/home/rezo/ltfs-master# sg_logs -a /dev/nst0 | grep load
Lifetime media loads: 555
Egyébként bár eléggé elrettentőnek tűnnek a fenti számok, az adatlap alapján túl sok félni valóm nincs:
Description Specification MTBF (100% duty cycle) 250,000 hours
Load/unload life (only valid when the drive is operated Full–height: 120,000 cycles in a standard office environment) Half–height: 80,000 cycles
Population MSBF 100,000 cycles
Head life (typical) 60,000 hours
Reposition life 1,000,000 cycles (media limited)
Lifetime of drive (5 years at 100% duty cycle) 43,800 hours
Maximum cartridge uses 20,000 threads
Cartridge Extraction Force 2.25N to 5.8N (0.5 lbf to 1.3 lbf)
Backup failure rate <0.1%
Restore failure rate <0.001%
Régen egy HP külső cuccban cserélgettem a kazettákat naponta. Abból egyet biztos cseréltünk 5 év alatt.
Most egy Quantum Library van, egy IBM ULTRIUM-HH6 lakik benne. Naponta egy LTO6-os telik be, teszi a dolgát már több mint 6 éve. A szoftver kukul meg néha (BackupExec), a hardver egyszerűen megy.
Az LTFS jól működik egészen addig amíg nem akarok nagy mennyiségű adatot visszaállítani. Ilyenkor gyakorlatilag folyamatosan seekel. Van erre valami értelmes megoldás?
Ha nagy mennyiségű adatot kell menteni/visszaállítani, akkor más megoldást kell használni.
Elvileg ez szekvenciálisan bír copy-zni, gyakolatilag azonban nem
ltfs/ltfs_ordered_copy at 42c08710bda914e2bf0ac3749c69d830e9b45577 · LinearTapeFileSystem/ltfs (github.com)
Végülis megoldódott, lehet szekvenciálisan olvasni a fenti scripttel, csak a python modulban a függvények megváltoztak ezt kellett updatelni, ha valakit érdekelnek a részletek
ltfs_ordered_copy is really slow · Issue #334 · LinearTapeFileSystem/ltfs (github.com)
Elvileg van egy LTO2-es drive-om 5 szalaggal, ahogy fentebb írtam játszósnak.
Amíg megérkezik olvasgatom a doksikat. Egyikben ezt találtam:
Akkor az rsync vagy a tar hogyan viselkedik?
Őszintén nem tudom, hogy az LTO2 tudja-e, de kétlem, hogy ebben lenne eltérés. LTO7:
A szalagra/ról a device-t írni/olvasni tudó userrel tudsz írni/olvasni, tök mindegy, hogy a kiírt fájl kié-mié mié volt. Ha tar-ral, cpio-val írsz rá, akkor a kiírt adatokba belekerülnek a fájlok metaadatai is, és visszaolvasva/értelmezve a bájtok sorozatát, ez az információ is visszajön.