Chcę użyć złych bloków do sprawdzenia moich dysków twardych i doceniłbym wyjaśnienie jego działania.
Czy ktoś może wyjaśnić najlepsze opcje korzystania z -b
i -c
? Podałem ich definicje ze strony podręcznika, ale nie jestem pewien, czy większe rozmiary byłyby korzystne dla nowoczesnych dysków z 64 MB pamięci RAM i sektorami 4k.
-b block-size Specify the size of blocks in bytes. The default is 1024.
-c number of blocks the number of blocks which are tested at a time. The default is 64
Po drugie, chciałbym wiedzieć, czy test w trybie zapisu jest bardziej dokładny niż nieniszczący tryb odczytu i zapisu?
Wreszcie, ile dopuszczalnych realokacji sektorów SMART jest dopuszczalnych / czy dyski z niezerową liczbą realokacji powinny zostać natychmiast zastąpione?
linux
hard-drive
bad-blocks
Yoren
źródło
źródło
Odpowiedzi:
Pytanie 1:
W odniesieniu do
-b
opcji: zależy to od dysku. Nowoczesne, duże dyski mają bloki 4KB, w takim przypadku należy ustawić-b 4096
. Rozmiar bloku można uzyskać z systemu operacyjnego , a zazwyczaj można go również uzyskać, odczytując informacje o dysku z etykiety lub przeglądając numer modelu dysku. Jeśli-b
jest ustawiony na coś większego niż rozmiar twojego bloku, integralnośćbadblocks
wyników może być zagrożona (tzn. Możesz uzyskać fałszywe negatywy: nie znaleziono złych bloków, kiedy mogą jeszcze istnieć). Jeśli-b
jest ustawiony na coś mniejszego niż rozmiar bloku dysku, prędkośćbadblocks
biegu może zostać obniżona. Nie jestem pewien, ale mogą wystąpić inne problemy z ustawieniem-b
do czegoś mniejszego niż rozmiar bloku, ponieważ nie weryfikuje to integralności całego bloku, nadal może być możliwe uzyskanie fałszywych negatywów, jeśli jest ustawiony zbyt mały.Do
-c
odpowiada ilu bloki powinny być sprawdzane na raz opcji. Zasadniczo czytanie / pisanie partii. Ta opcja nie wpływa na integralność wyników, ale wpływa na szybkość, z jakąbadblocks
działa.badblocks
będzie (opcjonalnie) zapisu, a następnie odczytać, bufor, czek, powtórz dla każdego n bloków w sposób określony przez-c
. Jeśli-c
jest ustawiona zbyt nisko, spowoduje to, że twoje działaniabadblocks
będą trwać znacznie dłużej niż zwykle, ponieważ kolejkowanie i przetwarzanie osobnego żądania IO powoduje obciążenie, a dysk może również nakładać dodatkowe obciążenie na żądanie. Jeśli-c
jest ustawiony zbyt wysoko,badblocks
może zabraknąć pamięci. Jeśli tak się stanie,badblocks
zawiedzie dość szybko po uruchomieniu. Dodatkowe kwestie do rozważenia obejmują równoległebadblocks
uruchamianie: jeśli prowadziszbadblocks
przeciwko wielu partycjom na tym samym dysku (zły pomysł) lub przeciwko wielu dyskom przez ten sam kanał IO, prawdopodobnie będziesz chciał dostroić się-c
do czegoś rozsądnie wysokiego, biorąc pod uwagę dostępną pamięć, abybadblocks
równoległe biegi nie walczyły o przepustowość IO i może zrównoważyć się w rozsądny sposób.Pytanie 2:
Wbrew temu, co inne odpowiedzi wskazują, próba zapisu tryb nie jest mniej lub bardziej wiarygodne niż nieniszczących testu odczytu i zapisu, ale jest dwa razy szybciej, kosztem bycia destrukcyjne dla wszystkich danych. Wyjaśnię dlaczego:
-w
W trybie nieniszczącym
badblocks
wykonuje następujące czynności:-p
do bloku z góry określony wzór (nadpisywany z opcją, choć zwykle nie jest to konieczne).W
-w
trybie destrukcyjnym ( )badblocks
wykonuje tylko powyższe kroki 2 i 3. Oznacza to, że liczba operacji odczytu / zapisu potrzebnych do zweryfikowania integralności danych została zmniejszona o połowę. Jeśli blok jest zły, dane będą błędne w obu trybach. Oczywiście, jeśli zależy Ci na danych przechowywanych na dysku, powinieneś użyć trybu nieniszczącego, ponieważ-w
spowoduje to zatarcie wszystkich danych i pozostawieniebadblocks
wzorców zapisanych na dysku.Uwaga: jeśli blok się psuje, ale jeszcze nie został całkowicie usunięty, niektóre pary weryfikacji odczytu / zapisu mogą działać, a niektóre nie. W takim przypadku tryb nieniszczący może dać bardziej wiarygodne wskazanie „mulistości” bloku, ponieważ wykonuje dwa zestawy weryfikacji odczytu / zapisu (być może - patrz punkt pod krok 4). Nawet jeśli tryb nieniszczący jest w ten sposób bardziej niezawodny, jest bardziej niezawodny tylko przez przypadek . Prawidłowym sposobem sprawdzenia bloków, które nie są w pełni złe, ale nie są w stanie wytrzymać wielu operacji odczytu / zapisu, jest
badblocks
wielokrotne uruchomienie tych samych danych przy użyciu tej-p
opcji.Pytanie 3:
Jeśli SMART dokonuje realokacji sektorów, prawdopodobnie powinieneś rozważyć jak najszybszą wymianę dysku. Napędy, które tracą kilka sektorów, nie zawsze je tracą, ale przyczyną jest zwykle mocno używany napęd, który staje się magnetycznie papkowaty lub awarie głowic / silników skutkują niedokładnymi lub błędnymi odczytami / zapisami. Ostateczna decyzja należy do Ciebie: w oparciu o wartość danych na dysku i niezawodność, jakiej potrzebujesz z systemów na nim uruchomionych, możesz zdecydować, aby go utrzymać. Mam kilka dysków ze znanymi uszkodzonymi blokami, które od lat wirują z ostrzeżeniami SMART w moim serwerze plików, ale są one tworzone zgodnie z harmonogramem, dzięki czemu mogłem poradzić sobie z całkowitą awarią bez większego bólu.
źródło
-b
domyślnie1024
? To wydaje mi się trochę dziwne. Dlaczego nie512
?ext2
. badblocks jest częścią e2fsprogs i pierwotnie miał na celu wypełnienie listy uszkodzonych bloków systemu plików ext2. Musisz uruchomić go z tym samym rozmiarem bloków co FS, aby uzyskać liczby we właściwym formacie dla mkfs.ext2. TL; DR: przyczyny historyczne, których nie powinieneś się martwić.1) Jeśli twój nowoczesny dysk używa rozmiaru sektora innego niż 512b - musisz ustawić ten rozmiar za pomocą
-b
opcji (tj-b 4096
.). Bez tej opcji sprawdzenie będzie przebiegać znacznie wolniej, ponieważ każdy prawdziwy sektor będzie próbowany wiele razy (8 razy w przypadku sektora 4k). Również, jak wspomniano Olivier Dulac w komentarzu do pytania -block is indeed 1 block, and not 1/2 or 1/4th or even 2 (or more) blocks.
Opcja
-c
oznacza, ile sektorów tryid jednocześnie. Może to mieć wpływ na wydajność, a wartość tej wydajności może zależeć od konkretnego modelu dysku.2)
write-mode test
- W moim rozumieniu sprawdzi on tylko, czy wystąpił poważny błąd lub błąd miękki (aka Silent Data Degradation, bit rot, rozpad nośników pamięci, sektory UNC)3) Nie ufam raportowi SMART w danym momencie. Ważniejsze jest, jak wartości zmieniają się w czasie. Również tutaj są badania Google Failure Trends w populacji dużych dysków twardych i oto kilka dyskusji na ten temat. Oto cytat z badań:
Jeśli chodzi o wzmianki o wymianie dysku, możesz nie mieć poważnego problemu z dyskiem, ale Silent Data Degradation (bit rot, rozpad nośników pamięci, sektory UNC). W takim przypadku nie ma sensu wymieniać dysku, ale zamiast tego warto wykonać odczyt / zapis tych samych danych z powrotem na dysk. Możesz spojrzeć tutaj, jak można to rozwiązać.
Jeśli masz poważny błąd, możesz spróbować podzielić dysk na partycje tak, aby zły obszar znajdował się poza partycjami. Dla mnie takie podejście było przydatne i taki zły napęd był używany przez długi czas bez żadnych problemów.
źródło
-b
domyślnie 1024. Jeśli twój dysk używa rozmiaru sektora innego niż 1024, co jest dość powszechne poza systemami plików ext2, powinieneś to określić.Zostawiłbym -b i -c jako domyślne, chyba że masz konkretny powód, aby je zmienić. Prawdopodobnie możesz ustawić -b na 4096, jeśli twój dysk ma rozmiary bloków 4k.
Sugerowałbym, aby najpierw uruchomić złe bloki za pomocą nieniszczącego testu rw. Jeśli znajdzie jakieś uszkodzone sektory, dysk jest uszkodzony i należy go wymienić. Jeśli NIE znajdzie żadnych złych bloków na nieniszczących, ale nadal podejrzewasz, że ma złe bloki, uruchom test niszczący rw.
Chciałbym wymienić dysk, jak tylko sektory zostaną wymienione.
źródło
Ten rodzaj idzie do różnicy między trybem odczytu złych bloków (nieniszczący) a trybem zapisu (niszczący):
Dysk przydzieli nieprawidłowy sektor tylko wtedy, gdy zapis się nie powiedzie. Błędy odczytu plików są „poprawiane” tylko podczas próby ponownego zapisania pliku. Inaczej. zły blok pozostaje częścią pliku przy założeniu, że można coś odzyskać. Błędy odczytu dla tablic partycji można „poprawić” tylko poprzez uruchomienie złych bloków w trybie zapisu i odtworzenie partycji
Tak więc tryb odczytu powie ci, gdzie są złe bloki, ale nie możesz nic z nimi zrobić. Tryb zapisu testuje kondycję każdego sektora i spowoduje, że dysk ponownie przydzieli zły blok, ale kosztem zniszczenia danych. Wybierz.
źródło
Odpowiedź na drugie pytanie dotyczące mapowanych sektorów zależy od tego. Mówię w kontekście domowego użytkownika, który (czasami) monitoruje tego rodzaju rzeczy.
Oto dwie sytuacje, z którymi się spotkałem. Miałem RAID5 o pojemności 6 200 GB. Po awarii zasilania, która spowodowała migotanie świateł, jeden dysk pokazał 14 odwzorowanych sektorów i zarejestrował kilka błędów. Obejrzałem dysk i nie zarejestrowałem żadnych błędów, a liczba odwzorowanych sektorów pozostała stabilna. Doszedłem do wniosku, że dysk ucierpiał z powodu przejściowej mocy i w inny sposób nie zawodził. Nadal używałem go przez lata. Oryginalna macierz RAID5 została wycofana, ale mam dwa z tych dysków w pracy z około 10-letnim czasem pracy. Mają garść przemapowanych sektorów. Używam dwóch z nich dublowanych do przechowywania przyrostowych zrzutów kopii zapasowej z mojej podstawowej kopii zapasowej. W ten sposób główna kopia zapasowa widzi (głównie) operacje odczytu, a zapisy trafiają na różne urządzenia. Jeśli jeden z tych starożytnych dysków ulegnie awarii, drugi powinien kontynuować. Jeśli oba zawiodą, Zastępuję je czymś innym i ponownie uruchamiam skrypt kopii zapasowej. Wpływ, jeśli jeden z tych dysków ulegnie awarii, jest bliski zeru, więc nie przejmuję się mapowaniem sektorów.
Miałem dysk twardy o pojemności 2 TB, który był jednym z dwóch dysków lustrzanych i który zaczął powiększać zmapowane sektory. Początkowo były to dziesiątki, potem setki, a potem tysiące. To było przez lata. Drugi dysk w tej parze pozostał zdrowy i faktycznie, wolno rozwijająca się pochodna nie została usunięta z tablicy. Ostatecznie wymieniłem oba dyski na dyski 6 TB, a rosnąca liczba mapowanych sektorów stała się problemem. Nadal mam dysk i nadal „działa”, nawet przy około 4500 mapowanych sektorach. Umieściłem takie dyski w systemie testowym (jako członek RAID), aby zobaczyć, co się stanie, gdy ktoś faktycznie umrze. Miałem kilka okazji do pracy z tym i we wszystkich okolicznościach zastąpienie przebiegło bez dramatu.
Miałem awarię napędu na moim głównym serwerze plików kopii zapasowych. Nie wygenerował żadnego zaawansowanego ostrzeżenia, po prostu przestał odpowiadać na polecenia SATA. Był członkiem ZFS RAIDZ2 i zastąpiłem go bez żadnego dramatu. W rzeczywistości na moim serwerze testowym wymieniłem uszkodzone dyski bez wyłączania zasilania lub ponownego uruchamiania serwera.
Jeszcze jeden punkt do odnotowania: mam kopie zapasowe wszystkich ważnych danych na stronie i poza nią. W przypadku utraty jednego systemu w innym miejscu są dwie kopie danych.
źródło