Inventaire de la machine
Hostname : Raid1ToRaid5
- IP : 192.168.1.48
- Disque sda (RAID1) – Datastore02
- Disque sdb (RAID1) – Datastore02
- OS : Linux Debian 12
Variables d’environnements
root@Raid1ToRaid5:/home/chris# export PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/sbin"
Inventaire des disques
root@Raid1ToRaid5:/home/chris# lsblk

root@Raid1ToRaid5:/home/chris# lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS

Inventaire du RAID1
root@LvmToRaid1:/home/chris# cat /proc/mdstat

root@Raid1ToRaid5:/home/chris# mdadm --detail /dev/md0

Inventaire des Volumes logiques
root@LvmToRaid1:/home/chris# pvs root@LvmToRaid1:/home/chris# vgs root@LvmToRaid1:/home/chris# lvs

root@Raid1ToRaid5:/home/chris# pvs; vgs; lvs -a -o +devices

Backup des fichiers de configuration actuels
root@Raid1ToRaid5:/home/chris# cp -a /etc/mdadm/mdadm.conf /root/mdadm.conf.orig root@Raid1ToRaid5:/home/chris# vgcfgbackup -f /root/vgcfg-%s.bak root@Raid1ToRaid5:/home/chris# mdadm --detail --scan > /root/mdadm-scan.orig root@Raid1ToRaid5:/home/chris# lsblk -o NAME,UUID > /root/lsblk-uuid.orig root@Raid1ToRaid5:/home/chris# ls /root/

Ajout de deux nouveaux Disques


- Ajouter un disque sdc = 96Go (sda) – Datastore 3
- Ajouter un disque sdd = 96Go (sda) – Datastore 3
root@Raid1ToRaid5:/home/chris# dmesg | tail -40

root@Raid1ToRaid5:/home/chris# lsblk

Partitionner les nouveaux disques
Vérifier le chargement RAID5
root@Raid1ToRaid5:/home/chris# lsmod | grep raid

Vérifier les diques
root@Raid1ToRaid5:/home/chris# fdisk -l /dev/sda /dev/sdb /dev/sdc /dev/sdd

root@Raid1ToRaid5:/home/chris# mdadm --examine-badblocks /dev/sda1 root@Raid1ToRaid5:/home/chris# mdadm --examine-badblocks /dev/sdb1

root@Raid1ToRaid5:/home/chris# lsblk –f

Vérifier Boot
root@Raid1ToRaid5:/home/chris# df –hT

root@Raid1ToRaid5:/home/chris# ls -la /boot

root@Raid1ToRaid5:/home/chris# ls -la /boot/grub

Clone table partition sda ⬄sdc
root@Raid1ToRaid5:/home/chris# sfdisk -d /dev/sda | sfdisk /dev/sdc

Clone table partition sda ⬄sdd
root@Raid1ToRaid5:/home/chris# sfdisk -d /dev/sda | sfdisk /dev/sdd

Vérification du clone des diques
root@Raid1ToRaid5:/home/chris# blockdev --getsz /dev/sda1 root@Raid1ToRaid5:/home/chris# blockdev --getsz /dev/sdb1 root@Raid1ToRaid5:/home/chris# blockdev --getsz /dev/sdc1 root@Raid1ToRaid5:/home/chris# blockdev --getsz /dev/sdd1

Check les partitions des diques
root@Raid1ToRaid5:/home/chris# lsblk /dev/sdb /dev/sdc /dev/sdd

root@Raid1ToRaid5:/home/chris# parted /dev/sda print

root@Raid1ToRaid5:/home/chris# parted /dev/sdb print

root@Raid1ToRaid5:/home/chris# parted /dev/sdc print

root@Raid1ToRaid5:/home/chris# parted /dev/sdd print

Vérification des nouveaux disques
root@Raid1ToRaid5:/home/chris# wipefs -n /dev/sdc root@Raid1ToRaid5:/home/chris# wipefs -n /dev/sdd

