Czy istnieje dobre narzędzie do testowania tortur?

17

Ostatnio miałem dziwne i rzadkie uszkodzenie systemu plików, co do którego podejrzewam, że to wina mojego dysku SSD. Szukam dobrego narzędzia do testowania tortur. Coś, co może zapisać na całym dysku, a następnie wrócić i przeczytać w poszukiwaniu latających zapisów, uszkodzonych bloków, bloków przywróconych do starszych wersji i innych błędów. To byłoby znacznie więcej niż to, co badblocksrobi. Czy istnieje takie narzędzie?

Uwaga: Nie szukam testu wydajności i już sprawdziłem status SMART; mówi zdrowo i nie zgłoszono żadnych złych bloków.

psusi
źródło
1
Próbowałeś? iozone.org
positron
1
Przy okazji nie wskazałeś, jakiego systemu operacyjnego / sprzętu używasz. Zgłoszono, że dyski SSD doświadczają korupcji, o której mówisz, w niektórych urządzeniach Mac OS X, gdy są skonfigurowane do częstego wyłączania dysku twardego w celu oszczędzania energii. Spowoduje to zepsucie. Wyobrażam sobie, że to samo jest prawdopodobne w innych kombinacjach OS / Hardware, jeśli dysk zostanie zmuszony do uśpienia przez wyłączenie dysku twardego wydane na dysk SSD. Sprawdziłbym konfigurację twojego systemu przed spaleniem twojego SSD testem dysku.
Wing Tang Wong
1
@WingTangWong, wow. Jestem gotowy, że wiele dysków SSD psuje się, gdy tracą moc, ale kiedy poproszono mnie o pójście spać? To jeden błędny dysk. Będę na to uważał. Używam Linuksa i nie śpię, chyba że zawieszę system ...
psusi 16.04.13

Odpowiedzi:

10

Może to być przesada, ale jest Phoronix Test Suite . Jest też bonnie++, jak również hdparm.

Zwykle używam hdparmna przykład:

% hdparm -Tt /dev/hdb
/dev/hdb:
 Timing buffer-cache reads:   128 MB in  1.25 seconds =102.40 MB/sec
 Timing buffered disk reads:  64 MB in 16.70 seconds =  3.83 MB/sec

Nie nazwałbym hdparmtestem tortur, ale daje to ogólny obraz ogólnej wydajności dysków.

Określanie kondycji dysków

Po torturowaniu dysku możesz użyć tego polecenia, aby sprawdzić ogólny stan dysku:

% sudo udisks --dump | grep -A 24 Updates
 Attribute       Current|Worst|Threshold  Status   Value       Type     Updates
===============================================================================
 raw-read-error-rate         103| 99| 34   good    5854752     Pre-fail Online 
 spin-up-time                100| 99|  0    n/a    0           Pre-fail Online 
 start-stop-count             98| 98| 20   good    2785        Old-age  Online 
 reallocated-sector-count    100|100| 36   good    0 sectors   Pre-fail Online 
 seek-error-rate              72| 60| 30   good    25872884688 Pre-fail Online 
 power-on-hours               89| 89|  0    n/a    424.4 days  Old-age  Online 
 spin-retry-count            100|100| 97   good    0           Pre-fail Online 
 power-cycle-count            98| 98| 20   good    2753        Old-age  Online 
 attribute-184               100|100| 99   good    0           Old-age  Online 
 reported-uncorrect          100|100|  0    n/a    0 sectors   Old-age  Online 
 attribute-188               100| 96|  0    n/a    0           Old-age  Online 
 high-fly-writes             100|100|  0    n/a    0           Old-age  Online 
 airflow-temperature-celsius  58| 42| 45 FAIL_PAST 42C / 108F  Old-age  Online 
 g-sense-error-rate          100|100|  0    n/a    124         Old-age  Online 
 power-off-retract-count     100|100|  0    n/a    15          Old-age  Online 
 load-cycle-count              1|  1|  0    n/a    248327      Old-age  Online 
 temperature-celsius-2        42| 58|  0    n/a    42C / 108F  Old-age  Online 
 hardware-ecc-recovered       45| 38|  0    n/a    5854752     Old-age  Online 
 reallocated-event-count      89| 89| 30   good    14877766723263 Pre-fail Online 
 current-pending-sector      100|100|  0    n/a    0 sectors   Old-age  Online 
 offline-uncorrectable       100|100|  0    n/a    0 sectors   Old-age  Offline
 udma-crc-error-count        200|200|  0    n/a    0           Old-age  Online 
 attribute-254               100|100|  0    n/a    0           Old-age  Online 

Narzędzia do kondycji / konserwacji dysku

Odnieśliśmy sukces, używając 2 następujących narzędzi, w których pracuję. HDAT2 i Spinrite . To ostatnie jest narzędziem komercyjnym, ale pierwsze, HDAT2, jest projektem typu open source.

Oto kilka zrzutów ekranu z HDAT2:

ss # 1 HDAT2

ss # 2 HDAT2

