CIV:Granty/Rozvoj Xen virtuálních strojů/HowTo Xen - EurOpen.CZ Tutoriál

Z HelpDesk
Verze k tisku již není podporovaná a může obsahovat chyby s vykreslováním. Aktualizujte si prosím záložky ve svém prohlížeči a použijte prosím zabudovanou funkci prohlížeče pro tisknutí.

Tento článek popisuje zprovoznění virtualizace založené na Xenu pro tutoriál na EurOpen.cz. Text nelze brát exaktně, je to účelově sestavená kuchařka pro potřebu přednášky tutoriálu!


Úvod

Informace o zapojení

Síť je adresována v rozsahu 10.10.10.0/24 z toho je vyčleněno:

10.10.10.1       gateway (wifi router), DNS, DHCP server a defaultní gateway
10.10.10.10      virtualizační server tutor.europen.cz
10.10.10.11      notebook s mirrorem debian.europen.cz
10.10.10.20-100  pro virtuální stroje provozované na serveru (vzdy IP adresa stanice minus 100)
10.10.10.120-200 DHCP pro stanice posluchačů tutoriálu
10.10.10.201-254 rezerva

Server a notebook jsou připojeni 100Mbit ethernetem k WiFi routeru. Klienti se mohou do sítě připojit přes 802.11g (2.4 GHz pasmo).

Mirror

Soubor /etc/apt/sources.list:

deb http://debian.europen.cz/debian/ lenny main non-free contrib
deb http://debian.europen.cz/debian/ lenny-proposed-updates main non-free contrib

A obvyklá aktualizace:

aptitude update

LVM

Instalace LVM a rozdělení disků

Instalace balíku pro LVM:

aptitude install lvm2

Vytvoření oddílu pro LVM. Disky sda a sdb jsou rozděleny pro systém, přidáme tedy třetí partition typu LVM. Disky sdc a sdd jsou prazdne, vytvoříme jednu partition typu LVM.

# partition 1: RAID1(md0 = sda1 + sdb1) pro system
# partition 2: RAID1(md0 = sda2 + sdb2) pro swap
fdisk /dev/sda <<EOF
n
p
3


t
3
8e
w
EOF

# partition 1: RAID1(md0 = sda1 + sdb1) pro system
# partition 2: RAID1(md1 = sda2 + sdb2) pro swap
fdisk /dev/sdb <<EOF
n
p
3


t
3
8e
w
EOF

fdisk /dev/sdc <<EOF
n
p
1


t
8e
w
EOF

fdisk /dev/sdd <<EOF
n
p
1


t
8e
w
EOF

fdisk /dev/sde <<EOF
n
p
1


t
8e
w
EOF

Inicializace LVM

PV - physical volume

Vytvoření fyzických diskových oddílů (PV - physical volume):

pvcreate /dev/sda3 /dev/sdb3 /dev/sdc1 /dev/sdd1 /dev/sde1

Kontrola:

pvscan
 PV /dev/sda3                      lvm2 [247.21 GB]
 PV /dev/sdb3                      lvm2 [247.21 GB]
 PV /dev/sdc1                      lvm2 [278.87 GB]
 PV /dev/sdd1                      lvm2 [278.87 GB]
 PV /dev/sde1                      lvm2 [278.87 GB]
 Total: 5 [1.30 TB] / in use: 0 [0   ] / in no VG: 5 [1.30 TB]
pvdisplay /dev/sda3
 "/dev/sda3" is a new physical volume of "247.21 GB"
 --- NEW Physical volume ---
 PV Name               /dev/sda3
 VG Name               
 PV Size               247.21 GB
 Allocatable           NO
 PE Size (KByte)       0
 Total PE              0
 Free PE               0
 Allocated PE          0
 PV UUID               C8edP0-Q6Xg-XkIU-nbkX-ai0n-25RI-DuehtM

VG - volume group

Vytvoření skupiny fyzických oddílů (VG - volume group):

vgcreate virt /dev/sda3 /dev/sdb3 /dev/sdc1 /dev/sdd1

