Vai dati par cietajiem diskiem var pasliktināties bez brīdinājuma par bojājumiem?
Mēs visi uztraucamies par to, ka mūsu dati un faili ir droši un nebojāti, bet vai ir iespējams, ka dati var tikt sabojāti un lietotāji var piekļūt bez paziņojuma vai brīdinājuma par šo problēmu? Šodienas SuperUser Q&A postenim ir atbilde uz uztraucoša lasītāja jautājumu.
Šodienas jautājumu un atbilžu sesija mums dod pieklājību no SuperUser-Stack Exchange apakšnodaļas, kas ir kopienas orientēta Q & A tīmekļa vietņu grupa.
Foto pieklājīgi no vispārināšanas (Flickr).
Jautājums
SuperUser lasītājs topo morto vēlas zināt, vai dati par cietajiem diskiem var pasliktināties un piekļūt bez brīdinājuma par bojājumiem:
Vai ir iespējams, ka cietā diska fiziskā degradācija var izraisīt bitu faila satura pārslēgšanu, neizmantojot operētājsistēmu, pamanot izmaiņas un informējot lietotāju par to, lasot failu? Piemēram, vai “p” (binārs 01110000) ASCII teksta failā var mainīties uz “q” (binārs 01110001), tad, kad lietotājs atver failu, viņi redz „q”, nezinot, ka ir notikusi kļūda?
Mani interesē atbildes, kas saistītas ar FAT, NTFS vai ReFS (ja tas rada atšķirību). Es gribu zināt, vai operētājsistēmas aizsargā lietotājus no šī, vai arī, ja mums ir jāpārbauda mūsu dati par atšķirībām starp kopijām laika gaitā.
Vai dati par cietajiem diskiem var pasliktināties un piekļūt bez brīdinājuma par bojājumiem?
Atbilde
SuperUser ieguldītājam Guntramam Blohm ir atbilde:
Jā, ir lieta, ko sauc par mazu puvi. Bet nē, tas neietekmēs lietotāju nepamanīti.
Ja cietais disks raksta sektoru šķīvīšiem, tas ne tikai raksta bitus tādā pašā veidā, kā tie tiek glabāti operētājsistēmā RAM, tā izmanto kodējumu, lai pārliecinātos, ka nav tādu pašu bitu sekvences, kas ir pārāk garas. Tas arī pievieno ECC kodus, kas ļauj to labot kļūdas, kas ietekmē dažus bitus, un atklāt kļūdas, kas skar vairāk nekā dažus bitus.
Kad cietais disks nolasa nozari, tas pārbauda šos ECC kodus un, ja nepieciešams, labo datus. Tas, kas notiek tālāk, ir atkarīgs no cietā diska apstākļiem un programmaparatūras, kuru ietekmē diska apzīmējums.
- Ja sektoru var nolasīt un tai nav ECC koda problēmu, tad tā tiek nodota operētājsistēmai.
- Ja nozari var viegli salabot, laboto versiju var rakstīt uz diska, nolasīt atpakaļ, pēc tam pārbaudīt, lai noteiktu, vai kļūda ir nejauša (t.i., kosmiskie stari utt.) Vai ja ir kļūdaina medija.
- Ja cietais disks konstatē, ka ir kļūda ar plašsaziņas līdzekļiem, tā pārdala nozari.
- Ja nozari nevar nolasīt vai labot pēc dažiem lasīšanas mēģinājumiem (cietajā diskā, kas apzīmēts kā RAID cietais disks), tad cietais disks atdos, pārdalīs sektoru un paziņos kontrolierim, ka pastāv problēma . Tā balstās uz RAID kontrolieri, lai rekonstruētu sektoru no citiem RAID dalībniekiem un ierakstītu to atpakaļ cietajā cietajā diskā, kas pēc tam saglabā to pārdalītajā sektorā (tas, cerams, tam nav problēmu).
- Ja sektoru nevar nolasīt vai labot darbvirsmas cietajā diskā, tad cietais disks mēģinās to izlasīt. Atkarībā no cietā diska kvalitātes, tas var ietvert galvas pārvietošanu, pārbaudi, vai ir kādi biti, kas atkārtoti nolasīti, pārbaudot, kuri biti ir vājākie, un dažas citas lietas. Ja kāds no šiem mēģinājumiem izdosies, cietais disks pārdalīs sektoru un pierakstīs labotos datus.
Šī ir viena no galvenajām atšķirībām starp cietajiem diskiem, kas tiek pārdoti kā “desktop”, “NAS / RAID” vai “video novērošanas” diskdziņi. RAID cietais disks var vienkārši atmest ātrumu un padarīt kontrolieri remontu nozarē, lai izvairītos no latentuma lietotāja pusē. Darbvirsmas cietais disks turpinās mēģināt atkal un atkal, jo, ja lietotājs gaida dažas sekundes, iespējams, ir labāks par to, ka dati tiek zaudēti. Un video cietais disks novērtē nemainīgu datu pārraides ātrumu vairāk nekā kļūdu atgūšana, jo bojāts rāmis parasti netiks pamanīts.
Jebkurā gadījumā cietais disks zinās, vai ir bijis mazliet puve, parasti atgūsies no tā, un, ja tā nevarēs, tas informēs kontrolieri, kurš savukārt pastāstīs vadītājam, kurš pēc tam pastāstīs operētājsistēmai. Pēc tam operētājsistēmas uzdevums ir sniegt lietotājam kļūdas un rīkoties. Tāpēc cybernard saka:
- Es nekad neesmu pieredzējis vienu bitu kļūdu, bet es esmu redzējis daudzus cietos diskus, kur visas nozares nav izdevušās.
Cietais disks zinās, vai ar kādu sektoru ir kaut kas nepareizs, bet tas nezina, kuri biti nav izdevušies. Viens bits, kas neizdevās, vienmēr būs nozvejotas ECC.
Lūdzu, ņemiet vērā, ka chkdsk un failu sistēmas, kas automātiski labo pašas, neattiecas uz datu labošanu failos. Tie ir vērsti uz korupciju pašas failu sistēmas struktūrā, piemēram, atšķirību faila lielumā starp direktoriju ierakstu un piešķirto bloku skaitu. NTFS pašārstējošā funkcija atklās strukturālus bojājumus un novērsīs to, ka tā ietekmēs jūsu datus, bet tas neatjaunos jau bojātus datus.
Protams, ir arī citi iemesli, kāpēc dati var tikt bojāti. Piemēram, slikts operētājsistēmas RAM var mainīt datus, pirms tas tiek nosūtīts uz cieto disku. Tādā gadījumā neviens cietā diska mehānisms neatpazīst un neattaisno datus, un tas var būt viens no iemesliem, kāpēc failu sistēmas struktūra ir bojāta. Citi iemesli ir programmatūras kļūdas, pārtraukumi rakstot uz cietā diska (lai gan to risina failu sistēmas žurnāli) vai slikti failu sistēmas draiveri (NTFS draiveris Linux noklusē tikai ilgu laiku, jo NTFS tika pārveidots, nav dokumentēti, un izstrādātāji neuzticējās savam kodam).
- Man bija šis scenārijs vienreiz, kad lietojumprogramma saglabātu visus savus failus divos dažādos serveros divos dažādos datu centros, lai jebkurā gadījumā saglabātu darba kopiju. Pēc dažiem mēnešiem mēs pamanījām, ka aptuveni 0,1 procenti no visiem kopētajiem failiem nesakrīt ar MD5 pārbaudes summu, ko lietojumprogramma saglabājusi savā datu bāzē. Tas izrādījās kļūdains šķiedru kabelis starp serveri un SAN.
Šie citi iemesli ir tādi, kāpēc dažas failu sistēmas, piemēram, ZFS, saglabā papildu pārbaudes informācijas informāciju, lai atklātu kļūdas. Tie ir paredzēti, lai pasargātu jūs no daudzām citām lietām, kas var nepareizi iziet, nekā tikai mazliet puvi.
Vai kaut kas jāpievieno paskaidrojumam? Skaņas izslēgšana komentāros. Vai vēlaties lasīt vairāk atbildes no citiem tehnoloģiju gudriem Stack Exchange lietotājiem? Apskatiet pilnu diskusiju pavedienu šeit.