31Jul

Ar duomenys apie standžiųjį diską gali pablogėti be įspėjimo apie žalą?

Mes visi nerimaujame dėl to, kad mūsų duomenys ir failai yra saugūs ir nepažeisti, bet ar yra galimybė, kad duomenys gali būti sugadinti ir kad vartotojas galėtų juos pasiekti, negavęs įspėjimo apie bet kokią problemą?Šiandien "SuperUser Q &" įrašas turi atsakymą į nerimą keliančio skaitytojo klausimą.

Šiandienos klausimas &Atsakymų sesija ateina pas mus iš "SuperUser" - "Stack Exchange", bendruomenės pagrįstos "Q & A" svetainių grupės pasidalijimo.

Nuotrauka mandagumo apibendrinimo( Flickr).

Klausimas

SuperUser skaitytojas topo morto nori žinoti, ar duomenys kietajame diske gali pablogėti ir būti prieinami be įspėjimo apie žalą:

Ar fiziškai gali pabloginti kietąjį diską, gali sukelti bitų "apversti" failo turinįbe operacinės sistemos pastebėjęs pakeitimą ir pranešdamas vartotojui apie jį, skaitant failą?Pavyzdžiui, ar "p"( dvejetainis 01110000) ASCII teksto rinkmenoje gali keisti į "q"( dvejetainis 01110001), tada, kai vartotojas atidaro failą, jie žiūri "q", nežinodami, kad įvyko klaida?

Mane domina atsakymai, susiję su FAT, NTFS ar ReFS( jei tai skiriasi).Noriu sužinoti, ar operacinės sistemos apsaugo vartotojus nuo to, ar jei mes turėtume tikrinti savo duomenis dėl dispersijų tarp kopijų per tam tikrą laiką.

Ar duomenis apie standžiuosius diskus gali pažeisti ir prieinami be įspėjimo apie žalą?

Atsakymas

SuperUser autorius Guntram Blohm turi mums atsakymą:

Taip, yra dalykas, vadinamas bitine puvimu. Bet ne, vartotojas nepaveiks nepastebimas.

Kai kietasis diskas įrašo sektorių į plokšteles, jis ne vien rašo bitus taip, kaip juos saugo RAM, bet ir naudoja kodavimą, norėdamas įsitikinti, kad nėra to paties bito sekos, kurios yra per ilgos. Jis taip pat prideda ECC kodus, kurie leidžia taisyti klaidas, kurios paveikia keletą bitų, ir aptikti klaidas, turinčias įtakos daugiau nei keliems bitams.

Kai kietasis diskas nuskaito sektorių, jis patikrina šiuos ECC kodus ir prireikus taiso duomenis( ir, jei įmanoma).Tai, kas atsitiks, priklauso nuo aplinkybių ir standžiojo disko programinės aparatinės įrangos, kuri priklauso nuo disko žymėjimo.

  • Jei sektorius gali būti skaitomas ir jo nėra ECC kodo problemų, jis perduodamas operacinei sistemai.
  • Jei sektorius gali būti lengvai suremontuotas, taisyta versija gali būti įrašoma į diską, nuskaityti atgal, tada patvirtinama, ar klaida buvo atsitiktinė( ty kosminės spinduliuotės ir tt), arba jei sistemoje įvyko klaida žiniasklaidoje.
  • Jei kietasis diskas nustato, kad žiniasklaidoje yra klaida, ji perskirsto sektorių.
  • Jei po keletos bandymų skaitymo( kietajame diske, kuris pažymėtas kaip standusis diskas), sektorius negali būti nei perskaitomas, nei taisomas, tuomet kietasis diskas atsisakys, perskirstys sektorių ir pasakys, kad yraproblema. Jis remiasi RAID valdikliu, kad rekonstruotų sektorių iš kitų RAID narių ir parašytų atgal į nepavykusį standųjį diską, kuris vėliau jį saugo perskirstytuose sektoriuose( tai, tikėtina, neturi problemos).
  • Jei sektoriuje negalima skaityti ar taisyti darbalaukio kietajame diske, tada kietajame diske bus daugiau bandymų jį perskaityti. Atsižvelgiant į kietojo disko kokybę, tai gali reikšti, kad pakeitus galvą, patikrinkite, ar pakartotinai skaityti yra kokių nors bitų, kuriuos galima apversti, patikrinti, kurie bitai yra silpni, ir keletas kitų dalykų.Jei bet kuris iš šių bandymų bus sėkmingas, kietasis diskas perskirstys sektorių ir užregistruos taisytus duomenis.

