Xen | |
---|---|
NetBSD -t és három Linux disztribúciót futtató Xen | |
Típusú | Virtualizációs szerver |
Fejlesztő | A Xen Project, XenSource, Inc. |
Beírva | C [1] |
Operációs rendszer | Linux , OpenSolaris , BSD |
Első kiadás | 2003 |
legújabb verzió |
|
Engedély | GNU GPL 2 [3] |
Weboldal | xenproject.org |
Médiafájlok a Wikimedia Commons oldalon |
A Xen (pron. / ˈzɛn / ) egy többplatformos hipervizor , amelyet a Cambridge-i Egyetem Számítógép Laboratóriumában fejlesztettek ki, és a GPL licence alá tartozik . Főbb jellemzők: a hardveres virtualizáció mellett a paravirtualizációs mód támogatása , magának a hypervisornak a minimális kódja a hypervisoron kívüli komponensek maximális számának eltávolítása miatt.
A Xen kutatási projektként indult a Cambridge -i Egyetemen Ian Pratt vezetésével , aki később a XenSource alapítója lett. A vállalat támogatta a nyílt forráskódú verzió (xen) fejlesztését, és ezzel egyidejűleg értékesítette a XenServer és a XenEnterprise nevű szoftver kereskedelmi verzióit.
A Xen első nyilvános kiadása 2003-ban volt. 2007 októberében a Citrix megvásárolta a XenSource-t, és átnevezte a termékeket:
Később átkeresztelték őket XenServer (Free), Essentials for XenServer Enterprise és Essentials for XenServer Platinum névre.
2007. október 22-én a Citrix befejezte a XenSource [4] átvételét, és az ingyenes projekt átkerült a xen.org oldalra.
2009. október 21-én a Citrix bejelentette, hogy a XenServer kereskedelmi verziói teljesen ingyenesek lesznek [5] . Simon Crosby , a Citrix virtualizációs részlegének főmérnöke kijelentette: „A XenServer 100%-ban ingyenes, és hamarosan teljesen nyílt forráskódú lesz. Egyáltalán nem tervezünk [ebből] profitot termelni” [6] ). Míg a Citrix XenServernek van ingyenes verziója, a XenCenter (központi felügyeleti szoftver) nincs forráskódolva, bár ingyenesen letölthető.
2013. április 15. Xen a Linux Foundation szárnyai alá került [1] Archivált 2013. április 19. a Wayback Machine -nél
Változat | Kiadási dátum | Megjegyzések |
---|---|---|
1.0 | 2003.10.02 . [7] [8] | |
2.0 | 2004.11.05 [9] | Élő migráció paravirtuális vendéggépekhez |
3.0 | 2005.12.05 [10] [11] |
A 3.0.4-es verzió a következőket is hozzáadta:
|
3.1 | 2007.05.18 . [15] | Élő migráció HVM vendégek számára, XenAPI támogatás |
3.2 | 2008.01.17 . [16] | "Továbbítás" PCI, "alvó" mód ACPI S3. |
3.3 | 2008.08.24 [17] | A PCI továbbítás és energiagazdálkodás továbbfejlesztése. |
3.4 | 2009.05.18 . [18] | Tartalmazza a „Xen Client Initiative” (XCI) első verzióját. |
4.0 | 2010.04.07 [19] | Lehetővé teszi a Linux kernelek dom0-ként történő használatát az új PVOps mechanizmus segítségével. [húsz] |
4.1 | 2011.03.25 [21] | Több mint 255 processzor támogatása, jobb stabilitás.( [22] ). |
4.2 | 2012.09.17 . [23] | 4095 fizikai (és akár 512 virtuális) processzor támogatása, több PCI szegmens támogatása, továbbfejlesztett biztonság és dokumentáció.( [24] ). |
4.3 | 2013.07.09 [25] | Az ARM kísérleti támogatása. A NUMA architektúra jellemzőinek figyelembevétele az ütemezőben. Nyissa meg a vSwitch támogatást . |
4.4 | 2014.10.03. [26] | Az ARM támogatás most már stabil. A libxl támogatása a libvirt könyvtár által. Új méretezhető felület az eseménycsatornákhoz. Támogatás beágyazott virtuális környezetek létrehozásához Intel hardveren. Eltávolítottuk az x86 32 bites és ia64 (itanium) hipervizorok támogatását. |
4.5 | 2015.01.15 [27] | A Toolstack most át van írva C nyelven, és xl-nek vagy libxl-nek hívják, teljesen lecserélve a régi toolstack xend-et, amelyet pythonban írtak. |
4.6 | 2015.10.13 . [28] | |
4.7 | 2016.06.24 [29] | Fejlesztések: biztonság, élő migráció, teljesítmény és munkaterhelés. Hardver támogatás (ARM és Intel Xeon). [harminc] |
4.8.1 | 2017.04.12 . [31] | |
4.9 | 2017.07.28. [32] | Xen Project 4.9 Kiadási megjegyzések |
4.10 | 2017.12.12 [33] | Xen Project 4.10 Kiadási megjegyzések |
4.11 | 2018. 10. 07. [34] | Xen Project 4.11 Kiadási megjegyzések |
4.12 | 2019.04.02 [35] | Xen Project 4.12 Kiadási megjegyzések |
A virtuális gépek technológiája lehetővé teszi a berendezés funkcionalitásának kiterjesztését a következő módokon:
A hipervizor alapfogalma egy tartomány . A virtuális gép futó példányát tartománynak nevezzük. Ha a virtuális gépet újraindítják, akkor a tartománya megszűnik (az újraindításkor), és egy új tartomány jelenik meg. Sőt, még a migráció során is átmásolódik a tartalom egyik tartományból a másikba. Így élete során szinte minden virtuális gép felváltva találja magát különböző tartományokban. A Xen csak a tartomány fogalmával működik, a "virtuális gép" fogalma pedig az adminisztrációs szinten jelenik meg (a hypervisort vezérlő alkalmazási programok).
A domainek többféle típusúak. A leghíresebbek a dom0 és a domU . A dom0 az első elindított Xen tartomány, általában automatikusan létrejön és betöltődik közvetlenül a hypervisor betöltése és inicializálása után. Ez a tartomány speciális jogokkal rendelkezik a hipervizor vezérlésére, és alapértelmezés szerint az összes számítógépes hardver elérhető a dom0-ból. Valójában a dom0 az, ahol a Xen-t kezelő szoftver él. dom0 mindig egyedül van.
A domU egy tagtartomány (a felhasználói tartomány rövidítése), amely a futó virtuális gépek tartományát tartalmazza. Általában nem fér hozzá valódi hardverhez, és a virtualizációs rendszer "hasznos terhelése". A dom0-val ellentétben a domU sok (általában több tucat) lehet.
stub-domain – egy nagyon speciális operációs rendszert futtató tartomány, amely bármilyen hardverrel vagy illesztőprogram-háttérrel működik. Ez a Xen biztonsági modell továbbfejlesztése.
domain builder (domain constructor) - egy program, amely létrehozza a domU-t (betölti a szükséges kódot, és utasítja a hypervisort, hogy futtasson). A tartomány felépítése mellett általában a virtuális gép számára elérhető virtuális eszközök csatlakoztatásával és konfigurálásával foglalkozik. Felelős a virtuális gépek gazdagépről gazdagépre történő migrálásának folyamatáért is.
A paravirtualizáció egy végrehajtható operációs rendszer kernelének adaptálása, hogy a Xennel együtt működjön, általában PV-re rövidítve. Lehetővé teszi nagyon nagy teljesítmény elérését a "valódi hardver" emulációjának hiánya, az interfészek egyszerűsége és a hypervisor létezésének figyelembevétele miatt a rendszerhívások végrehajtása során a kernelkódban. A privilegizált műveletek végrehajtása tilos, helyettük hiperhívások ( eng. hypercalls ) készülnek - kérések a vendég operációs rendszer kernelétől a hypervisor felé bizonyos műveletek végrehajtására vonatkozó kéréssel. A legtöbb esetben az operációs rendszer Xen-re történő portolásakor végrehajtott változtatások csak az operációs rendszer kernelt érintik, bár kisebb változtatásokat is jelenthetnek a rendszerkönyvtáraknál (pl. libc). A Xen-hez való alkalmazkodás folyamata nagyon hasonlít az új platformon történő portoláshoz, de sokkal egyszerűbb az illesztőprogram „vendég” részének könnyű implementálása miatt (a Xen illesztőprogramjai két részből állnak - az egyiket a rendszeren kívül hajtják végre) virtuális gép, a második benne van. A vendég rendszerben lévő driver része rendkívül primitív, és csak lekérdezésfordítóként szolgál a második részhez (ezt szándékosan tették, hogy megkönnyítsék az operációs rendszer Xen-re történő portolását). A PV mód nem támogatja a „beágyazott” processzormódokat, mint például a valós-86, a virtual-86, a 32 bites és a 64 bites mód közötti váltást, a hardver virtualizációs emuláció támogatását stb. Ebben a tekintetben a PV-mód létezik a számítógép indításának nincs kezdeti töredéke (BIOS kód utánzattal, rendszerbetöltővel stb.), és a vendég rendszermag azonnal elindul a kívánt módban, akárcsak a hagyományos programok. Ebben a tekintetben különösen maga a Xen nem tud PV módban futni (azaz lehetetlen "beágyazott" hipervizort PV módban futtatni).
Hardveres virtualizációs (HVM) módban a vendég operációs rendszer nem "tud" a hypervisor létezéséről. A Xen a QEMU moduljait használva valódi hardvert emulál, és lehetővé teszi az operációs rendszer indítását. A végén a normál teljesítmény érdekében olyan PV meghajtókat kell elindítani, amelyek gyors interfészt valósítanak meg a virtuális eszközökkel, hasonlóan ahhoz, ahogyan PV módban működik. Mivel a legtöbb privilegizált művelet emulált, lehetséges a Xen futtatása HVM módban a Xen alól. Ebben az esetben a beágyazott hipervizor csak PV módban tud működni.
A Xen hypervisor (a 3.4-es verzióhoz) minimális műveletsort valósít meg a fő memória, a processzor állapotának, a processzor valós idejű időzítőinek és óraszámlálóinak (TSC), a megszakításoknak és a DMA-vezérlésnek a kezelésére. Az összes többi funkció, mint például a lemez- és blokkeszközök megvalósítása, virtuális gépek létrehozása és eltávolítása, szerverek közötti migrációja stb., a vezérlési tartományban valósul meg. Emiatt a hypervisor mérete nagyon kicsi (a 3.4-es verziónál a teljes hypervisor bináris kódjának mérete kisebb, mint 600 KB), valamint a forráskódjának mérete is. A szerzők szándéka szerint ez növeli a virtualizációs rendszer stabilitását, mivel a hipervizoron kívüli komponensek hibája nem vezet magának a hipervizornak a kompromittálásához/sérüléséhez, és csak a meghibásodott komponensre korlátozza a károsodást anélkül, hogy a többit zavarná.
A hálózat működésével, a blokk (lemezes) eszközökkel, a videoadapterek emulációjával és egyéb eszközökkel kapcsolatos összes funkció kikerül a hypervisorból. A legtöbb ilyen eszköz két részből áll: meghajtók a domU-ban és programok a dom0-ban. Az illesztőprogram (leggyakrabban az operációs rendszer kernelébe építve vagy modulként betöltve) a minimális mennyiségű munkát valósítja meg, valójában lefordítja a kéréseket az operációs rendszerből a programba a dom0-ban. A munka nagy részét a dom0-ban lévő program végzi el. Ebben az esetben a program leggyakrabban minden szervizelt eszközön külön folyamatként fut. Egy ilyen program meghibásodása csak egy eszköz (blokk, hálózat) meghibásodásához vezet, és nem befolyásolja a program többi példányának működését (vagyis nem érinti más tartományok hálózati / blokkeszközeit, sőt az azonos tartományhoz tartozó egyéb eszközök).
Hagyományosan a következő terminológiát használják: frontend a modulnak a domU-ban található része, a backend pedig a dom0-ban található része. Egyes eszköztípusok esetében a háttér-rész eltérő lehet, miközben ugyanaz a frontend rész marad. Például egy blokkeszköz-illesztőprogramnak lehet egy háttérrendszere VHD képalkotó, blokkeszköz-illesztőprogram, iscsi-kezdeményező stb. formájában.
A Xen három kommunikációs mechanizmust biztosít a tartományokhoz: egyet a hipervizorral (hiperhívások), kettőt pedig a tartományok között. Leggyakrabban interakció a dom0 és domU között történik, bár a modell lehetővé teszi két domU közötti interakciót.
A tartományok közötti interakció két típusra oszlik: események (események) és megosztott memória (megosztott memória hozzáférés). A harmadik lehetőség, a memórialapok átvitele, a megosztott memória elérésének speciális esete.
Az események nagyjából ugyanazt a célt szolgálják, mint a megszakítások az x86 architektúrában vagy a jelek Unixban – egy jel gyors szinkron vagy aszinkron továbbítása valamilyen esemény bekövetkeztéről. A megosztott memória-hozzáférés jelentős mennyiségű információ átvitelét teszi lehetővé, az események pedig átviteli sebességet biztosítanak.
Az események lehetnek maszkosak vagy leplezettek. A maszkolatlan események visszahívást okoznak (azt a függvényt hívják meg, amelynek a címét korábban átadták), és lehetővé teszik az esemény azonnali feldolgozását annak előfordulása után. A maszkolt események csak azt jelzik, hogy az esemény megtörtént, és a kezelő rendszeresen megnézi, hogy az esemény (egy vagy több) megtörtént-e. A második módszer lehetővé teszi, hogy ne hívjon visszahívást minden eseményhez, és gyakori események esetén jelentősen csökkenti a feldolgozási időt. Éppen ellenkezőleg, az első opció (visszahívással) lehetővé teszi egy olyan esemény feldolgozásának sebességének növelését, amely nem túl gyakran fordul elő, de azonnali választ igényel.
A Xen (a felügyeleti veremen keresztül) támogatja a vendég virtuális gépek hálózaton keresztüli migrálását. A paravirtuális gépek migrációja a Xen 2-től, a HVM pedig a 3-as verziótól támogatott. A migráció történhet kikapcsolt vendégrendszerrel, vagy közvetlenül a folyamat során, az úgynevezett „élő” migrációval ( angolul live migration ) elérhetőség.
Mindkét fizikai Xen-kiszolgálónak ugyanazt a tárolót kell látnia, ahol a virtuális gép adatai találhatók. Erre azért van szükség, mert egy virtuális gép migrálásakor a fájlrendszere nem másolódik, mivel ez még gyors hálózat esetén is túl sok időt venne igénybe. A megosztott tárhely különféle SAN vagy NAS technológiákon alapulhat, mint például a Fibre Channel , az iSCSI vagy a DRBD .
Tekintettel arra, hogy maga a hypervisor (kb. 500-600 KB) csak a rendszer „magját” valósítja meg, az összes többi funkció a dom0-ban futó alkalmazási rétegbe kerül. A Xenen kívüli funkciókat megvalósító programkészletet angolnak nevezzük. toolstack (nincs jól bevált fordítás, néha a "menedzsment verem" kifejezést használják).
A Xen eszközkészletének két változata létezik: xend alapú (a legtöbb Xen disztribúcióban benne van) és xapi alapú (a Citrix XenServer és a Xen Cloud Platform része). A Xen-et a Xen-nel egy időben fejlesztették, Pythonban írták, és a kezdetektől nyílt forráskódú licenc alatt volt. A Xapi a Xensource (a továbbiakban Citrix) tulajdona volt, de 2009-ben adták ki a GPL alatt. A Xapi OCaml nyelven íródott , az írás idején kisebb funkciókészlettel rendelkezett, de stabilabb volt.
A 4.5-ös verzióban a pythonban írt xend-et a C-ben írt xl/libxl váltotta fel.
Az eszközkészlet mindkét verziója a következő segédprogramokat tartalmazza:
A Toolstack biztosítja a virtuális gépek kezelését (létrehozás/törlés, indítás/leállítás, migráció, erőforrások csatlakoztatása stb.). Ezen túlmenően az eszközkészlet erőforrás-kezelést biztosít nagyméretű rendszerek számára: virtuális gép lemezképeinek tárolására szolgáló tárakat (SR - storage repository) hoz létre és tart fenn, támogatja a kiszolgálókészleteket a virtuális gépek migrálásához, valamint képes kezelni bonyolult helyi hálózati konfigurációkat, beleértve azokat is. VLAN támogatással . Ezenkívül az XML-RPC [36] alapú XenApi távvezérlő interfész is támogatott .
A Xen minden nap egyre több platformot támogat.
1. típusú hibrid hipervizorként a Xen közvetlenül a hardverplatformon fut, de futtatásához a dom0-ban található gazdagép operációs rendszerre van szükség. A Xen a Pentium II - től kezdve támogatja a processzorokat , vannak x86-64 , PowerPC , Itanium (4.4-es verzióig) és ARM architektúrákhoz (4.4-es verzió óta stabil) verziók. A Xen betöltése rendszertöltővel, például GRUB-val vagy hasonlóval történik . A Xen a betöltés után azonnal elindítja az operációs rendszert a dom0-ban.
A legtöbb telepítés Linuxot használ a dom0 vezérlőtartomány operációs rendszereként. A Xen-támogatás hosszú ideig nem szerepelt a hivatalos Linux kernelben, és a v2.6.18-as kernel javításaiként létezett. A 2.6.37-es verzió óta a pv_ops mechanizmus megjelent a Linux kernelben a hipervizorokkal való interakcióhoz [37] . Ez a mechanizmus lehetővé teszi a kernel számára, hogy paravirtuális módban és közvetlenül a hardveren is működjön. A Xen 4.0-tól kezdve támogatja a pv_ops mechanizmust a dom0 Linux kernelhez [38] . A 3.0 feletti Linux kernelek teljes mértékben támogatják a Xen-t a dom0 és a domU esetében is [39] .
Ezenkívül a következő operációs rendszerek működhetnek dom0 néven:
A legtöbb operációs rendszer futtatható HVM hardvervirtualizációs módban, azonban a paravirtualizációs technológiát használják a nagy végrehajtási sebesség eléréséhez. A következő vendég operációs rendszerek futtathatók paravirtuális módban a domU-ban:
Más operációs rendszerek, például a Plan 9 portjai is készülnek. Várhatóan a Xen hivatalos portjai megjelennek ezen operációs rendszereken (ahogyan a NetBSD esetében is történt).
A Microsoft Windows család operációs rendszerei teljes HVM virtualizációs módban futhatnak a Xen 3-tól kezdve a hardveres virtualizációt támogató processzorokon. Ebben az esetben a virtuális eszközök (lemez, hálózat) emulációja a QEMU speciális verziójával történik . A Windows felgyorsítására úgynevezett paravirtuális illesztőprogramok használhatók . A paravirtuális módban működő Linuxtól eltérően a Windows kernel változatlan, és hardveres virtualizációs módban fut, de az eszközillesztők közvetlenül (HyperCalls-on keresztül) érik el a Xen-t, megkerülve a QEMU emulációs réteget. Fejlesztés alatt állnak a GPL által támogatott paravirtualizációs illesztőprogramok Windowshoz, a Citrix XenServer és az Oracle VM termékek pedig aláírt paravirtualizációs illesztőprogramokat tartalmaznak Windowshoz.
A Xen-t széles körben használják virtualizációs összetevőként a számítási felhőben és a dedikált privát szerverszolgáltatásokban . A hosting cégek, például az Amazon Elastic Compute Cloud , a Liquid Web , a Fujitsu Global Cloud Platform , [46] a Linode , a SparkNode [47] és a Rackspace Cloud a Xen-t használják virtuális gép hipervizorként.
Jelenleg[ pontosítás ] A Xen közösség fejleszti a Xen Cloud Platformot (XCP), egy szervervirtualizációs rendszert. Az XCP a Citrix XenServer ingyenes verziójából származik, és teljes egészében a GNU GPL alatt jelent meg .
Számos Xen-alapú kereskedelmi szerverkonszolidációs termék létezik. Ezek különösen olyan termékek, mint:
Emulációs és virtualizációs szoftver ( összehasonlítás ) _ | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Alkalmazási réteg |
| ||||||||||||||
OS szint (tárolók) |
| ||||||||||||||
Hardver szint |
| ||||||||||||||
Hálózati virtualizáció |
|