Kontrola:

vgscan 
 Reading all physical volumes.  This may take a while...
 Found volume group "virt" using metadata type lvm2
vgdisplay virt
 --- Volume group ---
 VG Name               virt
 System ID             
 Format                lvm2
 Metadata Areas        5
 Metadata Sequence No  8
 VG Access             read/write
 VG Status             resizable
 MAX LV                0
 Cur LV                2
 Open LV               0
 Max PV                0
 Cur PV                5
 Act PV                5
 VG Size               1.30 TB
 PE Size               4.00 MB
 Total PE              340740
 Alloc PE / Size       2628 / 10.27 GB
 Free  PE / Size       338112 / 1.29 TB
 VG UUID               AvO68w-fYcJ-l34v-GWDd-86Z8-LGmJ-bHum7P

Vytvoření oddílů pro virtuální stroje

LV - logical volume

Vytvoření logického diskového oddílu (LV - logical volume):

lvcreate -L10000 -ndemo-debian-root virt
lvcreate -L512   -ndemo-debian-swap virt

Kontrola:

lvscan
 ACTIVE            '/dev/virt/demo-debian-root' [9.77 GB] inherit
 ACTIVE            '/dev/virt/demo-debian-swap' [512.00 MB] inherit
lvdisplay /dev/virt/demo-debian-root
 --- Logical volume ---
 LV Name                /dev/virt/demo-debian-root
 VG Name                virt
 LV UUID                liSyr3-79wY-AKBt-vjkh-ECj0-VGUC-Uvhd9L
 LV Write Access        read/write
 LV Status              available
 # open                 0
 LV Size                9.77 GB
 Current LE             2500
 Segments               1
 Allocation             inherit
 Read ahead sectors     auto
 - currently set to     256
 Block device           253:0

Xen

Instalace

Instalace jádra s rozšířením o Xen a hypervisora a nástroje pro Xen:

aptitude install xen-linux-system-2.6.26-2-xen-amd64 xen-tools

Upravíme /etc/modules pro modul 'loop':

loop max_loop=64

Výměna jádra:

reboot

Kontrola:

uname -a
Linux tutor 2.6.26-2-xen-amd64 #1 SMP Fri Mar 27 07:12:15 UTC 2009 x86_64 GNU/Linux

Úprava parametrů Xenu

Změna defaultního chování síťových rozhraních v /etc/xen/xend-config.sxp a navýšení minimální paměti pro dom0 (více v komentářích konfiguračního souboru):

(network-script network-bridge)
#(network-script network-dummy)
#(dom0-min-mem 196)
(dom0-min-mem 512)
/etc/init.d/xend restart

Zrušení hibernace virtuálních strojů do souborů v případě ukončení dom0 (halt, reboot) v /etc/default/xendomains:

#XENDOMAINS_SAVE="/var/lib/xen/save"
XENDOMAINS_SAVE=""

Přehled nejpoužívanějších příkazu

  • xm je základní nástroj pro ovládání xenu, nejčastější příkazy pro něj jsou (abecedně):
console  - připojení se ke konzoli virtuálního stroje, odpojení se provede klávesovou zkratkou Ctrl + ] 
create   - vytvoření virtuálního stroje dle konfiguračního souboru
destroy  - zrušení běžícího virtuálního stroje, jde o "násilné" ukončení ve stylu vytažení ze zásuvky (nejde o reset!)
dmesg    - výpis hlášení od hypervisoru z doby jeho startu a provozu
help     - všechny příkazy, které lze užít pro management
list     - seznam virtuálních strojů včetně základních systémových údajů (paměť, procesory, stav, ...)
reboot   - reboot virtuálního stroje, stroj automaticky nastartuje dle konfigurace v paměti (parametry z 'xm create')
shutdown - vypnutí virtuálního stroje, stroj lze nelze obnovit, ale pouze znovu vytvořit
sysrq    - zaslaní 'Magic SysRq' znaku do virtuálního stroje

  • xentop ukazuje aktuální využívání systémových prostředků běžících strojů

