31Jul

Kunnen gegevens over harde schijven degraderen zonder waarschuwing over de schade?

We maken ons allemaal zorgen over het veilig en intact houden van onze gegevens en bestanden, maar is het mogelijk dat gegevens worden beschadigd en door een gebruiker kunnen worden geopend zonder een waarschuwing of waarschuwing van welke aard dan ook over het probleem? De SuperUser Q & A-post van vandaag heeft het antwoord op de vraag van een bezorgde lezer.

De vraag van vandaag &Antwoord sessie komt naar ons met dank aan SuperUser-een onderverdeling van Stack Exchange, een community-gestuurde groepering van Q & A-websites.

Foto met dank aan generaliseren( Flickr).

De vraag

SuperUser-lezer topo morto wil weten of gegevens op harde schijven kunnen worden afgebroken en toegankelijk zijn zonder een waarschuwing voor de schade:

Is het mogelijk dat fysieke degradatie van een harde schijf ertoe kan leiden dat bits in de inhoud van een bestand "omslaan"zonder dat het besturingssysteem de wijziging opmerkt en de gebruiker hierover informeert tijdens het lezen van het bestand? Kan een "p"( binair 01110000) in een ASCII-tekstbestand bijvoorbeeld veranderen in een "q"( binair 01110001), en wanneer een gebruiker het bestand opent, zien ze "q" zonder zich ervan bewust te zijn dat er een fout is opgetreden?

Ik ben geïnteresseerd in antwoorden met betrekking tot FAT, NTFS of ReFS( als het een verschil maakt).Ik wil weten of besturingssystemen gebruikers hiertegen beschermen, of dat we onze gegevens na verloop van tijd controleren op verschillen tussen kopieën.

Kunnen gegevens op harde schijven worden beschadigd en worden gebruikt zonder een waarschuwing over de schade?

Het antwoord

SuperUser-bijdrager Guntram Blohm heeft het antwoord voor ons:

Ja, er is iets dat bitrot heet. Maar nee, het zal een gebruiker niet onopgemerkt beïnvloeden.

Wanneer een harde schijf een sector naar de platters schrijft, worden de bits niet alleen op dezelfde manier geschreven als in RAM, maar wordt er een codering gebruikt om ervoor te zorgen dat er geen sequenties van hetzelfde bit zijn die te lang zijn. Het voegt ook ECC-codes toe waarmee fouten kunnen worden hersteld die enkele bits beïnvloeden en fouten detecteren die meer dan enkele bits beïnvloeden.

Wanneer de harde schijf de sector leest, controleert deze deze ECC-codes en repareert indien nodig de gegevens( en indien mogelijk).Wat er vervolgens gebeurt, hangt af van de omstandigheden en de firmware van de harde schijf, die wordt beïnvloed door de aanduiding van de schijf.

  • Als een sector kan worden gelezen en geen ECC-codeproblemen heeft, wordt deze doorgegeven aan het besturingssysteem.
  • Als een sector gemakkelijk kan worden gerepareerd, kan de gerepareerde versie naar schijf worden geschreven, worden gelezen en vervolgens worden gecontroleerd om te bepalen of de fout een willekeurige is( kosmische straling, enzovoort) of als er een systematische fout is met de media.
  • Als de harde schijf vaststelt dat er een fout is opgetreden in de media, wijst deze de sector opnieuw toe.
  • Als een sector na een paar leespogingen( op een harde schijf die is aangeduid als een RAID-harde schijf) niet kan worden gelezen of gecorrigeerd, geeft de harde schijf de sector op, wijst hij de sector opnieuw toe en vertelt hij de controller dat er eenprobleem. Het vertrouwt op de RAID-controller om de sector te reconstrueren vanaf de andere RAID-leden en deze terug te schrijven naar de defecte harde schijf, die deze vervolgens opslaat in de opnieuw toegewezen sector( die hopelijk geen probleem heeft).
  • Als een sector niet kan worden gelezen of gecorrigeerd op de harde schijf van een desktop, zal de harde schijf meer pogingen ondernemen om deze te lezen. Afhankelijk van de kwaliteit van de harde schijf, kan dit betekenen dat de kop moet worden verplaatst, moet worden gecontroleerd of er bits zijn die bij herhaald lezen worden omgedraaid, welke bits het zwakst zijn en een paar andere dingen. Als een van deze pogingen slaagt, zal de harde schijf de sector opnieuw toewijzen en de gerepareerde gegevens terugschrijven.

