« Diagnostic smart d'un disque » : différence entre les versions

Aller à la navigation Aller à la recherche
 
(35 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
[[Category:serveur]]
[[Category:serveur]]
[[Category:desktop]]
[[Category:desktop]]
[[Category:Monitoring‏‎]]


=Activation=
=Activation=
Ligne 92 : Ligne 93 :
</pre>
</pre>


Pour vérifier le status des tests :
Pour vérifier le niveau d'avancement du test en cours, regardez la ligne <code>Self-test execution status</code> de <code>smartctl --capabilities /dev/sda</code>
 
Pour vérifier le résultat des tests terminés :
<pre>smartctl -l selftest /dev/sda</pre>
<pre>smartctl -l selftest /dev/sda</pre>
==Offline data collection==
Si vous regardez en détail la sortie des capabilities de votre disque avec <code>smartctl -c /dev/sda</code>, vous devriez voir des informations ressemblant à ceci :
<pre>
Offline data collection status:  (0x02) Offline data collection activity
                                        was completed without error.
                                        Auto Offline Data Collection: Disabled.
</pre>
Ainsi que
<pre>
Offline data collection
capabilities:                    (0x53) SMART execute Offline immediate.
                                        Auto Offline data collection on/off support.
                                        Suspend Offline collection upon new
                                        command.
                                        No Offline surface scan supported.
                                        Self-test supported.
                                        No Conveyance Self-test supported.
                                        Selective Self-test supported.
</pre>
En dépit de ce nom <code>offline</code> mal choisi se cache en réalité un self-test réalisé au premier plan. Généralement, tous les disques le supportent. Ce test ne génère cependant pas d'entée dans le log des tests de SMART. La plupart des disques réalisent un test de ce type au démarrage (il dure toujours moins de 2 minutes).<br>
Ce test correspond en réalité a une collection des données dites offline, qui permet la mise à jour des attributs SMART qui sont marqués Offline à la colonne UPDATED (<code>smartctl -A</code>).
Ce type de test peu, en théorie, dégrader les performances du disque lorsqu'il est réalisé. Si le mode automatique est activé (<code>Auto Offline Data Collection</code>, le disque le lance de lui même régulièrement. Néanmoins, la majorité des disques savent soit suspendre (capability <code>Suspend Offline collection upon new command</code>) soit interrompre (capability <code>Abort Offline collection upon new command</code>) le test automatique lors d'accès disque, et le reprendre lorsque le disque est inactif.<br>
En cas de doute de performance, sur un ordinateur de bureau, il est possible de désactiver la récupération automatique Offline des données sachant qu'une telle vérification est généralement lancé au démarrage du disque. Pour cela, il faut utiliser la commande <code>smartctl -o off /dev/sda</code>. Sur un serveur (avec un disque tournant donc en permanence), il peut être préférable de la laisser activé.
Vous pouvez aussi lancer manuellement un test offline avec la commande suivante :
<pre>smartctl -t offline /dev/sda</pre>


=Interprétation des attributs=
=Interprétation des attributs=
Ligne 140 : Ligne 173 :


Globalement, retenez que les RAW_VALUE de Current_Pending_Sector et Offline_Uncorrectable et Reallocated_Sector_Ct doivent idéalement être a 0. Si elles augmentent, il faut investiguer la situation.
Globalement, retenez que les RAW_VALUE de Current_Pending_Sector et Offline_Uncorrectable et Reallocated_Sector_Ct doivent idéalement être a 0. Si elles augmentent, il faut investiguer la situation.
Notez que certains attributs SMART, identifiés par le mot <code>Offline</code> à la colonne <code>UPDATED</code>, ne sont mis à jour que lorsque la collecte de données offline a lieu. Généralement, cette collecte à lieu au démarrage du disque, ou de manière régulière si vous activez la collecte automatique des données offline (avec <code>smartctl -o on /dev/sda</code>)


==Current_Pending_Sector, Reallocated_Event_Count et Reallocated_Sector_Ct==
==Current_Pending_Sector, Reallocated_Event_Count et Reallocated_Sector_Ct==
Ligne 149 : Ligne 184 :
** Soit, dès que des données doivent être écrite sur ce secteur, il est immédiatement remappé sur un spare sector, et les données sont écrites sur le spare sector. Dans ce cas, le contrôleur décrémente la valeur <code>Current_Pending_Sector</code>, et incrémente les valeurs <code>Reallocated_Event_Count</code> et <code>Reallocated_Sector_Ct</code>
** Soit, dès que des données doivent être écrite sur ce secteur, il est immédiatement remappé sur un spare sector, et les données sont écrites sur le spare sector. Dans ce cas, le contrôleur décrémente la valeur <code>Current_Pending_Sector</code>, et incrémente les valeurs <code>Reallocated_Event_Count</code> et <code>Reallocated_Sector_Ct</code>


<br>
A noter que, dans tous les cas, après une écriture complète du disque (par exemple si vous le remplissez de 0 avec dd), <code>Current_Pending_Sector</code> devrait toujours revenir à 0 (et éventuellement, selon le mode de fonctionnement, <code>Reallocated_Event_Count</code> et <code>Reallocated_Sector_Ct</code> augmenteront ou non).<br>
A noter que, dans tous les cas, après une écriture complète du disque (par exemple si vous le remplissez de 0 avec dd), <code>Current_Pending_Sector</code> devrait toujours revenir à 0 (et éventuellement, selon le mode de fonctionnement, <code>Reallocated_Event_Count</code> et <code>Reallocated_Sector_Ct</code> augmenteront ou non).<br>
<br>
Si <code>Current_Pending_Sector</code> ne revient pas à 0 après un full-disk-write, c'est relativement inquiétant car cela signifie qu'un secteur est défectueux mais n'arrive pas a être remappé pour une raison quelconque (ou alors bug de firmware).
Si <code>Current_Pending_Sector</code> ne revient pas à 0 après un full-disk-write, c'est relativement inquiétant car cela signifie qu'un secteur est défectueux mais n'arrive pas a être remappé pour une raison quelconque (ou alors bug de firmware).
<br>
Dans l'idéal, si vous voyez Current_Pending_Sector augmenter :
* Débuter par faire un long check smart
* Si l'erreur persiste, faite une lecture complète du disque (par exemple avec badblocks)
* Si l'erreur persiste toujours, sauvegardez les données puis faite un full-disk-write
* Si l'erreur persiste malgré tout, essayez de faire un secure erase puis un full-disk-write : https://grok.lsu.edu/Article.aspx?articleid=16716 https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase https://wiki.archlinux.org/index.php/Solid_state_drive/Memory_cell_clearing
<br>
De manière globale, le risque de voir son disque tomber définitivement en panne, ou provoquer une perte de données importante, dépend non seulement du nombre de pending sectors et reallocated sectors, mais également de la vitesse à laquelle ces chiffres augmentent. Si vous avez 2 secteurs réalloués, mais que ce chiffre reste stable, votre disque pourrait vivre encore plusieurs années. Tout dépend aussi de l'importance que vous accordez aux données stockées.<br>
Enfin, notez qu'un nombre important de secteurs réalloués ralentira votre disque dur (les spare sector ne sont, nécessairement, pas continu avec les secteurs réalloués, donc la tête de lecture doit se déplacer).
=Surveillance automatique avec smartd=
<pre>/dev/sda -a -o on -S on -s (S/../.././02|L/../../6/03) -m mail@domain.tld</pre>
Nous activons la surveillance globale (<code>-a</code>), la collection automatique offline des donnés (<code>-o on</code>), la sauvegarde automatique des attributs (<code>-S on</code>) et lançons avec l'argument <code>-s</code> un <code>short self test (S)</code> tous les jours à 2h du matin, et un <code>long self test (L)</code> tous les samedi à 3h du matin. Si des erreurs sont détectés, un email est envoyé à mail@domain.tld.<br>
Notez que <code>-a</code> correspond à <code>-H -f -t -l error -l selftest -C 197 -U 198</code> avec :
* -H : SMART Health Status
* -f : Monitor for failure of any 'Usage' Attributes
* -t : Report changes in 'Prefailure' Normalized Attributes et Report changes in 'Usage' Normalized Attributes
* -l : Monitor SMART log (error et selftest ici)
* -C 197 : Report if Current Pending Sector count non-zero (attribut 197)
* -U 198 : Report if Offline Uncorrectable count non-zero (attribut 198)
<br>
Notez que pour la collection des données <code>offline</code>, il faut prendre 3 choses en considération :
* Le disque supporte-t-il cette collecte (vérifiez avec <code>smartctl -c</code>)
* Le disque présente-t-il des attributs nécessitant cette collecte (vérifiez avec <code>smartctl -A</code> à la colonne UPDATED)
Si la réponse est non à l'une de ces questions, vous pouvez enlever l'argument <code>-o on</code> :
<pre>/dev/sda -a -S on -s (S/../.././02|L/../../6/03) -m mail@domain.tld</pre>
Si votre disque ne supporte pas le collecte automatique mais a des attributs Offline, ou encore si vous craignez une éventuelle perte de performance du fait du test Offline et préférez le lancer manuellement vous pouvez adapter la regexp suivant l'argument <code>-s</code>. La lettre <code>L</code> identifie un Long Self-Test, la lettre <code>S</code> un Short Self-Test, la lettre <code>C</code> un Conveyance Self-Test, et la lettre <code>O</code> un Offline Immediate Test. Pensez alors également à supprimer l'argument <code>-o on</code>.
<pre>/dev/sda -a -S on -s (S/../.././02|O/../.././03|L/../../6/03) -m mail@domain.tld</pre>
4 242

modifications

Menu de navigation