Xen : Différence entre versions

Un article de Bulles.
Aller à : navigation, rechercher
(Packages)
M (Xen (Dom0))
Ligne 71: Ligne 71:
 
  perl -pi -e 's@-c0-17@-c0-37@;s@-c18-@-c38-@' init.d/xendomains
 
  perl -pi -e 's@-c0-17@-c0-37@;s@-c18-@-c38-@' init.d/xendomains
 
  for i in 0 1 2 3 4 5 6 ; do mkdir rc$i.d ; done
 
  for i in 0 1 2 3 4 5 6 ; do mkdir rc$i.d ; done
  for i in 0 1 6 ; do cd rc$i.d ; ln -sf ../init.d/xend K21xend ; ln -sf ../init.d/xend K20xendomains ; cd .. ; done
+
  for i in 0 1 6 ; do cd rc$i.d ; ln -sf ../init.d/xend K21xend ; ln -sf ../init.d/xendomains K20xendomains ; cd .. ; done
  for i in 2 3 4 5 ; do cd rc$i.d ; ln -sf ../init.d/xend S20xend ; ln -sf ../init.d/xend S21xendomains ; cd .. ; done
+
  for i in 2 3 4 5 ; do cd rc$i.d ; ln -sf ../init.d/xend S20xend ; ln -sf ../init.d/xendomains S21xendomains ; cd .. ; done
  
 
Nous utiliserons les noyeaux Debian:
 
Nous utiliserons les noyeaux Debian:
Ligne 81: Ligne 81:
 
Préparation du paquet avec ''checkinstall''
 
Préparation du paquet avec ''checkinstall''
 
  cd /usr/src/xen
 
  cd /usr/src/xen
  mv dist xen-hypervisor-and-tools-3.1.0
+
  mv dist xen-hypervisor-and-tools-3.1.0-1-i386-pae-3.1.0
  cd  xen-hypervisor-and-tools-3.1.0
+
  cd  xen-hypervisor-and-tools-3.1.0-1-i386-pae-3.1.0
 
  checkinstall -D ./install.sh
 
  checkinstall -D ./install.sh
  
 
Installer le package:
 
Installer le package:
  dpkg -i xen-hypervisor-and-tools_3.1.0-1_i386-pae.deb
+
  dpkg -i xen-hypervisor-and-tools-3.1.0-1-i386-pae_3.1.0-1_i386.deb
  
 
Mettre ''grub'' à jour
 
Mettre ''grub'' à jour

Version du 20 juin 2007 à 23:09

Notes sur l'installation de Xen sur une Debian Etch / Linux 2.6

En cours de rédaction

Introduction

Nous utilisons Linux VServers sans problèmes depuis un certain temps déjà, mais dans certains cas il est intéressant de faire un pas plus en avant en terme de para-virtualisation (plus grande liberté au niveau de la couche réseau, ou des noyeaux utilisés) ou tout simplement dans la cas de la virtualisation pure (OS propriétaires).

Ce petit article n'est pas un n-ième howto sur la question, mais rassemble plutôt quelques notes prises lors de mes installations et tests.

Environnement:

  • Materiel: SuperMicro X7DVL-E Bi-Xeon Quad core (E5310), 12 GB Memoire, 2 TB Disque
  • OS hôte (Domain 0): Debian Etch
  • Xen Open Source: version 3.1

Debian Etch (DomO)

Généralités

Nous démarrerons su base d'une Debian Etch installée et à jour.

Nous désirons tourner des machines virtuelles 32 bits. Le support des machines virtuelles 32 bits sur un hôte 64 bits dans Xen est assez récent (32-on-64 PV guest support), et pour des raisons de stabilité, nous installons donc une version i386 de Debian.

Partitionnement

Nous réservons un Volume Group pour accueillir les machines virtuelles Xen. Il contiendra un file system pour les images disques sur fichier et des logical volumes pour les acces direct.

Packages

En dehors d'un install de base, les packages suivants sont nécessaires:

Pour Xen:

python iproute bridge-utils libssl0.9.7 libsdl1.2debian

Install et build:

dpkg-dev gcc file debootstrap 

Noyeau para-visrtualisé Debian:

linux-image-2.6.18-4-xen-686

??

python-twisted libcurl3-dev

Packages utiles

openssh-server 
screen

Nous utiliserons aussi Checkinstall pour empaqueter Xen

cd /usr/src
wget http://asic-linux.com.mx/~izto/checkinstall/files/deb/checkinstall_1.6.1-1_i386.deb
dpkg -i dpkg -i checkinstall_1.6.1-1_i386.deb

Xen (Dom0)

L'hyperviseur est téléchargé de XenSource (version tarball / i386 PAE)

mkdir /usr/src/xen
cd /usr/src/xen
wget http://bits.xensource.com/oss-xen/release/3.1.0/bin.tgz/xen-3.1.0-install-x86_32p.tgz
tar xzf xen-3.1.0-install-x86_32p.tgz

Adaptations Debian:

cd dist
chown -R root:root .
cd install/etc
mv sysconfig default

Création du script network-dummy, si on ne désire pas utiliser le bridge Xen:

cd /usr/src/xen/dist/install/etc/xen
echo -e '#!/bin/sh\n\nexit 0' > scripts/network-dummy
chmod 755 scripts/network-dummy

Scripts de startup:

cd /usr/src/xen/dist/install/etc
perl -pi -e 's@LOCKFILE=/var/lock/subsys/xendomains@LOCKFILE=/var/lock/xendomains@' init.d/xendomains
perl -pi -e 's@XENDOM_CONFIG=/etc/sysconfig/xendomains@XENDOM_CONFIG=/etc/default/xendomains@' init.d/xendomains
perl -pi -e 's@-c0-17@-c0-37@;s@-c18-@-c38-@' init.d/xendomains
for i in 0 1 2 3 4 5 6 ; do mkdir rc$i.d ; done
for i in 0 1 6 ; do cd rc$i.d ; ln -sf ../init.d/xend K21xend ; ln -sf ../init.d/xendomains K20xendomains ; cd .. ; done
for i in 2 3 4 5 ; do cd rc$i.d ; ln -sf ../init.d/xend S20xend ; ln -sf ../init.d/xendomains S21xendomains ; cd .. ; done

Nous utiliserons les noyeaux Debian:

cd  /usr/src/xen/dist/install
rm -rf lib
rm -f boot/vmlinux-syms-2.6.18-xen boot/vmlinuz-2.6.18-xen boot/vmlinuz-2.6-xen boot/System.map-2.6.18-xen boot/config-2.6.18-xen

Préparation du paquet avec checkinstall

cd /usr/src/xen
mv dist xen-hypervisor-and-tools-3.1.0-1-i386-pae-3.1.0
cd  xen-hypervisor-and-tools-3.1.0-1-i386-pae-3.1.0
checkinstall -D ./install.sh

Installer le package:

dpkg -i xen-hypervisor-and-tools-3.1.0-1-i386-pae_3.1.0-1_i386.deb

Mettre grub à jour

update-grub

Rebooter!

Notes

Bridging

Si on ne désire pas utiliser le bridge Xen (efficace mais complexe), on peut simplement modifier le fichier de configuration:

 perl -pi -e 's@^\(network-script\ network-bridge\)$@\(network-script network-dummy\)@' /etc/xen/xend-config.sxp

Et créér le bridge dans /etc/network/interfaces

auto br0
iface br0 inet dhcp
   bridge_fd 0
   bridge_maxwait 0
   bridge_helo 0
   bridge_stp off
   bridge_ports eth0

Liens