Xen

Z DCEwiki
Skočit na navigaci Skočit na vyhledávání

Xen, je virtualizační nástroj, který měl být původně open source variantou komerčního VMware ESX serveru. Jeho hypervizor byl - stejně jako hypervizor pro VMware ESX server - odvozen z linuxového jádra a navíc vyžadoval od virtualizovaného stroje podporu v jádře jeho OS. Proto se Xen, jehož první použitelná verze byla uvolněna v r.2003, využívá především pro virtualizaci linuxových strojů s upraveným jádrem.

Jelikož Xen neřešil nic jiného než vlastní virtualizaci a sám o sobě neobsahoval žádnou konzoli pro vzdálený přístup, nebyl nepovažován firmou VMware za konkurenci. To se však změnilo v okamžiku, kdy firmu XenSource ( která hypervizor vyvíjí ) odkoupila fa. CITRIX (22. října 2007). Hlavní parketou Citrixu byl do té doby byl aplikační server, který umožňoval sdílený přístup k aplikacím, spouštěným v rámci OS Microsoft Windows Server. Na rozdíl od nativního RDP protokolu jejich klient používá ke komunikaci patentově chráněný ICA protokol.

Citrix byl svými produkty vždy úzce spjat s Microsoftem, takže je otázkou v čí hlavě se zrodil nápad využít kapitál skrytý v možnostech ICA protokolu a vytvořit tak konkurenci vůči VMware.

Microsoft přišel v roce 2008 s vlastním virtualizačním řešením Hyper-V, postaveným na platformě Windows Server 2008. To však mělo stejný problém jako Xen, ovšem v obráceném gardu. Plnou virtualizaci bylo možné použít pouze u systémů s upraveným jádrem, zatím co při virtualizaci jiných OS se použila paravirtualizace, která pochopitelně degraduje výkon. Navíc RDP protokol používaný pro vzdálený přístup má daleko k optimalizovanému ICA protokolu.

Citrix ponechal vývoj samotného hypervizoru pod GPL licencí, ale z pochopitelných důvodů neměl zájem na vývoji otevřeného protokolu pro vzdálený přístup. Že se kují nekalé pikle, které mají za cíl z trhu vyšachovat VMware začalo být jasné když v září 2008 většinový podíl v Citrixu v tichosti získala fa. Microsoft.


Instalace distribučního rozšíření pro Xen

Instalaci Xenu na Debian sqeeze je nejjednodušší příkazem:

root@stroj:~# apt-get install xen-linux-system-2.6-xen-amd64

Instalace tohoto metabalíku nainstaluje vše potřebné, ovšem pro spuštění Xenu to nestačí a je třeba provést drobné manuální úpravy

Úprava konfigurace pro GRUB2

root@stroj:~# mv -i /etc/grub.d/10_linux /etc/grub.d/50_linux
root@stroj:~# echo "" >> /etc/default/grub
root@stroj:~# echo "# Disable OS prober to prevent virtual machines on logical volumes from appearing in the boot menu." >> /etc/default/grub
root@stroj:~# echo "GRUB_DISABLE_OS_PROBER=true" >> /etc/default/grub
root@stroj:~# update-grub2

Doinstalování balíku...

root@stroj:~# apt-get install xen-qemu-dm-4.0
Poznámka U předchozí verze Xenu 3.0 bylo nutné kromě distribučních balíků doinstalovat balík python-xml, který nebyl uveden nikde v závislostech, ale ukázal se jako nezbytný pro spuštění.



Ve výchozím nastavení se zařízení veth nevytváří! Je třeba upravit volbu v konfiguračním souboru /etc/xen/xend-config.sxp z

(network-script network-dummy)

za předpokladu že se má přemostit hlavní síťové rozhraní (zpravidla eth0) na

(network-script network-bridge)

Pokud mají virtuální stroje lézt přes jinou síťovku (např. eth1) pak by měla volba vypadat takto:

(network-script 'network-bridge,netdev=eth1')

Přičemž je třeba dát pozor na uzavření parametrů do uvozovek..

Nastavení VLAN

Pokud používáme vlany, máme několik možností.

Protažení celého svazku VLAN do domU

Rozdělení svazku VLAN v dom0 a protažení jednotlivých zařízení

Virtuální stroj

Problém s přihlášením na konzoli virtuálního stroje

Příčina...
Virtuální stroj nespouští ve výchozím nastavení getty na /dev/hvc0 jak vyžaduje Xen, ale na /dev/tty1.
..a řešení problému
Je třeba v souboru /etc/inittab zakomentovat nastavení pro první konzoli tty1 a místo něj nastavit hvc0. Viz níže:
co:2345:respawn:/sbin/getty 38400 hvc0
#1:2345:respawn:/sbin/getty 38400 tty1


Problém s přihlášením do virtuálního stroje přes ssh

Příčina..
Stroj, pokud byl nainstalován přes debootstrap nemá nainstalován udev.


user@stroj:~$ ssh root@147.32.87.41
root@147.32.87.41's password: 
PTY allocation request failed on channel 0
stdin: is not a tty
..a řešení
Je třeba si při přihlášení spustit bash a doinstalovat balíček udev


user@stroj:~$ ssh root@147.32.87.41 "bash -i"
pads:~# apt-get install udev
pads:~# echo "none /dev/pts devpts defaults 0 0" >> /etc/fstab
pads:~# mount -a