Si vous recevez une notification signalant une défaillance de disque dur ou si vous constatez des anomalies au niveau du système, il est nécessaire d'agir rapidement afin de rétablir la redondance de votre matrice RAID. Dans cet article, vous apprendrez comment identifier un disque dur défectueux sur un serveur dédié Linux équipé d'un RAID logiciel et comment préparer le serveur en vue du remplacement du disque défectueux. Dans cet article, vous apprendrez comment identifier un disque dur défectueux sur un Serveur Dédié Linux ou un Serveur Bare Metal Linux équipé d'un RAID logiciel, et comment préparer le Serveur en vue du remplacement du disque défectueux.

Remarque

Cet article suppose des connaissances de base en administration de serveurs sous Linux. Si vous avez des questions concernant le remplacement d'un disque dur défectueux ou si vous avez besoin d'aide, veuillez prendre contact avec le Service Client IONOS. Vous trouverez ses coordonnées sur la page suivante : Service Client IONOS

Afin de garantir une fiabilité maximale, il est nécessaire de surveiller le RAID logiciel de votre serveur. Si vous recevez un e-mail de notification signalant un disque dur défectueux ou si vous constatez vous-même une défaillance d’un disque dur, vous devez identifier le disque dur défectueux et préparer le serveur en vue du remplacement du disque défectueux. Prenez ensuite contact avec le Service Client IONOS afin d'organiser le remplacement du disque dur.

Attention

Les systèmes RAID offrent une meilleure fiabilité et/ou une vitesse plus élevée. Ils ne remplacent toutefois pas les sauvegardes régulières. Afin d'éviter toute perte de données, nous vous recommandons d'effectuer régulièrement une sauvegarde. Veillez également à effectuer une sauvegarde avant de suivre les étapes décrites ci-dessous afin de garantir la sécurité de vos données.

Vous trouverez plus d'informations sur la création de sauvegardes dans la catégorie suivante du Centre d'Assistance IONOS : Solutions de sauvegarde
 

Vérifier l'état du RAID logiciel

Interprétation du résultat

RAID intact : un RAID opérationnel est indiqué par l'état [UU] (pour le RAID 1) ou [UUUU] (pour le RAID 5/6 avec 4 disques durs). Chaque « U » signifie « Up » (actif).

Périphérique défectueux/manquant : un [_U] ou [U_] indique qu'un disque dur est manquant ou n'est pas synchronisé.

Marquage « faulty » : un (F) derrière un périphérique (par exemple sdb1[2](F)) signifie que le système a déjà marqué le support de données comme défectueux (« faulty ») au niveau logiciel.

