Xen sous Squeeze
Installation de Xen et libvirt sous Squeeze
Liste des packages a installer
- xen-linux-system-2.6-xen-686
- libvirt-bin
- xen-tools
Modification de l'ordre de lancement des differents kernels
# cd /etc/grub.d/ # mv 10_linux 50_linux # update-grub # reboot
Cela permettra un lancement automatique de notre hyperviseur à chaque reboot du server
Customisation de la configuration de Xen
Les modifications apportées à Xen sont focalisées sur le fichier xend-config.sxp
# vi /etc/xen/xend-config.sxp
Authorisons libvirt à jouer des coudes ave Xen
#(xend-unix-server no) (xend-unix-server yes)
Et puisqu'il nous faut choisir un mode de fonctionnement, nous obterons pour le mode Bridge
#(network-script network-bridge) (network-script network-bridge)
Indiquons à Xen les modifications
# /etc/init.d/xend restart
Logiquement, nous devrions avoir au moins un bridge au doux nom de eth0.
# brctl show bridge name bridge id STP enabled interfaces eth0 8000.00096b7acd7f no peth0
Grossièrement, Xen a renommé l'interface eth0 en peth0 et le bridge en eth0
Histoire d'acceder à Xen avec libvirt, ajoutons notre login spike au groupe libvirt
# vigr libvirt:x:114:spike
Dorenavant, spike sera capable d'executer des commandes libvirt
Création d'un domU
Préparation du terrain. Ce répertoire contiendra les différents domUs
# mkdir /home/xen
Nous allons utiliser le package xen-tools installé précédement.
# cd /etc/xen-tools/ # vi xen-tools.conf
Quelques modifications s'imposent
Le repertoire d'accueil des différents domaines
# dir = /home/xen dir = /home/xen
Choississon notre distribution à installer
size = 4Gb memory = 512Mb swap = 512Mb fs = ext3 dist = lenny image = sparse
Definissons les paramètres réseau de notre interface virtuelle
# gateway = 192.168.1.1 # netmask = 255.255.255.0 # broadcast = 192.168.1.255 gateway = 192.168.1.1 netmask = 255.255.255.0 broadcast = 192.168.1.255
Le dns
# nameserver = 192.168.1.1 nameserver = 192.168.1.1
Si l'on souhaite initialiser le password de root une fois l'image créée
# passwd = 1 passwd = 1
# mirror_lenny = http://cdn.debian.net/debian # mirror_lenny = http://ftp.fr.debian.org/debian mirror_lenny = http://cdn.debian.net/debian
Libre à vous de prendre un server proche de chez vous
voila, le fichier de configuration étant terminé, il ne nous reste plus qu'à creer notre première image
# xen-create-image --hostname=webserver --ip=192.168.1.138
Lançons notre domU fraichement créé
# xm create -c webserver.cfg
Et voila
complément libvirt
Libvirt fournit plus de liberté dans la gestion des domUs. Sans pour autant commencer à babasser dans libvirt avec Python, passons de l'environnement Xen à celui de libvirt en mode commande.
Xen vu depuis Libvirt
- Liste des domUs
# xm list (sous Xen) # virsl list (sous libvirt)
A chaque domU correspond un fichier webserver.cfg dans Xen. Dans libvirt, il nous suffira de le générer
# xm list Name ID ... Domain-0 0 ... webserver 1 ...
Le domU étant lancé, on execute la commande suivant:
# virsh dumpxml webserver >> webserver.xml
Le fichier webserver.xml présente les caractéristiques du domU. Pour le réutiliser, quelques modifications légères s'imposent.
Suppression du tag id lié au domain
# <domain type='xen' id='1'> <domain type='xen'>
Suppression du tag uuid
# <uuid>...</uuid>
Remplacement du tag interface
#<interface type='ethernet'> # <mac address='00:16:3e:49:fe:d4'/> # <ip address='192.168.1.134'/> # <script path='/etc/xen/scripts/vif-bridge'/> # <target dev='vif1.0'/> #</interface>
par
<interface type='bridge'>
</interface>
Et voila, dés que vous relancerez l'image, il vous suffira de faire
# virsh create webserver.xml
à partir de n'importe que utilisateur appartenant au groupe libvirt comme spike ou root L'interface virtuel du domU sera automatiquement connectée au bridge eth0
Ajout d'une interface réseau sur un domU
Ajouter une deuxieme interface virtuel à notre domU!!! rien de plus simple, on se crée un nouveau bridge
# brctl addbr bridge0 # brctl addif bridge0 eth1 # ifconfig bridge0 up
Ensuite, ajoutons nos 3 lignes xml dans le fichier webserver.xml
<interface type='bridge'>
</interface>
Et le tour est joué, notre domU a maintenant 2 interfaces virtuelles (eth0 et eth1). Ces modifications ne prennent effet que si le domU a été réinitialisé, bien entendu.
Maintenant,La création d'un réseau de domU interconnectés entre eux par bridge s'offre à vous