If-Koubou

Mogu li podaci s tvrdih diskova degradirati bez upozorenja o oštećenosti?

Mogu li podaci s tvrdih diskova degradirati bez upozorenja o oštećenosti? (Kako da)

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 ih korisnik može pristupiti bez ikakve obavijesti ili upozorenja o tom problemu? Danas SuperUser Q & A post ima odgovor na pitanje zabrinute čitatelje.

Današnja pitanja i odgovori nam se javljaju zahvaljujući SuperUseru - podjele Stack Exchange-a, zajednice-driven grupiranja Q & A web stranica.

Fotografija ljubaznošću generaliziranja (Flickr).

Pitanje

SuperUser čitač topo morta želi znati mogu li se podaci o tvrdim diskovima umanjivati ​​i biti dostupni bez upozorenja o oštećenju:

Je li moguće da bi fizička razgradnja tvrdog diska mogla uzrokovati da se bita "prebaci" u sadržaj datoteke bez da operacijski sustav primi promjenu i obavijesti korisnika o čitanju datoteke? Na primjer, može li "p" (binarni 01110000) u ASCII tekstnoj datoteci promijeniti u "q" (binarni 01110001), a kada korisnik otvori datoteku, oni vide "q", a da nisu svjesni 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 operacijski sustavi štite korisnike od toga ili ako bismo trebali provjeravati naše podatke za varijante između kopija tijekom vremena.

Može li se podaci o tvrdim diskovima umanjivati ​​i biti dostupni bez upozorenja o oštećenju?

Odgovor

Guntram Blohm ima odgovor za nas:

Da, postoji stvar koja se naziva mrvica. No ne, to neće utjecati na korisnika neprimjetno.

Kad tvrdi disk piše sektor na ploče, ne samo da zapisuje bitove na isti način kao što su pohranjeni u RAM-u, nego koristi kodiranje kako bi se osiguralo da nema istih dugačkih sekvenci. Također dodaje ECC kodove koji mu omogućuju popravak pogrešaka koji utječu na nekoliko bitova i otkrivanje pogrešaka koje utječu na više od nekoliko bitova.

Kad tvrdi disk čita sektor, provjerava ove ECC kodove i popravlja podatke ako je potrebno (i ako je moguće). Ono što će se dogoditi sljedeće ovisi o okolnostima i firmware hard disk, na koju utječe oznaka pogona.

  • Ako se sektor može čitati i nema ECC kod problema, tada se prenosi na operativni sustav.
  • Ako se sektor može lako popraviti, popravljena verzija može se zapisati na disk, čitati, potom potvrditi da bi se utvrdilo je li pogreška slučajna (tj. Kozmičke zrake itd.) Ili ako postoji sustavna pogreška s medijem.
  • Ako tvrdi disk utvrdi da postoji pogreška s medijem, ona preraspodjeljuje sektor.
  • Ako se sektor ne može čitati niti ispraviti nakon nekoliko pokušaja čitanja (na tvrdom disku koji je označen kao RAID tvrdi disk), tvrdi disk će odustati, preraspodijeliti sektor i reći kontroloru da postoji problem , Ono se oslanja na RAID kontrolera da rekonstruira sektor od ostalih članova RAID-a i napiše ga na neuspjelu tvrdi disk, koji ga zatim pohranjuje u prenamjenom sektoru (koji nadamo se nema problema).
  • Ako se sektor ne može čitati ili ispraviti na tvrdom disku računala, tvrdi disk će se uključiti u više pokušaja da ga pročitaju. Ovisno o kvaliteti tvrdog diska, to bi moglo uključiti repozicioniranje glave, provjeravajući ima li bitova koji se fiksiraju pri čitanju, provjeravajući koji su bitovi najslabiji i još nekoliko stvari. Ako bilo koji od tih pokušaja uspije, tvrdi disk će preraspodijeliti sektor i napisati popravljene podatke.

Ovo je jedna od glavnih razlika između tvrdih diskova koji se prodaju kao "tvrdi disk", "NAS / RAID" ili "video nadzor". RAID tvrdi disk može brzo odustati i izvršiti regulator popravak sektora kako bi se izbjeglo kašnjenje na strani korisnika. Tvrdi disk na tvrdom disku će i dalje pokušavati ponovo i ponovno jer je korisnik pričekajte nekoliko sekundi vjerojatno je bolje nego da im kaže da su podaci izgubljeni. I video tvrdi disk vrednuje konstantne brzine prijenosa podataka više od oporavka pogreške kao oštećenog okvira obično nećemo ni primijetiti.

U svakom slučaju, tvrdi disk će znati je li došlo do propadanja bitova, obično će se oporaviti od njega i ako to ne može, on će reći kontroleru koji će zauzvrat reći upravljaču koji će tada reći operacijskom sustavu. Zatim, na operacijskom sustavu je potrebno predočiti pogrešku korisniku i djelovati na njemu. Zato cybernard kaže:

  • Nikad nisam svjedočio ni jednoj pogrešci, ali vidio sam dosta tvrdih diskova u kojima su čitav sektor propali.

Tvrdi disk će znati ako nešto nije u redu s nekim sektorom, ali neće znati koji su bitovi uspjeli. ECC će uvijek uhvatiti jedan jedini bit koji nije uspio.

Imajte na umu da se chkdsk i datotečni sustavi koji se automatski popravljaju ne rješavaju popravak podataka unutar datoteka. Oni su usmjereni na korupciju unutar same strukture datotečnog sustava, kao što je razlika u veličini datoteke između unosa direktorija i broja dodijeljenih blokova. Značaj samoiscjeljivanja NTFS-a će otkriti strukturne štete i spriječiti daljnje utječe 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še RAM na kontroleru može mijenjati podatke prije nego što se čak i šalje na tvrdi disk. U tom slučaju, nikakav mehanizam na tvrdom disku neće otkriti ili popraviti podatke, a to može biti i jedan od razloga zašto je struktura datotečnog sustava oštećena.Ostali razlozi uključuju softverske greške, zamračenja dok se pišu na tvrdi disk (iako je to riješeno dnevnikom datotečnog sustava) ili loše upravljačke programe datoteka (NTFS vozač na Linuxu zadano je samo za čitanje dugo vremena otkako je NTFS bio obrnut, nije dokumentirano, a programeri nisu imali povjerenja u vlastiti kôd).

  • 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 radna kopija podataka bila dostupna u svim okolnostima. Nakon nekoliko mjeseci primijetili smo da oko 0,1 posto svih kopiranih datoteka ne odgovara zbroju sumnje MD5 da je aplikacija pohranjena u svojoj bazi podataka. Pokazalo se da je neispravan vlaknasti kabel između poslužitelja i SAN-a.

Ovi drugi razlozi su razlog zašto neki datotečni sustavi, poput ZFS-a, drže dodatne informacije o provjeri kako bi otkrili pogreške. Osmišljeni su da bi vas zaštitili od mnogo više stvari koje mogu pogriješiti nego samo truleži.

Imate li nešto za objašnjenje? Zvuči u komentarima. Želite li pročitati više odgovora od drugih tehnoloških korisnika Stack Exchangea? Pogledajte ovdje cijelu raspravu.