====== 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) sudo smartctl -a /dev/sda 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í) sudo smartctl -H /dev/sda 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}} 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 ==== Více informací k disku ==== Použijte parametr **-A** (//attributes// - ukazatele) sudo smartctl -A /dev/sda 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}} 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 ==== Všechny údaje SMART k disku ==== Pro výpis všech informací k disku použijte sudo smartctl -a /dev/sda {{.:example.png}} Příklad výstupu a vysvětlivky 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 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}} === 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. * **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}} 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 * **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). sudo smartctl -t nazev_testu /dev/sda 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ů) sudo smartctl -l selftest /dev/sda ====== 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}}