Portál AbcLinuxu, 3. května 2024 16:03
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.
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.
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.
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í.
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).
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.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.