A bitrot, mint az az elképzelés, hogy egyetlen átfordított bit is észrevétlenül marad, valószínűleg egy mítosz, amely az általános HDD specifikáció téves értelmezésén alapul, miszerint 1014 bitenként (vagy néha 1015) 1 olvashatatlan bit van. Ez egy olyan statisztika, amely az egyáltalán nem olvasható bitekre vonatkozik. Lehet, hogy ez azt jelenti, hogy 400 PB-onként egy 512 bájtos olvashatatlan szektort kapunk. Lehet, hogy a merevlemezgyártók egyszerűen a SMART-ban megjelenő szabványos olvashatatlan szektorra utalnak. Az elképzelés, hogy egyetlen bit átfordulhat, és valahogy átcsúszhat a hardveres és szoftveres paritásellenőrzés minden rétegén, elég valószínűtlen, és soha nem láttam empirikus adatokat vagy egyetlen dokumentált esetet sem.
De vannak más típusú adatrohadások is, amelyek különböző szinteken történhetnek. De minek elméletekről és anekdotákról beszélni? Adatmegőrzők vagyunk, igaz?
Vettem 70 TB adatot (kb. 300 000 fájlt), és két másolatot tároltam különálló merevlemezeken. Az egyik készlet hideg tárolóba került, a másik készletet aktívan használtam, és különböző meghajtók és fájlrendszerek között mozgattam/másoltam. A hűtőtárolóban lévő készletet évente egyszer felpörgette, hogy a csapágyfolyadék ne ülepedjen le. Az aktív készletet teljes egészében talán összesen 5 alkalommal mozgatták/másolták (mondjuk 350 TB átvitel). Az összes RAM nem ECC volt. A meghajtók fogyasztói modellek voltak az összes márka keverékéből. Az aktív készlet egy évet töltött ZFS-ben FreeBSD alatt (amikor különösen paranoiás voltam a bitrot miatt, és a fájl CRC-ket akartam), az idő többi részét NTFS-ben Windows 7 alatt.
7 év után lefuttattam egy MD5-ös ellenőrzést mindkét adatkészleten. Volt 12 olyan fájl, amely nem egyezett.
1. fájl – Játék adatfájl, 2 KB. Azonos méret, jelentősen eltérő tartalom, és az aktív példánynak újabb dátuma volt. Úgy néz ki, mint egy játék cache fájl, és maga a játék módosíthatta. Nincs sérülés.
File 2 – Steam biztonsági mentési fájl, 832 MB. Azonos méret, jelentősen eltérő tartalom, és az aktív másolat 2 órával újabb volt. Úgy tűnik, hogy egyszerűen egy újabb biztonsági másolat volt, amit készítettem. Nincs sérülés.
File 3 – Videó, 399 MB. A biztonsági másolat első 64K-ját nullával helyettesítették, és nem játszik le. Azonos méret és dátum.
File 4 – Video, 19 MB. A biztonsági másolat első 64K-ját egy olyan szövegrészletre cserélték, amely valaha a jegyzettömb vágólapján volt, és nem játszik le. Azonos méret és dátum.
Fájl 5 – Videó, 11,7 GB. A fájlok 232 bájttal különböznek egymástól a 9,693,699,010-es eltolásnál. Mindkettő megkülönböztethetetlen tömörített adatokat tartalmaz. Mindkét videó lejátszható.
File 6 – Video, 2,9 GB. A fájlok 251 bájttal különböznek egymástól az 1,039,651,777-es eltolásnál. Mindkettő megkülönböztethetetlen tömörített adatokat tartalmaz. Mindkét videó lejátszható. Azonos méret és dátum.
File 7 – Video, 9,4 GB. A fájlok 47 bájttal különböznek egymástól a 3,976,714,817-es eltolásnál. Mindkettő megkülönböztethetetlen tömörített adatokat tartalmaz. Mindkét videó lejátszható. Azonos méret és dátum.
File 8 – Video, 4,6 GB. A fájlok 232 bájttal különböznek egymástól a 627,313,318-as eltolásnál. Mindkettő megkülönböztethetetlen tömörített adatokat tartalmaz. Mindkét videó lejátszható. Azonos méret és dátum.
File 9 – Videó, 6,2 GB. A fájlok 104 bájttal különböznek egymástól az 1,496,829,600-as eltolásnál. Mindkettő megkülönböztethetetlen tömörített adatokat tartalmaz. Mindkét videó lejátszható. Azonos méret és dátum.
File 10 – Video, 8,5 GB. A fájlok 512 bájttal különböznek egymástól a 6,517,833,728-as eltolásnál. Mindkettő megkülönböztethetetlen tömörített adatokat tartalmaz. Mindkét videó lejátszható. Azonos méret és dátum.
File 11 – Video, 1 GB. Az aktív másolat 54,784 sérült bájtot tartalmaz a 684,589,056-os eltolásnál. A hibás adatok nagy mennyiségű nullát, ismétlődő bájtokat és olyan szövegrészeket tartalmaznak, mint a “root_dataset”, “sync_bplist”, “vdev” és “zpool create”, amelyek ZFS-hez kapcsolódónak tűnnek. Azonos méret és dátum.
File 12 – Video, 817 MB. Az aktív másolatban 43,520 hibás bájt van a 418,578,432-es eltolásnál. A sérült adatok típusa megegyezik a 11. fájlban találtakkal. Azonos méret és dátum.
Az adatrongálódásnak tehát 4 típusa van.
Az 1. és 2. fájlban valójában nincs korrupció, csak nem egyeznek, mert módosították őket.
A 3. és 4. fájlban pontosan 65.536 bájtot cseréltek ki a fájl elején, nyilvánvalóan valami véletlenszerű dologgal a memóriából. Erre nincs magyarázatom, de a mentés készítésekor történhetett, mert az aktív verzió még jó volt. Lehet, hogy azért, mert a SuperCopier-t használtam, ami valószínűleg nem teljesen hibamentes. Egyszer láttam, hogy felülírt egy fájlt, mert a sorban lévő egyik fájl hosszú fájlneve megegyezett a célállomáson lévő fájl 8.3-as fájlnevével, de ez elég ritka eset. Nem tudom biztosan.
Az 5-10 fájl mindegyike ugyanolyan típusú hibás. Egy kis összefüggő adatdarab a fájl egy véletlenszerű helyén egy hasonló kinézetű adatsorra változott. Túl kicsi ahhoz, hogy lejátszással észlelni lehessen, így nem tudom, melyik a jó másolat. Fogalmam sincs, mi okozta ezt.
A 11. és 12. fájl egyértelműen sérült a ZFS alatt tárolás miatt. Minden héten lefuttattam egy scrubot és a FreeBSD mindig talált valami “hibát” és kijavította. Nem volt világos számomra, hogy mik ezek a hibák, vagy miért jelentkeztek, de rossz előérzetem volt. Elsősorban a ZFS fájl CRC-je miatt váltottam FreeBSD-re, de egy idő után arra gondoltam, hogy ha az NTFS mindenhol hibás fájlokat kapna, akkor az egész világ tudna róla. De a fő ok, amiért visszaváltottam Windowsra, az az volt, hogy nem tetszett a FreeBSD felülete.
Egy 5. típusú korrupcióval találkoztam. A legtöbb régi Seagate 1,5TB-os meghajtó a hűtőtárolóban elkezdett rossz szektorokat kialakítani. Ezt akkor vettem észre, amikor lefuttattam az éves spin-up ellenőrzést, és a meghajtókat kicseréltem, mielőtt bármilyen adat megsérült volna rajtuk.
Még mindig vezetek MD5 hash rekordot a mentéseimről, de a bitrot miatt már nem aggódom. Nem hiszem, hogy létezik olyan jelenség, ami titokban itt-ott felborítja az egyes biteket. Ha valós lenne, akkor kb. 28 elszigetelt, megfordított bitet kellett volna látnom a készletek között.
A gyakorlati tanácsok közül azt javaslom, hogy mindenről készítsünk egy külső biztonsági másolatot, plusz egy extra biztonsági másolatot a fontos dolgokról, például a családi fotókról. Rendszeresen győződjön meg arról, hogy a biztonsági mentések visszaállíthatók. Azt is javaslom, hogy készítsen fájllistákat, hogy tudja, mit kell visszaállítani, ha meghibásodik a meghajtó, és fájlhasheket, hogy felismerje a ritka eseteket, amikor a fájlok sérülnek. Nem ajánlom a RAID-ot a biztonsági mentésekhez kapcsolódóan.
Személy szerint úgy gondolom, hogy a 3-2-1 biztonsági mentési stratégia egy kicsit nehézkes ahhoz, hogy minden esetben alkalmazzuk – nem fogok 3 másolatot tartani egy régi Linux ISO-ról.