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 Question & Answer-sessie van vandaag komt tot ons dankzij SuperUser - een onderdeel van Stack Exchange, een gemeenschapsgedreven groep 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 worden geopend zonder een waarschuwing over de schade:
Is het mogelijk dat fysieke degradatie van een harde schijf ervoor kan zorgen dat bits in de inhoud van een bestand "omslaan" zonder dat het besturingssysteem de wijziging opmerkt en de gebruiker erover op de hoogte stelt 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 beperkt 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 een paar bits beïnvloeden.
Wanneer de harde schijf de sector leest, controleert deze deze ECC-codes en repareert de gegevens indien nodig (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 (dat wil zeggen kosmische straling, enz.) 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 taak op, wijst de sector opnieuw toe en vertelt de controller dat er een probleem was . Het is afhankelijk van 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 vaste schijf op de desktop blijft het steeds opnieuw proberen, omdat de gebruiker een paar seconden moet wachten is waarschijnlijk beter dan hem te vertellen 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.
Hoe dan ook, de harde schijf zal weten of er bitrot is geweest, zal er meestal van herstellen, en als dat niet het geval is, dan 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 de reden 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 is mislukt, zal altijd worden gevangen door ECC.
Houd er rekening mee dat chkdsk en bestandssystemen die zichzelf automatisch repareren geen adres repareren van gegevens binnen 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 detecteert structurele schade en voorkomt dat deze uw gegevens verder beïnvloedt, maar repareert geen gegevens die al beschadigd zijn.
Er zijn natuurlijk nog andere redenen waarom gegevens beschadigd kunnen raken. Slecht 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 softwarefoutjes, 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 was standaard alleen-lezen sinds NTFS reverse-engineering was, niet gedocumenteerd en de ontwikkelaars vertrouwden hun eigen code niet).
- Ik had dit scenario ooit wanneer een toepassing al zijn bestanden op twee verschillende servers in twee verschillende datacenters zou opslaan om een werkkopie van de gegevens onder alle omstandigheden 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.
Om deze andere redenen houden sommige bestandssystemen, zoals ZFS, aanvullende controlesomgegevens bij om fouten te detecteren. Ze zijn ontworpen om je te beschermen tegen veel meer dingen die fout kunnen gaan dan alleen rotten.
Heb je 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 hier de volledige discussiethread.