Czy dane na dysku twardym mogą ulec degradacji bez ostrzeżenia systemu Windows, że tak się stało, gdy próbuję uzyskać dostęp do danych?

30

Czy jest prawdopodobne, że fizyczna degradacja dysku twardego może spowodować „odwrócenie” bitów w zawartości pliku bez zauważenia przez system operacyjny i poinformowania go o tym podczas czytania pliku? np. czy „p” w pliku tekstowym ASCII (binarny 0111000 0 ) może zmienić się na „q” (0111000 1 ), a następnie użytkownik (ja) może otworzyć plik i zobaczyć „q”, nie wiedząc, że wystąpił błąd Wystąpił?

Interesują mnie odpowiedzi dotyczące FAT, NTFS lub ReFS ... jeśli to robi różnicę.

Chcę wiedzieć, czy system operacyjny chroni mnie przed tym, czy też powinienem sprawdzać moje dane pod kątem niezmienności między kopiami / w czasie.

topo Przywróć Monikę
źródło
Nie specjalnie powiązane, ale podobne: superuser.com/questions/613702/…
Michael Frank
Przypuszczam, że uszkodzona głowica odczytu / zapisu mogłaby przypadkowo zastosować niewłaściwe obciążenie dysku, chociaż nigdy nie widziałem uszkodzenia danych na tak małą skalę. Ponadto nie ufam systemowi Windows, że powie mi, czy dysk jest uszkodzony, czy nie (komunikat przy logowaniu). Widziałem, jak dyski giną powoli, bez żadnego ostrzeżenia z systemu Windows.
CConard96
Oczywiście ... dane są przechowywane jako bity o wartościach względnych 0 lub 1, entropia występuje we wszystkich systemach, w tym w pamięci magnetycznej i półprzewodnikowej. Wszystkie dane z czasem ulegają degradacji.
acejavelin
2
@Moab: Byłbym pod większym wrażeniem twojego drugiego komentarza („Również ...”), gdyby adres URL był w jakikolwiek sposób inny niż adres URL w Twoim pierwszym komentarzu.
TOOGAM
1
Jeśli użyjesz ReFS na wolumenie lustrzanym (a nie parzystości!) I odpowiednio go skonfigurujesz, sprawdzi sumę danych pliku, a także metadane systemu plików. Zostanie to zweryfikowane podczas odczytu (i naprawione, jeśli to konieczne), a także zaplanowane zadanie, które będzie okresowo skanować cały wolumin pod kątem wykrytych błędów.
davidbak

Odpowiedzi:

24

Tak , istnieje coś takiego jak zgnilizna bitów.

Ale nie , nie wpłynie to na ciebie niezauważone.

Kiedy dysk zapisuje sektor na talerzach, nie tylko zapisuje bity w taki sam sposób, w jaki są przechowywane w pamięci RAM - używa kodowania, aby upewnić się, że nie ma żadnych sekwencji tego samego bitu, które byłyby zbyt długie i dodaje kody ECC, które pozwalają mu naprawiać błędy, które wpływają na kilka bitów, i wykrywają błędy, które wpływają na więcej niż kilka bitów.

Gdy dysk odczytuje sektor, sprawdza te kody ECC i naprawia dane, jeśli to konieczne i możliwe. To, co stanie się później, zależy od okoliczności i oprogramowania wewnętrznego napędu, na które ma wpływ oznaczenie napędu.

  • Jeśli sektor można odczytać i nie ma problemów z ECC, jest on przekazywany do systemu operacyjnego
  • Jeśli sektor można łatwo naprawić, naprawiona wersja może zostać zapisana na dysku, odczytana i zweryfikowana, aby ustalić, czy błąd był przypadkowy (promienie kosmiczne ...) lub czy występuje błąd systematyczny w mediach
  • Jeśli napęd wykryje błąd w nośniku, ponownie przydzieli sektor
  • Jeśli sektora nie można odczytać ani poprawić po kilku próbach odczytu, na dysku oznaczonym jako dysk RAID dysk się podda, ponownie przydzieli sektor i powie kontrolerowi, że wystąpił problem. Opiera się na kontrolerze RAID, aby zrekonstruować sektor z innych członków RAID i zapisać go z powrotem na uszkodzonym dysku, który następnie przechowuje go w ponownie przydzielonym sektorze, który, mam nadzieję, nie ma problemu.
  • Jeśli sektora nie można odczytać ani poprawić na dysku stacjonarnym , dysk wykona znacznie więcej prób jego odczytania. W zależności od jakości napędu może to obejmować zmianę położenia głowy, sprawdzenie, czy są jakieś bity, które obracają się podczas wielokrotnego odczytu, sprawdzanie, które bity są najsłabsze i kilka innych rzeczy. Jeśli którakolwiek z tych prób się powiedzie, napęd ponownie przydzieli sektor i zapisze naprawione dane.

