Aller au contenu

Installation de Proxmox VE en raid1 logiciel

Proxmox VE est un système de virtualisation basé sur la technologie OpenVZ et KVM. Pour disposer de la virtualisation KVM le processeur doit disposer des instructions intel VT ou amd V. Pour vérifier si le processeur est compatible, il suffit de lancer la commande suivante qui doit retourner quelque chose.

egrep '(vmx|svm)' /proc/cpuinfo

Ceci permettra d'installer des systèmes hôtes comme: Centos, Fédora, Windows comme sur un PC en dur.

Proxmox fournit une image ISO qui permet d'installer un tel système en quelques clics et avec une rapidité déconcertante. Le petit souci est que Proxmox ne gère pas nativement le RAID logiciel, de plus les cartes mères vendues supposant faire du raid matériel sont en faite du FakeRaid. Un vrai contrôleur raid coute très cher. J'ai trouvé un tuto qui permet d'installer un raid logiciel. Je l'ai adapter à ma config, le tout a été testé dans une Virtualbox ce qui m'a permis de faire plusieurs essais avant de parvenir au résultat final.

Première précaution : il faut créer 2 disques virtuels avec une taille fixe et 4 Go minimum par disque.

Plus de blabla, la liste des commandes à lancer.

On installe déjà la distribution Proxmox sans se préoccuper du raid, choisir installation sur /dev/sda

Une fois installé, un premier reboot et le système est déjà fonctionnel.

Mise en place du RAID logiciel:

Le raid sera basé sur le soft mdadm.

1) Vérification et mise à jour si besoin de la distribution:

apt-get  update
apt-get dist-upgrade -y
reboot
2) Installation du logiciel qui va permettre la gestion du raid.
apt-get  install mdadm
yes to all
update-initramfs -u -t
reboot
3) Copie de la structure du premier disque sur le second:
sfdisk  -d /dev/sda | sfdisk /dev/sdb --force
sfdisk -l /dev/sda
sfdisk  -l /dev/sdb
4) Création du raid: - Création des array du raid.
mdadm --create /dev/md0  --level=1 --raid-disks=2 missing /dev/sdb1
mdadm --create /dev/md1  --level=1 --raid-disks=2 missing /dev/sdb2
mdadm --examine --scan  >> /etc/mdadm/mdadm.conf
5) Copie de la partition /boot sur la partition du nouveau disque configuré en raid
On copie la partition /boot

mkfs.ext3 /dev/md0
mkdir /mnt/md0
mount  /dev/md0 /mnt/md0/
cp -ax /boot/* /mnt/md0/
6) On modifie le /etc/fstab pour booter sur le nouveau disque raid. On remplace l'uuid du /dev/sda1 par le nouvel uuid du /dev/md0 On obtient la liste des uuid par la commande :
blkid

puis

vi  /etc/fstab
UUID=5664deb0-6da2-45a1-9748-496f06a1b808 /boot ext3  defaults 0 1
reboot

Tips

Logiquement tout doit bien se passer, la suite des opérations:

On vérifie que l'on boot bien sur le raid qui contient uniquement le disque /dev/sdb

df

On boot bien sur /dev/md0 Ajout de la partition /dev/sda1 dans le raid 1. Cette opération va écraser le contenu du /dev/sda1 avec le contenu du /dev/md0.

mdadm  --add /dev/md0 /dev/sda1

On vérifie en temps réel la recopie à l'identique de la partition.

watch cat /proc/mdstat #(ctrl+c pour sortir)
reboot

Info

A ce niveau tout doit encore bien se passer. Les choses se compliquent. Proxmox créé des partitions de type lvm, on va donc devoir recréer tout cela.

  • création et recopie des partitions LVM.
  • Création du volume LVM physique.
    pvcreate /dev/md1
    
  • Extention du volume LVM pour permettre la copie des données.
    vgextend  pve /dev/md1
    
  • Déplacement des données du disque /dev/sda2 sur le nouveau volume raid /dev/md1.
    pvmove  /dev/sda2 /dev/md1
    
  • Attendre le 100% OK
  • On retire le volume LVM du premier disque /dev/sda2 qui est désormais vide
    vgreduce  pve /dev/sda2
    
  • Ajout de la partition /dev/sda2 dans le raid 1.

    mdadm --add /dev/md1 /dev/sda2
    watch  cat /proc/mdstat
    Attendre la fin de la construction pour sortir. (ctrl+c)
    

  • On va ajouter dans grub le démarrage dur le 2ème disque physique.

    vi /boot/grub/menu.lst
    
    title            Proxmox Virtual Environment, kernel 2.6.18-2-pve-hd0
    root             (**hd0,0**)
    kernel          /vmlinuz-2.6.18-2-pve  root=/dev/mapper/pve-root ro
    initrd          /initrd.img-2.6.18-2-pve
    
    title            Proxmox Virtual Environment, kernel 2.6.18-2-pve-hd1
    root             (**hd1,0**)
    kernel          /vmlinuz-2.6.18-2-pve  root=/dev/mapper/pve-root ro
    initrd          /initrd.img-2.6.18-2-pve
    

  • Installation de grub dans le mbr:

    grub-install  /dev/sda
    grub-install /dev/sdb
    

reboot final OK

Génial, tout fonctionne le système est en raid 1 et fonctionne parfaitement.

Quelques tests⚓︎

On casse:

mdadm --manage /dev/md1  --fail /dev/sda2
mdadm --manage /dev/md1 --remove /dev/sda2
cat  /proc/mdstat
reboot

On répare:

mdadm  --zero-superblock /dev/sda2
mdadm --add /dev/md1 /dev/sda2
watch  cat /proc/mdstat # OK

Si changement de disque dur en vrai, refaire un

grub-install /dev/sda et /dev/sdb

Warning

Attention pour l'installation de grub, il semble qu'il faille lancer en plus les commandes suivantes.

grub
grub> root (hd0,0)
grub>  setup (hd0)

ainsi que
grub> root (hd1,0)
grub>  setup (hd1)