La configuration : deux disques physiques d'un RAID 1 (miroir) seront remplacés par deux disques plus volumineux, nous effectuerons un remplacement "à chaud" directement à partir du système d'exploitation en cours d'exécution, sans qu'il soit nécessaire de démarrer à partir d'un support de démarrage externe. Ce guide a été testé sur les distributions Debian 6, 7, 8 32 et 64 bits.
Nous supposons que les deux disques sont partitionnés avec une partition racine et une partition d'échange et que ces deux partitions constituent les deux périphériques RAID md0 et md1 :
- Les partitions sda1 et sdb1 qui composent le volume md0 (racine)
- Les partitions sda2 et sdb2 qui composent le volume md1 (swap)
Tout d'abord, faites une sauvegarde de toutes vos données, même si le guide a été testé plusieurs fois, la malchance est toujours là... Nous fournissons (à mon avis, la meilleure solution) pour un remplacement, nous déconnectons l'un des deux anciens disques avec la machine éteinte, puis connectez un nouveau disque temporaire, puis resynchronisez, nous aurons donc toujours le fonctionnement RAID et un seul disque (avec RAID en mode dégradé) et vous pouvez toujours recréer un RAID fonctionnel si quelque chose ne fonctionne pas. Pour ce faire, tapez simplement ces commandes après avoir remplacé le lecteur plein par celui vide :
sfdisk -d /dev/hd source | sfdisk —force /dev/hd vide
mdadm —zero-superblock /dev/hd vide
mdadm —add /dev/md(raid) /dev/hd(vide)
Répétez les deux dernières lignes pour chaque RAID/partition du système
(par exemple :
mdadm -add /dev/md0 /dev/sdb1
alors
mdadm -add /dev/md1 /dev/sdb2
etc..
De cette façon, nous avons forcé la table de partition du lecteur source vers la cible vide, puis l'avons ajoutée au RAID.
Il faut évidemment attendre la fin du processus de reconstruction, suivi par :
regarder chat / pro / mdstat
(Et bien sûr CTRL + C pour quitter le processus)
Arrêtez la machine à ce stade, nous ajoutons deux nouveaux disques, qui deviennent respectivement sdc et sdd, puis démarrons le serveur et lançons la commande :
fdisk -l
Le résultat devrait ressembler à ceci :
Disque /dev/sda :……Mo , ………….Bytes
… têtes, …secteurs/pistes , ….. cylindres
Taille d'E/S (minimale/optimale) :512 octets / 512 octets
Disque :identifiant :………..
Démarrage de l'appareil, identifiant de fin de bloc Système/dev/sda2 970 1044 602437+ fd Détection automatique des raids Linux/dev/sda2 1 969 7783461 fd Détection automatique des raids Linux……/dev/sdb1 * 1 969 7783461 fd Détection automatique des raids Linux/dev/sdb2 970 1044 602437+ fd Détection automatique des raids Linux……Disque /dev/sdc :…Mo, …….Octets……Disque /dev/sdd :…Mb, …….Bytes……Disque /dev/md0 :…Mo, …….Octets…...Disque /dev/md1 :…Mo, …….Octets
Maintenant, tapez :
fdisk /dev/sdcnous créons une nouvelle partition avec le n commande,
nous sélectionnons p partition principale,
nous sélectionnons le numéro de partition (1 ,2,3,etc...),
nous sélectionnons le cylindre de départ (1 ),
on sélectionne la taille de la partition primaire en tapant le + symbole suivi de la taille en Go et Go à partir de lettres (par exemple :+480 Go )
nous le rendons amorçable avec la commande a , en sélectionnant le même nombre de partitions.
nous changeons l'ID de la partition dans "fd " (Linux Raid Autodetect) avec t , et en écrivant sous forme de code hexadécimal, juste "fd "
Ensuite, nous répétons TOUTES les commandes pour la deuxième partition (la partition sera le swap).
Nous enregistrerons les modifications avec w.
Bien évidemment, faites attention à la taille des cloisons. La meilleure solution consiste à soustraire la taille d'échange actuelle du total de l'espace libre pour créer la partition de travail avec l'espace le plus large possible.
Nous allons maintenant effectuer exactement les mêmes opérations sur le lecteur SDD, en veillant à créer la même partition avec les mêmes tailles que celles que nous avons utilisées précédemment.
À ce stade, nous effectuons un échange entre le premier disque "plein" et le premier nouveau disque, en ajoutant ce dernier comme réserve au RAID :
mdadm -add /dev/md0 /dev/sdc1Ensuite, nous devrions vérifier la situation du disque RAID, cela devrait ressembler à ceci :
md0 :raid actif 1 sdc1[S] sda1[2] sdb1[3]………bloque super 1.2 [2/2] [UU]
Ensuite, nous insérons le lecteur d'origine :
mdadm -f /dev/md0 /dev/sda1et supprimez-le du RAID :
mdadm -r /dev/md0 /dev/sda1Maintenant, nous vérifions que la reconstruction a démarré automatiquement et attendons qu'elle soit terminée en surveillant à nouveau avec :
regarder le chat /proc/mdstat(Et bien sûr CTRL + C pour quitter le processus)
A la fin on installe le bootloader (grub) sur le nouveau disque (/dev/sdc):
grub-install /dev/sdcIl suffit de répéter le même processus pour chacune des partitions système :
mdadm -add /dev/md0 /dev/sdd1mdadm -f /dev/md0 /dev/sdb1mdadm -r /dev/md0 /dev/sdb1Et nous attendons encore que la reconstruction soit terminée :
regarder le chat /proc/mdstat(Et bien sûr CTRL + C pour quitter le processus)
Procédez ensuite de la même manière pour la première partition swap de deux nouveaux disques :
mdadm -add /dev/md1 /dev/sdc2mdadm -f /dev/md0 /dev/sda2mdadm -r /dev/md0 /dev/sda2Attendez encore jusqu'à ce qu'il ait terminé la reconstruction :
regarder le chat /proc/mdstat(Et bien sûr CTRL + C pour quitter le processus)
Et le dernier disque :
mdadm -add /dev/md1 /dev/sdd2mdadm -f /dev/md0 /dev/sdb2mdadm -r /dev/md0 /dev/sdb2Attendez encore jusqu'à ce qu'il ait terminé la reconstruction :
regarder le chat /proc/mdstat(Et bien sûr CTRL + C pour quitter le processus)
À ce stade, réinstallez le chargeur de démarrage sur les deux disques :
grub-install /dev/sdcgrub-install /dev/sddÀ ce stade, nous nous retrouvons avec l'ancien disque expulsé du RAID, et les nouveaux disques sont installés et opérationnels. Mais avec l'espace utilisable en dessous du maximum autorisé par la partition
Ensuite, nous procédons à l'agrandissement de la partition et à sa vérification, comme d'habitude pour les deux volumes :
mdadm —grow —raid-devices=2 /dev/md0mdadm -A —scanmdadm —grow /dev/md0 —size=maxmdadm —examine —scane2fsck -f /dev(md0resize2fs /dev/md0
mdadm —grow —raid-devices=2 /dev/md1mdadm -A —scanmdadm —grow /dev/md1 —size=maxmdadm —examine —scane2fsck -f /dev/md1resize2fs /dev/md1
Lorsque vous avez terminé, éteignez le PC, dissociez les anciens disques et redémarrez la machine.
Même si le redémarrage fonctionnait, nous reconstruisons le grub pour des raisons de sécurité puisque le lancement du nouveau disque aura pris le nom de l'ancien (sda et sdb) :
mv /boot/grub/device.map/boot/grub/device.map.oldgrub-mkdevicemapupdate-grub2 &&grub-install /dev/sda &&grub-install /dev/sdb
Si vous voulez être absolument sûr que la nouvelle configuration RAID fonctionne, éteignez la machine, déconnectez l'un des nouveaux disques et recommencez. Il devrait démarrer sans problème. Ensuite, éteignez à nouveau, connectez le lecteur et démarrez. Vous pouvez utiliser cette commande pour vérifier l'état du raid.
regarder le chat /proc/mdstat(Et bien sûr CTRL + C pour quitter le processus)
Nous avons terminé le travail, nous célébrons .