Portál AbcLinuxu, 14. května 2024 08:56

Xen – představení, historie, budoucnost

20. 8. 2009 | Lukáš Helebrandt
Články - Xen – představení, historie, budoucnost  

Krátký pohled na historii projektu Xen. Těžká cesta do hlavní řady jádra, hlavní rozdíly mezi Xenem a jinými virtualizačními řešeními.

Co je to Xen

Xen je open source virtualizační software, tedy software, umožňující provoz několika virtuálních strojů na jednom fyzickém. Nabízí dva druhy virtualizace:

Podrobný popis principu fungování Xenu by byl nošením dříví do lesa, koncem loňského roku vyšel na Ábíčku výborný článek Xen – základy virtualizácie.

Něco z historie

Xen (z řeckého xenos – cizí, neznámý) byl založen v roce 2002 jako výzkumný projekt na University of Cambridge. Vedl jej tamní docent a pozdější zakladatel společnosti XenSource Ian Pratt. První veřejné vydání se objevilo v roce 2003 a Xen se stal populárním desktopovým hypervizorem, podporoval ovšem pouze jeden 32bitový procesor.

To se změnilo v roce 2005, kdy komunita v čele s XenSource vydala Xen v3, první vydání vhodné pro enterprise nasazení. Zásadními vylepšeními byla podpora až 32 CPU a schopnost využít Intel VT (později samozřejmě i AMD-V) a PAE (Physical Address Extension, možnost přidělit 32bitovým hostům více než 4 GB paměti). V této fázi však Xen podporoval stále pouze upravené linuxové hosty. Zároveň s touto verzí vydal XenSource správcovské rozhraní XenOptimizer; to mělo vyplnit mezeru mezi Xenem a VMwarem

Na konci roku 2006 vyšel XenEnterprise 3.0, produkt XenSource, který měl být přímým konkurentem VMware. Byl založen na Xenu 3.0.3 a nabízel nové správcovské a monitorovací rozhraní, založené, jak jinak, na XenOptimizeru. XenSource však ještě v červenci toho roku stihla uzavřít partnerství s Microsoftem, a tak se tato verze mohla pochlubit plnou podporou virtualizace Windows. Také byla spuštěna Amazon EC2, cloud computingová služba založená právě na Xenu.

Další milník přichází v polovině roku 2007 – vychází XenEnterprise 4.0 (založen na Xenu 3.1), obsahující nový 64bitový hypervizor. Přidává také další nástroje konkurující VMwaru, např. XenMotion, umožňující snadnou migraci virtuálních strojů z jednoho Xen serveru na jiný.

V témže roce společnost XenSource koupil Citrix, a to za 500 milionů dolarů. Došlo k přejmenování produktů na jejich nynější názvy (XenServer Express Edition/Standard Edition atd.), stránky projektu se přesunuly na xen.org a vznikla dozorčí rada (Citrix, IBM, Intel, Hewlett-Packard, Novell, Red Hat, Sun Microsystems a Oracle), která dohlíží na proces vývoje a na nakládání s marketingovou značkou Xen.

Na konci roku 2007 vyšel XenServer 5.0, který přinesl např. nástroje pro vysokou dostupnost (HA, High Availability) a vylepšenou administrátorskou a monitorovací konzoli.

Začlenění do jádra

Navzdory tomu, že je Xen hojně využívaným virtualizačním řešením, používaným na odhadem 500 tisících komerčních serverech, není jeho kód doposud plně obsažen v hlavní řadě linuxového jádra. Počínaje vydáním 2.6.23 v říjnu 2007 je začleněn kód umožňující běh Linuxu jako hosta (DomU), kód vyžadovaný k chodu samotného hypervizoru je však stále udržován mimo hlavní strom a distribuce, které jej chtějí nabízet, musí aplikovat poměrně rozsáhlý patch. Proč je tomu stále tak?

Vývojáři Xenu projevovali zpočátku jen malou snahu o jeho začlenění. Pokud se o to pokusil někdo jiný, narazil na množství problémů vyplývajících z jeho složitosti – kód Dom0 mění spoustu vnitřního kódu architektury x86, a to způsobem, který se jejím správcům moc nezamlouvá.

Diskuze o začlenění znovu ožila na počátku roku 2009, kdy byla zaslána sada patchů jádra Xen Dom0 s cílem dostat se do Linuxu 2.6.30. Vyrojila se samozřejmě spousta argumentů proti začlenění:

