S.M.A.R.T. (ang. Self-Monitoring, Analysis and Reporting Technology) – system monitorowania i powiadamiania o błędach działania twardego dysku.
Technologia ta została zaimplementowana w dyskach ATA-3, późniejszych ATA (czyli IDE), ATAPI oraz SCSI-3, aby zwiększyć bezpieczeństwo składowanych danych. Dzięki niej dysk potrafi ocenić swój stan i jeśli awaria jest wysoce prawdopodobna zaalarmować system operacyjny i użytkownika komputera. System zapewnia skuteczne ostrzeganie o zbliżającej się awarii w około 30 do 40% przypadków.
S.M.A.R.T gromadzi informacje o wielu parametrach dysku twardego co pozwala oceniać stan urządzenia. Monitorowanie obejmuje m.in.:
- liczbę cykli start/stop (Start_Stop_Count)
- sumaryczny czas pracy dysku (Power_On_Hours)
- temperaturę dysku (Temperature_Celsius)
- liczbę naprawionych błędów ECC (Hardware_ECC_Recovered)
- liczbę błędów transmisji w trybie Ultra-DMA (UDMA_CRC_Error_Count)
- liczbę błędów operacji seek (Seek_Error_Rate)
Parametry SMART, które podczas monitorowania pracy dysku uważa się za krytyczne:
- 01 częstotliwość błędów podczas odczytu (Read Error Rate) – wskazuje częstotliwość występowania błędów, które nastąpiły podczas czytania danych z powierzchni dysku. Niezerowa wartość wskazuje problem z powierzchnią dysku lub głowicą odczytująco-zapisującą. Należy zauważyć, że niektóre dyski Seagate w nowych napędach często podają wysoką wartość tego parametru, co nie świadczy o uszkodzeniach.
- 05 liczba przeniesionych sektorów (Reallocated Sectors Count) – pokazuje liczbę przeniesionych sektorów na dysku. Innymi słowy, jeżeli napęd dysku twardego znajduje błędne sektory, to oznacza ten sektor jako „reallocated” i przenosi dane do specjalnego zarezerwowanego obszaru (zapasowego obszaru, którego wielkość jest ograniczona). Właśnie dlatego na nowoczesnych dyskach twardych, „złe bloki” nie mogą zostać znalezione, kiedy system operacyjny testuje powierzchnię – wszystkie złe bloki są schowane w sektorach „reallocated”. Wzrost wartości w tym parametrze może przyczyniać się do spadku wydajności dysku, a po wyczerpaniu miejsca w obszarze zapasowym do błędnej pracy dysku. Czasami operację tę nazywa się remapowaniem.
- 0A liczba prób ponownego rozpoczęcia wirowania dysku (Spin Retry Count) – podaje liczbę prób wprawiania dysku w ruch po nieudanej pierwszej próbie. Ta cecha gromadzi całkowitą liczbę prób początku wirowania, żeby uzyskać pełną szybkość pracy dysku (pod warunkiem, że pierwsza próba była nieudana). Wzrost tej wartości świadczy o problemach z mechaniką dysku.
- C4 liczba operacji realokowania (Reallocation Event Count) – podaje liczbę operacji realokowania sektorów i jest związana z parametrem „Reallocated Sectors Count”. Cecha ta podaje liczbę prób przeniesienia danych z sektorów błędnych (oznaczonych jako Reallocated) do obszaru zapasowego dysku. Jeżeli wszystkie próby przeniesienia udały się, to wartość ta jest równa parametrowi „Reallocated Sectors Count”. Jeżeli nie, to wartość ta jest większa.
- C5 liczba sektorów niestabilnych (Current Pending Sector Count) – liczba sektorów oznaczonych jako niestabilne i czekających na operację remapowania.
- C6 liczba nienaprawionych błędów (Uncorrectable Sector Count) – liczba błędów, które nie zostały naprawione.
Parametry SMART można odczytać w wielu programach testujących, np. CrystalDiskInfo.
Poza monitorowaniem w czasie rzeczywistym dysk może przeprowadzić kilka typów testów. Testy te mogą być przeprowadzane w trybie captive, w którym rozpoczęcie testu powoduje wyłączenie dysku z użycia (elektronika dysku do czasu zakończenia testu nie realizuje żadnych poleceń kontrolera) lub w czasie, kiedy dysk nie realizuje żadnych operacji (idle) – co jest zachowaniem domyślnym. Dzięki temu testowanie dysku można przeprowadzić na dysku znajdującym się w użyciu. Wiąże się to niestety z czasowym obniżeniem wydajności dysku. Specyfikacja S.M.A.R.T. definiuje następujące rodzaje testów:
- offline – Immediate Offline Test (czas trwania poniżej pięciu minut): podstawowy test dysku, jest szybki i wykrywa najpoważniejsze problemy,
- short – Short Self Test (zwykle trwa poniżej dziesięciu minut): krótki test wykrywający większość problemów,
- long – Extended Self Test (trwa kilkadziesiąt minut): długi test wykrywa wszystkie problemy, jakie podsystem S.M.A.R.T. danego dysku jest w stanie rozpoznać,
- conveyance – Conveyance Self Test (od kilku do kilkunastu minut): ten test ma za zadanie wykryć uszkodzenia powstałe podczas transportu urządzenia (test nośnika magnetycznego),
- select – przeznaczony do testowania części dysku; dzięki niemu można wykonać test nośnika na części dysku (np. jednej partycji).
S.M.A.R.T. można włączyć lub wyłączyć dla każdego dysku z osobna. Służy do tego opcja BIOSu, której konfiguracja przeprowadzana jest w programie Setup. System operacyjny zazwyczaj umożliwia zaawansowaną konfigurację S.M.A.R.T. obejmującą logowanie informacji o błędach i ostrzeżeniach, włączanie okresowo testów, czy monitorowanie temperatury dysku.
Aby móc wykorzystać w pełni możliwości S.M.A.R.T., potrzebne jest odpowiednie oprogramowanie. Na pakiet smartmontools składają się dwa programy smartctl i smartd. Pierwszy z nich to uniwersalne narzędzie od konfiguracji, uruchamiania testów i odczytywania z dysku informacji o jego stanie. Smartd odpowiada natomiast za monitorowanie dysku. Programy te działają w środowisku systemów operacyjnych GNU/Linux, FreeBSD, NetBSD, OpenBSD, Solaris, MacOS oraz Microsoft Windows.