Xen propose plusieurs techniques, à ce jour trois:
dd if=/dev/zero of=disk.img bs=1G count=<size>
Cela crée notre partition root de notre VM.
dd if=/dev/zero of=swap.img bs=1M count=<size>
mkfs.ext3 disk.img mkswap swap.img
Voici un template d'un fichier de configuration: /etc/xen/<nom de la machine>.conf
# # Kernel + memory size # kernel = '/boot/vmlinuz-2.6.18-6-xen-amd64' ramdisk = '/boot/initrd.img-2.6.18-6-xen-amd64' memory = '<memory-size>' # # Disk device(s). # root = '/dev/sda1 ro' disk = [ 'file:/var/lib/xen//domains/<nom de ma machine>/disk.img,sda1,w', 'file:/var/lib/xen//domains/<nom de ma machine>/swap.img,sda2,w' ] # # Hostname # name = '<nom de ma machine>' # # Networking # vif = [ 'ip=<IP>' ] # # Behaviour # on_poweroff = 'destroy' on_reboot = 'restart' on_crash = 'restart' # Pour une console en état de marche extra='xencons=tty'
Vous remarquerez que c'est assez simple.
ln -s /etc/xen/auto/<nom de la machine> /etc/xen/<nom de la machine>.conf
Il est bon de faire quelques confs avant de lancer la machine (xen-create-image fait dèja une bonne partie du boulot aussi, cf man xen-create-image)
mount /var/lib/xen/domains/<nom de ma machine>/disk.img /mnt -o loop #si loop n'est pas chargé modprobe loop
debootstrap lenny /mnt ftp://ftp.minet.net/debian
chroot /mnt
passwd
apt-get install ssh vim sudo mailx snmpd psmisc
adduser <login> --ingroup staff
%staff ALL=(ALL) ALL
/dev/sda2 none swap sw 0 0
Ctrl-D (pour sortir du chroot) cd / umount /mnt
Voici une méthode très rapide pour faire tout ce qu'on a fait au-dessus:
xen-create-image --hostname=<nom de la machine> --ip=<IP>
à condition d'avoir installé xen-tools et d'avoir configuré comme il faut /etc/xen-tools/xen-tools.conf Mais il est intéressant de savoir comment cela fonctionne, notamment quand ça marche pas…
xm create -c /etc/xen/<nom de la machine>.conf
le -c vous directement dans une console de la VM
EDIT : sur les machines lenny, rajouter “extra = “xencons=tty” ” dans le fichier de conf de la VM et dans le fichier de conf xen-tool.cfg, il y a une section pour lenny vers la fin, décommenter les deux lignes qui ne sont pas par défaut
Ce module ne permet pas plus de 8 montages simultanés. Donc la 5e machine virtuelle ne se lancera pas. Mais il y a une solution: Augmenter ce nombre:
modprobe -r loop modprobe loop max_loop=32 (par exemple) echo "loop max_loop=32" >> /etc/modules
Empêcher la connexion en root sur la machine :
PermitRootLogin no
Empêcher la connexion sur les IPs publiques:
ListenAddress 192.168.1.xxx
Puis redémarrer le serveur ssh :
/etc/init.d/ssh restart
conf de exim4 pour le mail quotidien
dpkg-reconfigure exim4-config
mail sent by smarthost; no local mail <nom de la mach> 127.0.0.1 <DNS> minet.net mx.minet.net
Si vous voulez plusieurs interfaces dans des vlan différents, il faut
apt-get install vlan
vconfig add [interface-name] [vlan-id]
auto eth0.<vlanId>
D'abord il est bon de s'assurer que son processeur gère bien cette fonctionnalité
grep flags /proc/cpuinfo
ou
cat /sys/hypervisor/properties/capabilities
Puis on installe xen-utils-commmon. Voici un fichier de conf pour booter un XP
kernel = "/usr/lib64/xen-default/boot/hvmloader" builder = 'hvm' memory = 512 name = "win-cdrom" vcpus = 1 pae=0 acpi=0 apic=0 vif = [ 'type=ioemu, bridge=xenbr0' ] disk = [ 'file:/var/lib/xen/domains/win-cdrom/winxp.iso,ioemu:hdc:cdrom,r' ] #disk = [ 'phy:/dev/sdb,ioemu:hda,w' ] device_model = '/usr/lib64/xen-default/bin/qemu-dm' #cdrom='/dev/scd0' boot='d' sdl=1 vnc=0 vncviewer=0 stdvga=0 serial='pty' ne2000=0 on_poweroff = 'destroy' on_reboot = 'destroy' on_crash = 'destroy'
( Edit guest configuration file and add “serial = pty”
Then edit guest grub.conf file and add console=ttyS0 to kernel line and add “co:2345:respawn:/sbin/agetty ttyS0 9600 vt100-nav” to your /etc/inittab. )
Cette partie va expliquer comment on retaille des images utilisées par Xen.
La première chose à faire est de sauvegarder les fichiers de conf (/etc) en utilisant SVK, ainsi que tous autres fichiers au besoin. Ceci car le resize2fs peut planter.
Ensuite on éteint la machine:
halt (ou xm shutdown)
un “xm destroy” n'est jamais bon !!
Puis depuis le dom0. On lance un screee. On vérifie le FS et on le retaille.
screen e2fsck -f /var/lib/xen/domains/<server_name>/disk.img resize2fs /var/lib/xen/domains/<server_name>/disk.img <taille>G
Cette dernière opération peut être longue (pour le proxy une heure pour passer de 60 à 50G)
dd if=/dev/zero bs=1G count=1 of=/var/lib/xen/domains/<server_name>/disk.img resize2fs /var/lib/xen/domains/<server_name>/disk.img
xm create -c /etc/xen/<server_name>.cfg
(inspiré de ceci)
Au cours des mises à jour en noyau 2.6.26, on a vu apparaître des soucis à la connexion SSH au niveau de l'allocation PTY.
La solution : installer udev!