Pro začlenění mluví hlavně to, že je Xen široce rozšířen, jeho začlenění do hlavní řady jádra by distributorům ulehčilo práci a vývojářům udržování kódu. V otázce Xen vs KVM panuje přesvědčení, že v jádře je místo pro oba projekty.

Ačkoliv byly vyhlídky na začlenění zpočátku poměrně příznivé, dostala se do jádra 2.6.31 jen množina vlastností podporující funkci Dom0, hlavní kód však zůstává nezačleněn. Nyní je na vývojářích Xenu, aby opravili problémy a přesvědčili jadernou komunitu pro úplné začlenění.

Xen vs KVM

KVM [Kernel-based Virtual Machine] je poměrně mladý a rychle se rozvíjející projekt, začleněný do linuxového jádra od verze 2.6.20 (únor 2007). Hlavní rozdíly mezi Xenem a KVM:

Druh virtualizace. Na rozdíl od Xenu, který je zaměřen na paravirtualizaci, poskytuje KVM pouze hardwarovou virtualizaci – to znamená, že je k jeho provozu potřeba procesor s podporou virtualizačních technologií Intel VT nebo AMD-V. Xen tedy může fungovat i na hardwaru, který nepodporuje plnou virtualizaci.

Návrh. Xen se skládá z malého odděleného hypervizoru, který je načten ihned po startu systému a následně spouští Dom0. KVM je implementováno jako sada jaderných modulů (jeden společný pro všechny architektury a jeden specifický pro Intel/AMD procesory), hypervizor je tedy přímo v jádře. Virtuální stroje se v KVM chovají jako zvláštní procesy, můžete používat kill, top apod.

Rychlost. Díky paravirtualizaci a jinému přístupu k tabulkám stránek může mít Xen v mnoha situacích výkonnostně navrch.

Komerční podpora. Xen je výchozím způsobem virtualizace v mnoha komerčních distribucích, např. SLES nebo RHEL. Citrix nabízí komerční varianty XenServer s kompletní podporou. Red Hat se nechal slyšet, že v příští verzi RHEL bude výchozím hypervizorem KVM (mimo jiné koupil firmu Qumranet, která stojí za vývojem KVM).

Závěr

Xen je vyspělé open source virtualizační řešení prověřené tisíci komerčními nasazeními po celém světě. Vývojáři sice trochu zaspali se začleněním do oficiálního jádra, i tak jej ale většina distribucí nabízí, nic vám tedy nebrání v jeho vyzkoušení. Pokud vás Xen zaujal, můžete začít tutoriálem Michala Švamberga z konference EurOpen.cz.

Související články

Xen - základy virtualizácie
Seriál: Virtualizace na úrovni jádra
Jaderné noviny: Souborové kvalifikace
Jaderné noviny: KVM 15
Jaderné noviny: Vývoj KVM
Jaderné noviny: /dev/kvm
Jaderné noviny: Patche Xen
Jaderné noviny: Kontejnery procesů
Jaderné noviny: Připojení Linuxu k hypervisorům
Jaderné noviny: Virtualizační rozhraní VMI
Jaderné noviny: Kontejnery a odlehčená virtualizace
Jaderné noviny: API pro virtuální I/O: virtio
Jaderné noviny: Virtuální čas
Jaderné noviny: Xen: dokončovací práce
Jaderné noviny: Zase Xen
Jaderné noviny: OpenVZ a checkpointing za běhu
Jaderné noviny: Zdroje: má dáti, dal

Odkazy a zdroje

A brief history of Xen and XenSource

Další články z této rubriky

Úvod do Dockeru (1)
Paralelizace běžných činností v konzoli pomocí GNU Parallel
Unixové nástroje – 26 (triky pro práci v Bashi)
Unixové nástroje – 25 ((s,c)fdisk, gdisk, parted a findmnt)
Linux: systémové volání splice()

Diskuse k tomuto článku

