Portál AbcLinuxu, 3. května 2024 16:03

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()

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