Domača » kako » Ali lahko podatki o trdih diskah degradirajo brez opozorila o škodi?

    Ali lahko podatki o trdih diskah degradirajo brez opozorila o škodi?

    Vse nas skrbi, da so naši podatki in datoteke varni in nedotaknjeni, vendar je možno, da se podatki poškodujejo in do njih dostopa uporabnik brez kakršnega koli obvestila ali opozorila o težavi? Današnja postavka SuperUser Q&A ima odgovor na zaskrbljeno bralčevo vprašanje.

    Današnja seja vprašanj in odgovorov prihaja z namenom SuperUser-a, ki je del skupine Stack Exchange, ki temelji na skupnostih spletnih mest za vprašanja in odgovore.

    Fotografiranje je omogočeno s splošnim (Flickr).

    Vprašanje

    SuperUser bralnik topo morto želi vedeti, ali se podatki na trdih diskih lahko razgradijo in dostopni brez opozorila o škodi:

    Ali je mogoče, da bi fizična degradacija trdega diska povzročila »flip« bitov v vsebini datoteke, ne da bi operacijski sistem opazil spremembo in obvestil uporabnika o tem, ko je prebral datoteko? Na primer, ali se lahko »p« (binarno 01110000) v besedilni datoteki ASCII spremeni v »q« (binarno 01110001), potem ko uporabnik odpre datoteko, vidijo »q«, ne da bi se zavedali, da je prišlo do napake.?

    Zanima me odgovore, ki se nanašajo na FAT, NTFS ali ReFS (če je razlika). Želim vedeti, ali operacijski sistemi zaščitijo uporabnike pred tem, ali pa bi morali preveriti naše podatke za časovne razlike med kopijami.

    Ali se lahko podatki o trdih diskih razgradijo in dostopajo brez opozorila o škodi?

    Odgovor

    Sodelavec SuperUser Guntram Blohm ima odgovor za nas:

    Da, obstaja stvar, imenovana bitna gniloba. Vendar ne, to ne bo vplivalo na uporabnika neopaženo.

    Ko trdi disk napiše sektor na plošče, ne napiše le bitov na enak način, kot so shranjeni v RAM-u, uporablja kodiranje, da se prepriča, da ni zaporedij istega bitov, ki so predolgi. Dodaja tudi kode ECC, ki omogočajo popravljanje napak, ki vplivajo na nekaj bitov, in zaznavanje napak, ki vplivajo na več kot nekaj bitov.

    Ko trdi disk prebere sektor, preveri te ECC kode in po potrebi popravi podatke (in če je mogoče). Kaj se zgodi, je odvisno od okoliščin in vdelane programske opreme trdega diska, na katero vpliva določitev pogona.

    • Če je sektor mogoče prebrati in nima težav s kodo ECC, se prenese na operacijski sistem.
    • Če je mogoče sektor popraviti zlahka, je popravljeno različico mogoče zapisati na disk, prebrati, preveriti in ugotoviti, ali je bila napaka naključna (tj. Kozmični žarki itd.) Ali če je sistemska napaka z medijem..
    • Če trdi disk ugotovi, da je prišlo do napake v mediju, prerazporedi sektor.
    • Če po nekaj poskusih branja sektorja ni mogoče niti prebrati niti popraviti (na trdem disku, ki je označen kot trdi disk RAID), se bo trdi disk odpovedal, prerazporedil sektor in upravljavcu povedal, da je prišlo do težave. . Upravljalnik RAID zanaša na obnovitev sektorja od drugih članov RAID-a in jo napiše nazaj na neuspeli trdi disk, ki ga nato shrani v prerazporejeni sektor (za katerega upamo, da nima težav)..
    • Če sektorja ni mogoče prebrati ali popraviti na trdem disku namizja, bo trdi disk poskušal več prebrati. Odvisno od kakovosti trdega diska, to lahko vključuje premeščanje glave, preverjanje, ali obstajajo kakršni koli bitovi, ki se ponavljajo pri branju, preverjanje, kateri bit je najšibkejši, in nekaj drugih stvari. Če kateri koli od teh poskusov uspe, bo trdi disk prerazporedil sektor in vrnil nazaj popravljene podatke.

    To je ena glavnih razlik med trdimi diski, ki se prodajajo kot »namizni«, »NAS / RAID« ali »videonadzorni« trdi diski. Trdi disk RAID se lahko hitro odreče in nadzornik popravi sektor, da se izogne ​​latenci na strani uporabnika. Namizni trdi disk se bo znova in znova poskušal ponavljati, ker je verjetno bolje, če uporabnik počaka nekaj sekund, kot da bi jim povedal, da so podatki izgubljeni. In video trdi disk vrednosti stalne podatkovne hitrosti več kot okrevanje napak kot poškodovan okvir običajno ne bo niti opazil.

    V vsakem primeru, trdi disk bo vedel, če je bilo bit gnilobe, bo ponavadi izterja od njega, in če ne more, bo povedal krmilnik, ki bo povedal voznik, ki bo nato povedal operacijski sistem. Nato je operacijski sistem tisti, ki napako predstavi uporabniku in deluje na njem. Zato cybernard pravi:

    • Nikoli nisem bil priča niti eni bitni napaki, vendar sem videl veliko trdih diskov, kjer so bili neuspešni celotni sektorji.

    Trdi disk bo vedel, če je kaj narobe s sektorjem, vendar ne bo vedel, kateri deli niso uspeli. Posamezni bit, ki ni uspel, bo vedno ujet z ECC.

    Upoštevajte, da chkdsk in datotečni sistemi, ki se samodejno popravijo, ne obravnavajo popravljanja podatkov znotraj datotek. Namenjene so korupciji v strukturi samega datotečnega sistema, kot je razlika v velikosti datoteke med vnosom imenika in številom dodeljenih blokov. Funkcija samozdravljenja NTFS bo zaznala strukturno poškodbo in preprečila nadaljnje vplivanje na vaše podatke, vendar ne bo popravila podatkov, ki so že poškodovani..

    Seveda obstajajo tudi drugi razlogi, zaradi katerih se lahko podatki poškodujejo. Slab RAM na krmilniku lahko na primer spremeni podatke, še preden se pošlje na trdi disk. V tem primeru noben mehanizem na trdem disku ne bo zaznal ali popravil podatkov, kar je lahko eden od razlogov, zakaj je struktura datotečnega sistema poškodovana. Drugi razlogi so napake v programski opremi, izpadi med pisanjem na trdi disk (čeprav se to nanaša na beleženje datotečnega sistema) ali slabi gonilniki datotečnega sistema (gonilnik NTFS za Linux je že dolgo trajal samo za branje, saj je bil NTFS obratno izdelan, ni dokumentirana in razvijalci niso zaupali svoji lastni kodi).

    • Takrat sem imel ta scenarij, ko bi aplikacija shranila vse svoje datoteke na dva različna strežnika v dveh različnih podatkovnih centrih, da bi ohranila delovno kopijo podatkov, ki je na voljo v vseh okoliščinah. Po nekaj mesecih smo opazili, da se približno 0,1 odstotka vseh kopiranih datotek ne ujema s kontrolno vsoto MD5, ki jo je aplikacija shranila v svoji bazi podatkov. Izkazalo se je, da je napačen optični kabel med strežnikom in omrežjem SAN.

    Ti drugi razlogi so razlogi, zakaj nekateri datotečni sistemi, kot je ZFS, obdržijo dodatne informacije o kontrolni vsoti za odkrivanje napak. Zasnovani so tako, da vas zaščitijo pred veliko več stvarmi, ki lahko gredo narobe kot pa samo gnilobe.


    Imate kaj dodati pojasnilu? Zvok v komentarjih. Želite prebrati več odgovorov drugih uporabnikov tehnologije Stack Exchange? Oglejte si celotno nit razprave tukaj.