Xen
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
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