La virtualisation sans Virtualbox
Installer les outils :
Pour faire des machines virtuelles en mode serveur, il faut faire un pont.
Editer le fichier
Mettre en commentaire :
Et ajouter les lignes suivantes (mettre autant de ethx que vous avez d'interfaces réseaux physique:
Source : http://geekfault.org/2011/03/24/devbox-kvmlibvirt-perfect-setup/
Redémarrer les interfaces
Modifier les paramètres noyaux en ajoutant les lignes suivantes au fichier /etc/sysctl.conf
Charger les paramètres par :
Ces paramètres permettent de désactiver le contrôle d'iptable sur le pont, et donc que les VM ne soient touchées par la configuration iptable de la machine hôte.
Maintenant que nous avons notre configuration réseau effective, on va installer notre VM, debian-test :
Créer un disque de 5Go :
Pour installer une nouvelle machine :
Exemple d'installation pour une debian
Exemple : installer une Fedora 16 sans télécharger d'iso, mais directement à partir d'Internet :
La ligne '--extra-args' permet de passer au noyau des éléments. Utile par exemple lorsque l'on utilise un fichier de paramétrage automatique d'une installation et que l'on veux faire passer uniquement certains paramètres dynamiques.
Quelques commandes utiles
* Lorsque la machine est installée il suffit de la démarrer :
* Afficher toutes les vm disponibles :
storage pool
* liste des pools de stockage de données disponible :
Connexion vnc à une machine virtuelle kvm
* se connecter en ssh
* se connecter localement
Liste des VM disponibles
aptitude install kvm libvirt-bin virtinst bridge-utils
Pour faire des machines virtuelles en mode serveur, il faut faire un pont.
Editer le fichier
/etc/network/interfaces
Mettre en commentaire :
allow-hotplug eth0
Et ajouter les lignes suivantes (mettre autant de ethx que vous avez d'interfaces réseaux physique:
auto br0
iface br0 inet dhcp
# Liste des interfaces qui participent au bridge
# ATTENTION :
# Il faut mettre l'interface dont la MAC est la plus petite d'abord !
# Sinon, cela peut perturber les outils de surveillance du réseau.
bridge_ports eth0 eth1 eth2
# Je désactive le Spanning tree
bridge_stp off
# Temps en secondes entre "learning state" et "forwarding state"
bridge_fd 2
# Temps maximum en secondes où le script de lancement du bridge
# attendra lors du démarrage que le bridge passe en mode "forwarding
# state" pour passer la main et laisser les autres services démarrer.
bridge_maxwait 0
Source : http://geekfault.org/2011/03/24/devbox-kvmlibvirt-perfect-setup/
Redémarrer les interfaces
/etc/init.d/networking restart
Modifier les paramètres noyaux en ajoutant les lignes suivantes au fichier /etc/sysctl.conf
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
Charger les paramètres par :
sysctl -p /etc/sysctl.conf
Ces paramètres permettent de désactiver le contrôle d'iptable sur le pont, et donc que les VM ne soient touchées par la configuration iptable de la machine hôte.
Maintenant que nous avons notre configuration réseau effective, on va installer notre VM, debian-test :
typeset NAME=debian-test
Créer un disque de 5Go :
virsh vol-create-as default ${NAME}.img 5G --format raw
Pour installer une nouvelle machine :
virt-install --connect qemu:///system -n ${NAME} -r 512 --vcpus=2 --disk path=/var/lib/libvirt/images/${NAME}.img,size=12 -c /var/lib/libvirt/iso/debian-6.0.0-amd64-custom.iso --vnc --noautoconsole --os-type linux --os-variant debiansqueeze --accelerate --network=bridge:br0 --hvm
Exemple d'installation pour une debian
virt-install -n ${NAME} -r 256 --vcpus 1 --description "ma vm debian de test" --os-type linux
--os-variant debiansqueeze --disk vol=default/${NAME}.img,bus=virtio,cache=none --network
bridge=br0,model=virtio --hvm --virt-type kvm --accelerate --vnc --noautoconsole
--location http://localhost/repertoire/contenant/noyaudeboot
--extra-args "auto=true interface=eth0 hostname=${NAME} domain=kywyxy.net url=http://localhost/preseed/squeeze.cfg"
--os-variant debiansqueeze --disk vol=default/${NAME}.img,bus=virtio,cache=none --network
bridge=br0,model=virtio --hvm --virt-type kvm --accelerate --vnc --noautoconsole
--location http://localhost/repertoire/contenant/noyaudeboot
--extra-args "auto=true interface=eth0 hostname=${NAME} domain=kywyxy.net url=http://localhost/preseed/squeeze.cfg"
Exemple : installer une Fedora 16 sans télécharger d'iso, mais directement à partir d'Internet :
NAME=fedora16
virt-install --connect qemu:///system -n ${NAME} -r 512 --vcpus 1 --description "Fedora par le web"
--os-type linux --os-variant fedora16 --disk vol=default/${NAME}.img,bus=virtio,cache=none
--network bridge=br0,model=virtio --hvm --accelerate --vnc --noautoconsole
--location ftp://ftp.proxad.net/mirrors/fedora.redhat.com/fedora/linux/releases/16/Fedora/i386/os/
--extra-args "auto=true interface=eth0 hostname=${NAME} domain=kywyxy.net"
virt-install --connect qemu:///system -n ${NAME} -r 512 --vcpus 1 --description "Fedora par le web"
--os-type linux --os-variant fedora16 --disk vol=default/${NAME}.img,bus=virtio,cache=none
--network bridge=br0,model=virtio --hvm --accelerate --vnc --noautoconsole
--location ftp://ftp.proxad.net/mirrors/fedora.redhat.com/fedora/linux/releases/16/Fedora/i386/os/
--extra-args "auto=true interface=eth0 hostname=${NAME} domain=kywyxy.net"
La ligne '--extra-args' permet de passer au noyau des éléments. Utile par exemple lorsque l'on utilise un fichier de paramétrage automatique d'une installation et que l'on veux faire passer uniquement certains paramètres dynamiques.
Quelques commandes utiles
* Lorsque la machine est installée il suffit de la démarrer :
virsh --connect qemu:///system start fedora16
* Afficher toutes les vm disponibles :
virsh --connect qemu:///system list --all
storage pool
* liste des pools de stockage de données disponible :
virsh --connect qemu:///system pool-list --all
Connexion vnc à une machine virtuelle kvm
* se connecter en ssh
virt-viewer -c qemu+ssh://monuser@systeme_hote_distant system nom_de_la_machine_virtuelle
* se connecter localement
virt-viewer -c qemu://system nom_de_la_machine_virtuelle
Liste des VM disponibles
alexandre@desktop ~ $ virsh --connect qemu:///system list --all
Id Name State
----------------------------------
2 debian-test running
- bodhi shut off
- debian shut off
- freebsd shut off
- test shut off
- vm10 shut off
Id Name State
----------------------------------
2 debian-test running
- bodhi shut off
- debian shut off
- freebsd shut off
- test shut off
- vm10 shut off