Hlavní navigace

Buďte S.M.A.R.T. a hlídejte si disky

Tomáš Matějíček 28. 6. 2013

Každý zkušený admin vám řekne, že data jsou důležitější než železo samotné. Stejný člověk vám pak také řekne, že dobrá záloha je základ spokojeného života. Je dobré také sledovat zdraví svého počítače a zejména pak jeho disku. Naštěstí k tomu existují výborné nástroje využívající technologii S.M.A.R.T.

S.M.A.R.T. (Self-Monitoring, Analysis, and Reporting Technology) je monitorovací systém pro pevné disky. Pokud disk technologii SMART podporuje, zaznamenává si během provozu o sobě mnoho zajímavých údajů, ke kterým dovolí uživateli přístup. Pravidelná analýza zaznamenaných hodnot může pomoci odhalit a předejít mnoha problémům ještě dřív, než se opravdu vyskytnou.

Historie technologie S.M.A.R.T. se začala psát v roce 1995, kdy Compaq s podporou IBM, Seagate a Western Digital zahájil proces její standardizace. Oficiální technická specifikace standartu SMART pochází z roku 2004, a v dnešní době je nezbytnou součástí každého pevného disku.

Kromě logování SMART nabízí i možnost aktivního testování disku, takzvaný self-test. Kontrolu samotnou provádí opět firmware na zařízení, a to i za plného provozu bez znatelné ztráty výkonu. 

Je důležité zmínit, že výše uvedené funkce jsou součástí firmware disku jako takového a nejsou nijak závislé na operačním systému. Záznamy z logu i z předchozích testování zůstávají k dispozici i po naformátování či přemístění disku do jiného počítače, což ocení především uživatelé dedikovaných serverů – můžou si jednoduše zkontrolovat, jak zdravé disky do svého nového serveru dostali.

S.M.A.R.T. atributy

Výrobci pevných disků definují soubor sledovaných parametrů a k nim prahových hodnot, jež by při normálním provozu neměly být nikdy překročeny. Každý atribut má surovou (raw) hodnotu, která obvykle odpovídá fyzikální jednotce, například stupně celsia nebo vteřiny, a pak normalizovanou hodnotu v rozsahu od 1 do 253 (kde 1 znamená nejhorší a 253 nejlepší).

Jak ale tahle data z disku dostat? Pomůže nám k tomu utilita smartctl, která je součástí balíku smartmontools, případné GUI programy zmiňovat nebudeme. Základní report dostaneme při spuštění následujícího příkazu:

# smartctl -a /dev/sda

Má-li kdo zájem o trochu detailnější informace, použije místo přepínače -a přepínač  -x.

Důležité je také zmínit, jak se dostat ke SMART atributům na discích za hardwarovými RAID řadiči, jako je například 3ware, protože v případě jejich použití disk /dev/sda nemusí být vůbec fyzickým diskem jako takovým, ale například dvojicí zrcadlených disků. Dotazovat se na atributy /dev/sda by tudíž nemuselo vždy dávat smysl. Z toho důvodu je pak nutno dotazované zařízení adresovat zvláštním způsobem, který je popsaný v man smartctl a je různý pro různé raid řadiče.

Jako příklad uvedeme výpis SMART dat z prvních tří disků za 3ware řadičem:

# smartctl -a -d 3ware,0 /dev/twa0
# smartctl -a -d 3ware,1 /dev/twa0
# smartctl -a -d 3ware,2 /dev/twa0

V následující tabulce uzříte zredukovaný přehled atributů na jednom starším disku. Tato tabulka je součástí výpisu ze smartctl, nemá smysl ho zde uvádět celý:

ID# ATTRIBUTE_NAME          VALUE WORST THRESH WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     100   100   016    -           0
  2 Throughput_Performance  134   134   054    -           87
  3 Spin_Up_Time            134   134   024    -           540 (Average 615)
  4 Start_Stop_Count        100   100   000    -           230
  5 Reallocated_Sector_Ct   100   100   005    -           0
  7 Seek_Error_Rate         100   100   067    -           0
  8 Seek_Time_Performance   133   133   020    -           27
  9 Power_On_Hours          099   099   000    -           10312
 10 Spin_Retry_Count        100   100   060    -           0
 12 Power_Cycle_Count       100   100   000    -           23
