31Jul

A merevlemezekre vonatkozó adatok a károkozás figyelmen kívül hagyása nélkül degradálódhatnak?

Mindannyian aggódunk, hogy adataink és fájlaink biztonságban és épségben maradnak, de lehetséges, hogy az adatok megsérülnek, és a felhasználó bármikor értesítést vagy figyelmeztetést kaphat a probléma miatt? A mai SuperUser Q & A bejegyzés válaszol az aggódó olvasó kérdésére.

A mai kérdés &A válaszüzenet a SuperUser - a Stack Exchange megosztottságának köszönhetően - a Q & A webhelyek közösségi szintű csoportosítása.

Fotózás a generalizálásról( Flickr).

A

kérdőjel A SuperUser olvasó topo morto tudni akarja, hogy a merevlemezen lévő adatok romolhatnak-e, és a károkozás figyelmeztetése nélkül hozzáférhetnek-e:

Lehetséges, hogy a merevlemez fizikai lebomlása miatt a bitek "flip"anélkül, hogy az operációs rendszer észrevenné a változást és értesítené a felhasználót a fájl olvasásakor? Például egy ASCII szövegfájlban lévő "p"( bináris 01110000) "q" -ra( bináris 01110001) módosulhat, akkor amikor a felhasználó megnyitja a fájlt, akkor a "q" -t anélkül veszi észre, hogy hiba történt?

Érdekelnek a FAT, az NTFS vagy az ReFS-vel kapcsolatos válaszok( ha ez különbséget tesz).Tudni akarom, hogy az operációs rendszerek védik-e a felhasználókat attól, vagy ha ellenőrizzük az adataikat a másolatok közötti eltérésekkel az idő múlásával.

A merevlemezekre vonatkozó adatok romolhatnak és hozzáférést kaphatnak a károk figyelmeztetése nélkül?

A válasz

SuperUser közreműködő Guntram Blohm válaszol számunkra:

Igen, van egy dolog nevű bit rothadás. De nem, ez nem érinti a felhasználót észrevétlenül.

Ha egy merevlemez-meghajtó egy szektort ír a tálcákra, akkor nem csak a biteket írja le ugyanúgy, mint a RAM-ban tárolt, kódolást használ annak biztosítására, hogy nincsenek ugyanazon bitek, amelyek túl hosszúak. Ezenkívül hozzáadja az ECC-kódokat, amelyek lehetővé teszik néhány bitet érintő hibák javítását és néhány bitet meghaladó hibák észlelését.

Ha a merevlemez meghallja az ágazatot, ellenőrzi ezeket az ECC kódokat és szükség esetén( és ha lehetséges) javítja az adatokat. A következő lépés a merevlemez körülményeitől és a merevlemez firmware-jétől függ, amelyet a meghajtó kijelölése befolyásol.

  • Ha egy szektor olvasható, és nincsenek ECC kódproblémái, akkor továbbadja az operációs rendszert.
  • Ha egy szektor könnyedén megjavítható, akkor a javított változat írható lemezre, visszaolvasható, majd ellenőrizhető annak megállapításához, hogy a hiba véletlenszerű( pl. Kozmikus sugárzás stb.), Vagy ha van szisztematikus hiba a médiával.
  • Ha a merevlemez azt állapítja meg, hogy hiba történt a médiával, akkor újra szétteríti az ágazatot.
  • Ha egy szektor nem olvasható és nem javítható néhány olvasási kísérlet után( merevlemezen, amelyet RAID merevlemeznek neveznek), akkor a merevlemez fel fogja adni, átcsoportosítja az ágazatot, és megmondja a vezérlőnek, hogy létezik egyprobléma. A RAID-vezérlőre támaszkodva rekonstruálja a szektort a többi RAID-tagtól, és visszaírja a hibás merevlemezre, ami aztán az újraelosztott szektorban tárolja( ami remélhetőleg nem jelent problémát).
  • Ha egy szektort nem lehet olvasni vagy kijavítani az asztali merevlemezen, akkor a merevlemez több próbálkozást tesz lehetővé.A merevlemez minőségétől függően ez magában foglalhatja a fej áthelyezését, ellenőrizve, hogy vannak-e olyan bitek, amelyek többször olvasnak, ellenőrizve, hogy mely bitek a leggyengébbek és néhány más dolog. Ha bármelyik ilyen kísérlet sikerül, a merevlemez újra szétosztja az ágazatot, és visszaírja a javított adatokat.