(Jest to jedna z głównych różnic między dyskami sprzedawanymi jako dyski typu „Desktop”, „NAS / RAID” lub „Monitoring wideo”. Dysk RAID może po prostu szybko zrezygnować i sprawić, że kontroler naprawi sektor, aby uniknąć opóźnień na po stronie użytkownika. Dysk stacjonarny będzie ponawiał próbę, ponieważ oczekiwanie użytkownika na kilka sekund jest prawdopodobnie lepsze niż powiadomienie go, że dane zostały utracone. A dysk wideo ceni stałą szybkość przesyłania danych bardziej niż odzyskiwanie po błędzie, ponieważ zwykle uszkodzona rama wygrywa nawet zostać zauważonym.)

W każdym razie, dysk będzie wiedział, czy nastąpiło zgnilizna bitów, zwykle wyzdrowieje z niego, a jeśli nie, powie kontrolerowi, który z kolei poinformuje sterownik, który poinformuje system operacyjny. Następnie do systemu operacyjnego należy przedstawienie tego błędu użytkownikowi i działanie na nim. Właśnie dlatego mówi cybernard

Sam nigdy nie widziałem ani jednego błędu, ale widziałem wiele dysków twardych, na których zawiodły całe sektory.

dysk będzie wiedział, że coś jest nie tak z sektorem, ale nie wie, które bity uległy awarii. (Jeden pojedynczy bit, który się nie powiódł, zawsze będzie przechwytywany przez ECC).

Należy pamiętać, że polecenie chkdsk i automatyczna naprawa systemów plików nie dotyczą naprawy danych w plikach. Są one ukierunkowane na uszkodzenie związane ze strukturą systemu plików; na przykład rozmiar pliku różni się między pozycją katalogu a liczbą przydzielonych bloków. Funkcja samonaprawiania NTFS wykryje uszkodzenia strukturalne i zapobiegnie dalszemu wpływowi na twoje dane, nie naprawi już uszkodzonych danych.

Istnieją oczywiście inne powody, dla których dane mogą ulec uszkodzeniu. Na przykład. zła pamięć RAM na kontrolerze może zmienić dane, zanim zostaną nawet przesłane na dysk. W takim przypadku żaden mechanizm na dysku nie wykryje ani nie naprawi danych, co może być jednym z powodów uszkodzenia struktury systemu plików. Inne powody to zwykłe błędy oprogramowania, zanik zasilania podczas zapisywania dysku (chociaż rozwiązuje to problem z księgowaniem systemu plików) lub złe sterowniki systemu plików (sterownik NTFS w systemie Linux przez długi czas domyślnie był tylko do odczytu, ponieważ NTFS został poddany inżynierii wstecznej, nieudokumentowany , a programiści nie ufali własnemu kodowi).

Miałem kiedyś taki scenariusz, w którym aplikacja zapisywałaby wszystkie swoje pliki na dwóch różnych serwerach w różnych centrach danych, aby zachować kopię roboczą, jeśli dane we wszystkich okolicznościach. Po kilku miesiącach zauważyliśmy, że na jednej z kopii około 0,1% wszystkich plików nie zgadza się z sumą MD5 przechowywaną przez aplikację w bazie danych. Okazało się, że jest to wadliwy kabel światłowodowy między serwerem a siecią SAN.

Z tych innych powodów niektóre systemy plików, takie jak ZFS, przechowują dodatkowe informacje o sumach kontrolnych w celu wykrycia błędów. Zostały zaprojektowane tak, aby chronić cię przed znacznie większą liczbą rzeczy, które mogą się nie udać niż tylko zgnilizna.

Guntram Blohm wspiera Monikę
źródło
2
+1 za wskazanie, że inne problemy sprzętowe poza degradacją nośnika napędu mogą powodować odczyt i zapis uszkodzonych danych . Osobiście miałem problem ze złymi kablami w obudowie. Poza tym ZY, system plików Windows ReFS (dla serwera 2012+), oprócz ZFS, poprawnie skonfigurowany i działający na przestrzeni dyskowej będzie sumował dane pliku, a także metadane systemu plików i je odzyskiwał, a także będzie wykonywać okresowy cały wolumin skanowanie integralności w celu wykrycia i naprawienia wielu takich błędów.
davidbak
17

Tak, dyski twarde mogą ulegać degradacji bez ostrzeżenia ze strony systemu operacyjnego. To się nazywa bit zgnilizna . Sam nigdy nie widziałem ani jednego błędu, ale widziałem wiele dysków twardych, na których zawiodły całe sektory.

