====== Xen ======
===== Installation =====
Dans ce cas, on procède à une installation de Xen depuis CentOS 7.
Configuration du gestionnaire de paquets : yum install centos-release-xen-412.x86_64
Installation de Xen :
* yum install xen xen-hypervisor grub2
* yum update kernel
* reboot
===== Configuration réseau =====
On procède à la création d’un switch virtuel.
- Création d'une nouvelle connexion br0 de type bridge associée à une interface appelée br0 : nmcli connection add type bridge ifname br0 con-name br0
- Configuration du bridge : nmcli connection modify br0 ipv4.method static ipv4.addresses 100.0.0.1/24
- Activation de l'interface br0 : nmcli c up br0
- Création du fichier : /etc/sysctl.d/99-xen.conf
- Y insérer : net.ipv4.ip_forward = 1 #Permet aux VM d’avoir accès à internet
- On lit le fichier pour que le noyau prenne en compte la nouvelle configuration définie : sysctl -p /etc/sysctl.d/99-xen.conf
- Vérification que la configuration a bien été prise en compte : sysctl -a |grep ip_forward
- Dans /etc/xen/xl.conf
- Modifier la ligne 34 pour y mettre : vif.default.bridge="br0" #On change l’interface par défaut de Xen pour le bridge
Penser à faire les éventuelles configurations par-feu adéquates
===== Commandes de vérification =====
* xl list : vérifie le nombre de machines virtuelles sur l’hyperviseur
* xl info : infos sur l’hyperviseur
* xentop : affiche les machines créées et en fonctionnement avec affichage en continue des info type mémoire etc.
===== Création d'une machine virtuelle =====
Ici, on va créer une machine virtuelle basée sur Alpine Linux.
- Création du répertoire de fichiers dédiés à la VM : mkdir /srv/alpine
- Création du fichier image disque : dd if=/dev/zero of=/srv/alpine1/d1.img bs=4M count=512
- Import dans la VM de l’iso alpine : curl -O http://dl-cdn.alpinelinux.org/alpine/v3.9/releases/x86_64/alpine-extended-3.9.4-x86_64.iso
- Création point de montage m : mkdir /srv/m
- Montage de l’iso sur le point de montage m : mount -o loop,ro alpine-extended-3.9.4-x86_64.iso /srv/m
- Création fichier de config/description de la vm : vim /srv/alpine1/alpine1.cfg
- Copier les éléments suivant dedans :
kernel = "/srv/m/boot/vmlinuz-vanilla"
ramdisk = "/srv/m/boot/initramfs-vanilla"
disk = [
'format=raw, vdev=xvda, access=w, target=/srv/alpine1/d1.img',
'format=raw, vdev=xvdb, access=r, devtype=cdrom, target=/srv/alpine-extended-3.9.4-x86_64.iso'
]
vif = ['bridge=br0', 'ip=100.0.0.100/24']
memory = 256
name = 'alpine1'
vcpus = 1
maxvcpus = 1
- Création de la VM : xl create -c -f /srv/alpine1/alpine1.cfg
===== Manipulation des VM =====
* Lister les vm : xl list
* Se connecter en console : xl console nom_vm
* Se déconnecter de la VM : ctrl+altgr+] OU ctrl+(
* Définir la quantité de mémoire d’une VM : xl mem-set
* Sauver l’état d’une VM : xl save nom_vm fichier_snapshot
ATTENTION ! Faire un snapshot provoque l'arrêt de la VM (oui c'est nul...)
* Restaurer l’état d’une VM : xl restore fichier.conf
* Créer/démarrer une VM : xl create -f chemin/vm.cfg
(ou xl create -c chemin/vm.cfg pour se connecter à la VM dans la foulée)
* Arrêter une VM : xl shutdown nom_vm