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