System Windows nie ma wbudowanej ochrony zawartości pliku poza strukturą systemu plików NTFS. Pomyśl o NTFS jak o książce: cóż, chroni tylko spis treści i sprawdza, czy rzeczy pasują do siebie. Jeśli jednak uszkodzenie znajduje się na środku strony, nie zapewnia żadnej ochrony. FAT nie ma nic. Dyski twarde wykorzystują korekcję błędów ECC dla poszczególnych sektorów, ale dysk nie informuje systemu Windows. Niektóre typy plików mają specjalnie skróty CRC, MD5 lub SHA w celu wykrycia uszkodzenia, ale niczego nie naprawiają .

Nawet wtedy skrót informuje tylko o problemie, ale nie wie, gdzie jest błąd.

Dysk twardy ma funkcję SMART, która monitoruje jego stan, ale dopóki dysk nie znajduje się w drzwiach śmierci, system BIOS nie ostrzeże Cię. Co najgorsze, SMART jest często domyślnie wyłączony w systemie BIOS. Możesz monitorować liczby za pomocą oprogramowania, ale różne dyski mają różne problemy. Jeśli masz kilka przeniesionych sektorów lub błędy ECC stale rosną. Jeśli codziennie masz 100 000 nowych ECC, to zły znak.

Wiele typów plików nie ma ochrony przed gniciem bitów . Podobnie jak TXT i BMP, które nie mają żadnej ochrony. Winrar ma opcjonalną opcję dodania danych parzystości do archiwum, co spowoduje powiększenie pliku, ale może wykryć (proporcjonalnie do ilości dodanych danych parzystości) i naprawić tego rodzaju błąd.

Wszystkie inne programy do kompresji, które znam, wykrywają błędy, ale nie są w stanie nic z tym zrobić.

Ostatecznie błędy w sektorze będą tak złe, że ECC nie będzie w stanie go naprawić, a dysk da ci to, co czyta, nawet jeśli jest źle.

Możesz użyć QuickPar lub podobnego narzędzia do tworzenia plików danych parzystości, ale o ile wiem, nie ma sposobu na zautomatyzowanie go. Na przykład faktycznie zmieniasz plik samodzielnie, gdy musisz ręcznie zaktualizować parzystość. Możesz również mieć dane parzystości dla grupy plików, ale zmieniasz 1 plik i cały zestaw parzystości musi zostać odtworzony. To prawdziwy ból głowy dla wszystkich, ale niewielka liczba plików.

cybernard
źródło
Windows, chdsk ani NTFS wykrywają gnicie bitów, które jest obsługiwane przez RAID lub system plików z parzystością. Zła partycja nie jest ani nie jest spowodowana gniciem bitów.
Akceptuję
1
@Ramhound Niestety liczba użytkowników, którzy chronią tam dane za pomocą kopii lustrzanych RAID, poziomu 5 lub poziomu 6, jest prawdopodobnie mniejsza niż 0,01%
cybernard
Wiem, że mówiłem ogólnie. Bit rot! = Złe partycje
Ramhound
1
NOR = NIE LUB; użyte w zdaniu oznacza, że ​​jest to lista wyłączna;
Ramhound
1
Miałem ten dysk twardy o pojemności 750 GB, który robił takie rzeczy. Przede wszystkim komputer był wolny i cały czas się zawiesza. Kiedy mam jakieś pliki tekstowe, jego część jest zerowana lub jest zniekształcona. Komputer później przestał się uruchamiać. Mam nowy dysk twardy (mam HDD, a nie SSD. Myślę, że powinienem był dostać SSD) i problem zniknął, a komputer jest szybki
Suici Doga
2

Tak to mozliwe. Windows to tylko oprogramowanie. Oprogramowanie to seria instrukcji dla komputera.

Pomyśl o innym rodzaju serii instrukcji: książce. Co mogą zrobić te instrukcje, jeśli są zapisane w książce stojącej na półce i nikt nie zadaje sobie trudu, aby otworzyć książkę i przeczytać te instrukcje?

Tak jak te pisemne instrukcje wymagają od osoby przeczytania instrukcji i rozpoczęcia jej wykonywania, tak oprogramowanie komputerowe wymaga sprzętu, aby był użyteczny. Nawet jeśli książka zawiera instrukcje, które zostały napisane z niezwykłą dokładnością, nie zapobiegnie to problemom, jeśli ktoś zdecyduje się przeczytać instrukcje, a następnie je źle zastosować. Podobnie, oprogramowanie nie może zapobiec złym działaniom sprzętu. Zepsuty sprzęt może więc fizycznie zatriumfować nad tym, co potrafi każde oprogramowanie, w tym Microsoft Windows.