Tai yra vienas iš pagrindinių kietųjų diskų, parduodamų kaip "darbastalio", "NAS / RAID" ar "vaizdo stebėjimo" kietųjų diskų, skirtumų.RAID kietasis diskas gali tiesiog atsisakyti ir padaryti valdiklį remontuoti sektorių, siekiant išvengti latencijos vartotojo pusėje. Darbalaukio standusis diskas ir toliau bandys dar kartą ir vėl, nes vartotojas laukia kelių sekundžių, tikriausiai yra geriau nei sakydamas, kad duomenys prarasti. Ir vaizdo kietojo disko reikšmės nuolatinės duomenų perdavimo spartos daugiau nei pakartotinis atkūrimas, nes pažeistas rėmas paprastai net nepastebimas.

Bet kokiu atveju, kietasis diskas žinos, ar buvo šiek tiek puvimo, paprastai atsigaus nuo jo, o jei jis negalės, jis pasakys valdikliui, kuris savo ruožtu pasakys vairuotojui, kuris paskui pateiks operacinę sistemą.Tada operacinė sistema turi pateikti vartotojui klaidą ir veikti ja.Štai kodėl cybernard sako:

  • Aš niekada nepastebėjau vienos klaidos klaidos, bet aš mačiau daug kietųjų diskų, kuriuose visi sektoriai nepavyko.

Kietasis diskas žinos, ar sektoriuje yra kažkas negerai, bet nežinai, kurie biti nepavyko. Vienintelis trūkumas, kurio nepavyko, visada pateks į ECC.

Atkreipkite dėmesį, kad "chkdsk" ir failų sistemos, kurios automatiškai patobulina save, neapsaugo failų taisymo duomenų.Jos yra nukreiptos į korupciją pačios failų sistemos struktūroje, pvz., Failų dydžio skirtumas tarp katalogo įrašo ir paskirtų blokų skaičiaus. NTFS savaiminio gydymo funkcija aptinka struktūrinę žalą ir neleidžia jai dar labiau paveikti jūsų duomenų, tačiau ji nepašalins jokių jau sugadintų duomenų.

Yra, žinoma, kitų priežasčių, kodėl duomenys gali būti pažeisti. Pavyzdžiui, bloga RAM valdiklyje gali keisti duomenis, kol ji net siunčiama į kietąjį diską.Tokiu atveju be kietojo disko mechanizmo nebus aptikti ir taisyti duomenys, ir tai gali būti viena iš priežasčių, kodėl failų sistemos struktūra yra pažeista. Kitos priežastys yra programinės įrangos klaidos, rašybos metu kietajame diske( net jei tai yra susiję su failų sistemos žurnalavimu), arba blogos failų sistemos tvarkyklės( "NTFS" tvarkyklė "Linux" ilgą laiką buvo užregistruota tik skaitymui, nes NTFS buvo sukonfigūruotas)ne dokumentuojama, o kūrėjai nepasitikėjo savo kodu).

  • Aš turėjau šį scenarijų vieną kartą, kai programa visus failus išsaugo į du skirtingus serverius dviejuose skirtinguose duomenų centruose, kad bet kokiomis aplinkybėmis išsaugotų galiojančių duomenų kopiją.Po kelių mėnesių pastebėjome, kad maždaug 0,1 procentas visų nukopijuotų failų neatitinka MD5 patikrinimo sumos, kurią ji išsaugojo savo duomenų bazėje. Tai pasirodė esant klaidingai pluošto kabeliams tarp serverio ir SAN.

Kitos šios priežastys yra kodėl kai kurios failų sistemos, pvz., ZFS, papildomai tikrina sumą, kad nustatytų klaidas. Jie skirti apsaugoti jus nuo daug daugiau dalykų, kurie gali būti blogi, o ne tik šiek tiek puvinio.

Ar ką nors pridėti prie paaiškinimo? Garsas išjungtas komentaruose. Norite skaityti daugiau atsakymų iš kitų "Tech-savvy Stack Exchange" vartotojų?Patikrinkite visą diskusijų temą čia.