Musisz ponownie uruchomić system w obu tych systemach, aby był w trybie offline podczas wykonywania tych operacji, ale oba odzyskały dyski, które uległy awarii lub zaczynały wykazywać awarie. Interfejs użytkownika w HDAT2 jest nieco trudny w nawigacji, zwykle używaliśmy domyślnych opcji w większości i staraliśmy się nie wędrować zbyt daleko od tego miejsca.

slm
źródło
Pierwsze trzy, o których wspominasz, to testy wydajności. Sprawdziłem już status SMART i jest dobry bez złych sektorów, więc wygląda na to, że HDAT2 nie jest tym, czego szukam.
psusi
Nie odrzuciłbym HDAT2, działałyśmy również polecenia chkdsk i były one również czyste, ale dysk wciąż nie był bootowalny, działając HDAT2 był w stanie znaleźć problemy z powierzchnią dysku, które był w stanie naprawić na tyle, aby dysk rozruchowy mógł zostać uruchomiony.
slm
Późny komentarz, ale próbuję znaleźć kod źródłowy do HDAT2, ale bez powodzenia. Czy nastąpiła ostatnia zmiana licencji?
i336_
4

przychodzi mi na myśl bonnie ++:

Tak więc, w zależności od konfiguracji sprzętowej twojego urządzenia:

bonnie++ -d /path/to/mounted/ssd -r your-system-ram-size-in-MB

Przykład:

# For a 32GB system with the SSD formatted and mounted at /mnt/mounted-ssd-001
bonnie++ -d /mnt/mounted-ssd-001 -r 32000

To powinno dać twojemu urządzeniu dobry test warunków skrajnych. Możesz to również dostosować.

Uwaga: w przypadku dysku SSD, gdy zdarzy się zły blok, może zostać automatycznie odwzorowany przez sprzęt dysku, w zależności od dysku, z którym pracujesz. Ponadto test tortur pochłania długość życia zapisu na dysku SSD. Używaj więc według własnego uznania.

EDYTOWAĆ:

Dodanie uwagi o awariach SSD, ponieważ wskazano, że testy warunków skrajnych Bonnie ++, ale nie śledzą błędów. Sposób, w jaki dyski SSD „remapuj złe bloki” różni się od sposobu mapowania dysków twardych. To, jak to się dzieje, zależy całkowicie od marki / marki / modelu dysku SSD:

  • Tanie dyski SSD po prostu zawodzą, ponieważ nie mają wolnej pojemności do ponownego mapowania lub ponieważ nie mają możliwości segregowania uszkodzonych bloków flash. Po prostu się zawieszą lub przejdą w tryb offline i nie wrócą online.
  • Dyski SSD średniej wielkości bez wolnej pojemności mogą generować alerty Smartd lub nawet generować błędy urządzeń blokowych na poziomie systemu operacyjnego po wykryciu uszkodzonego bloku. Jednak gdy nastąpi awaria, zarejestrowany rozmiar dysku SSD zmieni się. Może to spowodować błąd i przejście urządzenia w tryb offline przez system operacyjny lub może spowodować zawieszenie samego urządzenia i konieczność jego wyciągnięcia i ponownego włożenia, aby można go było ponownie rozpoznać. Po ponownej rejestracji dostępny blok urządzenia zmniejszy się.
  • Wysokiej klasy dyski SSD o wolnej pojemności będą ponownie mapować uszkodzone bloki za kulisami i mogą generować alerty / ostrzeżenia na poziomie systemu operacyjnego. Gdy wyczerpie się wolne miejsce, urządzenie prawdopodobnie ulegnie awarii wzdłuż dysków SSD Midrange.

Gdy rozmiar dysku SSD zmienia się ze względu na izolację uszkodzonych bloków, może być konieczne wykonanie następujących czynności w celu ożywienia dysku, jeśli oprogramowanie układowe dysku nie wykonuje automatycznie odpowiednich aktualizacji:

http://communities.intel.com/message/145676

O ile narzędzie do testowania warunków skrajnych i rejestrowania błędów nie jest specjalnie zaprojektowane z dyskami SSD, pamiętaj, że tylko zużywasz żywotność urządzenia.

EDYTOWAĆ:

Opierając się na informacjach z powyższych odpowiedzi, zasugeruj albo wymianę kabla na lepszy, albo wymianę napędu (wymiana RMA / Gwarancja), ponieważ tego rodzaju błąd na poziomie systemu operacyjnego nie jest normalny.

Ponadto, jeśli dysk obsługuje tę funkcję, możesz zwiększyć ilość miejsca zarezerwowanego na obsługę błędów:

http://www.thomas-krenn.com/en/wiki/SSD_Over-provisioning_using_hdparm