Max avatar 20.8.2009 07:15 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Xen – představení, historie, budoucnost
Odpovědět | Sbalit | Link | Blokovat | Admin
Pěkný přehled :)
Zdar Max
Měl jsem sen ... :(
CIJOML avatar 20.8.2009 08:58 CIJOML | skóre: 58 | Praha
Rozbalit Rozbalit vše Re: Xen – představení, historie, budoucnost
Odpovědět | Sbalit | Link | Blokovat | Admin

XEN je mrtev - nastup procesoru a dalsich karet (hlavne ethernetovych) s hw podporou virtualizace uz nelze zastavit a proto KVM staci. Kdo ma starsi stroj a nema nebo nepotrebuje novy at zajde do bazaru a koupi si starsi zelezo s podporou hw virtualizace. Hlavne at proboha nezasiraj jadro touto zbytecnosti.

20.8.2009 09:05 Zdeněk Burda | skóre: 61 | blog: Zdendův blog | Praha
Rozbalit Rozbalit vše Re: Xen – představení, historie, budoucnost

Jak kdybych četl Hulána. XEN má své problémy, ale na některé nasazení je prozatím mnohem vhodnější než nedodělané KVM.

-- Nezdar není hanbou, hanbou je strach z pokusu.
20.8.2009 09:34 trekker.dk | skóre: 72
Rozbalit Rozbalit vše Re: Xen – představení, historie, budoucnost
V čem je KVM nedodělané?
Quando omni flunkus moritati
20.8.2009 11:42 faha
Rozbalit Rozbalit vše Re: Xen – představení, historie, budoucnost

Uz je k dispozici paravirtualizovanych ovladac KVM pro disk ve windows nebo stale jen sitovej? To vidim jako jedez problemu proc napr. XEN ano, kdyz windows.

20.8.2009 12:42 Radek Hladik | skóre: 20
Rozbalit Rozbalit vše Re: Xen – představení, historie, budoucnost

Před pár dny se objevila zpráva, že Redhat releases windows kvm virtio drivers under GPLv2. Ještě jsem to nezkoušel, nevím, jestli je to stabilní, ale chystám se na to.

20.8.2009 14:57 faha
Rozbalit Rozbalit vše Re: Xen – představení, historie, budoucnost

Hergot to je dobra zprava, jen se mi to ze stranek nedari stahnout.

--- z komentaru ---

Yeah,

Seems the files are not ready yet. We'll give them some time to sort themselves out.

 Very exciting news, but the link doesn't go to a valid download.

--- uplne odjinud ---

tohle mi hlasi editor -> Hodnota 'tidycomment' atributu CLASS značky DIV není povolena!

musel jsem to rucne editnout ze zdroje

20.8.2009 17:32 Radek Hladik | skóre: 20
Rozbalit Rozbalit vše Re: Xen – představení, historie, budoucnost

No taky jsem to chtěl zkusit, ale přesně. Nejde to ze stránek stáhnout, ten soubor jsem nikde nenašel, nenašel jsem ani ty zdrojáky :-( A to bych k nim ještě potřeboval buhví co, včetně Windows Driver Development Kitu nebo jak se to jmenuje. A ještě na těch stránkách píší, že by to mohlo chodit pod XP, ale oni to zkoušeli a překládali jen pod 2003 a 2008. Ale mají tam obrázky, jak na to instalují 2003 server a při instalaci to podstrkují, takže snad to existuje :-)

26.8.2009 13:26 rrob | skóre: 2
Rozbalit Rozbalit vše Re: Xen – představení, historie, budoucnost
Prave jsem prchl od KVM zpet ke XENu, uf konecne je po problemech.
20.8.2009 09:46 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Xen – představení, historie, budoucnost
Odpovědět | Sbalit | Link | Blokovat | Admin
Xen tedy může fungovat i na hardwaru, který nepodporuje plnou virtualizaci.
Vím, že to byl článek o Xenu, ale neškodilo by připomenout, že kvm je založené na qemu. Respektive userspace část kvm je upravené qemu (i když mám pocit, že se kvm patche už dostaly i do hlavní řady) a dokáže tak "fungovat" i na systémech bez plné virtualizace. Akorát to asi není nic, co by člověk chtěl reálně používat :)
When your hammer is C++, everything begins to look like a thumb.
thingie avatar 20.8.2009 09:50 thingie | skóre: 8
Rozbalit Rozbalit vše Re: Xen – představení, historie, budoucnost
Já teda hlavně nevím, jestli bych systému, kde se jakž takž umí virtualizovat akorát tak CPU nějak moc chtěl říkat „hardware podporující plnou virtualizaci“.
Růžové lži.
20.8.2009 17:50 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Xen – představení, historie, budoucnost
Já jsem reálně používal kqemu pro sandboxované windows a fungovalo to dobře.

