Testy SMART z smartctl

Z Thomas-Krenn-Wiki
Przejdź do nawigacji Przejdź do wyszukiwania

Każdy nowoczesny dysk twardy lub SSD oferuje możliwość monitorowania aktualnego stanu dysku poprzez atrybuty SMART. Wartości te dostarczają informacji o różnych parametrach dysku, które mogą dostarczyć informacji o pozostałej żywotności dysku lub ewentualnych błędach, które na nim wystąpiły. Dodatkowo, za pomocą technologii SMART można przeprowadzać różne testy w celu wykrycia problemów z dyskami. Ten artykuł opisuje jak przeprowadzać takie testy przy użyciu smartctl (Smartmontools) w Linuksie.

Instalacja narzędzi Smartmontools

Smartmontools mogą zostać zainstalowane w systemie Ubuntu z źródeł pakietowych:

sudo apt-get install smartmontools

Aby sprawdzić, czy dysk obsługuje SMART i czy jest on włączony, można użyć następującego polecenia (na przykładzie dysku /dev/sdc):

sudo smartctl -i /dev/sdc

Przykładowy wynik polecenia:

smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.5.0-39-generic] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF INFORMATION SECTION ===
Model Family:     Western Digital RE4 Serial ATA
Device Model:     WDC WD5003ABYX-01WERA1
Serial Number:    WD-WMAYP5453158
LU WWN Device Id: 5 0014ee 00385d526
Firmware Version: 01.01S02
User Capacity:    500,107,862,016 bytes [500 GB]
Sector Size:      512 bytes logical/physical
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   8
ATA Standard is:  Exact ATA specification draft version not indicated
Local Time is:    Mon Sep  2 14:06:57 2013 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

Ważne są dwie ostatnie linijki, które wskazują, czy obsługiwany jest SMART i czy jest włączony.

Dostępne testy

Zgodnie ze specyfikacją, SMART oferuje dwa różne rodzaje testów dla urządzeń ATA i SCSI.[1] Każdy z tych testów może być przeprowadzony w 2 trybach:

  • Foreground Mode
  • Background Mode

W trybie Background Mode priorytet testu jest niższy, co oznacza, że normalne operacje są nadal przetwarzane na dysku. Jeśli dysk twardy pracuje pod dużym obciążeniem to test zostaje wstrzymany i wznowiony przy mniejszym obciążeniu, nie występuje przerwa w pracy dysku.
W trybie Foreground Mode wszystkie operacje na dysku twardy podczas testu odpowiadają statusem "CHECK CONDITION", dlatego tryb ten jest zalecany tylko wtedy, gdy dysk twardy nie jest aktualnie wykorzystywany. Zasadniczo preferowany jest tryb Background Mode.

Testy ATA/SCSI

Short Test

Celem krótkiego testu jest szybka identyfikacja uszkodzonego dysku. W związku z tym dla krótkiego testu zdefiniowano maksymalny czas trwania na 2 minuty. Test można podzielić na 3 różne segmenty, które sprawdzają różne obszary dysku. Następujące obszary zostają przetestowane:

  • Właściwości elektryczne: Kontroler testuje swoją własną elektronikę, gdyż jest ona bardzo specyficzna dla producenta to dlatego nie można dokładnie powiedzieć, co jest testowane. Możliwe testy to np. test wewnętrznej pamięci RAM, test obwodów odczytu/zapisu lub również test elektroniki głowicy.
  • Właściwości mechaniczne: Testowany jest tutaj pozycjoner i serwomechanizm, dokładna procedura jest również specyficzna dla producenta.
  • Read/Verify: Odczytywany jest określony obszar dysku twardego i weryfikowane są dane, wielkość i położenie odczytywanego obszaru jest również specyficzne dla danego producenta.

Long Test

Długi test został zaprojektowany dla testu końcowego podczas produkcji i jest taki sam jak krótki test z wyjątkiem 2 różnic. Z jednej strony nie ma limitu czasowego, a w części Read/Verify sprawdza się cały dysk twardy, a nie tylko jego część. Długi test można wykorzystać na przykład do potwierdzenia wyników krótkiego testu.