192 Power-Off_Retract_Count 100   100   000    -           25
193 Load_Cycle_Count        100   100   000    -           25
194 Temperature_Celsius     130   130   000    -           46 (Min/Max 25/75)
196 Reallocated_Event_Count 100   100   000    -           0
197 Current_Pending_Sector  100   100   000    -           0
198 Offline_Uncorrectable   100   100   000    -           0
199 UDMA_CRC_Error_Count    200   200   000    -           1

Výpis obsahuje hodnoty sledované diskem /dev/sda. Jiný disk od jiného výrobce může sledovat hodnoty obecně jiné, ovšem v praxi jsou ty zde uvedené více méně běžné. Ve sloupcích VALUE, WORST a TRESH jsou normalizované hodnoty sledovaného parametru, VALUE udává aktuální stav, WORST nejvyšší hodnotu zaznamenanou za celou životnost disku, a TRESH je výrobcem stanovená mez, která by neměla být překročena. Pokud je 000, tak se referenční mez neuvádí.

Zajímavé jsou také hodnoty ve sloupci RAW_VALUE. Tento konkrétní disk už byl spuštěný 10312 hodin, což je něco přes jeden rok nepřetržitého provozu. Momentálně má disk teplotu 46 stupňů Celsia, nejvyšší naměřená teplota je 75 stupňů, zřejmě se někdy v minulosti vinou nedostatečného větrání serveru dost přehříval, což mohlo vést k jeho rychlejšímu poškození. Tento konkrétní kus už je sktečně vyřazen pro špatnou funkčnost.

Na otázku, které z parametrů použít pro odhadnutí, zda je disk blízko svého konce, neexistuje univerzální odpověď. To že je disk již víc než rok v provozu ( Power_On_Hours), nebo že byl 230× zapnut a vypnut ( Start_Stop_Count), ještě nemusí nutně znamenat problém, na druhou stranu čím je disk starší a používanější, tím větší je šance, že se projeví nějaké mechanické opotřebení. Záleží tedy na hodnotách všech parametrů, které pro disk posoudíme jako celek. Příliš vysoké hodnoty Reallocated_Event_Count by mohly naznačovat konkrétnější problém, protože ty udávají počet realokací způsobených vadnými sektory, ale zde je zase nutné sledovat spíš změnu v čase než aktuální surovou hodnotu, která může vypadat relativně vysoká i u nového a nepoužitého disku. Navíc některé disky jako je tento je patrně ani nepočítají.

Kromě logování naměřených nebo napočítaných parametrů jsou na disku zaznamenávány ještě informace o chybách při čtení či zápisu. U funkčního disku bez žádných takových záznamů smartctl nic navíc nevypíše, ovšem pokud na disku někdy k nějaké chybě někdy došlo, nachází se výpis těchto chyb hned pod tabulkou s atributy. Příklad následuje:

