Presentation

J’ai eu pendant environ 3 ou 4 ans une baie raid1 composée de deux disques de 8 To qui est presque à moitié pleine. Pendant ce temps, j’ai acheté un autre lecteur de 8 To et je l’ai utilisé uniquement pour les sauvegardes de VM et de conteneurs de mon hyperviseur. J’ai remarqué que la sauvegarde telle que configurée ne dépasse jamais les 300 Go donc afin d’augmenter les performances, l’espace utilisé et la sécurité j’ai cherché comment passer de RAID1 à RAID 5.

Ce que j’ai trouvé, c’est principalement comment créer une nouvelle matrice RAID, et il n’est pas recommandé d’essayer cette conversion avec des données sur les disques car le risque de perdre toutes les données est énorme. Puis un jour j’ai trouvé ça :

TODO Étape 1 [100%]:

J’ai donc commencé à nettoyer et à faire des copies de tous les éléments importants que j’avais sur mon RAID1. J’ai créé une liste de contrôle par ls /mnt/Public (c’est le nom du lecteur partagé) pour m’aider à vérifier chaque dossier.

  • Archives [2/2]

    • nettoyé
    • sauvegardé
  • Backups [2/2]

    • nettoyé
    • sauvegardé
  • Documents [2/2]

    • nettoyé
    • sauvegardé

Etc…

TODO Étape 2 préparer [100%]

Ensuite, le gros du processus. Tout d’abord, arrêtez la matrice RAID et convertissez-la en une matrice RAID51 dégradée. Cette étape prendra un certain temps car les données seront redistribuées par le nouvel algorithme de distribution. Pour moi, il a fallu 1200 minutes ou 20 heures pour terminer.

Il y a eu quelques irrégularités dans le processus et j’ai trouvé des articles2 qui m’ont aidé à mieux comprendre3 le fonctionnement de mdadm.

  1. commentez le disque dur dans /etc/fstab
#/dev/disk/by-uuid/f93bf9ad-4a84-4635-ab76-aa18d5b36484 /mnt/Public ext4 defaults 0 1
  1. demonter lelecteur = umount /mnt/Public ; umount /dev/md127
  2. arreter le RAID = mdadm --stop /dev/md127
  3. creation du RAID5 = mdadm --create /dev/md127 -a yes -l 5 -n 2 /dev/sdb1 /dev/sdc
  4. verification de l’etat = cat /proc/mdstat
  • if rebooted in the process, verify : cat /proc/mdstat and mdadm --readwrite /dev/md126 (me)
  1. attendre la fin de la récupération
  2. préparation du troisième disque :
    1. démontez le DD et effacez-le de l’hyperviseur
    2. formater le DD
    3. copier la carte des partitions = sfdisk -d /dev/sdb | sfdisk /dev/sdd
    4. verification de l’etat: fdisk -l

Pendant tout ce temps, la machine virtuelle qui héberge la baie s’arrêtait presque toutes les heures, aucune entrée de journal, juste des arrêts inattendus. Cela a déclenché le mdadm pour mettre le tableau dans un état en lecture seule. J’ai donc été obligé de :

  • faire un script qui vérifie l’état de la machine et de la démarrer en cas d’arrêt.
#!/bin/bash
IFS=$'\n'
while :
do
r=$( qm list | grep "106" | awk '{print $3}' )
if [[ "$r" != "running" ]]; then
#	echo "alive"
	at=$( date )
	echo "dead at $at"
	qm start 106
fi
sleep 10
done
  • créer une entrée crontab sur la vm pour passer la matrice RAID en mode lecture-écriture4 au redémarrage.

      crontab -e
    
      @reboot mdadm --readwrite /dev/md127
    

TODO Étape 3 [50%]

  1. ajouter le troixieme DD
  • ajout DD = mdadm --add /dev/md127 /dev/sdd1
  • augmenter la taille de la matrice = mdadm --grow /dev/md127 --raid-disk=3
  • verification = cat /proc/mdstat
  1. attendre la fin du remodelage : 6852 min = 4 Days, 18 Hours and 12 Minutes - Wednesday_24-05-2023_17:04 ==> 27 May 2023 16:59

Je mettrai à jour cet article lorsque le remodelage sera terminé et que je pourrai monter la nouvelle matrice RAID5.

Mise a jour le 27 May 2023 16:59:

J’ai continué avec les étapes suivantes, qui quand j’ai fini m’ont donné un lecteur réseau de 16 To.

  1. remapper le volume du disque = e2fsck -f /dev/md127
  2. redimensionner le volume = resize2fs -p /dev/md127
  3. mettre à jour la configuration = mdadm --examine --scan >> /etc/mdadm.conf
  4. decomentez le disque dur /etc/fstab
  5. monter le volume = mount -a