Wing Tang Wong
źródło
To wskaźnik wydajności. To może dać napędowi trening, ale nie sądzę, że wykrywa błędy.
psusi
Sposób, w jaki działają dyski SSD, wykrywanie błędów występuje w jednej z kilku form, w zależności od marki / modelu dysku SSD: Błąd Smartd, jeśli blok jest ponownie mapowany i używana jest wolna pojemność (bez błędów), pojemność urządzenia wynosi zmniejszona, ponieważ część pamięci flash jest uszkodzona (może powodować błędy smartd, może powodować błędy systemu plików, może powodować zawieszanie magistrali przez urządzenie w trybie offline. Podczas wyciągania / ponownego wkładania napęd jest ponownie dostępny, ale może wymagać ponownego sformatowania ), a dysk SSD może po prostu wydawać się zawiesić bez ponownego mapowania (urządzenie przestaje odpowiadać nawet po ponownym włożeniu). Ścieżka awarii nie jest odpowiednikiem HD
Wing Tang Wong
1
błędy nie są wykrywane przez napęd, stąd potrzeba narzędzia testowego. Przejawia się to w ponownym zamontowaniu systemu plików ro oraz znalezieniu i naprawieniu wielu błędów w metadanych przez e2fsck. Miałem też uszkodzone niektóre pliki pakietu repozytorium git. To cicha korupcja, która zdarza się może raz na miesiąc lub dwa. Na początku myślałem, że może to być błąd związany z TRIM, ponieważ nie pamiętam tego, zanim to włączyłem, więc wyłączyłem go i nadal się dzieje.
psusi 16.04.13
Kilka potencjalnych problemów: zły kabel lub zły dysk. Możesz przetestować uszkodzony kabel napędowy, wymieniając go na inny. Miałem to w przeszłości i zamieniłem na lepiej działający kabel. W przypadku złego dysku, RMA lub wysłać do naprawy gwarancyjnej.
Wing Tang Wong
1
problemem jest udowodnienie, że jest to zły dysk (lub naprawdę błąd w oprogramowaniu układowym), a nie powiedzieć, błąd w jądrze. Gdyby to był zły kabel, ujawniałby się on jako błędy sata ecc zamiast przypadkowego cichego uszkodzenia.
psusi 16.04.13
3

Rozumiem, że ma to ponad rok, ale z korzyścią dla każdego, kto przeczyta ten wątek w przyszłości, spodziewam się, że wymagane oprogramowanie (d) nie istnieje jeszcze poza HP Labs:

„Zrozumienie odporności dysków SSD w przypadku awarii zasilania” https://www.usenix.org/system/files/conference/fast13/fast13-final80.pdf

Zastąpienie wstrzykiwania awarii zasilania wybranym zdarzeniem (lub niczym, w przypadku wykrycia sporadycznych błędów oprogramowania układowego), i wydaje się, że to oprogramowanie to wykryje. Niestety nie sądzę, aby istniała alternatywa, w przeciwnym razie HP prawdopodobnie nie napisałby czegoś na miejscu.

Szkoda, ponieważ potrzebowałem również czegoś takiego, aby udowodnić problemy w środowisku wirtualnym; gdzie podejrzewam, że popełnione zapisy nie dotarły na dysk fizyczny. Byłoby wspaniale móc przetestować w ten sposób stos pamięci, nie tylko dyski SSD. Muszę jeszcze znaleźć coś odpowiedniego.

Chris Murray
źródło
2
(z anonimowego komentarza) Chociaż sprzętowa strona rzeczy musiałaby zostać zreplikowana, nie widzę powodu, dla którego część weryfikacyjna oprogramowania tego dokumentu nie mogła zostać odtworzona za pomocą fio w trybie klient / serwer z wyzwalaczami. Zobacz github.com/axboe/fio/blob/master/HOWTO (10.0 Weryfikacja i wyzwalacze). fio można skonfigurować do korzystania z niebuforowanego lub okresowej synchronizacji we / wy w różnych przydatnych wzorach, które można później zweryfikować (możliwe jest nawet zapisanie pliku stanu, aby weryfikacja mogła odbyć się po różnych wywołaniach fio).
Archemar
1

Skorzystaj z narzędzia testowego producenta, który jest najlepszym sposobem na przetestowanie HD, ponieważ może uzyskać dostęp do testów niskiego poziomu, mapować uszkodzone sektory, testować wszystkie inteligentne informacje o stanie zdrowia (specjalnie dla dysku SSD wiele rejestrów jest nieznanych dla większości z nas ale może pomóc twórcy zobaczyć status dysku twardego)

rentnsCD ma wiele narzędzi testujących, ale myślę, że nie został zaktualizowany do SSD, więc sprawdź bezpośrednio stronę producenta. Niektóre obsługują Linuksa, inne mogą wymagać Windows LiveCD (sprawdź ponownie RentNCd) lub rozruchu z pendrive'a (freedos, specjalny system operacyjny itp.)

Większość starszych narzędzi HD nie nadaje się do testowania dysku SSD, ponieważ sektor nigdy nie jest w tych samych miejscach, jest dynamicznie mapowany przez oprogramowanie układowe, aby rozłożyć zapisy na cały dysk. Więc jeśli wykonują testy zapisu, po prostu wypalasz cykle zapisu zamiast prawdziwego testowania dysku.

Testy odczytu nie nagrywają dysku SSD, ale mogą też nie testować wszystkich sektorów dysków SSD, ponownie, ponieważ oprogramowanie układowe ukrywa prawdziwy układ.

higuita
źródło