Conversion RAID1 vers RAID5 deux disques (sda & sdb)
Retrait du bitmap interne
root@Raid1ToRaid5:/home/chris# mdadm --grow /dev/md0 --bitmap=none mdadm: no bitmap found on /dev/md0 root@Raid1ToRaid5:/home/chris# mdadm --detail /dev/md0 | grep -i bitmap
Changement de niveau raid1 vers raid5
root@Raid1ToRaid5:/home/chris# mdadm --grow /dev/md0 --level=5 mdadm: level of /dev/md0 changed to raid5

Check nouveau RAID5
root@Raid1ToRaid5:/home/chris# cat /proc/mdstat

root@Raid1ToRaid5:/home/chris# mdadm --detail /dev/md0

root@Raid1ToRaid5:/home/chris# mdadm --grow /dev/md0 --chunk=512 chunk size for /dev/md0 set to 524288
Réinstallation de GRUB et test de redémarrage
Contrôle du GRUB
root@Raid1ToRaid5:/home/chris# grub-probe --target=abstraction /boot

root@Raid1ToRaid5:/home/chris# ls /usr/lib/grub/i386-pc | grep -E 'raid|lvm|diskfilter'

Ajout des nouveaux disques dans le RAID5
root@Raid1ToRaid5:/home/chris# mdadm --add /dev/md0 /dev/sdc1 mdadm: added /dev/sdc1 root@Raid1ToRaid5:/home/chris# mdadm --add /dev/md0 /dev/sdd1 mdadm: added /dev/sdd1

Check Le RAID5
root@Raid1ToRaid5:/home/chris# cat /proc/mdstat

root@Raid1ToRaid5:/home/chris# mdadm --detail /dev/md0

Resync le RAID de 2 disques vers 4 disques
root@Raid1ToRaid5:/home/chris# mdadm --grow /dev/md0 --raid-devices=4

root@Raid1ToRaid5:/home/chris# watch –n1 cat /proc/mdstat




Ajouter le module RAID5 au boot
root@Raid1ToRaid5:/home/chris# ls /etc/modprobe.d amd64-microcode-blacklist.conf mdadm.conf root@Raid1ToRaid5:/home/chris# echo raid456 > /etc/modules-load.d/raid.conf root@Raid1ToRaid5:/home/chris# update-initramfs -u -k all

Vérifier le nouveau RAID5 à 4 disques
root@Raid1ToRaid5:/home/chris# mdadm --detail /dev/md0

root@Raid1ToRaid5:/home/chris# mdadm --detail /dev/md0 | grep -E 'State|Reshape|Active|Working'

Agrandir les volumes et groupes logiques
Agrandir LVM
root@Raid1ToRaid5:/home/chris# pvs

root@Raid1ToRaid5:/home/chris# pvresize /dev/md0

root@Raid1ToRaid6:/home/chris# pvs

Md0 => (4×96)-96
root@LvmToRaid1:/home/chris# vgs

Agrandir le volume group data
root@Raid1ToRaid5:/home/chris# lvs

root@Raid1ToRaid5:/home/chris# lvextend -l +100%FREE /dev/vg0/data

root@Raid1ToRaid5:/home/chris# resize2fs /dev/vg0/data

root@Raid1ToRaid6:/home/chris# lvs

Sauvegarder la configuration RAID
root@Raid1ToRaid5:/home/chris# lsblk

root@Raid1ToRaid5:/home/chris# mdadm --detail --scan ARRAY /dev/md0 metadata=1.2 name=LvmToRaid1:0 UUID=549bfac3:e4013eb9:c5a10f04:6268f908

Régénérer l’initramfs & grub
root@Raid1ToRaid5:/home/chris# update-initramfs -u -k all

root@Raid1ToRaid5:/home/chris# update-grub

root@Raid1ToRaid5:/home/chris# grub-install --modules="lvm mdraid1x raid5rec" /dev/sda root@Raid1ToRaid5:/home/chris# grub-install --modules="lvm mdraid1x raid5rec" /dev/sdb root@Raid1ToRaid5:/home/chris# grub-install --modules="lvm mdraid1x raid5rec" /dev/sdc root@Raid1ToRaid5:/home/chris# grub-install --modules="lvm mdraid1x raid5rec" /dev/sdd

Vérification
Vérifier le RAID
root@Raid1ToRaid5:/home/chris# cat /proc/mdstat

