smartmontools

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

smartmontools [2019/02/25 18:21] (aktuální)
Řádek 1: Řádek 1:
 +====== smartmontools ======
 +{{.:​disk.png}} **smartmontools** je sada nástrojů na kontrolu a sledování stavu disků pomocí technologie [[http://​cs.wikipedia.org/​wiki/​S.M.A.R.T.|S.M.A.R.T.]]
  
 +====== Instalace ======
 +
 +{{.:​apt.png}} [[Instalace programů|Nainstalujte]] [[apt://​smartmontools|smartmontools]].
 +
 +====== Spuštění ======
 +
 +{{.:​navigate.png}} Program se spouští z [[Terminál|terminálu]] pomocí příkazu (například)
 +<​code>​
 +sudo smartctl -a /dev/sda
 +</​code>​pokud chci výpis dat z disku ///​dev/​sda//​.
 +
 +====== Jak to funguje ======
 +
 +===== Sledování disku =====
 +
 +Firmware sleduje během provozu disku různé parametry, pomocí nichž se dá usuzovat na stav a případnou pravděpodobnost selhání disku. Tyto parametry a jejich interpretace se bohužel mezi různými výrobci liší, ale určité obecné trendy je možné vyčíst.
 +
 +==== Rychlé zhodnocení stavu disku ====
 +Použijte parametr **-H** (//health// - zdraví)
 +<​code>​
 +sudo smartctl -H /dev/sda
 +</​code>​
 +Pokud vidíte ve výpise **PASSED**, je disk v pořádku. Pokud **FAILED**, pravděpodobnost totálního selhání je velmi vysoká.
 +
 +{{.:​example.png}}
 +<​code>​
 +arrange@arrange-desktop:​~$ sudo smartctl -H /dev/sda
 +smartctl 5.40 2010-03-16 r3077 [i686-pc-linux-gnu] (local build)
 +Copyright (C) 2002-10 by Bruce Allen, http://​smartmontools.sourceforge.net
 +
 +=== START OF READ SMART DATA SECTION ===
 +SMART overall-health self-assessment test result: PASSED
 +</​code>​
 +==== Více informací k disku ====
 +Použijte parametr **-A** (//​attributes//​ - ukazatele)
 +<​code>​
 +sudo smartctl -A /dev/sda
 +</​code>​
 +Zkontrolujte sloupec **WHEN_FAILED**. Pokud obsahuje pouze pomlčky (**-**), jsou všechny ukazatele v normě.
 +
 +Dále zkontrolujte ukazatel **Reallocated_Sector_Ct** (počet poškozených sektorů). Pokud se hodnota ​ ve sloupci **VALUE** blíží hodnotě **THRESH**, mějte se na pozoru - disk není úplně v pořádku.
 +
 +Problematické hodnoty u **Raw_Read_Error_Rate** (chyby při čtení) a **Seek_Error_Rate** (chyby při hledání sektoru na disku) nejsou fatální, ale ztěžují operačnímu systému nahrávání dat do paměti, a tím ho zpomalují, případně u neopravitelných (rozsáhlejších) chyb může dojít k lokálnímu poškození dat.
 +
 +{{.:​example.png}}
 +<​code>​
 +arrange@arrange-desktop:​~$ sudo smartctl -A /dev/sda
 +smartctl 5.40 2010-03-16 r3077 [i686-pc-linux-gnu] (local build)
 +Copyright (C) 2002-10 by Bruce Allen, http://​smartmontools.sourceforge.net
 +
 +=== START OF READ SMART DATA SECTION ===
 +SMART Attributes Data Structure revision number: 16
 +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 ​      ​- ​      831
 +  3 Spin_Up_Time ​           0x0027 ​  ​157 ​  ​156 ​  ​021 ​   Pre-fail ​ Always ​      ​- ​      3116
 +  4 Start_Stop_Count ​       0x0032 ​  ​099 ​  ​099 ​  ​000 ​   Old_age ​  ​Always ​      ​- ​      1093
 +  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 ​  ​092 ​  ​092 ​  ​000 ​   Old_age ​  ​Always ​      ​- ​      5918
 + 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 ​  ​099 ​  ​099 ​  ​000 ​   Old_age ​  ​Always ​      ​- ​      1090
 +192 Power-Off_Retract_Count 0x0032 ​  ​200 ​  ​200 ​  ​000 ​   Old_age ​  ​Always ​      ​- ​      15
 +193 Load_Cycle_Count ​       0x0032 ​  ​200 ​  ​200 ​  ​000 ​   Old_age ​  ​Always ​      ​- ​      1093
 +194 Temperature_Celsius ​    ​0x0022 ​  ​104 ​  ​094 ​  ​000 ​   Old_age ​  ​Always ​      ​- ​      39
 +196 Reallocated_Event_Count 0x0032 ​  ​200 ​  ​200 ​  ​000 ​   Old_age ​  ​Always ​      ​- ​      0
 +197 Current_Pending_Sector ​ 0x0032 ​  ​200 ​  ​200 ​  ​000 ​   Old_age ​  ​Always ​      ​- ​      1
 +198 Offline_Uncorrectable ​  ​0x0030 ​  ​200 ​  ​200 ​  ​000 ​   Old_age ​  ​Offline ​     -       1
 +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 ​     -       1
 +</​code>​
 +==== Všechny údaje SMART k disku ====
 +Pro výpis všech informací k disku použijte
 +<​code>​
 +sudo smartctl -a /dev/sda
 +</​code>​
 +{{.:​example.png}} Příklad výstupu a vysvětlivky
 +<​code>​
 +smartctl 5.40 2010-07-12 r3124 [i686-pc-linux-gnu] (local build)
 +Copyright (C) 2002-10 by Bruce Allen, http://​smartmontools.sourceforge.net
 +
 +=== START OF INFORMATION SECTION ===
 +Model Family: ​    ​Seagate Barracuda 7200.9 family
 +Device Model: ​    ​ST3802110A
 +Serial Number: ​   4LR6HEUP
 +Firmware Version: 3.BAJ
 +User Capacity: ​   80 026 361 856 bytes
 +Device is:        In smartctl database [for details use: -P show]
 +ATA Version is:   7
 +ATA Standard is:  Exact ATA specification draft version not indicated
 +Local Time is:    Fri Aug 19 20:50:03 2011 CEST
 +SMART support is: Available - device has SMART capability.
 +SMART support is: Enabled
 +</​code>​
 +Na začátku se kromě obecných informací k disku dozvíme, jestli
 +  * firmware podporuje SMART (//SMART support is: Available//​)
 +  * jestli je zapnutý (//​Enabled//​).
 +
 +{{.:​example.png}}
 +<​code>​
 +=== START OF READ SMART DATA SECTION ===
 +SMART overall-health self-assessment test result: PASSED
 +
 +General SMART Values:
 +Offline data collection status: ​ (0x82) Offline data collection activity
 + was completed without error.
 + Auto Offline Data Collection: Enabled.
 +Self-test execution status: ​     (  25) The self-test routine was aborted by
 + the host.
 +Total time to complete Offline
 +data collection: ( 430) seconds.
 +Offline data collection
 +capabilities:​ (0x5b) SMART execute Offline immediate.
 + Auto Offline data collection on/off support.
 + Suspend Offline collection upon new
 + command.
 + Offline surface scan supported.
 + Self-test supported.
 + No Conveyance Self-test supported.
 + Selective Self-test supported.
 +SMART capabilities: ​           (0x0003) Saves SMART data before entering
 + power-saving mode.
 + Supports SMART auto save timer.
 +Error logging capability: ​       (0x01) Error logging supported.
 + General Purpose Logging supported.
 +Short self-test routine
 +recommended polling time: (   1) minutes.
 +Extended self-test routine
 +recommended polling time: (  27) minutes.
 +</​code> ​ * **SMART overall-health self-assessment test result** celková interpretace hodnot indexů:
 +    * PASSED - disk nevykazuje větší množství chyb
 +    * FAILED - hodnoty u jednoho nebo více indexů jdou za limit doporučovaný výrobcem - hrozí celkové selhání disku
 +
 +  * **Offline data collection status** - některé disky umožňují automatickou kontrolu disku "na pozadí"​ (//​offline//​);​ //enabled// - zapnuto
 +
 +  * **Self-test execution status** - výsledek posledního testu disku prováděného pomocí SMART
 +
 +  * **... polling time** - předpokládané časy jednotlivých testů
 +
 +{{.:​example.png}}
 +<​code>​
 +SMART Attributes Data Structure revision number: 10
 +Vendor Specific SMART Attributes with Thresholds:
 +ID# ATTRIBUTE_NAME ​         FLAG     VALUE WORST THRESH TYPE      UPDATED ​ WHEN_FAILED RAW_VALUE
 +  1 Raw_Read_Error_Rate ​    ​0x000f ​  ​115 ​  ​069 ​  ​006 ​   Pre-fail ​ Always ​      ​- ​      ​92132405
 +  3 Spin_Up_Time ​           0x0003 ​  ​095 ​  ​094 ​  ​000 ​   Pre-fail ​ Always ​      ​- ​      0
 +  4 Start_Stop_Count ​       0x0032 ​  ​099 ​  ​099 ​  ​020 ​   Old_age ​  ​Always ​      ​- ​      1315
 +  5 Reallocated_Sector_Ct ​  ​0x0033 ​  ​098 ​  ​098 ​  ​036 ​   Pre-fail ​ Always ​      ​- ​      87
 +  7 Seek_Error_Rate ​        ​0x000f ​  ​079 ​  ​060 ​  ​030 ​   Pre-fail ​ Always ​      ​- ​      ​89291126
 +  9 Power_On_Hours ​         0x0032 ​  ​097 ​  ​097 ​  ​000 ​   Old_age ​  ​Always ​      ​- ​      3016
 + 10 Spin_Retry_Count ​       0x0013 ​  ​100 ​  ​100 ​  ​097 ​   Pre-fail ​ Always ​      ​- ​      0
 + 12 Power_Cycle_Count ​      ​0x0032 ​  ​099 ​  ​099 ​  ​020 ​   Old_age ​  ​Always ​      ​- ​      1409
 +187 Reported_Uncorrect ​     0x0032 ​  ​001 ​  ​001 ​  ​000 ​   Old_age ​  ​Always ​      ​- ​      30199
 +189 High_Fly_Writes ​        ​0x003a ​  ​100 ​  ​100 ​  ​000 ​   Old_age ​  ​Always ​      ​- ​      0
 +190 Airflow_Temperature_Cel 0x0022 ​  ​056 ​  ​056 ​  ​045 ​   Old_age ​  ​Always ​      ​- ​      44 (0 7 44 38)
 +194 Temperature_Celsius ​    ​0x0022 ​  ​044 ​  ​044 ​  ​000 ​   Old_age ​  ​Always ​      ​- ​      44 (0 19 0 0)
 +195 Hardware_ECC_Recovered ​ 0x001a ​  ​044 ​  ​044 ​  ​000 ​   Old_age ​  ​Always ​      ​- ​      ​167736146
 +197 Current_Pending_Sector ​ 0x0012 ​  ​001 ​  ​001 ​  ​000 ​   Old_age ​  ​Always ​      ​- ​      ​4294967295
 +198 Offline_Uncorrectable ​  ​0x0010 ​  ​001 ​  ​001 ​  ​000 ​   Old_age ​  ​Offline ​     -       ​4294967295
 +199 UDMA_CRC_Error_Count ​   0x003e ​  ​200 ​  ​200 ​  ​000 ​   Old_age ​  ​Always ​      ​- ​      30
 +200 Multi_Zone_Error_Rate ​  ​0x0000 ​  ​100 ​  ​253 ​  ​000 ​   Old_age ​  ​Offline ​     -       0
 +202 Data_Address_Mark_Errs ​ 0x0032 ​  ​099 ​  ​252 ​  ​000 ​   Old_age ​  ​Always ​      ​- ​      1
 +</​code>​
 +  * **ID** a **ATTRIBUTE_NAME** - číslo a název ukazetele. Podrobnosti viz [[http://​www.pslib.cz/​ke/​Monitorov%C3%A1n%C3%AD_disk%C5%AF_%28S.M.A.R.T.%29#​Sekce>​_SMART_Attributes_Data_Structure|třeba zde]]. Nejdůležitějším ukazatelem je asi **Reallocated_Sector_Ct** - počet přemapovaných,​ a tedy vadných sektorů.
 +
 +  * **VALUE** - tzv. normalizovaná (aktuální) hodnota, tedy hodnota přepočítaná vnitřním algoritmem SMARTu na hodnotu mezi 0-255 (někdy 0-200 apod.). Čím **vyšší** je tato hodnota, tím lépe. Pokud se dostane pod hodnotu ve sloupci **THRESH**, systém hlásí brzké selhání disku.
 +
 +  * **WORST** - nejnižší (a tedy nejhorší) hodnota, jaké kdy tento ukazatel v historii dosáhl
 +
 +  * **THRESH** (//​threshold//​ - práh) - hraniční hodnota, pod níž systém hlásí brzké selhání disku
 +
 +  * **TYPE** - typ ukazatele
 +    * //​Pre-fail//​ - ukazatel indikující špatný stav disku
 +    * //old_age// - indikující stáří disku
 +
 +  * **UPDATED** - kdy dochází k aktualizaci hodnoty ukazatele
 +    * //always// - při běžné činnosti disku
 +    * //offline// - při běhu testu na pozadí
 +
 +  * **WHEN_FAILED** - kdy došlo k tomu, že hodnota ukazatele se dostala pod určený práh
 +    * //-// - nikdy
 +    * //​in_the_past//​ - někdy v minulosti, aktuálně je v pořádku
 +    * //​failing_now//​ - akutní nebezpečí
 +
 +  * **RAW_VALUE** - nenormalizovaná hodnota ukazatele. Zde je nutné si uvědomit, že **tato hodnota je pouze orientační** a nemá dostatečnou vypovídající hodnotu, protože ji každý výrobce implementuje jinak. Může např. hodnotu vytvořit jako spojení více bytů, jež mají každý jiný význam v rámci ukazatele, a pak může být "​syrová"​ hodnota nesmyslně vysoká (viz v příkladu //​Current_Pending_Sector//​).
 +
 +==== Dokážou tyto údaje předpovědět selhání disku? ====
 +[[http://​labs.google.com/​papers/​disk_failures.pdf|Studie Googlu]], která je statistickým shrnutím shromážděných údajů z více než 100 000 pevných disků, mj. zjistila, že
 +  * disky s nenulovou hodnotou u //​Reallocated_Sector_Ct//​ mají 14x větší pravděpodobnost selhání než ostatní; podobné je to i u ostatních chybových parametrů
 +  * 36% disků, které selhaly, byly podle ukazatelů SMART naprosto v pořádku (nulové hodnoty u chybových parametrů)
 +  * vysoká zátěž disku se negativně projevuje (rozuměj zvyšuje pravděpodobnost selhání) jen v prvním půlroce používání
 +  * vyšší teplota (myšleno kolem 45 stupňů) nemá na životnost zásadní vliv
 +
 +===== Testování disku =====
 +
 +Pomocí příkazu **smartctl** je rovněž možné spustit různé testy disku, všechny lze použít při normální činnosti (je možné pokračovat v práci s počítačem).
 +<​code>​
 +sudo smartctl -t nazev_testu /dev/sda
 +</​code>​
 +Testy, ktere lze použít (doplňte místo nazev_testu):​
 +  * **offline** - spustí //offline// test, kontrola povrchu disku
 +  * **short** - kontroluje se jen určitá část disku, někdy i buffer a mechanické části disku
 +  * **long** - kontrola celého disku
 +  * **conveyance** - rychlý test na možná poškození při přepravě disku (kontrola nového disku)
 +
 +Výsledky testu je možné zkontrolovat pomocí (kromě //offline// - ten pouze aktualizuje hodnoty u ukazatelů)
 +<​code>​
 +sudo smartctl -l selftest /dev/sda
 +</​code>​
 +====== Tipy a triky ======
 +
 +Místo konzolového nástroje je možné použít grafický [[Diskový nástroj|diskový nástroj]], který interpretuje hodnoty SMART i provádí testy.
 +
 +[[badblocks]] umožňuje vyhledávat poškozené bloky nezávisle na SMART. Přemapované bloky už ale nenajde.
 +
 +Pokud chcete zálohovat data z poškozeného disku, a kvůli většímu poškození se to nedaří, zkuste [[ddrescue]].
 +
 +====== Odstranění ======
 +
 +{{.:​clear.png}} [[Instalace programů|Odeberte]] balík ''​smartmontools''​.
 +
 +====== Odkazy ======
 +  * [[http://​sourceforge.net/​apps/​trac/​smartmontools/​wiki/​Howto_ReadSmartctlReports_ATA|jak číst údaje z výstupu smartctl]] {{.:​en.png}}
 +  * [[http://​www.pslib.cz/​ke/​Monitorov%C3%A1n%C3%AD_disk%C5%AF_%28S.M.A.R.T.%29|český manuál]] {{.:​cz.png}}
  • Poslední úprava: 2019/02/25 18:21
  • (upraveno mimo DokuWiki)