Jinak k článku bych poznamenal: Xen pomalu umírá. To je prostě fakt. Může časem opět vstát z mrtvých ale momentálně je mrtvej. Dom0 je úchylně navázaný na jádro 2.6.18, které neumí ani pořádně šifrovat disky. Red hat se na něj vysral a co s tím udělá citrix je ve hvězdách. Z hlediska výkonu může být za jistých okolností paravirtualizující Xen marginálně rychlejší, ale to je asi tak vše. Na všech ostatních frontách prohrává.
In Ada the typical infinite loop would normally be terminated by detonation.
the.max avatar 21.8.2009 09:49 the.max | skóre: 46 | blog: Smetiště
Rozbalit Rozbalit vše Re: Xen – představení, historie, budoucnost

xen ~ # uname -a
Linux xen 2.6.30-xen-r3.dom0 #1 SMP Mon Aug 10 21:10:06 CEST 2009 x86_64 Intel(R) Core(TM)2 Duo CPU E4600 @ 2.40GHz GenuineIntel GNU/Linux
xen ~ #

mail ~ # uname -a
Linux mail 2.6.30-xen-r3.domU #1 SMP Tue Aug 4 22:46:51 CEST 2009 x86_64 Intel(R) Core(TM)2 Duo CPU E4600 @ 2.40GHz GenuineIntel GNU/Linux
mail ~ #
KERNEL ULTRAS Fan Team || Sabaton - nejlepší učitel dějepisu || Gentoo - dokud nás systemd nerozdělí.
26.8.2009 16:48 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Xen – představení, historie, budoucnost
No OK, tak už jde dom0 na 2.6.30 (i když si myslím že to máte opatchované a ne vanilla 2.6.30). Vše ostatní ale platí.
In Ada the typical infinite loop would normally be terminated by detonation.
26.8.2009 13:29 rrob | skóre: 2
Rozbalit Rozbalit vše Re: Xen – představení, historie, budoucnost
Naprosto skvele mi staci XenServer - nepotrebuji xen. A v tom pripade je mi celkem ukradene na jakem jadre to bezi - dulezite ze bezi - a to furt, rychle, snadno ovladatelne a bez problemu.
20.8.2009 09:50 pepazdepa
Rozbalit Rozbalit vše Re: Xen – představení, historie, budoucnost
Odpovědět | Sbalit | Link | Blokovat | Admin

me pripadne skoda, ze v Xenu nemuzu dat virtualnim masinam vice RAM nez mam fyzicky v hostu :(

thingie avatar 20.8.2009 09:52 thingie | skóre: 8
Rozbalit Rozbalit vše Re: Xen – představení, historie, budoucnost
No, vzhledem k tomu, že s takovým systémem by šlo dělat přibližně to samé, co se systémem který vůbec není, tak se dá s jistou dávkou tolerance tvrdit, že v míře použitelnosti, jakou by to mělo kdyby to bylo, to klidně už i je, aniž by to bylo.
Růžové lži.
20.8.2009 12:49 Radek Hladik | skóre: 20
Rozbalit Rozbalit vše Re: Xen – představení, historie, budoucnost

To není zdaleka pravda. Pokud přidělím strojům v součtu více paměti, než mám fyzicky na hostiteli, pak je několik možností, jak to řešit, aniž by se vnitřní stroje staly nepoužitelnými. Například hostitel má ještě k dispzoici swap, ke kterému má kernel pěkné mechanismy, jak zjišťovat co do něj dát. Takže například kernel s kvm bude schopen zjistit, že vnitřní stroj X má sice alokováno 1GB, ale na polovinu z toho nikdy nešáhl, takže mu to odsvapuje. Další možnost je memory balooning, kdy se hostitel a host dohodnou na tom, že host dostane nějakou paměť navíc nebo jí naopak uvolní.

thingie avatar 20.8.2009 13:29 thingie | skóre: 8
Rozbalit Rozbalit vše Re: Xen – představení, historie, budoucnost
Proč nemohou virtuální stroje swapovat rovnou?

Tohle v podstatě chce po OS, aby nevyužíval všechnu paměť co má, a aby jí nevyužíval efektivně, protože jinak je scénář „virtuální stroje a overbooking paměti“ naprosto jasný -- okamžitý a definitivní kolaps. A přijde mi docela hloupý tohle po OS chtít.
Růžové lži.
20.8.2009 13:51 Radek Hladik | skóre: 20
Rozbalit Rozbalit vše Re: Xen – představení, historie, budoucnost

Samozřejmě, že virtuální stroje můžou swapovat rovnou. Ale prostě to není jediná možnost. Virtuální stroj ví lépe, co ze své paměti odswapovat na základě statistik, které má on, ale swapování je pomalejší, kvůli virtualizační vrstvě. Swapování na hostiteli může být o pár frfňů rychlejší, ale zase má hrubší statistiky o využití paměti virtuálního stroje, což ale může někdy být i lepší.  Prostě jsou ruzné možnosti, někdy je lepší jedna, někdy druhá. A rozhodně nejde o okamžitý a definitivní kolaps... To je jako říkat, že scénář hodně programů, které chtějí víc paměti, než je na systému fyzicky k dispozici je naprosto jasný -- okamžitý a definitivní kolaps. A přijde mi hloupé po OS vůbec chtít, aby to nějak řešil :-)

