Installation de Xen sur NetBSD

Xen est un logiciel libre destiné à faire de la virtualisation de serveurs. Comme la plupart des logiciels de virtualisation (VMWare, Virtual PC, Virtual Box, QEMU ... etc), il nécessite un système d'exploitation hôte et il permet de faire tourner plusieurs systèmes d'exploitation invité, chacun d'eux étant isolé les uns des autres.

Dans le cas de Xen, j'ai choisi d'utiliser NetBSD (La version 5.1, à l'heure où j'écris ces lignes), et avec l'extension PAE pour Xen. Il est aussi possible d'utiliser NetBSD sur une architecture 64 bits (amd64). Avec l'architecture amd64, l'extension PAE n'aura aucun sens mais la procédure suivante restera globalement la même.

$ uname -a  
NetBSD pampa 5.1 NetBSD 5.1 (XEN3PAE_DOM0) #0: Sun Nov  7 15:07:49 UTC 2010  builds@b6.netbsd.org:/home/builds/ab/netbsd-5-1-RELEASE/i386/201011061943Z-obj/home/builds/ab/netbsd-5-1-RELEASE/src/sys/arch/i386/compile/XEN3PAE_DOM0 i386  

1) Installation de NetBSD

Tout d'abord, il faut commencer par faire une installation par défaut de NetBSD. Vous trouverez toutes les informations nécessaires sur ce lien.

Ensuite, il peut être utile de configurer la carte réseau et d'activer OpenSSH. Pour se faire, éditer le fichier /etc/rc.conf en ajoutant les lignes suivantes :

# Local system clock  
rtclocaltime=YES  

# Network configuration  
ifconfig_re0="dhcp"  
sshd=YES  

Bien entendu, adapter la variable ifconfig_re0, en fonction du pilote de votre carte réseau. Dans mon cas, il s'agit de re0. La variable rtclocaltime=YES permet de positionner un offset sur l'horloge système, afin de l'ajuster en fonction du fuseau horaire de la machine.

2) Installation de la base des pkgsrc

Vous trouverez toutes les informations sur ce lien
Dans mon cas, j'ai utilisé la commande suivante, me permettant de récupérer la branch stable de 2011 :

cd /usr && cvs -q -z3 -d anoncvs@anoncvs.NetBSD.org:/cvsroot checkout -r pkgsrc-2011Q1 -P pkgsrc  

 3) Installation de Xen 3.1

Installer les 2 packages.

cd /usr/pkgsrc/sysutils/xentools3 && make package  
cd /usr/pkgsrc/sysutils/xenkernel3 && make package  

Ceci installera les utilitaires et le kernel Xen pour NetBSD.

Copier le fichier du kernel Xen à la racine du système

cp -p /usr/pkg/xen3-kernel/xen-PAE.gz /  

Copier les scripts RC permettant de démarrer certains daemon de Xen

cp -p /usr/pkg/share/examples/rc.d/xen* /etc/rc.d/  

Puis, ajouter les lignes suivantes dans votre fichier /etc/rc.conf

# Xen  
xend=YES  
xenbackendd=YES  
xendomains=YES  

Créer une interface réseau de type "bridge". Pour ceci, créer le fichier /etc/ifconfig.bridge0 avec les lignes suivantes :

create  
!brconfig $int add re0 up  

Bien entendu, adapter en fonction du pilote de votre carte réseau.

Télécharger les fichiers suivants :

cd /  
ftp ftp://ftp.fr.netbsd.org/pub/NetBSD/NetBSD-5.1/i386/binary/kernel/netbsd-INSTALL_XEN3PAE_DOMU.gz  
ftp ftp://ftp.fr.netbsd.org/pub/NetBSD/NetBSD-5.1/i386/binary/kernel/netbsd-XEN3PAE_DOM0.gz  
ftp ftp://ftp.fr.netbsd.org/pub/NetBSD/NetBSD-5.1/i386/binary/kernel/netbsd-XEN3PAE_DOMU.gz  

La prochaine étape est de démarrer le kernel Xen pour NetBSD avec son module netbsd-XEN3PAE_DOM0.gz. NetBSD sera ainsi le premier domaine (dans le jargon Xen), qu'on appelle le dom0.

Nous allons donc ajouter une nouvelle entrée dans le bootloader NetBSD.
Editer le fichier /boot.cfg et ajouter la ligne en début de fichier :

menu=Boot NetBSD/XEN-PAE:load /netbsd-XEN3PAE_DOM0.gz console=pc;multiboot /xen-PAE.gz dom0_mem=128M  

Votre fichier boot.cfg ressemblera à ceci

menu=Boot NetBSD/XEN-PAE:load /netbsd-XEN3PAE_DOM0.gz console=pc;multiboot /xen-PAE.gz dom0_mem=128M  
menu=Boot normally:boot netbsd  
menu=Boot single user:boot netbsd -s  
menu=Disable ACPI:boot netbsd -2  
menu=Disable ACPI and SMP:boot netbsd -12  
menu=Drop to boot prompt:prompt  
default=1  
timeout=5  

En cas de souci, vous pourrez toujours démarrer sur le kernel générique de NetBSD (2ème ligne).
Il ne vous reste plus qu'à redémarrer et choisir la 1ère ligne durant le "prompt" du bootloader.
Sinon, dans le principe, c'est le kernel xen.gz qui est démarré avec le module netbsd-XEN3PAE_DOM0.gz (NetBSD en tant que dom0). Afin de réserver de la mémoire pour les systèmes d'exploitation, j'ai arbitrairement allouer (seulement) 128 Mo de RAM pour le dom0.

Par la suite, j'expliquerai comment installer des serveurs virtuels (des domU, dans le jargon Xen). La procédure est différente selon le système d'exploitation choisi en tant qu'invité (NetBSD, Debian Linux, FreeBSD ... etc).

Par exemple, les fichiers netbsd-INSTALL_XEN3PAE_DOMU.gz et netbsd-XEN3PAE_DOMU.gz sont des kernel de NetBSD en tant que domU (système d'exploitation invité). Le premier est uniquement utilisé durant une installation par défaut de NetBSD en tant que domU.

Ajouter un commentaire

  • Votre courriel ne sera jamais publié