Hlavní navigace

Vytváříme XENovské hosty

Miroslav Suchý

V předchozím článku jsme se prokousali suchou teorií virtualizace s pomocí Xenu a nyní se podíváme, jak si vytvořit nového hosta v paravirtualizaci i v plné virtualizaci. Vyzkoušíme si vše pomocí hezkého grafického průvodce a také to zkusíme z příkazové řádky. Vše navíc doplníme velkým množstvím obrázků a příkladů.

Podívejme se nejdříve na paravirtualizaci. Abychom mohli vůbec vytvořit nového hosta, musíme mít jádro s podporou XENU. Většina současných distribucí taková jádra již nabízí. Poznáte je podle toho, že mají v názvu text xen. Například balíček linux-image-2.6.18-4-xen-amd64 v Debianu, nebo kernel-xen-2.6.18-1.2798.fc6.i686.rpm pro Fedoru.

Poté, co nabootujeme do nového jádra, je již vytvoření nového hosta (angl. guesta) jednoduché. Použijeme na to grafický nástroj virt-manager.

xen1

Nejprve se musíme připojit k hypervisorovi (pokud nevíte co to je, tak si nejdříve přečtěte minulý článek). Obvykle je to náš vlastní stroj, ale může to být vzdálený počítač.

xen2

Takhle vypadá obrazovka po připojení. Zatím na stroji neběží žádný host. Jediné co je v provozu, je hostitelský OS neboli dom-0. Zobrazují se nám jeho statistiky, ale s tímto OS nemůžeme dále manipulovat (pozastavit, ukončit).

xen3

Vejdeme do menu a zvolíme File -> New machine a objeví se nám tento dialog. Zde si zvolíme, jak se má systém jmenovat. Tímto jménem bude pojmenován konfigurační soubor našeho XENu a bude nám sloužit jako indentifikátor v seznamech hostů. Až dokončíme průvodce, můžete tento konfigurační soubor nalézt v adresáři  /etc/xen/.

xen4

V tomto dialogu zvolíte, kde máte instalační médium a volitelně zadáte adresu kickstart souboru.

xen5

V posledním kroku už jenom vyberete, zda diskem má být skutečná partition (pak je možné OS bootovat jako questa i jako hosta), anebo zda jeho diskem bude soubor v současné adresářové struktuře.

xen6

Nyní vše zkontrolujeme a necháme si vytvořit guesta.

xen7

Dvojklikem na identifikátor XENu ve virt-managerovi se objeví grafická konzole guesta. Mnou zvolený instalátor nemá grafické rozhraní, takže grafická konzole není dostupná, Proto v menu otevřu View-> Serial console a dostanu tuto stránku, kde už probíhá instalace z kickstartu.

xen8

Průběh instalace v sériové konzoli.

xen9

Instalace dokončena, proběhl reset hosta. PyGrub je program, který se používá jako zavaděč. Běží ještě jako „normální“ program a vybere, kam se předá řízení. Dále už plnohodnotně běží host.

xen10

Nyní ve virt-manageru vidíme vedle původního hostitele i nového hosta a jeho statistiky. Vidíme, že hostitel přišel o jedno GB paměti, které jsme přidělili novému hostu.

xen11

A konečně závěr. V seriové konzoli na nás čeká login prompt.

Takže jsme zprovoznili paravirtualizaci v XENu. Nyní se podíváme na plnou virtualizaci. Ve virt-manageru se postupuje stejně. Pouze pokud máte CPU podporující plnou virtualizaci, na začátku uvidíte tento dialog:

xen13

a po odkliknutí plné virtualizace si již jen vyberete ISO, z kterého chcete bootovat:

xen14

Tahle cesta je pro nás opakováním a tudíž nezajímavá. Takže si pro změnu ukážeme, jak provést instalaci plně virtualizovaného hosta z příkazové řádky.

Pod rootem spustíme tento příkaz:

virt-install -n test -r 300 -f /var/xen/test.img -s 4 --hvm -c ./boot.iso --vnc –vncport=5900

Ten nainstaluje guesta pojmenovaného test, kterému dáme k dispozici 300 MB paměti, jako disk bude sloužit soubor /var/xen/test.img a velikost disku bude 4 GB. Guest se spustí pod plnou hardwarovou virtualizací a nabootuje do souboru boot.iso. Poslední volba je zajímavá. Intuitivně poznáte, že se má spustit VNC, ale proč?
Při plné virtualizaci jsou od sebe host a guesti odděleni a není boha, který by se dostal z jednoho do druhého. Tudíž nejde jednoduše přesměrovat ttyX na hostovu konzoli. Takže jediná možnost je se na questa přihlásit přes ssh (to je dost hloupé, když má dynamickou IP, a ještě hloupější, pokud teprve startujeme instalaci) nebo použít VNC. Xen toto umí. Při startu alokuje paměť, předhodí ji startovanému guestu jako framebuffer a data z tohoto framebufferu posílá ven pomocí VNC protokolu. Standardně se používá port 5900, ale doporučuji si při instalaci zvolit vlastní port, protože pokud budete mít více hostů, pak zbytečně musíte hledat, který volný port zabral druhý a další host. A takto vypadá grafická obrazovka instalátoru pod plnou virtualizací.