Testy specyficzne dla ATA

Wszystkie wymienione tutaj testy są dostępne tylko dla dysków twardych ATA.

Conveyance Test

Ten test może być przeprowadzony w celu wykrycia uszkodzeń podczas transportu dysku twardego, czas wykonania wynosi kilka minut.

Select Test

Test test pozwala na badanie części dysku, np. konkretnej partycji. Zakres LBA do zeskanowania można określić w następujących formatach:

sudo smartctl -t select,10-20 /dev/sdc #LBA 10 do LBA 20 (inkl.)
sudo smartctl -t select,10+11 /dev/sdc #LBA 10 do LBA 20 (inkl.)

Możliwe jest również skanowanie wielu obszarów (do 5):

sudo smartctl -t select,0-10 -t select,5-15 -t select,10-20 /dev/sdc

Test z użyciem smartctl

Przed przeprowadzeniem testu można wyświetlić przybliżony czas trwania różnych testów za pomocą następującego polecenia:

sudo smartctl -c /dev/sdc

Przykładowy wynik polecenia:

[...]
Short self-test routine 
recommended polling time: 	 (   2) minutes.
Extended self-test routine
recommended polling time: 	 (  83) minutes.
Conveyance self-test routine
recommended polling time: 	 (   5) minutes.
[...]

Poniższe polecenie uruchamia wybrany test (w trybie Background Mode):

sudo smartctl -t <short|long|conveyance|select> /dev/sdc

Możliwe jest również przeprowadzenie testu "offline"[2]. Jednakże przeprowadzany jest tylko standardowy test (krótki test).

Przykładowy wynik polecenia:

smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.5.0-39-generic] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Short self-test routine immediately in off-line mode".
Drive command "Execute SMART Short self-test routine immediately in off-line mode" successful.
Testing has begun.
Please wait 2 minutes for test to complete.
Test will complete after Mon Sep  2 15:32:30 2013

Use smartctl -X to abort test.

Aby uruchomić testy w trybie Foreground Mode, należy do polecenia dodać "-C".

sudo smartctl -t <short|long|conveyance|select> -C /dev/sdc

Wyświetlenie wyników testu

Zasadniczo wyniki testu są zawarte w wyjściu poniższego polecenia:

sudo smartctl -a /dev/sdc

Przykład:

[...]
SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed without error       00%      2089         -
# 2  Extended offline    Completed without error       00%      2087         -
# 3  Short offline       Completed without error       00%      2084         -

SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.
[...]

Jeśli mają być wyświetlane tylko wyniki testów, można również użyć następującego polecenia:

sudo smartctl -l selftest /dev/sdc

Przykładowy wynik polecenia:

smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.5.0-39-generic] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed without error       00%      2089         -
# 2  Extended offline    Completed without error       00%      2087         -
# 3  Short offline       Completed without error       00%      2084         -

Manpage smartctl zawiera szczegółowe informacje na temat prawidłowej interpretacji wyników testu SMART. Istotny rozdział jako wyciąg: [3]

[...]
"selftest - [ATA] prints the SMART self-test log. The disk maintains a self-test log showing the results of the self tests,"
"which can be run using the '-t' option described below. For each of the most recent twenty-one self-tests,"
"the log shows the type of test (short or extended, off-line or captive) and the final status of the test."
"If the test did not complete successfully, then the percentage of the test remaining is shown."
"The time at which the test took place, measured in hours of disk lifetime, is also printed."
"[Note: this time stamp wraps after 2^16 hours, or 2730 days and 16 hours, or about 7.5 years.]"
"If any errors were detected, the Logical Block Address (LBA) of the first error is printed in decimal notation."
Once these updates are made available we will post those updates here."
"[...]

W artykule Wikipedii o technologii SMART można również znaleźć listę znanych atrybutów SMART wraz z krótkim opisem.

Odnośniki

  1. Hard Drive Self-tests (t10.org)
  2. Smartmontools Wiki (sourceforge.net)
  3. smartctl manual - Smartmontools (smartmontools.org)

Powiązane artykuły

Program Smartctl
SMART
Smartmontools z kontrolerami MegaRAID