Différences entre versions de « Xen »

De Cliss XXI
Sauter à la navigation Sauter à la recherche
imported>SylvainBeucler
m (Bridge)
imported>SylvainBeucler
m (migration)
Ligne 58 : Ligne 58 :
 
* Les paquets Debian ne fournissent que des binaires avec support [http://en.wikipedia.org/wiki/Physical_Address_Extension PAE] activé. Si vous voulez tester sur votre portable à base de Pentium-M (sans support PAE), vous n'avez plus qu'à installer votre propre noyau, car les paquets Debian ne fonctionneront pas (compilés en mode PAE uniquement; erreurs ''PAE mode mismatch in Xen (xen=no Dom0=yes)'' ou ''Cannot execute a PAE-enabled kernel on a PAE-less CPU'' au boot). Utiliser <code>grep pae /proc/cpuinfo</code> pour voir si votre processeur gère PAE. C'est à se demander pourquoi une version de l'hyperviseur en mode non-PAE est disponible :/
 
* Les paquets Debian ne fournissent que des binaires avec support [http://en.wikipedia.org/wiki/Physical_Address_Extension PAE] activé. Si vous voulez tester sur votre portable à base de Pentium-M (sans support PAE), vous n'avez plus qu'à installer votre propre noyau, car les paquets Debian ne fonctionneront pas (compilés en mode PAE uniquement; erreurs ''PAE mode mismatch in Xen (xen=no Dom0=yes)'' ou ''Cannot execute a PAE-enabled kernel on a PAE-less CPU'' au boot). Utiliser <code>grep pae /proc/cpuinfo</code> pour voir si votre processeur gère PAE. C'est à se demander pourquoi une version de l'hyperviseur en mode non-PAE est disponible :/
 
* Des ralentissements et des bugs au niveau du clavier dans certains cas, pas tout le temps, même avec libc6-xen: répétitions aléatoires de touches au moment de la frappe, ralentissement impressionnant de gnome-terminal.
 
* Des ralentissements et des bugs au niveau du clavier dans certains cas, pas tout le temps, même avec libc6-xen: répétitions aléatoires de touches au moment de la frappe, ralentissement impressionnant de gnome-terminal.
 +
 +
== Migration / relocation ==
 +
 +
La commande est
 +
xm migrate vm host
 +
xm migrate --live vm host
 +
 +
Apparemment cela ne concerne que l'état mémoire de la machine virtuelle. Pour le disque, il faut utiliser un disque réseau, ou bien faire le déplacement des données à la main.
 +
 +
Dans <code>/etc/xen/xend-config.sxp</code>, sur l'hôte distant, pour accepter la migration:
 +
(xend-relocation-server yes)
 +
(xend-relocation-port 8002)
 +
(xend-address '')
 +
(xend-relocation-hosts-allow '^your other host IP$')
  
 
== Installation semi-manuelle avec l'image binaire officielle ==
 
== Installation semi-manuelle avec l'image binaire officielle ==

Version du 29 août 2007 à 18:51

Vocabulaire

  • Hyperviseur: socle d'exécution
    • Dom0 = hôte
    • DomU = invité = sous-système virtualisé

Dom0 comme DomU sont des noyaux Linux modifiés pour passer par l'hyperviseur Xen à la place d'accéder directement aux ressources du système. Dom0 et DomU peuvent utiliser la même image noyau - c'est même souvent le cas.

Avec une installation Debian Etch standard:

  • /boot/xen-3.0.3-1-i386-pae.gz : hyperviseur (on boot dessus)
  • /boot/vmlinuz-2.6.18-4-xen-686 : noyau Linux modifié à utiliser pour Dom0 et DomU
    • /boot/initrd.img-2.6.18-4-xen-686 : image ramdisk associée au noyau Linux modifié


Installation dans le cas où tout va bien

Base:

aptitude install xen-linux-system-2.6.18-4-xen-686 # noyau, hyperviseur, etc.
aptitude install xen-tools # outils pour créer un DomU

Un test avec xen-create-image:

xen-create-image --hostname montest --kernel /boot/vmlinuz-2.6.18-5-xen-686 \
  --initrd /boot/initrd.img-2.6.18-5-xen-686 \
  --debootstrap --dist etch --mirror terre:9999 \
  --dhcp --lvm VG0

Survival:

xm list # list running Xen instances
xm create yourxen # start an instance
xm console yourxen # enter an instance, type C-] to quit
xm destroy yourxen # force shutdown

Post-install

  • Configurer le sources.list (s/stable/etch/)
  • Désactiver ou définir le mot de passe root
  • Copier les clefs SSH
  • Vérifier /etc/hosts (127.0.0.1 fqdn host localhost)
  • Forcer la reconfiguration du fuseau horaire (tzconfig)
  • dpkg-reconfigure debconf # priority -> medium, !high

Le pont / bridge

auto br-xen
iface br-xen inet static
      address 192.168.1.145
      netmask 255.255.255.0
      gateway 192.168.1.1
      bridge_ports eth0
      # optional
      bridge_maxwait 0
      bridge_hello 0
      bridge_fd 0

Les coquetteries de Xen

  • Vole/désactive les ports séries par défaut - ce qui est loin d'être pratique sur des serveurs dédiés, ou le port série est l'accès de secours en cas de problème réseau. Solution: ajouter xencons=tty6 dans le grub.conf
  • Les paquets Debian ne fournissent que des binaires avec support PAE activé. Si vous voulez tester sur votre portable à base de Pentium-M (sans support PAE), vous n'avez plus qu'à installer votre propre noyau, car les paquets Debian ne fonctionneront pas (compilés en mode PAE uniquement; erreurs PAE mode mismatch in Xen (xen=no Dom0=yes) ou Cannot execute a PAE-enabled kernel on a PAE-less CPU au boot). Utiliser grep pae /proc/cpuinfo pour voir si votre processeur gère PAE. C'est à se demander pourquoi une version de l'hyperviseur en mode non-PAE est disponible :/
  • Des ralentissements et des bugs au niveau du clavier dans certains cas, pas tout le temps, même avec libc6-xen: répétitions aléatoires de touches au moment de la frappe, ralentissement impressionnant de gnome-terminal.

Migration / relocation

La commande est

xm migrate vm host
xm migrate --live vm host

Apparemment cela ne concerne que l'état mémoire de la machine virtuelle. Pour le disque, il faut utiliser un disque réseau, ou bien faire le déplacement des données à la main.

Dans /etc/xen/xend-config.sxp, sur l'hôte distant, pour accepter la migration:

(xend-relocation-server yes)
(xend-relocation-port 8002)
(xend-address )
(xend-relocation-hosts-allow '^your other host IP$')

Installation semi-manuelle avec l'image binaire officielle

Le site officiel est xensource.com, mais est bourré de propagande liée à une obscure "vente" de produits "entreprise". Bref allez directement sur http://xen.xensource.com/ , puis sur la page de téléchargement. On prend ici une des tarballs binaires; choisissez 32bit, 32bit+pae ou 64bit en fonction de votre système.

tar xzf xen-3....tar.gz
cd dist
./install.sh
# Image initrd:
depmod 2.6.16.29-xen
update-initramfs -k 2.6.16.29-xen -ct
update-grub

Ça fonctionne, mais:

  • 2.6.16: carte réseau non gérée (malgré la présence du module concerné)
  • 2.6.18: carte réseau OK, mais des BUG en rafale dans la console à propos de vmalloc, et de notes de evbug.c dès qu'on touche au clavier - pas rassurant..

Installation manuelle

Vous récupérez une version de Linux xenifiée, et vous la compilez comme d'habitude, avec un panneau menuconfig en plus pour paramétrer Xen.

make world
make install

permet de recréer l'image binaire officielle.

Pour recompiler avec une config perso? TODO. Le README propose:

make linux-2.6-xen-config CONFIGMODE=menuconfig

mais cela installe un .config assez lourd. Je préfèrerais un 'defconfig'.

Quelle version du noyau Linux?

Les tarballs officielles sont basées sur des noyaux relativement vieux (2.6.16 pour Xen 3.0, 2.6.18 pour Xen 3.1). On trouve quelques forward-ports chez RedHat: http://hg.et.redhat.com/kernel/ (utilisés notamment dans le noyau 2.6.18 de Etch).


Pour faire simple

Vous pouvez toujours installer Xen depuis une instance de QEMU, mais lancée avec -no-kqemu; évidemment ça va ramer, mais tant que c'est le processeur et pas vous... :)


Liens

  • Debian Etch Xen Install: config de base
  • Create DomU: script de base
  • Xen@Debian Wiki: les paquets de base (pour du PAE)
  • Xen 3 for Debian: une introduction; recommande LVM pour les images disques et le bridging pour le réseau
  • Introduction: par Free-Electrons, également membres de l'APRIL; ils parlent de RAID mais utilisent des images disques (et non des partitions dédiées) - pas très efficace. Utilisent des adresses locales 10.0.0.X pour les DomU avec un NAT sur le Dom0.