Archiwa kategorii: Xen

Debian – instalacja xen

apt-get install xen-hypervisor-4.0-amd64 linux-image-2.6.32-5-xen-amd64

Jeśli ma być nie tylko parawirtualizacja, ale HVM to należy zainstalować też:
# apt-get install xen-qemu-dm-4.0

w /boot/grub/grub.cfg zmienić default na 4

# reboot

i teraz można uruchamiać maszyny wirtualne przez:

# xm create -c /xen/test.cfg

Xen – konfiguracja dwóch interfejsów eth0 i eth1 jako bridge

Aby uruchomić w xen dwa interfejsy widoczne dla gości jako bridge należy stworzyć skrypt, np. o nazwie /etc/xen/scripts/network-multi-bridge a w nim:
#!/bin/sh
dir=$(dirname "$0")
script=/etc/xen/scripts/network-bridge
# eth0
$script "$@" netdev=eth0 vifnum=0 bridge=xenbr0
# eth1
$script "$@" netdev=eth1 vifnum=1 bridge=xenbr1
exit 0

Dajemy mu prawa do wykonywania:
chmod a+x /scripts/network-multi-bridge

W /etc/xen/xend-config.sxp zamiast:
(network-script network-bridge)
wpisujemy:
(network-script network-multi-bridge)
Restartujemy xend:
/etc/init.d/xend restart
I teraz już możemy konfigurować sieć gościa wpisując w pliku gościa np.
vif = [ 'bridge=xenbr0,mac=00:16:3E:00:00:02','bridge=xenbr1,mac=00:16:3E:00:00:03' ]

Cały plik konfiguracyjny może wyglądać tak: (/xen/orion.cfg)
kernel = '/boot/vmlinuz-2.6.32-5-xen-amd64'
ramdisk = '/boot/initrd.img-2.6.32-5-xen-amd64'
memory = '768'
extra = 'console=hvc0 xencons=tty'
disk=['phy:/dev/or/orionswap,sda1,w',
'phy:/dev/or/orionroot,sda2,w']
name='orion'
boot='d'
vnc=0
vncviewer=0
sdl=1
vcpus=1
on_poweroff = 'destroy'
on_reboot = 'restart'
on_crash = 'restart'
root = "/dev/xvda2 ro"
vif = [ 'bridge=xenbr0,mac=00:16:3E:00:00:14','bridge=xenbr1,mac=00:16:3E:00:00:15' ]

Xen 4.0 Domain ‚name’ does not exist

Zgodnie z instrukacjami zrobiłem w name.cfg linię:
vif = ['type=ioemu, bridge=xenbr0']
ale pojawiał się błąd:
Domain 'name' does not exist
pomogła zmiana powyższego na:
vif = [ ]

Pełny plik konfiguracyjny to:

import os, re
arch = os.uname()[4]
if re.search('64', arch):
arch_libdir = 'lib64'
else:
arch_libdir = 'lib'

kernel = "/usr/lib/xen-4.0/boot/hvmloader"

builder='hvm'

memory = 512
shadow_memory = 8
name = "name"
vif = [ ]
disk = [ 'phy:/dev/bla/partwin,hda,w' ]
device_model = '/usr/' + arch_libdir + '/xen/bin/qemu-dm'
boot="dc"
sdl=0
vnc=1
vncconsole=1
vncpasswd='haslo'
stdvga=0
serial='pty'
usbdevice='tablet'

Konsola domU w Xen 4.0

Kernel gościa zatrzymuje się na:
Entering runlevel: 2
Starting enhanced syslogd: rsyslogd.
Starting periodic command scheduler: crond.

Aby otrzymać poniżej konsolę, należy w systemie gościa skonfigurować inittab aby uruchamiał getty dla hvc0 a nie tty. W pliku /etc/inittab zmieniamy linię:
1:2345:respawn:/sbin/getty 38400 tty1
na
1:2345:respawn:/sbin/getty 38400 hvc0

Aby móc się logować jako root należy także dodać do /dev/securetty: hvc0

Z Hypervisorem 3.x działało dodanie w pliku konfiguracyjnym gościa linii:
extra = 'console=hvc0 xencons=tty'
przy wersji 4.0 to już nie działa i pomaga to co powyżej.

Instalacja systemu Debian Lenny jako gość dla Xen

dd if=/dev/zero of=nazwa-disk.img bs=1 count=0 seek=10G
dd if=/dev/zero of=nazwa-swap.img bs=1 count=0 seek=100M
mkfs.ext3 nazwa-disk.img  (trzeba odpowiedzieć Y)
mkswap nazwa-swap.img
mount -o loop disk.img /xen/mnt/nazwa
debootstrap lenny /xen/mnt/nazwa ftp://ftp.icm.edu.pl/pub/Linux/dist/debian
umount /xen/mnt/nazwa

Należy utworzyć plik konfiguracyjny dla gościa, np.:

kernel = ‚/boot/vmlinuz-2.6.26-2-xen-686’
ramdisk = ‚/boot/initrd.img-2.6.26-2-xen-686’
memory = ‚512’
extra = ‚console=hvc0 xencons=tty’
disk=[‚file:/xen/zab-disk.img,sda2,w’]
name=’nazwa”
boot=’d’
vnc=0
vncviewer=0
sdl=1
on_poweroff = ‚destroy’
on_reboot   = ‚restart’
on_crash    = ‚restart’
root = „/dev/sda2 ro”
vif  = [ ” ]

Teraz wystartować guesta:

xm create -c xm-nazwa.cfg

opuszczenie konsoli przez CTRL-]

Aby ponownie podłączyć konsolę:

xm console nazwa

Zatrzymanie gościa:

xm shutdown nazwa

Lista gości:

xm list

Jeśli gość nie uruchamia się do końca
(staje na Starting periodic command scheduler: crond.), należy do /etc/inittab dodać linię:
h1:2345:respawn:/sbin/getty 38400 hvc0

Dla Ubuntu wywołanie debootstrap:
debootstrap –arch=amd64 trusty /mnt http://archive.ubuntu.com/ubuntu/

Problem z ssh pod xen guest

Po zainstalowaniu systemu guesta przez debootstrap, instalacji sshd, [przy próbie połączenia przez ssh do guesta pojawia się:
root@xxxxx's password:
PTY allocation request failed on channel 0
stdin: is not a tty

Nie ma zainstalowanego pakietu udev, pomaga:

apt-get install udev

oraz dodanie do /etc/fstab

none            /dev/pts      devpts    defaults        0   0

(nie jest to już wymagane).