Ez az egyik fő különbség a "asztali", "NAS / RAID" vagy "video surveillance" merevlemezek között értékesített merevlemezek között. A RAID merevlemez gyorsan lemondhat, és a vezérlő javítani tudja az ágazatot, hogy elkerülje a felhasználó latenciáját. Az asztali merevlemez újra és újra megpróbálkozik, mert a felhasználó néhány másodpercet vár, valószínűleg jobb, mint mondani, hogy az adatok elveszettek. A videó merevlemez értéke pedig állandóan nagyobb adatátviteli sebességet eredményez, mint a hibák helyreállítása, mivel sérült képkocka általában nem észrevehető.

Mindenesetre a merevlemez meg fogja tudni, hogy van-e kicsit rothadás, általában visszanyerik, és ha nem tudja, akkor megmondja a vezérlőnek, amely viszont megmondja a meghajtónak, amely majd megmondja az operációs rendszert. Ezután az operációs rendszertől függ, hogy bemutassa a hibát a felhasználónak és járjon el rajta. Ezért mondja a cybernard:

  • Soha nem voltam egyetlen hiba hiba, de láttam sok merevlemezt, ahol a teljes szektorok kudarcot vallottak.

A merevlemez megtudja, hogy van-e valami hibás az ágazattal, de nem tudja, melyik bitek sikertelenek. Egyetlen kiesett hibát mindig az ECC fogja fogni.

Kérjük, vegye figyelembe, hogy a automatikusan javításra kerülő chkdsk és fájlrendszerek nem foglalkoznak a fájlok adatainak javításával. Ezek a fájlrendszer saját struktúráján belül a korrupcióra irányulnak, például a könyvtárbejegyzés és az elosztott blokkok száma közötti különbség. Az NTFS öngyógyító funkciója fel fogja ismerni a strukturális károkat, és megakadályozza, hogy ez tovább befolyásolja az adatait, de nem javítja a már megsérült adatokat.

Természetesen vannak olyan okok is, amelyek miatt az adatok megsérülhetnek. Például a vezérlő rossz RAM-ja megváltoztathatja az adatokat, mielőtt még a merevlemezre is küldene. Ebben az esetben a merevlemezen lévő mechanizmusok nem észlelik vagy javítják az adatokat, és ez lehet az oka annak, hogy a fájlrendszer szerkezete sérült. Egyéb okok közé tartozik a szoftveres hibák, az áramkimaradások a merevlemezre írva( bár ez a fájlrendszer naplózása) vagy rossz fájlrendszer-illesztőprogramok( az NTFS meghajtó Linuxon alapul, hogy csak hosszú ideig olvasható,nem dokumentált, és a fejlesztők nem bíznak a saját kódjukban).

  • Ezt a forgatókönyvet akkor adtam meg, amikor egy alkalmazás az összes fájljait két különböző kiszolgálóra mentette két különböző adatközpontban, hogy az adatok minden esetben rendelkezésre álljanak. Néhány hónap múlva észrevettük, hogy az összes másolt fájl 0,1 százaléka nem egyezik meg az MD5 ellenőrzőösszeggel, amelyet az alkalmazás tárolt az adatbázisában. Kiderült, hogy hibás szálkábel van a szerver és a SAN között.

Ezek a további okok az oka annak, hogy néhány fájlrendszer, például a ZFS, további ellenőrző összegadatokat tárol a hibák észlelése érdekében.Úgy tervezték, hogy megvédjen benneteket még sok mindentől, amelyek rosszul járhatnak, mint a puszta rothadás.

Van valami a magyarázathoz? Hangzik ki a megjegyzésekben. Szeretne többet válaszolni a többi technikus-tudós Stack Exchange felhasználóiról? Nézze meg a teljes vitafonalat itt.