Teraz ReFS może być zaprojektowany z myślą o tym, że oprogramowanie będzie przechowywać szczegóły dotyczące danych, i aby oprogramowanie mogło później porównać te szczegóły. Prostą koncepcją jest „suma kontrolna”, w której oprogramowanie dodaje określone wartości i upewnia się, że wartości te odpowiadają oczekiwanemu wynikowi. Gdy sprzęt implementuje to oprogramowanie, niektóre złe wyniki mogą zostać wykryte. Może to nawet być wysoce prawdopodobne. Ponieważ jednak liczba potencjalnych problemów, które teoretycznie mogą istnieć, jest zasadniczo liczbą nieskończoną, nie ma gwarancji, że oprogramowanie koniecznie wykryje każdy problem. (Pamiętaj, że oprogramowanie to seria instrukcji, które zostały utworzone wcześniej).

FAT ma szczególnie mało funkcji. FAT12 został zaprojektowany dla dyskietek, a FAT16 dla systemów do 4 GB (chociaż większość implementacji FAT16 Microsoftu zwykle nie działała powyżej 2 GB). Bez rozszerzenia VFAT żaden z nich nie obsługiwał nazw plików dłuższych niż 11 znaków (niektóre z nich byłyby w części zwanej „rozszerzeniem”). FAT został po prostu zaprojektowany do przechowywania danych w czasach, gdy zdolność do przechowywania danych była nowatorską koncepcją, o której dorośli powinni się nauczyć. Kiedy FAT uważano za „wiodącą” technologię, technologia komputerowa nie była jeszcze wystarczająco rozpowszechniona i rozbudowana, aby ludzie martwili się o zaawansowane funkcje.

NTFS dodał obsługę niektórych dodatkowych funkcji, być może przede wszystkim umożliwiających systemowi operacyjnemu łatwe śledzenie uprawnień użytkowników. Istnieją różne wersje NTFS. Na przykład Moab zwraca uwagę, że system Windows Server 2008 dodał obsługę samonaprawiającego się systemu plików NTFS, które mogą wykryć pewne rzeczy. Mimo to ta funkcja była nowa w systemie Windows Server 2008, więc w ogóle nie jest obsługiwana przez system Windows XP (lub Windows Server 2003 lub wcześniejszy). Mimo to, patrząc na listę funkcji, wydaje się, że dotyczyło to niektórych metadanych, które pomagają systemowi zauważać problemy, które są tak poważne, że nie można zamontować dysku, lub inne kluczowe obszary dysku, które wpływają na jądro systemu operacyjnego. Nie wyglądało na to, aby ta pojedyncza funkcja wpływała na każdy fragment danych w każdym pliku.

Oprogramowanie dla takich systemów operacyjnych jest bardzo mało prawdopodobne, aby zauważyć takie rzeczy, chyba że powodują one znaczące problemy w wykonywaniu zadań przez system operacyjny. Mogą istnieć wyjątki, takie jak części systemu operacyjnego sprawdzające dyski (CheckDsk / ChkDsk / ScanDisk / ScanDskW, w zależności od systemu operacyjnego), ale nawet one będą raczej ograniczone w zakresie tego, co mogą wykryć, głównie dlatego, że systemy plików nie przechowuje bardzo dużą ilość danych, które miały być przydatne do sprawdzania dysku.

(RAID5 może być bardziej podatny na wykrywanie takich rzeczy, z każdym bitem parzystości, który pomógłby zauważyć coś niezwykłego. Nawet wtedy implementacja RAID byłaby w stanie sprawdzić, czy problem występuje. Jeśli problem wystąpił część dysku, która nie jest aktywnie przetwarzana, problem może pozostać niezauważony, dopóki ktoś nie zacznie korzystać z tych danych).

W późniejszych czasach większa liczba bitów oznaczała, że ​​małe prawdopodobieństwa, takie jak szanse na „1 na 10 milionów”, miały większy wpływ na różne rzeczy. Opinia publiczna dowiedziała się także o „promieniach kosmicznych”, które mogą mieć niewielki wpływ na rzeczy. Ponieważ bity są tak ciasno wciskane w nowsze urządzenia, fizyczne wymagania do przedstawienia bitu są mniejsze, więc nawet małe uderzenia są bardziej narażone na zakłócenie sposobu rozpoznawania bitu. ReFS ma pewne funkcje zaprojektowane w celu ułatwienia ich wykrywania. Artykuł Wikipedii na temat ReFS nazywa to „automatycznym sprawdzaniem integralności”. Jak to opisano jako godną uwagi cechę tego systemu plików, funkcje te są prawdopodobnie bardziej rozwinięte niż w systemie NTFS (a na pewno więcej niż w FAT, który miał stosunkowo prosty charakter,

TOOGAM
źródło