Error 32 occurred at disk power-on lifetime: 7755 hours (323 days + 3 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 00 ff ff ff 0f  Error: UNC at LBA = 0x0fffffff = 268435455

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  25 00 00 ff ff ff ef 00   3d+06:24:52.346  READ DMA EXT
  27 00 00 00 00 00 e0 00   3d+06:24:52.345  READ NATIVE MAX ADDRESS EXT
  ec 00 00 00 00 00 a0 00   3d+06:24:52.343  IDENTIFY DEVICE
  ef 03 46 00 00 00 a0 00   3d+06:24:52.343  SET FEATURES [Set transfer mode]
  27 00 00 00 00 00 e0 00   3d+06:24:52.318  READ NATIVE MAX ADDRESS EXT

Detaily z tohoto výpisu jsou smysluplné především pro výrobce zařízení, pro běžného uživatele stačí jen informace, že k nějaké chybě došlo (zde je vypsaná již třicátá osmá chyba, takovýto disk je lepší co nejdříve vyměnit).

Self-test aneb samovyšetření

Jak již bylo naznačeno v úvodu, kromě logování S.M.A.R.T. nabízí i možnost aktivního testování disku, takzvaný self-test. Test disku provádí firmware na zařízení bez jakékoli součinnosti operačního systému, a to i za plného provozu bez znatelné ztráty výkonu (samozřejmě jen pokud je disk nějak normálně vytížen). Existuje několik typů testů, z těch nejpoužívanějších SHORT a LONG. Krátký ( SHORT) test je obvykle dokončen do desíti minut, dlouhý ( LONG) test může trvat několik hodin. Spuštění testu provedeme příkazem:

# smartctl -t short /dev/sda

Výsledky testu nebo stav jeho průběhu opět nalezneme ve výpisu z

# smartctl -a /dev/sda

Výpis o výsledcích testu může vypadat takto:

Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed without error       00%     10313         -
# 2  Short offline       Completed without error       00%      5212         -

V případě nalezení chyb je ve sloupci LBA_of_first_error uvedena adresa sektoru první z nich.

Démon smartd

Součástí balíku smartmontools je i smart daemon smartd. Ten ve výchozím nastavení analyzuje SMART data každých 30 minut a loguje do syslogu případné nalezené chyby či problémy. Zároveň podporuje odeslání emailu na zadanou adresu v okamžiku, kdy uživatelem sledované hodnoty překročí mez. Konfigurace démona se provádí obvykle v /etc/smartd.conf, detailněji viz man smartd.conf.

Našli jste v článku chybu?

29. 6. 2013 21:02

KapitanRUM (neregistrovaný)

Udělal jsem si čas a znovu si přečetl studii Google:
http://static.googleusercontent.com/external_content/untrusted_dlcp/research.google.com/cs//archive/disk_failures.pdf

Řadě lidí zde doporučuji, aby si to znovu přečetli, až se naučí dobře anglicky.

• Contrary to previously reported results, we found
very little correlation between failure rates and either elevated temperature or activity levels.

To je velmi zajímavé, obecně se uvádí, že se vzrůstající teplotou klesá životnost a vzrůstá poru…



29. 6. 2013 0:39

Trident (neregistrovaný)

Kdyz funguje realokace spravne, tak ji na blokove bazi vubec nepoznate. Disk sam ma nad bloky kontrolni soucty a informace zaznamenane i nekolikrat. Dnesni disk je pomerne inteligentni proti tomu co jsme se ucili kdysi.
Neproslo mi rukama tolik ruznych disku jako googlo. Ale z osobnich sledovani spis jsou blbe cele serie. Teploty otackove stejnych disku se pomerne dost lisi +-15 stupnu. Prisuzuji to ruzne metodice umisteni cidla a ruzne konstrukci. Na zivotnost to nema vliv. Rozumne naprogramova…

DigiZone.cz: Česká televize mění schéma ČT :D

Česká televize mění schéma ČT :D

Vitalia.cz: Říká amoleta - a myslí palačinka

Říká amoleta - a myslí palačinka

Lupa.cz: Slevové šílenství je tu. Kde nakoupit na Black Friday?

Slevové šílenství je tu. Kde nakoupit na Black Friday?

Vitalia.cz: „Připluly“ z Německa a možná obsahují jed

„Připluly“ z Německa a možná obsahují jed

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Lupa.cz: Není sleva jako sleva. Jak obchodům nenaletět?

Není sleva jako sleva. Jak obchodům nenaletět?

Měšec.cz: Finančním poradcům hrozí vracení provizí

Finančním poradcům hrozí vracení provizí

120na80.cz: Jak oddálit Alzheimera?

Jak oddálit Alzheimera?

Lupa.cz: Google měl výpadek, nejel Gmail ani YouTube

Google měl výpadek, nejel Gmail ani YouTube

Podnikatel.cz: EET zvládneme, budou horší zákony

EET zvládneme, budou horší zákony

Lupa.cz: Babiš: E-shopů se EET možná nebude týkat

Babiš: E-shopů se EET možná nebude týkat

Vitalia.cz: Tesco: Chudá rodina si koupí levné polské kuře

Tesco: Chudá rodina si koupí levné polské kuře

120na80.cz: Rakovina oka. Jak ji poznáte?

Rakovina oka. Jak ji poznáte?

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

Měšec.cz: Jak vymáhat výživné zadarmo?

Jak vymáhat výživné zadarmo?

120na80.cz: Bojíte se encefalitidy?

Bojíte se encefalitidy?

DigiZone.cz: ČT má dalšího zástupce v EBU

ČT má dalšího zástupce v EBU

Podnikatel.cz: Prodává přes internet. Kdy platí zdravotko?

Prodává přes internet. Kdy platí zdravotko?

120na80.cz: Pánové, pečujte o svoje přirození a prostatu

Pánové, pečujte o svoje přirození a prostatu

Root.cz: Vypadl Google a rozbilo se toho hodně

Vypadl Google a rozbilo se toho hodně