root@Raid1ToRaid5:/home/chris# mdadm --detail /dev/md0

root@LvmToRaid1:/home/chris# mdadm --detail /dev/md0 | egrep "Raid Level|State|Active Devices|Working Devices|Failed Devices"

Vérifier le boot
root@Raid1ToRaid5:/home/chris# grep mdraid /boot/grub/grub.cfg

root@LvmToRaid1:/home/chris# grep -E "insmod (lvm|mdraid|raid5)" /boot/grub/grub.cfg

root@Raid1ToRaid5:/home/chris# findmnt /

root@LvmToRaid1:/home/chris# grub-probe / ext2 root@LvmToRaid1:/home/chris# grub-probe --target=device / /dev/mapper/vg0-root root@Raid1ToRaid5:/home/chris# grub-probe --target=abstraction /

root@LvmToRaid1:/home/chris# cat /etc/mdadm/mdadm.conf

Vérifier les servies « failed »
root@Raid1ToRaid5:/home/chris# systemctl --failed

Vérifier l’initramfs
root@Raid1ToRaid5:/home/chris# lsinitramfs /boot/initrd.img-$(uname -r) | grep mdadm

Mount du mapper data
root@Raid1ToRaid5:/home/chris# mkdir /mnt/data root@Raid1ToRaid5:/home/chris# echo "/dev/mapper/vg0-data /mnt/data ext4 defaults 0 1" >> /etc/fstab

root@Raid1ToRaid5:/home/chris# systemctl daemon-reload root@Raid1ToRaid5:/home/chris# mount /mnt/data root@Raid1ToRaid6:/home/chris# df -h |grep data /dev/mapper/vg0-data 250G 2,1M 237G 1% /mnt/data

Ajouter les Disques dans le Boot de Proxmox
Modification du Boot Machine

« avant »

« Après »

Stopper proprement la machine virtuelle
root@Raid1ToRaid5:/home/chris# shutdown -h now
Test du RAID5 – Disque FAILED
Autoriser le démarrage RAID5 en mode Dégradé
root@Raid1ToRaid5:/home/chris# echo "BOOT_DEGRADED=true" >> /etc/default/mdadm

Simulation de la panne disque sdc
root@Raid1ToRaid5:/home/chris# mdadm /dev/md0 --fail /dev/sdc1 mdadm: set /dev/sdc1 faulty in /dev/md0 root@Raid1ToRaid5:/home/chris# mdadm --detail /dev/md0

root@Raid1ToRaid5:/home/chris# cat /proc/mdstat

Stopper proprement la machine virtuelle
root@Raid1ToRaid5:/home/chris# shutdown -h now
Redémarrer et vérifier l’état du démarrage.
Démarrage de la machine

Check démarrage dégradé
root@Raid1ToRaid5:/home/chris# cat /proc/mdstat

root@Raid1ToRaid5:/home/chris# mdadm --detail /dev/md0

Remise en état du RAID5 avec sdc actif
Ajout du disque sdc1
root@Raid1ToRaid5:/home/chris# mdadm /dev/md0 --add /dev/sdc1

Reconstruction du RAID5
root@Raid1ToRaid5:/home/chris# watch -n 1 cat /proc/mdstat


Test du RAID5 – Debrancher/Perte d’un disque Datastore 3
« Détach » le disque sdd de la machine Virtuelle

Vérification RAID5
root@Raid1ToRaid5:/home/chris# dmesg

root@Raid1ToRaid5:/home/chris# cat /proc/mdstat

root@Raid1ToRaid5:/home/chris# mdadm --detail /dev/md0

Stopper proprement la machine virtuelle
root@Raid1ToRaid5:/home/chris# shutdown -h now
Redémarrer et vérifier l’état du démarrage.
Démarrage de la machine

Réinstaller le disque dans la Machine Virtuelle

root@Raid1ToRaid5:/home/chris# dmesg

Ajout du disque sdd1
root@Raid1ToRaid5:/home/chris# mdadm /dev/md0 --add /dev/sdd1

Reconstruction du RAID5
root@Raid1ToRaid5:/home/chris# watch -n 1 cat /proc/mdstat


Views: 0