Mēs visi esam nobažījušies par to, ka mūsu dati un faili tiek saglabāti droši un neskarti, bet vai ir iespējams, ka dati tiek bojāti un lietotājiem piekļūst bez brīdinājuma vai brīdinājuma par problēmu? Šodienas SuperUser Q & A ziņai ir atbilde uz satraucošā lasītāja jautājumu.
Šodienas jautājumu un atbilžu sesija mums priecājas par SuperUser - Stack Exchange dalību, kas ir kopienas vadīta Q & A tīmekļa vietņu grupa.
Foto pieklājīgi no vispārināšanas (Flickr).
SuperUser lasītājs topo morto vēlas uzzināt, vai dati par diskdziņiem var pazemināties un piekļūt bez brīdinājuma par kaitējumu:
Vai ir iespējams, ka cietā diska fiziska noārdīšanās var izraisīt bitu "pārslēgšanu" faila saturā, ja operētājsistēma neievēro izmaiņas un nepaziņo par to lietotāju, lasot failu? Piemēram, vai "p" (binārais 01110000) ASCII teksta failā varētu mainīties uz "q" (bināro 01110001), tad, kad lietotājs atver failu, viņi redz "q", nezinot, ka ir noticis neveiksmes?
Mani interesē atbildes, kas saistītas ar FAT, NTFS vai ReFS (ja tas izraisa atšķirību). Es gribu zināt, vai operētājsistēmas aizsargā lietotājus no tā, vai arī mums ir jāpārbauda mūsu dati par atšķirībām starp kopijām laika gaitā.
Vai dati par cietajiem diskiem var pazemināties un piekļūt bez brīdinājuma par kaitējumu?
SuperUser atbalstītājs Guntram Blohm ir atbilde mums:
Jā, ir kaut kas sauc par mazu puvi. Bet nē, tas neietekmēs lietotāju nepamanīti.
Kad cietais disks raksta sadaļu uz platiem, tas ne tikai uzraksta bitus tāpat, kā tos uzglabā RAM, bet izmanto kodējumu, lai pārliecinātos, ka tajā pašā biti nav pārāk garš. Tas arī papildina ECC kodus, kas ļauj novērst kļūdas, kas ietekmē dažus bitus, un konstatēt kļūdas, kas ietekmē vairāk nekā pāris bitus.
Kad cietais disks nolasa sektoru, tas pārbauda šos ECC kodus un, ja vajadzīgs, labo datus (un, ja iespējams,). Kas notiks tālāk, atkarīgs no cietā diska programmaparatūras un apstākļiem, ko ietekmē diska apzīmējums.
- Ja nozari var lasīt un tam trūkst ECC koda problēmu, tas tiek nodots operētājsistēmai.
- Ja nozari var viegli salabot, laboto versiju var ierakstīt diskā, nolasīt atpakaļ, pēc tam verificēt, lai noteiktu, vai kļūda ir nejauša (t.i., kosmiskā starojuma utt.) Vai ja pastāv multimediju sistemātiska kļūda.
- Ja cietais disks nosaka, ka ir radusies multivides kļūda, tā pārdalina sektoru.
- Ja pēc dažiem mēģinājumiem lasīt (uz cietā diska, kas tiek apzīmēts kā RAID cietais disks), nozari nevar izlasīt vai labot, tad cietais disks atteiksies, pārdalīs sektoru un paziņos datu apstrādātājam, ka pastāv problēma . Tā paļaujas uz RAID kontrolieri, lai rekonstruētu nozari no citiem RAID biedriem un ierakstītu to atpakaļ uz neveiksmīgo cieto disku, kas pēc tam to uzglabā pārdalītā sektorā (tam, cerams, nav problēmu).
- Ja kādu nozari nevar lasīt vai labot darbvirsmas cietajā diskā, cietais disks vairāk mēģinās to izlasīt. Atkarībā no cietā diska kvalitātes, tas var nozīmēt galvas pārvietošanu, pārbaudot, vai ir biti, kurus atkārtoti nolasīt, 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 uzraksta atpakaļ labotos datus.
Šī ir viena no galvenajām atšķirībām starp diskdziņiem, ko pārdod kā "desktop", "NAS / RAID" vai "video novērošanas" cietie diski. RAID cietais disks var vienkārši atmest ātri 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 lietotājam jāgaida dažas sekundes, iespējams, ir labāk, nekā pateikt, ka dati tiek zaudēti. Un video cietā diska vērtības nemainīgas datu pārraides ātrums pārsniedz kļūdu atkopšanu, jo bojāts kadrs parasti netiks pamanīts.
Jebkurā gadījumā cietais disks zinās, vai ir bijuši bojājumi, parasti no tā atgūsies, un, ja tas nebūs iespējams, tas pateiks kontrolierim, kas savukārt informēs vadītāju, kurš pēc tam paziņos operētājsistēmai. Tad operētājsistēmas lietotājs uzrāda kļūdu lietotājam un rīkojas ar to. Tāpēc Cybernard saka:
- Es pats nekad nebiju pieredzējis nevienu kļūdu kļūdu, bet esmu redzējis daudz cieto disku, kurā visu nozaru neizdevās.
Cietais disks zinās, vai nozarē ir kaut kas nepareizs, bet nezināt, kuri biti nav izdevies. Viens bits, kuram nav izdevies, vienmēr tiks pakļauts ECC.
Lūdzu, ņemiet vērā, ka chkdsk un failu sistēmas, kas automātiski labo pašas, neattiecas uz failu labošanas datiem. Tie ir vērsti uz korupciju pašas faila sistēmas struktūrā, piemēram, faila izmēru atšķirība starp direktorijas ierakstu un piešķirto bloku skaitu. NTFS pašattīrīšanās funkcija atklās strukturālos bojājumus un novērš to, ka tā turpmāk ietekmēs jūsu datus, taču tas neatjaunos nekādus jau bojātus datus.
Protams, ir citi iemesli, kāpēc dati var tikt bojāti. Piemēram, sliktā RAM uz vadības pults var mainīt datus, pirms tas tiek nosūtīts uz cieto disku. Tādā gadījumā neviens cietā diska mehānisms nekontrolē un neizlabo datus, un tas var būt viens no iemesliem, kāpēc faila sistēmas struktūra ir bojāta.Citi iemesli ir arī programmatūras kļūdas, strāvas padeves pārtraukumi, rakstot uz cieto disku (lai gan to risina ar failu sistēmu žurnālu) vai slikti failu sistēmas draiveri (Linux NTFS draiveris uz ilgu laiku noklusējusi tikai lasāmu, jo NTFS tika rekonstruēta, nav dokumentēti, un izstrādātāji neuzticēja savam kodam).
- Man bija šis scenārijs vienreiz, kad lietojumprogramma visus savus failus saglabātu divos dažādos serveros divos dažādos datu centros, lai jebkurā gadījumā saglabātu pieejamo datu darba kopiju. Pēc pāris mēnešiem mēs pamanījām, ka apmēram 0,1 procenti no visiem nokopētajiem failiem neatbilst MD5 pārbaudes summai, ko tā saglabā savā datubāzē. Tas izrādījās kļūdains šķiedras kabelis starp serveri un SAN.
Šie citi iemesli ir tādēļ, ka dažas failu sistēmas, piemēram, ZFS, saglabā papildu informāciju par čeku summu, lai atklātu kļūdas. Tās ir paredzētas, lai pasargātu jūs no daudz vairāk lietām, kas var kļūt nepareizas, kā tikai mazliet puvi.
Vai kaut ko pievienot paskaidrojumam? Skatieties komentāros. Vēlaties lasīt citas atbildes no citiem tehnoloģiju savvy Stack Exchange lietotājiem? Šeit skatiet pilnu diskusiju pavedienu.