17 KiB
Emmanuel-Joyce Ntsia, Gauvain BOICHÉ, Joris Stavroulakis, Léo Jarry,
Virtualisation, Containérisation d'OS, Stockage évolutif & résilient
Pour démarrer l'évaluation on est parti sur une VM avec ces spécifications :
- Debian 13.1.0-amd64-netinst
- 8 Coeurs Logiques
- 8 Go RAM
- 20 Go d'espace disque (disque 1, le disque système)
À partir de là on a commencé par installer toutes les dépendances nécessaires
1.1 Installation des paquets pour libvirt / KVM / Qemu
On commence par installer et configurer tout ce qui sera nécessaire pour la virtualisation :
sudo apt install bridge-utils cpu-checker libvirt-clients libvirt-daemon-system virtinst qemu-kvm virt-manager -y
sudo usermod -aG kvm $USER
sudo usermod -aG libvirt $USER
1.2 Installation des paquets pour la containérisation LXC
Ensuite on installe tout ce qui sera nécessaire pour la conteneurisation :
sudo apt install lxc lxctl lxc-templates -y
1.3 Installation du paquet mdadm pour le RAID
Enfin on installe mdadm pour créer et gérer le RAID
sudo apt install mdadm -y
2.1 Ajout des 4 disques pour le RAID5 (3 disques actifs + un hotspare)
On a choisi un RAID de type 5 pour la tolérance de panne et les performances, on est parti sur des disques de 4Go, ce qui s'avèrera (voir la suite) ne pas être assez, donc il faudra agrandir par la suite :
2.2 Mise en place du RAID5
D'abord on repère les disques qu'on va mettre dans le RAID :
sudo lsblk
Ensuite on créé ce dernier en précisant le type et le nom :
sudo mdadm --create /dev/md1 --level=5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd
On ajoute le disque sde en tant que hotspare pour notre RAID :
sudo mdadm --add /dev/md1 /dev/sde
On vérifie que tout est en place :
sudo mdadm --detail /dev/md1
On voit que le RAID5 avec hotspare est bien en place, on peut passer à la partie LVM
2.3 Mise en place du LVM
Ici on commence par déclarer le pv qu'on va utiliser, notre RAID :
sudo pvcreate /dev/md1
Ensuite on créé le volume group nommé eval et les deux logical volume vms et conteneurs :
sudo vgcreate eval /dev/md1
sudo lvcreate -l 50%FREE -n vms eval
sudo lvcreate -l 100%FREE -n conteneurs eval
Ensuite on formate les volumes pour mettre le système de fichiers ext4 :
sudo mkfs.ext4 /dev/mapper/eval-vms
sudo mkfs.ext4 /dev/mapper/eval-conteneurs
Puis on ajoute les labels :
sudo tune2fs -L vmsfs /dev/mapper/eval-vms
sudo tune2fs -L conteneursfs /dev/mapper/eval-conteneurs
On vérifie qu'ils sont bien mis :
2.4 Mise en place du montage au démarrage
On prépare les dossiers pour le montage de nos volumes :
sudo mkdir -p /mnt/vms /mnt/conteneurs
On modifie le fstab pour que le montage se fasse au démarrage du système :
sudo nano /etc/fstab
2.5 Montage des volumes
Ici on le monte directement (plutôt que de devoir redémarrer), pour ça on oublie pas de relancer le service :
sudo systemctl daemon-reload
On monte les volumes sur les dossiers précédemment créés :
sudo mount -t ext4 /dev/mapper/eval-vms /mnt/vms
sudo mount -t ext4 /dev/mapper/eval-conteneurs /mnt/conteneurs
3.1 Installation des conteneurs LXC
Maintenant que tout est préparé on peut commencer à faire les conteneurs et les vms, on a décidé de commencer par les conteneurs
3.1.1 Le conteneur Debian
On installe le conteneur Debian :
sudo lxc-create -n debianLXC -t download -- -d debian -r bullseye
On crée le dossier qui servira de volume rattaché à ce conteneur :
sudo mkdir /mnt/conteneurs/debianlxc
On va modifier le fichier de config pour le rattacher justement :
sudo nano /var/lib/lxc/debianLXC/config
3.1.2 Le conteneur Ubuntu
On installe le conteneur Ubuntu :
sudo lxc-create -n ubuntuLXC -t download -- -d ubuntu -r noble
On créé le dossier qui servira de volume rattaché à ce conteneur :
sudo mkdir /mnt/conteneurs/ubuntulxc
On va modifier le fichier de config pour le rattacher justement :
sudo nano /var/lib/lxc/ubuntuLXC/config
3.1.3 Le conteneur Fedora
On installe le conteneur Fedora :
sudo lxc-create -n fedoraLXC -t download -- d fedora -r 42
On crée le dossier qui servira de volume rattaché à ce conteneur :
sudo mkdir /mnt/conteneurs/fedoralxc
On va modifier le fichier de config pour le rattacher justement :
sudo nano /var/lib/lxc/fedoraLXC/config
3.2 Installation des VMS
Maintenant que les conteneurs sont installés et configurés on passe aux VMs
3.2.1 La VM Debian
On commence à créer un dossier dans lequel on rangera le disque de la VM (ainsi que son iso au passage) :
sudo mkdir debian
On télécharge le fichier iso :
sudo wget https://cdimage.debian.org/mirror/cdimage/archive/11.11.0/amd64/iso-cd/debian-11.11.0-amd64-netinst.iso
On crée le disque (qui s'avèrera trop petit, voir la suite) :
sudo qemu-img create -f qcow2 debian.qcow2 2G
On lance l'installation avec virt-install :
sudo virt-install \
--name debianVM \
--os-variant=debian11 \
--ram 2048 \
--vcpus 2 \
--location /mnt/vms/debian/debian-11.11.0-amd64-netinst.iso \
--disk debian.qcow2 \
--graphics none \
--console pty,target_type=serial \
--extra-args='console=ttyS0,115200n8 serial'
On a manqué de place pour l'installation, donc on rajoute deux disques de 4Go au raid et au LVM pour recommencer :
On ajoute nos deux disques au RAID (Après le reboot le md1 a été renommé par le système en md127) :
sudo mdadm --add /dev/md127 /dev/sdf /dev/sdg
On oublie pas cette commande, sinon nos disques seront juste en spare :
sudo mdadm --grow /dev/md127 --raid-devices=5
Et ensuite il faut bien sûr étendre le LVM (après avoir attendu que le reshape du RAID ait fini)
On commence par resize le pv :
sudo pvresize /dev/md127
On étend ensuite notre volume dédié au VM pour lui accorde 100% du nouvel espace libre :
sudo lvextend -l +100%FREE --resizefs /dev/mapper/eval-vms
Ensuite on undefine le debianVM créé précédemment pour refaire l'installation à zéro :
(Cette étape est nécessaire pour pouvoir utiliser le disque avec le même nom qu'avant, sinon virt croit que le disque est déjà utilisé par une autre VM)
sudo virsh undefine debianVM
Puis on supprime le disque :
sudo rm debian.qcow2
Et on le recrée avec une plus grande taille :
sudo qemu-img create -f qcow2 debian.qcow2 5G
Et on refait l'installation avec la commande virt-install utilisée au-dessus, voici le résultat :
3.2.2 La VM Ubuntu
On commence à créer un dossier dans lequel on rangera le disque de la VM (ainsi que son iso au passage) :
sudo mkdir /mnt/vms/ubuntu
On télécharge le fichier iso :
sudo wget https://cdimage.ubuntu.com/ubuntu-legacy-server/releases/20.04/release/ubuntu-20.04.1-legacy-server-amd64.iso
On créé notre disque de 6Go :
sudo qemu-img create -f qcow2 ubuntu.qcow2 6G
On lance l'installation :
sudo virt-install \
--name ubuntuVM \
--os-variant=ubuntu20.04 \
--ram 4096 \
--vcpus 4 \
--location /mnt/vms/ubuntu/ubuntu-20.04.1-legacy-server-amd64.iso \
--disk ubuntu.qcow2 \
--graphics none \
--console pty,target_type=serial \
--extra-args='console=ttyS0,115200n8 serial'
L'installation du ubuntu va jusqu'au bout, mais après on a un écran "noir" comme mentionné par le formateur, donc impossible d'aller plus loin :
Mais on a réussi à y accéder grâce à SSH et au final tout fonctionne :
sudo nmap 192.168.122.0/24 -sP # pour trouver l'ip de la VM ubuntu