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