thingie avatar 20.8.2009 13:57 thingie | skóre: 8
Rozbalit Rozbalit vše Re: Xen – představení, historie, budoucnost
Tak, tady se zase uplatní ta narážka na plnou hardwarovou podporu, která ve skutečnosti moc plná není.

Ta analogie taky zase není úplně dobrá, program před sebou nemá celou virtuální paměť a představu, že to celé by měl efektivně využít, protože to všechno je skutečná pameť, za kterou někdo dal dost peněz a nechce, aby tam jenom oxidovala…
Růžové lži.
26.8.2009 13:31 rrob | skóre: 2
Rozbalit Rozbalit vše Re: Xen – představení, historie, budoucnost
:D
20.8.2009 15:50 ..... Izak ..... | skóre: 14
Rozbalit Rozbalit vše Re: Xen – představení, historie, budoucnost
Klasicka marketingova hlaska lidi z Vmware, ani ve vmware to nefunguje ;-)) ... ano vmware ma balonovani, ale chce to podporu vmware tools a jak reknou linuxu, ze nema pouzivat volnou RAM na cache ? Ono to trochu funguje, nejlepe asi ve windows, ale kdyz se OS zblazni, uswapuje to cely system a guesty se tak zpomali, ze je to pak vse nepouzitelne, zasada zni, nidky neswapovat, swapovat maji guesty ... tam to tolik nevadi.

Vmware ma vice takovychto veci, balonovani RAM a neco podobneho ma na disky, problem nastane, pokud se vsechny disky zaplni a razem jsou dinamicke vmdk soubory v pytli ... stsrem se zasvai, virtualy zahavaruji (nebot pro svuj beh potrebuji delat doscasen soubory a ry delaji do sveho adr.) ... a system se zhrouti a jiz nelze ani nastartovat stroje, dokud neco neuvolnim.

Je to jak si jeden zakaznik nastavil na netapu stejnou fci ... no a pak se da system do RO a chce dlasi disky, nebo neco smazat (treba snapshoty, nebo nejakay volume, popr. ho premigrovta jinam) ...
20.8.2009 16:19 trekker.dk | skóre: 72
Rozbalit Rozbalit vše Re: Xen – představení, historie, budoucnost
a jak reknou linuxu, ze nema pouzivat volnou RAM na cache
Podpora pro tohle se možná zanedlouho objeví - Přechodná paměť
Quando omni flunkus moritati
21.8.2009 20:54 Miroslav
Rozbalit Rozbalit vše Re: Xen – představení, historie, budoucnost
jj, nebo, ze nelze rozdavat i cast swapu. U KVM to lze, ale zase nemuzu zarucit, ze masina nedostane pouze RAM (neodswapovanou). Hezky projekt je CompCache -- hezky se uplatni u KVM.
20.8.2009 15:12 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
Rozbalit Rozbalit vše Re: Xen – představení, historie, budoucnost
Odpovědět | Sbalit | Link | Blokovat | Admin
Xen (z řeckého xenos – cizí, neznámý) byl založen v roce 2002 jako výzkumný projekt na University of Cambridge.
Jenom bych doplnil, že Xen byl původně původně součástí projektu Xenoservers.
Ještě na tom nejsem tak špatně, abych četl Viewegha.

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.