Recherche


imprimer pdf
Smartmontool

Introduction

Le Real Time Monitoring permet à OVH de surveiller votre machine en temps réel et se sert de S.M.A.R.T. pour récupérer les informations les plus importantes de votre disque. Votre serveur envoie régulièrement des informations grâce à une tâche cron vers notre interface de monitoring. Selon le problème detecté sur la machine, nous pouvons ainsi intervenir rapidement. Smartmontools est un outil d'analyse de disque dur et de leurs caractéristiques physiques les plus critiques. Il se compose de deux parties : smartd le daemon, qui verifie par périodes de 30 minutes les paramètres en écrivant le résultat dans /var/log/messages, et la commande smartctl qui nécessite les droits root et qui sert à afficher toutes les informations.

Procédure

Toutes les opérations ci-dessous s'exécutent en SSH et sont destinées à la release Redhat d'OVH.

  • Activation / Installation de smartmontool

Connectez-vous en root sur votre machine. Il est important que vous fassiez la connexion directement en root. Si vous faites une connexion en user et ensuite un SU, l'installation va échouer, smartctl ne pourra pas fonctionner correctement. Une fois connecté, appliquez simplement la dernière release d'OVH en patchant votre machine :

[root@delirium root]# wget ftp://ftp.ovh.net/made-in-ovh/release/patch-all.sh -O patch-all.sh; sh patch-all.sh
Connexion vers ftp.ovh.net:21...Connecte!
Session debutant sous anonymous...Session etablie!
==> SYST ... complete. ==> PWD ... complete.
==> TYPE I ... complete. ==> CWD /made-in-ovh/release/1.58-1.59 ... complete.
==> PASV ... complete. ==> LIST ... complete.
0K @ 84.96 KB/s
10:48:32 (84.96 KB/s) - `.listing' sauvegarde [87]
`.listing' detruit.
--10:48:32-- ftp://ftp.ovh.net/made-in-ovh/release/1.58-1.59/smartmontools-5.33-1.i386.rpm
=> `smartmontools-5.33-1.i386.rpm'
==> CWD n'est pas requis.
==> PASV ... complete. ==> RETR smartmontools-5.33-1.i386.rpm ... complete.
Longueur: 342,512
0K .......... .......... .......... .......... .......... 14% @ 5.43 MB/s
50K .......... .......... .......... .......... .......... 29% @ 6.98 MB/s
100K .......... .......... .......... .......... .......... 44% @ 8.14 MB/s
150K .......... .......... .......... .......... .......... 59% @ 8.14 MB/s
200K .......... .......... .......... .......... .......... 74% @ 8.14 MB/s
250K .......... .......... .......... .......... .......... 89% @ 8.14 MB/s
300K .......... .......... .......... .... 100% @ 16.84 MB/s
10:48:32 (7.60 MB/s) - `smartmontools-5.33-1.i386.rpm' sauvegarde [342512]
Termine --10:48:32--
Telechargement: 342,512 octets dans 1 fichiers
Preparing... ########################################### [100%]
1:smartmontools ########################################### [100%]
Shutting down smartd: [ OK ]
Starting smartd: [ OK ]
Restarted smartd services
smartd will continue to start up on system boot
Shutting down smartd: [ OK ]
Starting smartd: [ OK ]


Si tout s'est passé correctement, vous verrez alors l'information suivante Use smartctl -h to get a usage summary. Smart est donc activé et ajouté dans les tâches cron.

  • Le daemon smartd

Smartd contrôlera maintenant à un rythme régulier les informations de votre disque, les transmettra à notre système RTM et les inscrit dans vos logs :

[root@delirium /]# cat /var/log/messages | grep smartd
Mar 17 10:48:34 delirium smartd[990]: Configuration file /etc/smartd.conf was parsed, found DEVICESCAN, scanning devices
Mar 17 10:48:34 delirium smartd[990]: Device: /dev/hda, opened
Mar 17 10:48:34 delirium smartd[990]: Device: /dev/hda, found in smartd database.
Mar 17 10:48:35 delirium smartd[990]: Device: /dev/hda, is SMART capable. Adding to "monitor" list.
Mar 17 10:48:35 delirium smartd[990]: Device: /dev/hdb, opened
Mar 17 10:48:35 delirium smartd[990]: Device: /dev/hdb, not ATA, no IDENTIFY DEVICE Structure
Mar 17 10:48:35 delirium smartd[990]: Monitoring 1 ATA and 0 SCSI devices
mar 17 10:48:35 delirium smartd: Lancement smartd succeeded
Mar 17 10:48:35 delirium smartd[2421]]: smartd has fork()ed into background mode. New PID=2421.
Mar 17 13:48:35 delirium smartd[2421]: Device: /dev/hda, SMART Prefailure Attribute: 8 Seek_Time_Performance? changed from 246 to 247
Mar 17 15:48:35 delirium smartd[2421]: Device: /dev/hda, SMART Prefailure Attribute: 8 Seek_Time_Performance? changed from 247 to 246
Mar 17 17:18:35 delirium smartd[2421]: Device: /dev/hda, SMART Prefailure Attribute: 8 Seek_Time_Performance? changed from 246 to 247