Dit is een van de belangrijkste verschillen tussen harde schijven die worden verkocht als "desktop", "NAS / RAID" of "videobewaking" harde schijven. Een RAID-harde schijf kan het snel opgeven en de controller de sector laten repareren om latentie aan de kant van de gebruiker te voorkomen. Een harde schijf op de desktop zal steeds opnieuw proberen, omdat het een betere manier is om een ​​paar seconden te wachten dan te zeggen dat de gegevens verloren zijn gegaan. En een video-harde schijf waardeert constante gegevenssnelheden meer dan foutherstel omdat een beschadigd frame meestal niet eens wordt opgemerkt.

In ieder geval zal de harde schijf weten of er bitrot is geweest, zal deze meestal herstellen en als dit niet het geval is, vertelt het de controller die op zijn beurt de bestuurder zal vertellen die het besturingssysteem zal vertellen. Het is dan aan het besturingssysteem om de fout aan de gebruiker te presenteren en ernaar te handelen. Dit is waarom cybernard zegt:

  • Ik heb zelf nog nooit een enkele bitfout gezien, maar ik heb genoeg harde schijven gezien waar hele sectoren gefaald hebben.

De harde schijf weet of er iets mis is met een sector, maar weet niet welke bits zijn mislukt. Een enkel bit dat gefaald heeft zal altijd door ECC worden gevangen.

Houd er rekening mee dat chkdsk en bestandssystemen die zichzelf automatisch repareren, zich niet bezighouden met het herstellen van gegevens in bestanden. Deze zijn gericht op corruptie binnen de structuur van het bestandssysteem zelf, zoals een verschil in de bestandsgrootte tussen het telefoonboekitem en het aantal toegewezen blokken. De zelfherstellende functie van NTFS zal structurele schade detecteren en voorkomen dat het uw gegevens verder beïnvloedt, maar het zal geen gegevens herstellen die al beschadigd zijn.

Er zijn natuurlijk nog andere redenen waarom gegevens beschadigd kunnen raken. Slechte RAM op een controller kan bijvoorbeeld gegevens wijzigen voordat deze zelfs naar de harde schijf wordt verzonden. In dat geval zal geen enkel mechanisme op de harde schijf de gegevens detecteren of repareren, en dit kan een reden zijn waarom de structuur van een bestandssysteem is beschadigd. Andere redenen zijn softwarefouten, black-outs tijdens het schrijven naar de harde schijf( hoewel dit wordt geadresseerd door de journaling van het bestandssysteem) of stuurprogramma's voor slechte bestanden( het NTFS-stuurprogramma op Linux is standaard lang alleen-lezen sinds NTFS reverse-engineering was,niet gedocumenteerd en de ontwikkelaars vertrouwden hun eigen code niet).

  • Ik had dit scenario eens wanneer een toepassing al zijn bestanden op twee verschillende servers in twee verschillende datacenters zou opslaan om onder alle omstandigheden een werkkopie van de gegevens beschikbaar te houden. Na een paar maanden merkten we dat ongeveer 0,1 procent van alle gekopieerde bestanden niet overeenkwam met de MD5-controlesom die de toepassing in zijn database had opgeslagen. Het bleek een defecte glasvezelkabel te zijn tussen de server en de SAN.

Deze andere redenen zijn waarom sommige bestandssystemen, zoals ZFS, aanvullende controlesominformatie bijhouden om fouten te detecteren. Ze zijn ontworpen om je te beschermen tegen veel meer dingen die fout kunnen gaan dan alleen rotten.

Heeft u iets toe te voegen aan de uitleg? Geluid uit in de reacties. Wilt u meer antwoorden van andere technisch onderlegde Stack Exchange-gebruikers lezen? Bekijk de volledige discussiethread hier.