xen12

XENovské guesty můžete startovat a spouštět přímo z virt-manageru, ale neuškodí se naučit i ovládání z příkazové řádky.

#xm create Root-demo

Nastartuje našeho hosta, kterého jsme pojmenovali Root-demo. Pokud zadáme

#xm create -c Root-demo

tak se nastartuje host Root-demo a na naši konzoli se přesměruje jeho sériová konzole.

Následujicí příkaz nám vypíše, zda na stroji běží nějaké guesty a jaké (velmi vhodné spustit před resetem stroje, zda zde někdo nepracuje):

# xm list
Name                             ID Mem(MiB) VCPUs State   Time(s)
Domain-0                          0      504     2 r-----  18361.5
rhel4                             9      500     1 r----- 858089.2
s410to420                         7      700     1 -b----  17358.7

Pokud již máme běžícího guesta a chceme se dostat na jeho sériovou konzoli, stačí napsat:

# xm console Root-demo

A na ukončení guesta můžeme spustit:

xm destroy Root-demo

Xen toho umí mnohem více. Z pokročilých technik uložení a obnovení stavu, nebo například migraci zaživa:

#xm migrate Root-demo jinystroj.root.cz --live

Zkopíruje paměť guesta na jiného hosta (předpokládá se, že disk je sdílený) a poté se uspí, ještě jednou se přenesou pouze modifikované části paměti a následně se stroj oživí na druhém hostu. Takto je možné provádět migrace velkých strojů, kde downtime je pouze pár sekund. Migrovanému stroji zůstane stejná MAC adresa a IP, takže z vnější sítě nikdo nic nepozná.

Kromě programu xm je možné pro manipulaci se XENem možno použít i program virsh, který je postaven nad knihovnou libvirt, takže bude možné ovládat nejenom XEN, ale i jiné virtualizační systémy (v CVS je už podpora pro QEMU a časem bude i pro KVM).

Opět děkuji Karlu Žákovi za jeho připomínky k tomuto textu.

Našli jste v článku chybu?

22. 8. 2008 22:10

kolaloka (neregistrovaný)
Obavam se, ze FreeBSD a OpenBSD jako XEN hoste (guests) cili Xen DomU nejsou bezproblemove, ale udajne to jde, tady je odkaz na rozhovor s developerem, ktery portoval Xen z NetBSD na OpenBSD:
http://web.archive.org/web/20070403174105/http://ropersonline.com/openbsd/xen/
Je tam i odkaz na to, jak to rozchodit, ale nevypada to na prochazku ruzovou zahradou...
Co se tyka xenu, zustal bych hezky vzorne u NetBSD, dokud se jeho dva braskove poradne nepohnou..., coz se mozna ale zas tak rychle nestane,…


Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

Vitalia.cz: Nestlé vyvinulo nový typ „netloustnoucího“ cukru

Nestlé vyvinulo nový typ „netloustnoucího“ cukru

Lupa.cz: Proč firmy málo chrání data? Chovají se logicky

Proč firmy málo chrání data? Chovají se logicky

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Vitalia.cz: Když přijdete o oko, přijdete na rok o řidičák

Když přijdete o oko, přijdete na rok o řidičák

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“

Podnikatel.cz: Chtějte údaje k dani z nemovitostí do mailu

Chtějte údaje k dani z nemovitostí do mailu

Vitalia.cz: 9 největších mýtů o mase

9 největších mýtů o mase

120na80.cz: Co všechno ovlivňuje ženskou plodnost?

Co všechno ovlivňuje ženskou plodnost?

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

120na80.cz: Pánové, pečujte o svoje přirození a prostatu

Pánové, pečujte o svoje přirození a prostatu

Vitalia.cz: Proč vás každý zubař posílá na dentální hygienu

Proč vás každý zubař posílá na dentální hygienu

Vitalia.cz: Spor o mortadelu: podle Lidlu falšovaná nebyla

Spor o mortadelu: podle Lidlu falšovaná nebyla

Root.cz: Certifikáty zadarmo jsou horší než za peníze?

Certifikáty zadarmo jsou horší než za peníze?

Podnikatel.cz: Udávání a účtenková loterie, hloupá komedie

Udávání a účtenková loterie, hloupá komedie

Podnikatel.cz: EET: Totálně nezvládli metodologii projektu

EET: Totálně nezvládli metodologii projektu

Vitalia.cz: „Připluly“ z Německa a možná obsahují jed

„Připluly“ z Německa a možná obsahují jed