Mogu li podaci o tvrdim diskovima degradirati bez upozorenja o šteti?
Svi se brinemo o tome da naši podaci i datoteke budu sigurni i netaknuti, ali je li moguće da podaci budu oštećeni i da im korisnik može pristupiti bez ikakve obavijesti ili upozorenja o problemu? Današnja postova za pitanja i odgovore SuperUser imaju odgovor na zabrinuto pitanje čitatelja.
Današnja sesija pitanja i odgovora dolazi nam ljubaznošću SuperUser-a, podjele Stack Exchangea, grupiranja web-lokacija za pitanja i odgovore u zajednici.
Fotografija zahvaljujući usavršavanju (Flickr).
Pitanje
SuperUser čitač topo morto želi znati mogu li se podaci na tvrdim diskovima razgraditi i pristupiti bez upozorenja o šteti:
Je li moguće da fizička degradacija tvrdog diska može uzrokovati da se bitovi "preokrenu" u sadržaju datoteke, a da operativni sustav ne primijeti promjenu i obavijesti korisnika o tome dok čita datoteku? Na primjer, može li se "p" (binarno 01110000) u ASCII tekstualnoj datoteci promijeniti u "q" (binarno 01110001), a kada korisnik otvori datoteku, vidi "q" bez da je svjestan da je došlo do kvara?
Zainteresiran sam za odgovore koji se odnose na FAT, NTFS ili ReFS (ako to čini razliku). Želim znati da li operativni sustavi štite korisnike od toga, ili ako bismo trebali provjeriti naše podatke za varijacije između kopija tijekom vremena.
Mogu li se podaci na tvrdim diskovima razgraditi i pristupiti im se bez upozorenja o šteti?
Odgovor
Suradnik superkorisnika Guntram Blohm ima odgovor za nas:
Da, postoji nešto što se zove sitna trulež. Ali ne, to neće utjecati na korisnika nezapaženo.
Kada tvrdi disk napiše sektor na ploče, on ne piše samo bitove na isti način na koji su pohranjeni u RAM-u, nego koristi kodiranje kako bi se uvjerili da nema sekvenci istog bita koje su preduge. Također dodaje ECC kodove koji dopuštaju popravak pogrešaka koje utječu na nekoliko bitova i otkrivanje pogrešaka koje utječu na više od nekoliko bitova.
Kada tvrdi disk čita sektor, provjerava ECC kodove i po potrebi popravlja podatke (i ako je moguće). Što se dalje događa ovisi o okolnostima i firmware-u tvrdog diska, na koji utječe oznaka pogona.
- Ako se sektor može pročitati i nema problema s ECC kodom, on se prenosi na operacijski sustav.
- Ako se sektor može lako popraviti, popravljena inačica može se zapisati na disk, pročitati natrag, a zatim provjeriti da li je pogreška slučajna (tj. Kozmičke zrake, itd.) Ili ako postoji sustavna pogreška s medijem.
- Ako tvrdi disk utvrdi da je došlo do pogreške u medijima, on ponovno dodjeljuje sektor.
- Ako se sektor ne može pročitati niti ispraviti nakon nekoliko pokušaja čitanja (na tvrdom disku koji je označen kao RAID tvrdi disk), onda će se tvrdi disk odustati, preraspodijeliti sektor i reći kontroleru da je došlo do problema , Oslanja se na RAID kontroler da rekonstruira sektor od ostalih RAID članova i napiše ga natrag na neuspjeli tvrdi disk koji ga zatim pohranjuje u preraspodijeljeni sektor (za koji se nadamo da nema problema)..
- Ako se sektor ne može pročitati ili ispraviti na tvrdom disku na radnoj površini, tvrdi disk će se više truditi da ga pročita. Ovisno o kvaliteti tvrdog diska, to može uključivati repozicioniranje glave, provjeravanje ima li bitova koji se više puta okreću prilikom čitanja, provjeravajući koji su bitovi najslabiji i još nekoliko stvari. Ako bilo koji od ovih pokušaja uspije, tvrdi disk će preusmjeriti sektor i vratiti natrag popravljene podatke.
To je jedna od glavnih razlika između tvrdih diskova koji se prodaju kao "desktop", "NAS / RAID" ili "video nadzor" tvrdih diskova. RAID tvrdi disk može brzo odustati i kontroler popraviti sektor kako bi se izbjegla latencija na strani korisnika. Stolni tvrdi disk će nastaviti pokušavati opet i opet, jer ako korisnik pričeka nekoliko sekundi, vjerojatno je bolje nego da im kažem da su podaci izgubljeni. I video hard disk vrijednosti konstantne brzine prijenosa podataka više od obnove pogreške kao oštećeni okvir obično neće biti ni primijetili.
U svakom slučaju, tvrdi disk će znati ako je bilo malo truleži, obično će se oporaviti od njega, i ako ne može, on će reći kontroler koji će zauzvrat reći vozač koji će tada reći operativni sustav. Zatim je na operacijskom sustavu da prikaže grešku korisniku i djeluje na njega. Zbog toga cybernard kaže:
- Nikada nisam bio svjedokom jedne bitne pogreške, ali sam vidio dosta tvrdih diskova gdje su cijeli sektori propali.
Tvrdi disk će znati ako nešto nije u redu s sektorom, ali neće znati koji su bitovi neuspješni. Jedan bit koji nije uspio uvijek će biti uhvaćen od strane ECC-a.
Imajte na umu da chkdsk i datotečni sustavi koji se automatski popravljaju ne rješavaju popravak podataka unutar datoteka. One su usmjerene na korupciju unutar strukture samog datotečnog sustava, kao što je razlika u veličini datoteke između unosa u imeniku i broja dodijeljenih blokova. Značajka samoizlječenja NTFS-a otkrit će strukturna oštećenja i spriječiti daljnji utjecaj na vaše podatke, ali neće popraviti podatke koji su već oštećeni.
Postoje, naravno, i drugi razlozi zbog kojih se podaci mogu oštetiti. Na primjer, loš RAM na kontroleru može mijenjati podatke prije nego se pošalje čak i na tvrdi disk. U tom slučaju, niti jedan mehanizam na tvrdom disku neće otkriti ili popraviti podatke, a to može biti jedan od razloga zašto je oštećena struktura datotečnog sustava. Drugi razlozi uključuju greške u softveru, nesvjestice pri pisanju na tvrdi disk (iako se to odnosi na zapisivanje u datotečni sustav), ili loše upravljačke programe za datotečni sustav (NTFS upravljački program na Linuxu je dugo trajao samo za čitanje jer je NTFS obrnuto projektiran, nisu dokumentirani, a programeri nisu vjerovali vlastitom kodu).
- Imao sam ovaj scenarij jednom kada bi aplikacija spremila sve svoje datoteke na dva različita poslužitelja u dva različita podatkovna centra kako bi zadržala radnu kopiju dostupnih podataka u svim okolnostima. Nakon nekoliko mjeseci primijetili smo da se oko 0,1 posto svih kopiranih datoteka ne podudara s kontrolnom sumom MD5 koju je aplikacija pohranila u svojoj bazi podataka. Pokazalo se da je to neispravan optički kabel između poslužitelja i SAN-a.
Ovi drugi razlozi su razlog zašto neki datotečni sustavi, poput ZFS-a, zadržavaju dodatne informacije o sumi provjere kako bi otkrili pogreške. Osmišljeni su kako bi vas zaštitili od mnogo više stvari koje mogu pogriješiti, a ne samo trulež.
Imate li što dodati objašnjenju? Zvuk isključen u komentarima. Želite li pročitati više odgovora od drugih tehničkih korisnika Stack Exchangea? Pogledajte cjelokupnu temu za raspravu ovdje.