Dans les configurations comportant 2 SSD (système d'exploitation) et des disques durs supplémentaires (données), vous verrez plusieurs périphériques md :

  • md1, md2, md127 ou similaire (souvent RAID 1 pour le démarrage/racine (Boot/root))
  • md11 ou similaire (souvent RAID 5 ou 6 pour les données)

Vérifiez toutes les sections de la sortie pour détecter l’absence de « Us » ou de la balise « (F) ». Voici un exemple de RAID intact :

[root@localhost ~]# cat /proc/mdstat

Personalities : [raid1]
read_ahead 1024 sectors
md2 : active raid1 sda3[1] sdb3[0]
262016 blocks [2/2] [UU]

md1 : active raid1 sda2[1] sdb2[0]
119684160 blocks [2/2] [UU]

md0 : active raid1 sda1[1] sdb1[0]
102208 blocks [2/2] [UU]

unused devices: <none>

L'exemple ci-dessus présente trois périphériques multiples ou matrices RAID (md0, md1, md2). Pour chacun de ces disques logiques, le système indique les partitions qui le composent et les disques physiques sur lesquels ces partitions se trouvent. Le disque logique md0 est composé des partitions sda1 et sdb1. Dans la ligne qui figure sous chaque disque logique, l'état de chaque partition est indiqué à la fin de la ligne entre crochets.

Dans l'exemple suivant, une seule partition, située sur le disque dur sda, est montée pour chacun des lecteurs logiques. La partition correspondante, située sur le deuxième disque dur sdb, n’est pas montée. Vous pouvez également le constater grâce à la mention [_U]. Les partitions non montées du disque dur sdb indiquent qu’une erreur ou un défaut est présent sur ce disque dur.

[root@localhost ~]# cat /proc/mdstat

Personalities : [raid1]
read_ahead 1024 sectors
md0 : active raid1 sda1[1]
102208 blocks [2/1] [_U]

md1 : active raid1 sda2[1]
119684160 blocks [2/1] [_U]

md2 : active raid1 sda3[1]
262016 blocks [2/1] [_U]

unused devices: <none>

Dans l'exemple suivant, un disque dur défectueux est toujours intégré au RAID. Cela se reconnaît à l'information (F) affichée pour md1.

[root@localhost ~]# cat /proc/mdstat

Personalities : [raid1]
md3 : active raid1 sda3[0] sdb3[2](F)
     439553856 blocks super 1.0 [2/1] [U_]
     bitmap: 1/4 pages [4KB], 65536KB chunk

md1 : active raid1 sdb1[2](F) sda1[0]
     19529600 blocks super 1.0 [2/1] [U_]

unused devices: <none>

Diagnostic des pannes de disque dur

Pour détecter les défaillances des disques durs, nous vous recommandons de procéder comme suit :

Installez le programme Smartctl. Smartctl est un programme en ligne de commande permettant de surveiller les disques durs à l'aide de la technologie SMART (Self-Monitoring, Analysis and Reporting Technology). Ce programme vous permet de vérifier si un disque dur est défectueux. Il fait partie de la suite Smartmontools. Les Smartmontools sont disponibles sous forme de paquets pour de nombreuses distributions Linux. Vous trouverez de plus amples informations sur la page suivante : Smartmontools Packages

Remarque

Dans certains cas, il peut arriver qu'une défaillance du disque dur ne puisse pas être détectée à l'aide des valeurs SMART. C'est pourquoi nous vous recommandons d'analyser également le fichier journal /var/log/messages.

Installer Smartctl
  • Pour installer smartctl, connectez-vous au serveur en tant qu'administrateur.

  • Installez les paquets nécessaires en fonction de votre distribution :

    AlmaLinux 9 et 10 ainsi que Rocky Linux 9 et 10 :

    dnf install smartmontools

    Debian et Ubuntu :

    sudo apt-get install smartmontools

 
Afficher les informations sur le disque dur

Pour afficher la liste des disques durs, saisissez la commande suivante :

smartctl --scan

Exemple :

[root@localhost ~]# smartctl --scan

/dev/sda -d scsi # /dev/sda, périphérique SCSI
/dev/sdb -d scsi # /dev/sdb, périphérique SCSI

Pour obtenir des informations détaillées permettant de diagnostiquer les erreurs, saisissez la commande suivante :

smartctl -iHAl error [NOM DU DISQUE DUR]

Remarque

Veuillez noter que les interfaces des périphériques doivent être indiquées au format suivant :

Périphériques SCSI / SATA :

smartctl -iHAl error /dev/sd[a-z]

Exemple :

[root@localhost ~] # smartctl -iHAl error /dev/sda

Une fois la commande saisie, les informations suivantes s'affichent, par exemple :


			[root@localhost ~]# smartctl -iHAl error /dev/sda
smartctl 6.5 2016-05-07 r4318 [x86_64-linux-3.10.0-862.14.4.el7.x86_64] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Device Model:     HGST HUS722T1TALA604
Serial Number:    WMC6N0K2RW66
LU WWN Device Id: 5 0014ee 004722db0
Firmware Version: RAGNWA07
User Capacity:    1,000,204,886,016 bytes [1.00 TB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    7200 rpm
Form Factor:      3.5 inches
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   ACS-3 T13/2161-D revision 5
SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Fri May  3 07:45:14 2019 UTC
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

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      0
  3 Spin_Up_Time            0x0027   183   183   021    Pre-fail  Always      3833
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always      9
  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   097   097   000    Old_age   Always      2560
 10 Spin_Retry_Count        0x0032   100   253   000    Old_age   Always      0
 11 Calibration_Retry_Count 0x0032   100   253   000    Old_age   Always      0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always      9
 16 Unknown_Attribute       0x0022   000   200   000    Old_age   Always      26802171994
183 Runtime_Bad_Block       0x0032   100   100   000    Old_age   Always      0
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always      4
193 Load_Cycle_Count        0x0032   200   200   000    Old_age   Always      67
194 Temperature_Celsius     0x0022   116   111   000    Old_age   Always      31
196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always      0
197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always      0
198 Offline_Uncorrectable   0x0030   100   253   000    Old_age   Offline     0
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always      0
200 Multi_Zone_Error_Rate   0x0008   100   253   000    Old_age   Offline     0

SMART Error Log Version: 1
No Errors Logged
		

Interprétation des paramètres et diagnostic des erreurs

Analysez les informations détaillées que vous avez obtenues à l'aide de la commande
smartctl -iHAl error [NOM DU DISQUE DUR]. La première section contient des informations qui vous permettent d'identifier le disque dur :


						=== START OF INFORMATION SECTION ===
Device Model:     HGST HUS722T1TALA604
Serial Number:    WMC6N0K2RW66
LU WWN Device Id: 5 0014ee 004722db0
Firmware Version: RAGNWA07
User Capacity:    1,000,204,886,016 bytes [1.00 TB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    7200 rpm
Form Factor:      3.5 inches
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   ACS-3 T13/2161-D revision 5
SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Fri May  3 07:45:14 2019 UTC
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
		

Cette section affiche notamment le modèle et le numéro de série du disque dur testé.

Dans la deuxième section, Smartctl évalue l'état actuel du disque dur. Si la valeur affichée n'est pas « PASSED », mais par exemple « Failed » ou « UNKNOWN », vous devez faire remplacer le disque dur concerné dans les plus brefs délais.


			
			=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
		

La troisième section présente en détail les valeurs SMART déterminées. À côté de chaque valeur actuelle exprimée en pourcentage (VALUE), figurent la pire valeur jamais mesurée (WORST) et la valeur seuil correspondante (THRESH). Si la valeur actuelle exprimée en pourcentage (VALUE) ou la pire valeur jamais mesurée (WORST) dépasse la valeur seuil (THRESH), un avertissement SMART s'affiche dans la colonne WHEN_FAILED (par exemple, FAILING_NOW).


					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      0
  3 Spin_Up_Time            0x0027   183   183   021    Pre-fail  Always      3833
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always      9
  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   097   097   000    Old_age   Always      2560
 10 Spin_Retry_Count        0x0032   100   253   000    Old_age   Always      0
 11 Calibration_Retry_Count 0x0032   100   253   000    Old_age   Always      0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always      9
 16 Unknown_Attribute       0x0022   000   200   000    Old_age   Always      26802171994
183 Runtime_Bad_Block       0x0032   100   100   000    Old_age   Always      0
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always      4
193 Load_Cycle_Count        0x0032   200   200   000    Old_age   Always      67
194 Temperature_Celsius     0x0022   116   111   000    Old_age   Always      31
196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always      0
197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always      0
198 Offline_Uncorrectable   0x0030   100   253   000    Old_age   Offline     0
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always      0
200 Multi_Zone_Error_Rate   0x0008   100   253   000    Old_age   Offline     0
		

Les paramètres suivants peuvent indiquer une défaillance imminente du disque dur avant même qu'un avertissement SMART ne s'affiche :

Reallocated_Sector_Ct : ceparamètre indique le nombre de secteurs qui ont déjà été réaffectés en raison d'erreurs de lecture. Lorsqu'un secteur ne peut plus être lu, écrit ou vérifié correctement, le contrôleur lui attribue automatiquement un secteur de remplacement provenant de la zone de réserve du disque dur. Le secteur d'origine, défectueux, est marqué de manière permanente comme défectueux et n'est plus utilisé.

Remarque

Une valeur supérieure à zéro n’est pas nécessairement préoccupante, à condition qu’elle reste stable sur une longue période. Cependant, un indicateur critique d’une défaillance imminente du disque dur est un nombre sans cesse croissant de secteurs réaffectés. Afin de détecter un défaut à un stade précoce, vous devez donc consigner régulièrement cette valeur et, en cas d’augmentation continue, procéder immédiatement au remplacement du disque.

Current_Pending_Sector : indique le nombre de secteurs instables en attente de remappage. Lorsqu'un secteur ne peut pas être lu ou écrit correctement, il se voit d'abord attribuer le statut « Current Pending Sector ». Dans cet état, le secteur n'est pas réaffecté, car les données qu'il contient sont inconnues. Ce n'est qu'après plusieurs tentatives infructueuses de lecture ou d'écriture qu'un secteur de remplacement est attribué et que le secteur défectueux est définitivement marqué comme illisible. La valeur « Current_Pending_Sector » est un indicateur important de la nécessité de remplacer un disque dur. Si cette valeur est différente de zéro, cela signifie souvent qu’une panne du disque dur est imminente.

Offline_Uncorrectable : indique le nombre d’erreurs non corrigibles lors des accès en écriture et en lecture aux secteurs.

La dernière section concerne le journal interne du disque dur. Les erreurs y sont consignées lorsque les tâches du Serveur n’ont pas été traitées correctement par le disque dur. Si ce paragraphe affiche un nombre d’erreurs d’au moins deux chiffres, vous devez faire remplacer le disque dur dès que possible.

Consulter les informations détaillées concernant le remplacement du disque dur

Afin de pouvoir procéder au remplacement du disque dur défectueux, les informations suivantes sont nécessaires :

  • Identifiant du disque dur dans le RAID (par exemple, sda)

  • Numéro de série

  • Modèle

  • Fichier journal (facultatif)

Créer un journal SMART

Pour générer un journal SMART complet, saisissez la commande suivante :

smartctl -x [NOM DU DISQUE DUR]

Exemple :

[root@localhost ~]# smartctl -x /dev/sda

Si le disque dur n'est plus accessible via smartctl, vous pouvez récupérer les informations nécessaires à l'aide du programme hdparm. Pour installer hdparm :

AlmaLinux 9 et AlmaLinux 10, Rocky Linux 9 et Rocky Linux 10

dnf -y install hdparm

Ubuntu/Debian

sudo apt-get update
sudo apt-get install hdparm

Saisissez ensuite la commande suivante pour afficher les informations nécessaires au remplacement du disque dur :

hdparm -i /dev/sda

Remarques

  • Si le journal SMART a été généré comme décrit ci-dessus, ces informations suffisent. Vous pouvez ensuite procéder au remplacement du disque dur défectueux. Pour ce faire, veuillez prendre contact avec le Service Client.

  • Si vous ne parvenez pas à obtenir le numéro de série du disque dur défectueux à l'aide de Smartctl, vous pouvez également communiquer au service client le numéro de série du ou des disques durs en bon état.

Préparer le serveur en vue du remplacement du disque dur

Dans l'exemple suivant, on part du principe que le deuxième disque dur (sdb) doit être remplacé. Dans le cadre de la vérification de l'état, l'état suivant du RAID logiciel s'affiche par exemple :

[root@localhost ~]# cat /proc/mdstat

Personalities : [raid1]
md3 : active raid1 sda3[0] sdb3[2]
      439553856 blocks super 1.0 [2/1] [UU]

md1 : active raid1 sdb1[2] sda1[0]
      19529600 blocks super 1.0 [2/1] [UU]

unused devices: <none>

Dans cet exemple, le deuxième disque dur (sdb) est toujours intégré au RAID et donc toujours en service.

Marquer manuellement le périphérique RAID comme « faulty » pour le retirer du RAID

Pour retirer le disque dur défectueux du RAID, marquez-le comme « faulty ». Pour ce faire, saisissez la commande suivante :

[root@localhost ~]# mdadm CHEMIN_VERS_LE_RAID -f CHEMIN_VERS_LE_DISQUE

Dans les exemples ci-dessous, les disques durs sdb3 et sdb1 sont respectivement marqués comme défectueux :

[root@localhost ~]# mdadm /dev/md3 -f /dev/sdb3
mdadm: set /dev/sdb3 faulty in /dev/md3

[root@localhost ~]# mdadm /dev/md1 -f /dev/sdb1
mdadm: set /dev/sdb1 faulty in /dev/md1

Une fois la commande exécutée, le RAID présente l'état suivant :

[root@localhost ~]# cat /proc/mdstat

Personalities : [raid1]
md3 : active raid1 sda3[0] sdb3[2](F)
      439553856 blocks super 1.0 [2/1] [U_]

md1 : active raid1 sdb1[2](F) sda1[0]
      19529600 blocks super 1.0 [2/1] [U_]

unused devices: <none>

Supprimer une partition du RAID

Pour supprimer une partition du RAID, saisissez la commande suivante :

[root@localhost ~]# mdadm -r /CHEMIN_VERS_LE_RAID /CHEMIN_VERS_LE_DISQUE

Dans les exemples ci-dessous, les disques durs sdb3 et sdb1 sont respectivement retirés des matrices RAID md3 et md1 :

[root@localhost ~]# mdadm -r /dev/md3 /dev/sdb3
mdadm: hot removed /dev/sdb3 from /dev/md3

[root@localhost ~]# mdadm -r /dev/md1 /dev/sdb1
mdadm: hot removed /dev/sdb1 from /dev/md1

Vérifiez ensuite l'état du RAID. Dans cet exemple, le RAID préparé pour le remplacement des disques durs présente l'état final suivant :

[root@localhost ~]# cat /proc/mdstat

Personalities : [raid1] 
md3 : active raid1 sda3[0]
      439553856 blocks super 1.0 [2/1] [U_]

md1 : active raid1 sda1[0]
      19529600 blocks super 1.0 [2/1] [U_]

unused devices: <none>

Vérifier les partitions Swap utilisées

Vérifiez quelles partitions Swap sont utilisées par le système d'exploitation. Pour cela, saisissez la commande suivante :

[root@localhost ~]# cat /proc/swaps

Filename                Type        Size      Used   Priority
/dev/sda2               partition   9765884    0    -1
/dev/sdb2               partition   9765884    0    -2

Vous pouvez également vérifier quelles partitions de swap sont définies dans fstab en saisissant la commande suivante :

[root@localhost ~]# grep swap /etc/fstab
/dev/sda2    none        swap    sw             
/dev/sdb2    none        swap    sw

Désactiver la partition Swap sur le périphérique défectueux

Désactivez la partition Swap sur le disque dur défectueux afin de pouvoir le remplacer. Pour ce faire, saisissez la commande suivante :

[root@localhost ~]# swapoff CHEMIN_VERS_LA_PARTITION

Exemple :

[root@localhost ~]# swapoff /dev/sdb2

Remarque

Si la partition Swap du disque dur défectueux n'est pas désactivée et que le disque dur est remplacé, la partition Swap se voit attribuer le statut « deleted » dans /proc/swaps.

Organiser le remplacement du disque dur

Vous pouvez désormais procéder au remplacement du disque dur défectueux. Pour ce faire, veuillez prendre contact avec le Service Client IONOS. Vous trouverez ses coordonnées sur la page suivante : Service Client IONOS

Étapes à suivre après le remplacement du disque dur

Après avoir remplacé le disque dur défectueux, vous devez reconstruire le RAID logiciel. Pour plus d'informations sur la reconstruction d'un RAID logiciel, consultez l'article suivant du Centre d'Assistance : Reconstruire un RAID logiciel (Linux)