Comment interpréter ces lignes ? Le disque montre une valeur constante qui varie entre 246 et 247. Si la valeur change de brutalement de 247 à 500, il s'agit d'un comportement anormal. Plus de détails sur les valeurs dans le chapitre ci-dessous.

Petite astuce : vous pouvez recevoir un mail avec les informations le plus pertinantes en ajoutant/éditant une ligne dans /etc/smartd.conf.

[root@delirium /]# pico /etc/smartd.conf
# A very silent check. Only report SMART health status if it fails
# But send an email in this case
#/dev/hdc -H -m admin@example.com


Nous pouvons donc ajouter notre adresse afin de recevoir les mails : /dev/hda -H -m vous@adressemail.com.

Smartctl et l'interprétation

Comme déjà indiqué au début de ce guide, l'utilisation de la commande smartctl nécessite les droits root. Voyons les différents attributs de la commande. Nous ne traitons ici que les commandes de base.

[root@delirium /]# smartctl -h
smartctl version 5.33 [i386-redhat-linux-gnu] Copyright (C) 2002-4 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
Usage: smartctl [options] device

* h, --help, --usage
Display this help and exit
* i, --info
Show identity information for device
* a, --all
Show all SMART information for device


La commande se présente donc sous cette forme : [root@delirium /]# smartctl -i /dev/hda et donne le résultat:

===START OF INFORMATION SECTION ===
Device Model: Maxtor 6E040L0
Serial Number: E1KTPXFE
Firmware Version: NAR61590
User Capacity: 41,110,142,976 bytes
Device is: In smartctl database [for details use: -P show]
ATA Version is: 7
ATA Standard is: ATA/ATAPI-7 T13 1532D revision 0
Local Time is: Thu Mar 17 22:21:52 2005 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled


L'utilisation de l'attribut -a va afficher toutes les informations que l'outil a pu récupérer :

[root@delirium /]# smartctl -a /dev/hda donne le résultat :

===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: ( 0) The previous self-test routine completed
without error or no self-test has ever
been run.
Total time to complete Offline
data collection: (1021) 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.
No General Purpose Logging support.
Short self-test routine
recommended polling time: ( 2) minutes.
Extended self-test routine
recommended polling time: ( 17) minutes.

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
3 Spin_Up_Time? 0x0027 252 252 063 Pre-fail Always - 2463
4 Start_Stop_Count? 0x0032 253 253 000 Old_age Always - 18
5 Reallocated_Sector_Ct? 0x0033 253 253 063 Pre-fail Always - 0
6 Read_Channel_Margin? 0x0001 253 253 100 Pre-fail Offline - 0
7 Seek_Error_Rate? 0x000a 253 252 000 Old_age Always - 0
8 Seek_Time_Performance? 0x0027 247 238 187 Pre-fail Always - 46214
9 Power_On_Minutes? 0x0032 241 241 000 Old_age Always - 950h+09m
10 Spin_Retry_Count? 0x002b 252 252 157 Pre-fail Always - 0
11 Calibration_Retry_Count? 0x002b 253 252 223 Pre-fail Always - 0
12 Power_Cycle_Count? 0x0032 253 253 000 Old_age Always - 22
192 Power-Off_Retract_Count? 0x0032 253 253 000 Old_age Always - 13
193 Load_Cycle_Count? 0x0032 253 253 000 Old_age Always - 72
194 Temperature_Celsius? 0x0032 253 253 000 Old_age Always - 31
195 Hardware_ECC_Recovered 0x000a 253 252 000 Old_age Always - 25095
196 Reallocated_Event_Count? 0x0008 253 253 000 Old_age Offline - 0
197 Current_Pending_Sector? 0x0008 253 253 000 Old_age Offline - 0
198 Offline_Uncorrectable? 0x0008 253 253 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x0008 199 199 000 Old_age Offline - 0
200 Multi_Zone_Error_Rate? 0x000a 253 252 000 Old_age Always - 0
201 Soft_Read_Error_Rate? 0x000a 251 138 000 Old_age Always - 1746
202 TA_Increase_Count 0x000a 253 252 000 Old_age Always - 0
203 Run_Out_Cancel? 0x000b 253 252 180 Pre-fail Always - 137
204 Shock_Count_Write_Opern? 0x000a 253 252 000 Old_age Always - 0
205 Shock_Rate_Write_Opern? 0x000a 253 252 000 Old_age Always - 0
207 Spin_High_Current? 0x002a 252 252 000 Old_age Always - 0
208 Spin_Buzz? 0x002a 252 252 000 Old_age Always - 0
209 Offline_Seek_Performnce? 0x0024 187 183 000 Old_age Offline - 0
99 Unknown_Attribute? 0x0004 253 253 000 Old_age Offline - 0
100 Unknown_Attribute? 0x0004 253 253 000 Old_age Offline - 0
101 Unknown_Attribute? 0x0004 253 253 000 Old_age Offline - 0

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
No self-tests have been logged. [To run self-tests, use: smartctl -t]

