Xen sous Squeeze

De Le Wiki du Forum-Debian.fr
Aller à la navigation Aller à la recherche

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

  1. 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