SMART

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

S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology; SMART) to system do monitorowania i wczesnego wykrywania błędów na nośnikach pamięci masowej, takich jak dyski twarde lub SSD. Wszystkie aktualne dyski twarde i dyski SSD posiadają funkcjonalność SMART. Jednakże dane dostarczane przez atrybuty SMART różnią się w zależności od producenta. Tylko kilku producentów szczegółowo opisuje znaczenie poszczególnych atrybutów SMART (np. Intel, patrz Atrybuty SMART dysków SSD firmy Intel). Bez dokumentacji trudno jest użytkownikowi zinterpretować atrybuty SMART.

Geneza

SMART został pierwotnie opracowany przez Small Form Factor (SFF) Committee w połowie lat 90-tych,[1] obecnie za SMART odpowiedzialny jest Technical Committee T13. Od ATA-3 SMART jest częścią standardu ATA/ATAPI. Jednak na krótko przed wydaniem standardu, opis atrybutów SMART został usunięty. W konsekwencji, zgodnie z normą, dysk musiałby zwrócić tylko status "OK" lub "nie OK". Nie określono, ile lub jakie czujniki (atrybuty) musi posiadać dysk.

W miarę upływu czasu pojawił się quasi standard odpowiadający usuniętej wówczas propozycji. Oznacza to, że atrybuty SMART mogą być nadal z dysków odczytywane i przyporządkowane, np. przy użyciu narzędzia smartctl. Jednakże konkretne znaczenie pewnych atrybutów SMART (np. "Raw Read Error Rate") jest często specyficzne dla producenta. Ponieważ wiele z dotychczasowych atrybutów SMART nie ma już sensu w przypadku dysków SSD, producenci nadali im częściowo nowe znaczenia lub całkowicie je usunęli.

Standaryzacja

Standaryzacja SMART została po raz pierwszy przeprowadzona wraz z ATA-3. Wersja 7b ATA-3 draft[2] nadal zawierała opisy atrybutów SMART, ale zostały one usunięte przed przyjęciem standardu. Od ATA-3 w normie znajduje się rozdział (np. rozdział 4.21 w ATA-8[3]) o SMART, który nie odnosi się do atrybutów, a jedynie dotyczy ogólnych funkcji SMART. W przypadku ATA-8 zaproponowano opisanie atrybutów SMART[4] (później podzielonych na trzy propozycje)[5][6][7], które nie zostały jednak uwzględnione w normie.

Odnośnie do autotestów (selftests) pojawiła się również propozycja.[8] Została ona uwzględniona w SPC-x[9] (SCSI Primary Commands).

Poniższy przegląd pokazuje, które funkcje SMART są znormalizowane:

  • Są znormalizowane:[3][9]
    • Device SMART data structure
    • Background data collection
    • Off-line/Captive mode data collection (odnosi się do testów "... self-test routines ...")
    • Threshold exceeded condition
    • SMART feature set commands
    • SMART operation with power management modes
    • SMART device error log reporting
  • Nie standaryzowane, ale dostępne (quasi standard oparty na ATA-3 Drafts[2]):
    • Atrybuty SMART (nie określono jakie atrybuty muszą być obecne i jak mają być one zapisywane)
    • Interpretacja atrybutów SMART (nie określono, czy atrybut jest wzorem bitowym czy liczbą)

Atrybuty SMART

Ponieważ atrybuty SMART nie są standaryzowane, każdy producent może sam zdecydować, które atrybuty SMART zdefiniować dla modelu dysku lub modelu SSD.

Atrybut SMART posiada:

  • Nazwę atrybutu (np. Raw Read Error Rate)
  • Wartość raw (RAW_VALUE w wyjściu z smartctl): jest indywidualnie definiowana przez producenta. Bez konkretnej dokumentacji znaczenia tej wartości interpretacja jest niepewna. Często wartości "raw" są wielkościami rzeczywistymi (np. temperatura, godzina, ....).
  • Wartość normalized (VALUE w wyjściu z smartctl): wartość między 1 (najgorszy stan) i 253 (najlepszy stan), ale większość producentów przyjmuje najlepszą wartość 100 lub 200.
  • Dotychczas najgorszy odczyt wartości normalized (WORST w wyjściu z smartctl)
  • Wartość graniczna dla wartości normalized (THRESH w wyjściu z smartctl): jeżeli wartość normalized spadnie poniżej tej granicy, status SMART zostaje zmieniony na "Dev fail".

Różne atrybuty są aktualizowane tylko podczas restartu lub w trakcie autotestu, można to zobaczyć na wyjściu z smartctl w kolumnie UPDATED przy "Offline". Wartości, które są aktualizowane podczas pracy systemu, są oznaczone jako "Always". Oprócz tego istnieją różne rodzaje atrybutów. Atrybuty "Pre-fail" mogą wskazywać na zbliżającą się awarię dysku, jeśli ich wartości są złe.Atrybuty typu "Old-age" mogą się zmieniać podczas normalnego procesu starzenia się dysku twardego.

Tutaj możesz zobaczyć przykładowe wyjście z narzędzia smartctl:

adminuser@ubuntu-12-04:~$ sudo smartctl -a /dev/sda
smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.2.0-54-generic] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF INFORMATION SECTION ===
Model Family:     Western Digital RE4
Device Model:     WDC WD1003FBYX-01Y7B0
[...]
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x002f   200   200   051    Pre-fail  Always       -       0
  3 Spin_Up_Time            0x0027   174   171   021    Pre-fail  Always       -       4291
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       126
  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x002e   200   200   000    Old_age   Always       -       0
  9 Power_On_Hours          0x0032   087   087   000    Old_age   Always       -       9532
 10 Spin_Retry_Count        0x0032   100   100   000    Old_age   Always       -       0
 11 Calibration_Retry_Count 0x0032   100   100   000    Old_age   Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       123
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always       -       68
193 Load_Cycle_Count        0x0032   200   200   000    Old_age   Always       -       57
194 Temperature_Celsius     0x0022   115   102   000    Old_age   Always       -       32
196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   200   200   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always       -       0
200 Multi_Zone_Error_Rate   0x0008   200   200   000    Old_age   Offline      -       0

W artykule Wikipedii na temat SMART-u znajduje się lista znanych atrybutów SMART wraz z krótkim opisem.

Odczyt atrybutów SMART

Na temat odczytu atrybutów SMART w Linuksie możesz znaleźć instrukcje w naszym artykule [[Smartctl].
Dla systemu Windows istnieją różne narzędzia (GUI), które mogą odczytywać i wyświetlać wartości SMART. Przegląd tych aplikacji można znaleźć na następującej stronie Wikipedii: Comparison of S.M.A.R.T. tools.

Testy SMART

Niektóre atrybuty SMART są aktualizowane tylko wtedy, gdy dysk twardy jest uruchamiany lub gdy wykonywane są testy SMART. Więcej informacji na temat testów SMART i sposobu ich przeprowadzania można znaleźć w artykule Testy SMART z smartctl.

Odnośniki

Powiązane artykuły

Plugin SMART Attributes Monitoring
Program Smartctl
Testy SMART z smartctl