Recherche


imprimer pdf
Comment vérifier l'état de son disque dur ?

Introduction

Le disque dur est un organe central de votre serveur dédié et même de petites détériorations peuvent avoir beaucoup d'incidence : perte de données, lenteurs sur vos sites, comportements étranges. Ce guide propose 3 moyens de vérifier l'état du disque dur et de pré-diagnostiquer un éventuel problème qui pourrait conduire au changement préventif du disque.

Procédure

Toutes ces vérifications impliquent d'être connecté en SSH sur votre serveur. Pour plus de détails : SshSurServeurDedie.

  • Les blocs défectueux

La commande badblocks permet d'établir la liste des blocs susceptibles d'être défectueux sur une partition. La commande prend le nom d'une partition en argument. Sur un serveur en Redhat, /dev/hda1 pour la partition / et /dev/hda2 pour /home.

Ici, nous voyons qu'un certains nombre de blocs sont suspects sur la partition racine :

[root@julien /]# badblocks /dev/hda1
1014224
1014225
1014226
1014227
1014228
1014229
1014230
1014231
1014232
1014233
1014234
1014235
1014236
1014237
1014238
1014239
1704833


  • Les logs du noyau

Le noyau Linux conserve les logs de tout ce qui touche aux périphériques et notamment les disques durs. Il est donc très facile de retrouver les erreurs retournées par un disque dur lors de l'accès à un bloc défectueux.

[root@julien /]# dmesg | grep UncorrectableError?
hda: dma_intr: error=0x40 { UncorrectableError? }, LBAsect=2028538, sector=2028511
hda: dma_intr: error=0x40 { UncorrectableError? }, LBAsect=2028538, sector=2028519
hda: dma_intr: error=0x40 { UncorrectableError? }, LBAsect=2028538, sector=2028527
hda: dma_intr: error=0x40 { UncorrectableError? }, LBAsect=2028538, sector=2028535
hda: dma_intr: error=0x40 { UncorrectableError? }, LBAsect=2028538, sector=2028511
hda: dma_intr: error=0x40 { UncorrectableError? }, LBAsect=2028538, sector=2028519
hda: dma_intr: error=0x40 { UncorrectableError? }, LBAsect=2028538, sector=2028527
hda: dma_intr: error=0x40 { UncorrectableError? }, LBAsect=2028538, sector=2028535
hda: dma_intr: error=0x40 { UncorrectableError? }, LBAsect=2028538, sector=2028535
hda: dma_intr: error=0x40 { UncorrectableError? }, LBAsect=2028538, sector=2028535
hda: dma_intr: error=0x40 { UncorrectableError? }, LBAsect=2028538, sector=2028535
hda: dma_intr: error=0x40 { UncorrectableError? }, LBAsect=2028538, sector=2028535
hda: dma_intr: error=0x40 { UncorrectableError? }, LBAsect=2031694, sector=2031681
hda: dma_intr: error=0x40 { UncorrectableError? }, LBAsect=3409734, sector=3409733
hda: dma_intr: error=0x40 { UncorrectableError? }, LBAsect=3409738, sector=3409735
hda: dma_intr: error=0x40 { UncorrectableError? }, LBAsect=3409738, sector=3409735
hda: dma_intr: error=0x40 { UncorrectableError? }, LBAsect=3409738, sector=3409735



D'après le résultat, nous voyons qu'un certains nombre de blocs ont posé problème lors de l'accès au disque. D'autres erreurs peuvent également apparaître (par exemple Time Out) mais la situation n'est vraiment critique que lorsqu'il s'agit d'une Uncorrectable Error.


Si les erreurs ne sont pas récentes, vous pouvez également faire une recherche dans toutes les logs disponible à l'aide de cette commande :

[ root@julien /]# grep UncorrectableError? /var/log/messages *
/var/log/messages:Oct 5 11:14:20 julien kernel: hda: dma_intr: error=0x40 { Uncorrectable Error }, LBAsect=2028538, sector=2028511
/var/log/messages:Oct 5 11:14:25 julien kernel: hda: dma_intr: error=0x40 { Uncorrectable Error }, LBAsect=2028538, sector=2028519
/var/log/messages:Oct 5 11:14:30 julien kernel: hda: dma_intr: error=0x40 { Uncorrectable Error }, LBAsect=2028538, sector=2028527
/var/log/messages:Oct 5 11:14:35 julien kernel: hda: dma_intr: error=0x40 { Uncorrectable Error }, LBAsect=2028538, sector=2028535
/var/log/messages:Oct 5 11:14:59 julien kernel: hda: dma_intr: error=0x40 {Uncorrectable Erro }, LBAsect=2028538, sector=2028511
/var/log/messages:Oct 5 11:15:28 julien kernel: hda: dma_intr: error=0x40 { Uncorrectable Error , LBAsect=2028538, sector=2028519



  • Les erreurs d'entrée/sortie

En utilisation normale de votre serveur (compilation d'une application, compression/décompression d'un fichier...), vous obtiendrez ce genre d'erreur lors de la lecture ou écriture sur certaines parties endommagées du disque :

end_request: I/O error, dev hda, sector 2028535
Buffer I/O error on device hda1, logical block 253559


Les erreurs d'Input/Output (ou entrée/sortie) ne sont généralement pas un indicateur de bonne santé du disque.


Conclusion

Si vous obtenez des résultats similaires sur l'un de ces tests, il y a de fortes chances que votre disque présente de gros problèmes dans un futur proche. Il est alors fortement recommandé de sauvegarder le contenu de votre disque et de contacter notre support pour plannifier rapidement le changement du disque dur. Dans ce cas, merci de fournir les erreurs que vous aurez relevé sur votre serveur.