Základní parametry konfiguračního souboru

kernel  - cesta k image uložená v dom0 (moduly jsou uloženy v domU)
ramdisk - cesta k initrd obrazu
memory  - velikost paměti pro domU
name    - jméno stroje (musí být jedinečné)
vif     - definice síťového rohraní (MAC adresa a napojení na podsíť v dom0)
disk    - nastavení disků pro domU poskytovaných z dom0
root    - nastavení parametru 'root' pro kernel, obvykle "/dev/hda1"
extra   - další parametry, které se mají předat jádru

Modifikované virtuální stroje (Linux)

Instalace

Je možné je instalovat několika způsoby:

  • jako nemodifikované a pak jim vyměnit jádro s rozšířením xenu (níže v kapitole o nemodifikovaných operačních systémech)
  • vytvořit pomocným skriptem základ systému již s jádrem pro domU (z bal9
  • nějak jinak, například přes FAI (http://www.informatik.uni-koeln.de/fai/)

Příprava parametrů v /etc/xen-tools/xen-tools.conf pro xen-create-image z balíku xen-tools (vypsány pouze změny, více v komentářích souboru):

lvm = virt
dist   = lenny     # Default distribution to install.
gateway   = 10.10.10.1
netmask   = 255.255.255.0
broadcast = 10.10.10.255
passwd = 1
kernel      = /boot/vmlinuz-`uname -r`
initrd      = /boot/initrd.img-`uname -r`
mirror = http://debian.europen.cz/debian/
serial_device = hvc0
disk_device = xvda

Spuštění výroby virtuálního stroje:

xen-create-image -hostname=test.europen.cz -size=4Gb -swap=256Mb -ip=10.10.10.14 -memory=128Mb -arch=amd64 -role=udev

General Information
--------------------
Hostname       :  test.europen.cz
Distribution   :  lenny
Partitions     :  swap            256Mb (swap)
                  /               4Gb   (ext3)
Image type     :  full
Memory size    :  128Mb
Kernel path    :  /boot/vmlinuz-2.6.26-2-xen-amd64
Initrd path    :  /boot/initrd.img-2.6.26-2-xen-amd64

Networking Information
----------------------
IP Address 1   : 10.10.10.14 [MAC: 00:16:3E:3C:D1:4E]
Netmask        : 255.255.255.0
Broadcast      : 10.10.10.255
Gateway        : 10.10.10.1
...

Logovací soubor:

tail -f /var/log/xen-tools/test.europen.cz.log

Kontrola:

lvscan
 ACTIVE            '/dev/virt/list_root' [9.77 GB] inherit
 ACTIVE            '/dev/virt/list_swap' [512.00 MB] inherit
 ACTIVE            '/dev/virt/test.europen.cz-disk' [4.00 GB] inherit
 ACTIVE            '/dev/virt/test.europen.cz-swap' [256.00 MB] inherit

Provoz

Spuštění a zároveň přepnutí na kozoli:

xm create -c /etc/xen/test.europen.cz.cfg

Stav:

xm list
Name                                        ID   Mem VCPUs      State   Time(s)
Domain-0                                     0 20056     8     r-----    185.3
test.europen.cz                              3   128     1     -b----      1.6

Nemodifikované virtuální stroje

Při provozu nemodifikovaných strojů lze narazit na několik obtíží. Nelze se dostat přímo na konzoli, ale je třeba užít 'vnc' nebo obdobný nástroj. V současnosti nelze použít více než jeden CPU pro domU.

Je nutné mít zapnutou HW podporu VT/AMD-V v BIOSu a mít podporu virtualizace na procesoru a chipsetu. Jinak od systému xm create uvidíte:

Error: HVM guest support is unavailable: is VT/AMD-V supported by your CPU and enabled in your BIOS?

Konfigurační soubor

Vypíchnuté nejdůležitější věci, popis parametrů v komentářích originálních ukázkových souborů nebo v dokumentaci:

import os, re
arch = os.uname()[4]

kernel = "/usr/lib/xen-default/boot/hvmloader"
builder='hvm' 

memory = 512
shadow_memory = 8
vcpus=1
pae=1
acpi=1
apic=1

name = 'list-freebsd'

vif = [ 'type=ioemu, bridge=eth0']

disk = [ 'phy:/dev/virt/list_root,ioemu:xvda,w',
         'phy:/dev/virt/list_swap,ioemu:xvdb,w',
         'file:/mnt/data/images/<BOOT-ISO-FILE.iso>,xvdc:cdrom,r'
       ]
device_model = '/usr/lib64/xen-default/bin/qemu-dm'
boot="dc"

sdl=0
vnc=1
vnclisten="0.0.0.0"
vncconsole=1
vncviewer=0
vncdisplay=0
vncpasswd='pass'

serial='pty'
stdvga=0
ne2000=0

Přepnutí pořadí bootovacích zařízení se provede úpravou parametru boot ('dc' - napřed z CD-ROM (d), potom z prvního disku (c)).

Jak zjistit číslo portu pro VNC

Vytvořit virtuální stroj a zjistit jeho PID:

xm create demo-debian
ps xfa |grep demo-debian | grep vnc
23830 ?        Sl     0:05      \_ /usr/lib64/xen-default/bin/qemu-dm -d 35 -domain-name list-debian -vnc 0.0.0.0:0,password ...

Zjistit otevřené porty daného procesu

netstat -lnpa | grep 23830
tcp        0      0 0.0.0.0:5900            0.0.0.0:*               LISTEN      23830/qemu-dm   

Číslo port je 5900, použijeme tedy:

vnc 10.10.10.10:5900

Debian

  • nainstalovat
  • zavést síťovou kartu modprobe 8139cp
  • upravit /etc/apt/sources.list
  • apt-get install linux-image-2.6.26-2-xen-686 nebo linux-image-2.6.26-2-xen-amd64
  • halt
  • upravit konfiguracni soubor pro nativní virtualizaci (nastavit kernel, zrušit hvm, upravit emulace zarizeni)
  • nastartovat virtuální stroj

Windows 7

Pro instalaci použít selský rozum.

Zprovoznění RDP

  • Menu: Start -> control panel -> System and Security -> System -> Advanced system settings
  • karta Remote: zvolit prostřední volbu Allow connection ... v boxu Remote Desktop
  • zjistit aktuální IP adresu: Start -> spustit příkaz 'cmd' -> ipconfig
  • na Linuxu: rdesktop <ip adresa>

Solaris

OpenSolaris

FreeBSD

Nefunguje na standardní kompilaci z distribuce Debian (je třeba vypnout parametr vmxassist), je třeba provést rekompilaci:

# make world vmxassist=n
# make install
Created new ramdisk and rebooted.

Pokud tomu tak není, pak je na obrazovku výpis registrů procesoru:

int=0000000d  err=00000000  efl=00010046  eip=000090db
eax=00050033  ebx=00002820  ecx=00000000  edx=0000a000
esi=00009701  edi=000d1f98  ebp=000d7bea  esp=00001800
cs=0008  ds=0000  es=0000    fs=0000  gs=0000  ss=0010
cs:eip=0f 01 15 d0 96 00 00 66-ea e8 90 18 00 b1 20 8e
       d1 8e d9 8e c1 8e e1 8e-e9 48 0f 22 c0 ea fd 90
ss:esp=0a 69 6e 74 3d 30 30 30-30 30 30 30 64 20 20 65
       72 72 3d 30 30 30 30 30-30 30 30 20 20 65 66 6c
BTX halted

Odkazy

LVM

Xen na Debianu

Ostatní

O dokumentu

  • Verze: 0.1 16.5.2009
  • Autor: Michal Švamberg <svamberg@civ.zcu.cz>
  • Účel: Konference EurOpen.CZ http://www.europen.cz/
  • Licence: volně šiřitelné, pokud bude zachována informace o autorovi a účelu článku.