Bitrot, kuten ajatus yksittäisen käännetyn bitin jäämisestä huomaamatta, on luultavasti myytti, joka perustuu virheelliseen tulkintaan yleisestä kiintolevyn spesifikaatiosta, jonka mukaan 1 lukukelvoton bitti on 1014 bitin välein (tai joskus 1015). Kyseessä on tilasto, joka viittaa bitteihin, joita ei voida lukea lainkaan. Ehkä se tarkoittaa, että joka 400 PB:n välein on 512 tavun lukukelvoton sektori. Ehkä kiintolevyvalmistajat viittaavat vain tavalliseen lukukelvottomaan sektoriin, joka näkyy SMART-ohjelmassa. Ajatus siitä, että yksittäinen bitti voi kääntyä ja jotenkin livahtaa jokaisen laitteisto- ja ohjelmistopariteettitarkistuskerroksen läpi, on melko epätodennäköinen, enkä ole koskaan nähnyt mitään empiiristä dataa tai ainuttakaan dokumentoitua tapausta, jossa näin olisi käynyt.
Mutta on olemassa muunkinlaista datan mätänemistä, jota voi tapahtua eri tasoilla. Mutta miksi puhua teorioista ja anekdooteista? Mehän olemme dataharrastajia, eikö?
Otin 70 TB dataa (noin 300 000 tiedostoa) ja tallensin kaksi kopiota erillisille kiintolevyille. Toinen sarja meni kylmäsäilytykseen, toista sarjaa käytettiin aktiivisesti ja sitä siirrettiin/kopioitiin eri asemien ja tiedostojärjestelmien välillä. Kylmävarastossa olevaa sarjaa pyöritettiin kerran vuodessa, jotta laakerineste ei laskeutuisi. Aktiivista sarjaa siirrettiin/kopioitiin kokonaisuudessaan ehkä yhteensä viisi kertaa (esimerkiksi 350 TB siirtoja). Kaikki RAM-muisti oli ei-ECC-muistia. Kiintolevyt olivat kuluttajamalleja, joissa oli sekaisin kaikkia merkkejä. Aktiivinen joukko vietti yhden vuoden ZFS:ssä FreeBSD:ssä (kun tunsin itseni erityisen vainoharhaiseksi bitrotin suhteen ja halusin tiedostojen CRC:t), ja lopun aikaa NTFS:ssä Windows 7:ssä.
Seitsemän vuoden kuluttua suoritin MD5-tarkastuksen molemmille datasarjoille. Oli 12 tiedostoa, jotka eivät vastanneet toisiaan.
Tiedosto 1 – Pelidatatiedosto, 2 KB. Identtinen koko, merkittävästi erilainen sisältö, ja aktiivisella kopiolla oli uudempi päivämäärä. Näyttää pelin välimuistitiedostolta ja oli pelin itsensä muokattavissa. Ei vaurioita.
File 2 – Steamin varmuuskopiotiedosto, 832 Mt. Identtinen koko, merkittävästi erilainen sisältö, ja aktiivinen kopio oli 2 tuntia uudempi. Näyttää siltä, että se oli yksinkertaisesti uudempi varmuuskopio, jonka tein. Ei vahinkoa.
File 3 – Video, 399 MB. Varmuuskopiossa ensimmäiset 64K on korvattu nollilla, eikä toistu. Identtinen koko ja päivämäärä.
Tiedosto 4 – Video, 19 MB. Varmuuskopiossa ensimmäiset 64K on korvattu tekstin osalla, joka oli aikoinaan leikepöydälläni, eikä se toimi. Identtinen koko ja päivämäärä.
Tiedosto 5 – Video, 11,7 GB. Tiedostot eroavat toisistaan 232 tavun verran offsetissa 9,693,699,010. Molemmat sisältävät erottamatonta pakattua dataa. Molemmat videot toistuvat.
Tiedosto 6 – Video, 2,9 GB. Tiedostot eroavat toisistaan 251 tavun verran offsetissa 1,039,651,777. Molemmat sisältävät erottamatonta pakattua dataa. Molemmat videot toistuvat. Sama koko ja päivämäärä.
Tiedosto 7 – Video, 9,4 GB. Tiedostot eroavat toisistaan 47 tavun verran offsetissa 3,976,714,817. Molemmat sisältävät erottamatonta pakattua dataa. Molemmat videot toistuvat. Sama koko ja päivämäärä.
Tiedosto 8 – Video, 4,6 GB. Tiedostot eroavat toisistaan 232 tavun verran offsetissa 627,313,318. Molemmat sisältävät erottamatonta pakattua dataa. Molemmat videot toistuvat. Sama koko ja päivämäärä.
Tiedosto 9 – Video, 6,2 GB. Tiedostot eroavat toisistaan 104 tavun verran offsetissa 1,496,829,600. Molemmat sisältävät erottamatonta pakattua dataa. Molemmat videot toistuvat. Sama koko ja päivämäärä.
Tiedosto 10 – Video, 8,5 GB. Tiedostot eroavat toisistaan 512 tavun verran offsetissa 6,517,833,728. Molemmat sisältävät erottamatonta pakattua dataa. Molemmat videot toistuvat. Sama koko ja päivämäärä.
Tiedosto 11 – Video, 1 GB. Aktiivisessa kopiossa on 54 784 korruptoitunutta tavua offsetissa 684 589 056. Vioittuneessa datassa on suuria nollakappaleita, toistuvia tavuja ja tekstin osia, kuten ”root_dataset”, ”sync_bplist”, ”vdev” ja ”zpool create”, jotka näyttävät liittyvän ZFS:ään. Identtinen koko ja päivämäärä.
Tiedosto 12 – Video, 817 Mt. Aktiivisessa kopiossa on 43 520 korruptoitunutta tavua offsetissa 418 578 432. Vioittunut data on samaa tyyppiä kuin tiedostossa 11. Identtinen koko ja päivämäärä.
Tässä on siis neljä erilaista korruptoitunutta dataa.
Tiedostoissa 1 ja 2 ei oikeastaan ole korruptoitunutta dataa, ne eivät vain täsmänneet, koska niitä oli muutettu.
Tiedostoissa 3 ja 4 oli korvattu täsmälleen 65 536 tavua tiedoston alussa ilmeisesti jollain satunnaisella tavaralla muistista. Minulla ei ole selitystä tälle, mutta sen on täytynyt tapahtua varmuuskopiota tehtäessä, koska aktiivinen versio oli vielä hyvä. Se saattoi johtua siitä, että käytin SuperCopieria, joka ei luultavasti ole täysin virheetön. Kerran näin, että se ylikirjoitti tiedoston, koska jonossa olevan tiedoston pitkä tiedostonimi vastasi määränpäässä olevan tiedoston 8.3-tiedostonimeä, mutta se on melko harvinainen tapaus. En tiedä varmasti.
Tiedostot 5-10 ovat kaikki samantyyppisiä. Pieni pala yhtenäistä dataa satunnaisessa paikassa tiedostossa muuttui samannäköiseksi merkkijonoksi. Se on liian pieni havaittavaksi toiston avulla, joten en tiedä, mikä on hyvä kopio. Ei aavistustakaan, mikä tämän aiheutti.
Tiedostoissa 11 ja 12 on selvästi vaurioita, jotka johtuvat siitä, että ne on tallennettu ZFS:n alle. Ajoin scrubin joka viikko ja FreeBSD löysi aina jotain ”vikaa” ja korjasi sen. Minulle ei ollut selvää, mitä nämä virheet olivat tai miksi ne ilmenivät, mutta se antoi minulle huonon aavistuksen. Vaihdoin FreeBSD:hen alun perin ZFS:n tiedostojen CRC:n takia, mutta jonkin ajan kuluttua aloin ajatella, että jos NTFS:ssä olisi vioittuneita tiedostoja kaikkialla, koko maailma tietäisi siitä. Tärkein syy, miksi vaihdoin takaisin Windowsiin, oli kuitenkin se, etten pitänyt FreeBSD:n käyttöliittymästä.
Kohtaamani viides korruptoitumistyyppi oli. Useimpiin kylmävarastossa oleviin vanhoihin Seagaten 1,5TB:n levyihin alkoi kehittyä huonoja sektoreita. Tämä havaittiin, kun suoritin vuotuisen käynnistystarkastuksen, ja asemat vaihdettiin, ennen kuin niillä olevat tiedot olivat vahingoittuneet.
Pidän edelleen MD5-hash-tallennetta varmuuskopioistani, mutta en ole enää huolissani bitrotista. En usko, että on olemassa ilmiö, joka salaa kääntää yksittäisiä bittejä sinne sun tänne. Jos se olisi todellista, minun olisi pitänyt nähdä noin 28 yksittäistä käännettyä bittiä sarjojen välillä.
Käytännön neuvoiksi suosittelen pitämään varmuuskopion kaikesta ja ylimääräisen varmuuskopion tärkeistä asioista, kuten perhekuvista. Varmista ajoittain, että varmuuskopiot voidaan palauttaa. Suosittelen myös tiedostoluetteloiden luomista, jotta tiedät, mitä on palautettava aseman vikaantuessa, ja tiedostohashien luomista, jotta voit havaita harvinaiset tiedostojen korruptoitumistapaukset. En suosittele RAID:ia mihinkään varmuuskopiointiin liittyvään.
Olen itse sitä mieltä, että 3-2-1-varmuuskopiointistrategia on hieman liian raskaskätinen käytettäväksi kaikissa tapauksissa – en aio pitää kolmea kopiota jostain vanhasta Linux-ISOsta.