Gestion et reconstruction du RAID logiciel sur les serveurs en mode legacy boot (BIOS)
Objectif
Le RAID (Redundant Array of Independent Disks) est un ensemble de techniques prévues pour atténuer la perte de données sur un serveur en répliquant celles-ci sur plusieurs disques.
Le niveau RAID par défaut pour les installations de serveurs OVHcloud est RAID 1, ce qui double l'espace occupé par vos données, réduisant ainsi de moitié l'espace disque utilisable.
Ce guide explique comment gérer et reconstruire un RAID logiciel en cas de remplacement d'un disque sur votre serveur en mode legacy boot (BIOS).
Avant de commencer, veuillez noter que ce guide se concentre sur les serveurs dédiés qui utilisent le mode legacy boot (BIOS). Si votre serveur utilise le mode UEFI (cartes mères plus récentes), reportez-vous à ce guide Gestion et reconstruction du RAID logiciel sur les serveurs en mode boot UEFI.
Pour vérifier si un serveur s'exécute en mode BIOS ou en mode UEFI, exécutez la commande suivante :
Prérequis
- Posséder un serveur dédié avec une configuration RAID logiciel.
- Avoir accès à votre serveur via SSH en tant qu'administrateur (sudo).
- Compréhension du RAID et des partitions.
En pratique
Présentation du contenu
Informations de base
Dans une session de ligne de commande, tapez le code suivant pour déterminer l'état actuel du RAID.
Cette commande nous indique que deux périphériques RAID logiciels sont actuellement configurés, md4 étant le plus grand. Le périphérique RAID md4 se compose de deux partitions, appelées nvme0n1p4 et nvme1n1p4.
Le [UU] signifie que tous les disques fonctionnent normalement. Un _ indique un disque défectueux.
Si vous possédez un serveur avec des disques SATA, vous obtenez les résultats suivants :
Bien que cette commande renvoie nos volumes RAID, elle ne nous indique pas la taille des partitions elles-mêmes. Retrouvez cette information avec la commande suivante :
La commande fdisk -l vous permet également d'identifier votre type de partition. Il s’agit d’une information importante pour reconstruire votre RAID en cas de défaillance d’un disque.
Pour les partitions GPT, la ligne 6 affichera : Disklabel type: gpt. Ces informations ne sont visibles que lorsque le serveur est en mode normal.
Toujours en se basant sur les résultats de fdisk -l, on peut voir que /dev/md2 se compose de 888.8GB et /dev/md4 contient 973.5GB.
Alternativement, la commande lsblk offre une vue différente des partitions :
Notez les périphériques, les partitions et les points de montage, car cela est important, en particulier après le remplacement d'un disque. Cela vous permettra de vérifier que les partitions sont correctement montées sur leurs points de montage respectifs sur le nouveau disque.
Dans notre exemple, nous avons :
- Partitions faisant partie de md2 (
/) : sda2 et sdb2. - Partitions faisant partie de md4 (
/home) : sda4 et sdb4. - Partitions swap : sda3 et sdb3.
- Partitions BIOS boot : sda1 et sdb1.
La partition sda5 est un config drive, c'est-à-dire un volume en lecture seule qui fournit au serveur ses données de configuration initiale. Elle n'est lue qu'une seule fois lors du premier démarrage et peut être supprimée ensuite.
Simuler une panne de disque
Nous disposons de toutes les informations nécessaires pour simuler une panne de disque. Dans cet exemple, nous allons faire échouer le disque sda.
Le moyen privilégié pour y parvenir est l’environnement en mode rescue d’OVHcloud.
Redémarrez d'abord le serveur en mode rescue et connectez-vous avec les informations d'identification fournies.
Pour retirer un disque du RAID, la première étape consiste à le marquer comme Failed et à retirer les partitions de leurs matrices RAID respectives.
À partir des résultats ci-dessus, sda se compose de deux partitions en RAID qui sont sda2 et sda4.
Retrait du disque défaillant
Nous commençons par marquer les partitions sda2 et sda4 défectueuses (Failed).
Nous avons maintenant simulé une défaillance du RAID, lorsque nous exécutons la commande cat /proc/mdstat, nous obtenons le résultat suivant :
Comme nous pouvons le voir ci-dessus, le [F] à côté des partitions indique que le disque est défaillant ou défectueux.
Ensuite, nous retirons ces partitions de leurs matrices RAID respectives.
Pour simuler un disque vide, utilisez la commande suivante. Remplacez sda par vos propres valeurs :
Le disque apparaît désormais comme un disque neuf et vide :
Si nous exécutons la commande suivante, nous voyons que notre disque a été correctement « effacé » :
L'état de notre RAID devrait maintenant ressembler à ceci :
Les résultats ci-dessus montrent que seules deux partitions apparaissent désormais dans les matrices RAID. Nous avons réussi à faire échouer le disque sda et nous pouvons procéder à son remplacement.
Pour plus d'informations sur la préparation et la demande de remplacement d'un disque, consultez ce guide.
La commande suivante permet d'avoir plus de détails sur la ou les matrices RAID :
Reconstruire le RAID
Ce processus peut varier selon le système d'exploitation installé sur votre serveur. Nous vous recommandons de consulter la documentation officielle de votre système d'exploitation pour obtenir les commandes appropriées.
Pour la plupart des serveurs en RAID logiciel, après un remplacement de disque, le serveur est capable de démarrer en mode normal (sur le disque sain) pour reconstruire le RAID. Cependant, si le serveur ne parvient pas à démarrer en mode normal, il sera redémarré en mode rescue pour procéder à la reconstruction du RAID.
Reconstruction du RAID en mode normal
Dans notre exemple, nous avons remplacé le disque sda.
Une fois le disque remplacé, nous devons copier la table de partition du disque sain (dans cet exemple, sdb) vers le nouveau (sda).
La commande doit être au format suivant : sgdisk -R /dev/nouveau_disque /dev/disque_sain.
La commande doit être au format suivant : sfdisk -d /dev/disque_sain | sfdisk /dev/nouveau_disque.
Une fois cette opération effectuée, l'étape suivante consiste à attribuer un GUID aléatoire au nouveau disque afin d'éviter tout conflit avec les GUID d'autres disques :
Si le message suivant s'affiche :
Exécutez partprobe. Si vous ne voyez toujours pas les partitions nouvellement créées (par exemple avec lsblk), vous devez redémarrer le serveur avant de continuer.
Ensuite, nous ajoutons les partitions au RAID :
Utilisez la commande suivante pour surveiller la reconstruction du RAID :
Enfin, nous ajoutons un label et montons la partition [SWAP] (le cas échéant).
Pour ajouter un libellé à la partition SWAP :
Ensuite, récupérez les UUID des deux partitions SWAP :
Nous remplaçons l'ancien UUID de la partition SWAP (sda4) par le nouveau dans le fichier /etc/fstab.
Exemple :
D'après les résultats ci-dessus, l'ancien UUID est b7b5dd38-9b51-4282-8f2d-26c65e8d58ec et doit être remplacé par le nouveau b3c9e03a-52f5-4683-81b6-cc10091fcd15.
Assurez-vous de remplacer le bon UUID.
Ensuite, nous vérifions que tout est correctement monté à l'aide de la commande suivante :
Exécutez la commande suivante pour activer la partition SWAP :
Puis rechargez le système à l'aide de la commande suivante :
La reconstruction du RAID est terminée.
Reconstruction du RAID en mode rescue
Si votre serveur ne parvient pas à redémarrer en mode normal après un remplacement de disque, il sera redémarré en mode rescue par notre équipe du datacenter.
Dans cet exemple, nous avons remplacé le disque sdb.
Une fois le disque remplacé, nous devons copier la table de partition du disque sain (dans cet exemple, sda) vers le nouveau (sdb).
La commande doit être au format suivant : sgdisk -R /dev/nouveau_disque /dev/disque_sain
Exemple :
La commande doit être au format suivant : sfdisk -d /dev/disque_sain | sfdisk /dev/nouveau_disque
Exemple :
Une fois cette opération effectuée, l'étape suivante consiste à attribuer un GUID aléatoire au nouveau disque afin d'éviter tout conflit avec les GUID d'autres disques :
Si le message suivant s'affiche :
Exécutez partprobe.
Nous pouvons maintenant reconstruire la matrice RAID en ajoutant les nouvelles partitions (sdb2 et sdb4) :
Utilisez la commande cat /proc/mdstat pour surveiller la reconstruction du RAID :
Enfin, nous ajoutons une étiquette et montons la partition [SWAP] (le cas échéant).
Une fois la reconstruction du RAID terminée, nous montons la partition contenant la racine de notre système d'exploitation sur /mnt. Dans notre exemple, cette partition est md2.
Nous ajoutons le label à notre partition swap avec la commande :
Montez ensuite les répertoires suivants pour que l'environnement chroot fonctionne correctement :
Ensuite, nous accédons à l'environnement chroot :
Nous récupérons les UUID des deux partitions SWAP :
Exemple :
Ensuite, nous remplaçons l'ancien UUID de la partition SWAP (sdb4) par le nouveau dans /etc/fstab :
Exemple :
Dans notre exemple ci-dessus, l'UUID à remplacer est d6af33cf-fc15-4060-a43c-cb3b5537f58a par le nouveau b3c9e03a-52f5-4683-81b6-cc10091fcd15.
Assurez-vous de remplacer le bon UUID.
Ensuite, nous nous assurons que tout est correctement monté :
Activez la partition SWAP avec la commande suivante :
Nous quittons l'environnement chroot avec exit et rechargeons le système :
Nous démontons tous les disques :
La reconstruction du RAID est terminée. Redémarrez le serveur en mode normal.
Aller plus loin
Remplacement à chaud - RAID logiciel
Remplacement à chaud - RAID Matériel
Pour des prestations spécialisées (référencement, développement, etc), contactez les partenaires OVHcloud.
Si vous souhaitez bénéficier d'une assistance à l'usage et à la configuration de vos solutions OVHcloud, nous vous proposons de consulter nos différentes offres de support.
Si vous avez besoin d'une formation ou d'une assistance technique pour la mise en oeuvre de nos solutions, contactez votre commercial ou cliquez sur ce lien pour obtenir un devis et demander une analyse personnalisée de votre projet à nos experts de l’équipe Professional Services.
Échangez avec notre communauté d'utilisateurs.