MODOP Raid1 LVM vers RAID5 4 disques (debian 12)

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

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *