diff --git a/HowtoKVM.md b/HowtoKVM.md index 340973de..e682a51e 100644 --- a/HowtoKVM.md +++ b/HowtoKVM.md @@ -32,7 +32,7 @@ Compiled with support for: [libvirt](https://libvirt.org) est une surcouche facilitant la gestion de la virtualisation. -Un démon **libvirtd** tourne sur l'hyperviseur, il peut être redémarrer sans impacter les VM : +Un démon **libvirtd** tourne sur l'hyperviseur, il peut être redémarré sans impact sur les VMs : ~~~ # systemctl restart libvirtd @@ -127,13 +127,13 @@ Avoir un ISO disponible sur l'hyperviseur (pour Debian, télécharger l'ISO _net ~~~ $ virt-install --connect=qemu:///system \ ---name=template \ ---vcpus=1 \ ---ram=512 \ ---disk path=/srv/machines/template.qcow2,bus=virtio,cache=none,size=42,format=qcow2 \ ---network=bridge:br0,model=virtio \ ---noautoconsole --graphics vnc,listen=127.0.0.1,keymap=fr \ ---cdrom=/srv/isos/debian-8.6.0-amd64-netinst.iso + --name=template \ + --vcpus=1 \ + --ram=512 \ + --disk path=/srv/machines/template.qcow2,bus=virtio,cache=none,size=42,format=qcow2 \ + --network=bridge:br0,model=virtio \ + --noautoconsole --graphics vnc,listen=127.0.0.1,keymap=fr \ + --cdrom=/srv/isos/debian-8.6.0-amd64-netinst.iso ~~~ *Note* : si besoin de performance, on pourra mettre *cache=writeback* @@ -176,6 +176,10 @@ Vous pouvez écrire votre propre fichier de définition XML puis l'injecter : ## Stockage +### Volumes DRBD/LVM + +TODO + ### Format QCOW2 Ce format est spécifique à QEMU. C'est un format à taille variable (indépendamment du système de fichiers), @@ -346,11 +350,6 @@ loop deleted : /dev/loop0 ~~~ -### Volumes DRBD/LVM - -TODO - - ## Réseau ### Adresse MAC @@ -691,12 +690,10 @@ Cela permet de dupliquer un domaine existant avec notamment changement de l'adre Une fois la machiné démarrée, il faudra modifier son *hostname*, son adresse IP et ses clés SSH. ~~~ -# echo example > /etc/hostname -# rm /etc/ssh/ssh_host_* -# dpkg-reconfigure openssh-server +# rm /etc/udev/rules.d/70-persistent-net.rules +# hostname foo ; echo foo > /etc/hostname +# rm /etc/ssh/ssh_host_* ; dpkg-reconfigure openssh-server # vim /etc/network/interfaces -## En Squeeze supprimer la règle pour eth0 et renommer eth1 en eth0 -# vi /etc/udev/rules.d/70-persistent-net.rules ~~~ On peut utiliser l'option `--preserve-data` pour copier les données vers une image vierge existante (par exemple de taille différente) : @@ -710,25 +707,25 @@ On peut utiliser l'option `--preserve-data` pour copier les données vers une im -Note : Il faut s'assurer d'ouvrir les ports TCP 49152 à 49215 entre les machines car par défaut libvirtd utilisent ces ports pour faire des netcat des données ! +*Note* : Il faut s'assurer d'ouvrir les ports TCP 49152 à 49215 entre les machines car par défaut *libvirtd* utilisent ces ports pour faire des netcat des données ! Pour une migration à chaud, il faut avoir un storage commun pour les disques (SAN, réplication DRBD, etc.). -Pour envoyer une VM locale vers la machine foo : +Pour envoyer une VM locale _test_ vers l'hyperviseur _foo_ : ~~~ # VIRSH_DEFAULT_CONNECT_URI='qemu:///system' virsh migrate --live --unsafe test qemu+ssh://foo/system ~~~ -Pour rappatrier une VM depuis la machine foo : +Pour rappatrier une VM _test_ depuis l'hyperviseur _foo_ : ~~~ # VIRSH_DEFAULT_CONNECT_URI='qemu+ssh://foo/system' virsh migrate --live --unsafe test qemu:///system ~~~ -Note : on peut faire cela via virt-manager (attention, le mode `--unsafe` n'est pas supporté !!) +*Note* : on peut faire cela via virt-manager mais le mode `--unsafe` (utile si un cache disque est configuré) n'est pas supporté… -Si l'on a plusieurs interfaces réseau sur l'hyperviseur (par exemple un réseau dédié entre les hyperviseurs), il faut l'indiquer à libvirtd sinon il tente de passer par l'interface principale : +Si l'on a plusieurs interfaces réseau sur l'hyperviseur (par exemple un réseau dédié entre les hyperviseurs), il faut l'indiquer à *libvirtd* sinon il tente de passer par l'interface principale : ~~~ # virsh migrate --live --unsafe test qemu+ssh://192.168.0.2/system tcp://192.168.0.2/