smartmontools

no way to compare when less than two revisions

Rozdíly

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


Předchozí verze
smartmontools [2019/02/25 18:21] (aktuální) – upraveno mimo DokuWiki 127.0.0.1
Řá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
  • autor: 127.0.0.1