SMART Selective self-test log data structure revision number 1
SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS
1 0 0 Not_testing
2 0 0 Not_testing
3 0 0 Not_testing
4 0 0 Not_testing
5 0 0 Not_testing
Selective self-test flags (0x0):
After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

[root@delirium /]#


Maintenant il reste l'interprétation des informations tel que l'uptime du disque, la température et, pour nous le plus intéressant, les erreurs. Pour cela nous observons surtout les deux dernières colonnes : WHEN_FAILED et RAW_VALUE et la section juste en dessous : SMART Error Log Version: 1 No Errors Logged. Un exemple :

5 Reallocated_Sector_Ct? 0x0033 016 016 063 Pre-fail Always FAILING_NOW 598

Ici on voit que la réallocation des secteurs à échoué. Il faut donc surveiller cette partie. Si le nombre indiqué passe rapidement à des chiffres supérieurs, prenez les mesures nécessaires : faites le backup de vos données et contactez éventuellement le support.

Smartmontool sur debian

L'installation nécessite également les privilèges root. Le nom du package varie selon votre version de debian. L'exemple ci-dessous concerne une unstable. Pour la version livré par OVH il faut utiliser : apt-get install smartsuite. Toutefois, la procédure et les commandes sont identique.

23:19 root@revolution / # apt-get install smartmontools

Lecture des listes de paquets... Fait
Construction de l'arbre des dependances... Fait
Les NOUVEAUX paquets suivants seront installes :
smartmontools
0 mis a jour, 1 nouvellement installes, 0 a enlever et 60 non mis a jour.
Il est necessaire de prendre 222ko dans les archives.
Apres depaquetage, 508ko d'espace disque supplementaires seront utilises.
Reception de : 1 http://ftp.fr.debian.org unstable/main smartmontools 5.32-3 [222kB]
222ko receptionnes en 0s (272ko/s)
Selection du paquet smartmontools precedemment deselectionne.
(Lecture de la base de donnees... 67466 fichiers et repertoires deja installes.)
Depaquetage de smartmontools (a partir de .../smartmontools_5.32-3_i386.deb) ...
Parametrage de smartmontools (5.32-3) ...
Not starting S.M.A.R.T. daemon smartd, disabled via /etc/default/smartmontools


Comme vous pouvez voir, le daemon n'as pas été lancé de suite, il faut encore éditer /etc/default/smartmontools

23:20 root@revolution /# pico /etc/default/smartmontools

Defaults for smartmontools initscript (/etc/init.d/smartmontools)
# This is a POSIX shell fragment

# list of devices you want to explicitly enable S.M.A.R.T. for
# not needed if the device is monitored by smartd
enable_smart="/dev/hda /dev/hdb"

# uncomment to start smartd on system startup
start_smartd=yes

# uncomment to pass additional options to smartd on startup
#smartd_opts="--interval=1800"


Éditez au niveau de enable_smart les disques à surveiller et decommentez system startup. Validez les changements et lancez le daemon :

23:21 root@revolution /# /etc/init.d/smartmontools start
Enabling S.M.A.R.T. for: /dev/hda /dev/hdb.
Starting S.M.A.R.T. daemon: smartd.
23:21 root@revolution /# smartctl -a /dev/hda
smartctl version 5.32 Copyright (C) 2002-4 Bruce Allen


C'est prêt.

Conclusion

Smartmontool est simple d'usage et très complet. Notez que toutefois un tel outil ne remplace pas le plus important : le backup régulier de vos données. OVH vous propose un backup hebdomadaire ou backup incrémental ou l'installation d'un disque de backup USB pour seulement 10€ HT/mois.

Plus de détails sur smartmontool disponibles sur la page officielle en anglais et cette page en français.