Názor "nik nevie, kedy sa to môže stať" nie je však v tomto prípade na mieste. Technológia S.M.A.R.T., ktorou už dnes disponuje každý novší pevný disk, umožňuje čiastočne predvídať katastrofy súvisiace s poruchou disku v dôsledku opotrebovania. O čo ide, vidíme už zo skratky, ktorú možno vysvetliť ako Self-Monitoring, Analysis and Reporting Technology.
S.M.A.R.T. pracuje na úrovni disku, a nie na úrovni operačného systému či BIOSu. Dá sa teda povedať, že disk sa monitoruje prakticky sám a údaje zaznamenáva a sám aj vyhodnocuje. Čo teda vlastne disk zaznamenáva? No je toho viac než dosť a treba podotknúť, že každý disk má trochu inú verziu S.M.A.R.T., a tak sa nedá globálne povedať, čo všetko váš disk monitoruje. Zvyčajne sú to napr. teplota, počet štartov a vypnutí, počet hodín, ktoré si disk už odpracoval, počet chýb pri čítaní a zápise (tieto chyby sú do určite miery bežné a disk si ich vie opraviť v rámci svojej vlastnej logiky). Monitorovaných údajov je naozaj veľa a nemá zmysel si ich pre zatiaľ všetky uvádzať.
Poďme trochu do praxe. Smart sám o sebe, ako bolo naznačené, neposiela dáta operačnému systému. Na to, aby sme získali údaje z disku, potrebujeme software na toto určený. K tomuto účelu nám poslúži zbierka balíčkov smartmontools, v ktorej sa nachádza jednak démon smartd pre monitorovanie diskov a následnú tvorbu logov a ďalej tu nájdeme smartctl - utilitu pre ovládanie a monitorovanie SMART diskov. Ide o konzolový nástroj, ktorý okrem získavania už diskom vygenerovaných údajov dokáže dlhým, alebo krátkym testom vytvoriť vlastnú analýzu stavu disku.
Základným testom, ktorý môžete vykonať, je smartctl -H, vypíše sa vám "health status" - momentálny stav vášho disku. Tento stav však možno považovať za aktuálny iba po dobu 24 hodín.
Možnosti tohto nástroja sú naozaj veľké a v tomto článku sa k nim určite nedostaneme. Na to, aby sme s týmto nástrojom vôbec mohli začať pracovať, musíme najprv podporu SMART zapnúť: smartctl --smart=on /dev/hda1. Ukážme si, ako pomocou smartctl získame tabuľku SMART údajov z disku. Po zadaní príkazu smartctl -A /dev/hda1 (prípadne iné zariadenie) sa nám zobrazí očakávaný výstup. Tu si povieme niečo o získaných údajoch. V tabuľke máme v každom riadku nejaký pozorovaný jav (atribútu disku). Ďalej tu máme pri každej tri hodnoty: VALUE, WORST a THRESHOLD. Prvá menovaná je aktuálna, to znamená tá, ktorú disk naposledy nameral. Druhá je najhoršia, aká bola kedy nameraná. Hodnota s menom THRESH je akousi hranicou. Ak aktuálna hodnota klesne pod hodnotu THRESH, znamená to, že disk nie je v dobrej kondícii a že niečo nie je v poriadku.
Smartctl môže bežať v dvoch módoch: silent a errorsonly. Výstupom módu errorsonly je vždy chyba. Mód silent nevypisuje sám nič, výstup sa zobrazí len na vaše vyžiadanie.
Tieto údaje sú pre nás smerodatné a z nich vieme všeličo vyčítať. Vo výstupe príkazu, ktorý sme zadali, je takisto stĺpec TYPE, ktorý hodnotí spomínané tri hodnoty. Ak vidíme v tomto stĺpci niečo áko "pre-fail", alebo "old_age" neznamená to, že váš disk ide zlyhať, aj keď sa tak niekomu môže zdať. Tieto hodnoty sú úplne normálne. Možno povedať, že problém nastáva vo chvíli, keď sa niečo zjaví v stlpci WHEN_FAILED, ktorý zároveň odhaduje životnosť disku, ktorý už nepracuje tak, ako by mal. Posledným stĺpcom je RAW_VALUE. Ako vidíme, často sa v ňom nachádza nula. Je to preto, lebo tu nadobúda konkrétneho čísla iba pre skutočné hodnoty ako napr. teplota, počet hodín, počet štartov.
Ak máte nový pevný disk, prípadne disk v záruke, musím vás upozorniť, že hodnoty získané zo S.M.A.R.T. nie sú dôvodom na reklamáciu, aj keby boli hociako nelichotivé. Disk možno reklamovať až po skutočnom zlyhaní.
Technológia SMART nám umožní predvídať životnosť nášho disku, umožní nám predísť strate dát, pretože ako bolo v úvode povedané, nič nie je večné. Prinajmenšom nám poskytne niekoľko zaujímavých údajov, ktorými sú teplota či doba, po ktorú bol disk spustený v hodinách. Utility, ktoré sme tu použili, dokážu analyzovať disk o mnoho podrobnejšie, ale o tom niekedy nabudúce.
=== START OF READ SMART DATA SECTION ===SMART Attributes Data Structure revision number: 16Vendor Specific SMART Attributes with Thresholds:ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE1 Raw_Read_Error_Rate 0x000b 100 100 062 Pre-fail Always - 02 Throughput_Performance 0x0005 105 105 040 Pre-fail Offline - 58853 Spin_Up_Time 0x0007 150 150 033 Pre-fail Always - 14 Start_Stop_Count 0x0012 099 099 000 Old_age Always - 19615 Reallocated_Sector_Ct 0x0033 100 100 005 Pre-fail Always - 07 Seek_Error_Rate 0x000b 100 100 067 Pre-fail Always - 08 Seek_Time_Performance 0x0005 120 120 040 Pre-fail Offline - 369 Power_On_Hours 0x0012 095 095 000 Old_age Always - 251410 Spin_Retry_Count 0x0013 100 100 060 Pre-fail Always - 012 Power_Cycle_Count 0x0032 099 099 000 Old_age Always - 1654191 G-Sense_Error_Rate 0x000a 099 099 000 Old_age Always - 3192 Power-Off_Retract_Count0x0032 100 100 000 Old_age Always - 69193 Load_Cycle_Count 0x0012 092 092 000 Old_age Always - 89513194 Temperature_Celsius 0x0002 112 112 000 Old_age Always - 49 (Lifetime Min/Max 12/66)196 Reallocated_Event_Count0x0032 100 100 000 Old_age Always - 0197 Current_Pending_Sector 0x0022 100 100 000 Old_age Always - 098 Offline_Uncorrectable 0x0008 100 100 000 Old_age Offline - 0199 UDMA_CRC_Error_Count 0x000a 200 200 000 Old_age Always - 0