Xen | |
---|---|
| |
Tyyppi | Virtualisointipalvelin _ |
Kehittäjä | Xen Project, XenSource, Inc. |
Sisään kirjoitettu | C [1] |
Käyttöjärjestelmä | Linux , OpenSolaris , BSD |
Ensimmäinen painos | 2003 |
uusin versio |
|
Lisenssi | GNU GPL 2 [3] |
Verkkosivusto | xenproject.org |
Mediatiedostot Wikimedia Commonsissa |
Xen (pron. / ˈzɛn / ) on monialustainen hypervisor , joka on kehitetty Cambridgen yliopiston tietokonelaboratoriossa ja lisensoitu GPL :n alaisena . Pääominaisuudet: tuki paravirtualisointimoodille laitteiston virtualisoinnin lisäksi, itse hypervisorin minimikoodi, koska hypervisorin ulkopuolelta on poistettu maksimimäärä komponentteja.
Xen aloitti tutkimusprojektina Cambridgen yliopistossa, jota johti Ian Pratt , josta tuli myöhemmin XenSourcen perustaja. Yritys tuki avoimen lähdekoodin version (xen) kehittämistä ja myi samanaikaisesti kaupallisia versioita ohjelmistoista nimeltä XenServer ja XenEnterprise.
Xenin ensimmäinen julkinen julkaisu oli vuonna 2003. Lokakuussa 2007 Citrix osti XenSourcen ja merkitsi tuotteet uudelleen:
Myöhemmin ne nimettiin uudelleen XenServer (Free), Essentials for XenServer Enterprise ja Essentials for XenServer Platinum.
22. lokakuuta 2007 Citrix sai päätökseen XenSourcen [4] haltuunottonsa ja ilmainen projekti siirtyi xen.org:iin.
21. lokakuuta 2009 Citrix ilmoitti, että XenServerin kaupallisista versioista tulee täysin ilmaisia [5] . Simon Crosby , Citrixin virtualisointiosaston pääinsinööri, totesi: "XenServer on 100 % ilmainen ja tulee pian täysin avoimeen lähdekoodiin. Emme aio tehdä voittoa [tästä] ollenkaan” [6] ). Vaikka Citrix XenServeristä on ilmainen versio, XenCenter (keskitetty hallintaohjelmisto) ei ole lähdekoodattu, vaikka se on ladattavissa ilmaiseksi.
15. huhtikuuta 2013 Xen tuli Linux Foundationin siiven alle [1] Arkistoitu 19. huhtikuuta 2013 Wayback Machinessa
Versio | Julkaisupäivä | Huomautuksia |
---|---|---|
1.0 | 2003.10.2003 [7] [8] | |
2.0 | 2004.11.05 [9] | Live-siirto paravirtuaalisille vieraskoneille |
3.0 | 2005.12.2005 [10] [11] |
Versio 3.0.4 lisäsi myös:
|
3.1 | 18.5.2007 [15] | Live-siirto HVM-vieraille, XenAPI-tuki |
3.2 | 17.1.2008 [16] | "Edelleenlähetys" PCI, "lepotila" ACPI S3. |
3.3 | 24.8.2008 [17] | Parannuksia PCI-välitykseen ja virranhallintaan. |
3.4 | 18.5.2009 [18] | Sisältää "Xen Client Initiative" (XCI) -ohjelman ensimmäisen version. |
4.0 | 04.07.2010 [19] | Mahdollistaa Linux-ytimien käytön dom0:na käyttämällä uutta PVOps-mekanismia. [kaksikymmentä] |
4.1 | 25.3.2011 [21] | Tuki yli 255 prosessorille, parannettu vakaus.( [22] ). |
4.2 | 17.9.2012 [23] | Tuki 4095 fyysiselle (ja jopa 512 virtuaaliselle) prosessorille, tuki useille PCI-segmenteille, parannettu tietoturva ja dokumentaatio.( [24] ). |
4.3 | 09.07.2013 [25] | Kokeellinen tuki ARM:lle. NUMA-arkkitehtuurin ominaisuuksien huomioiminen ajoittimessa. Avaa vSwitch- tuki . |
4.4 | 10.3.2014 [26] | ARM-tuki on nyt vakaa. Libvirt-kirjaston libxl-tuki. Uusi skaalautuva käyttöliittymä tapahtumakanaville. Tuki sisäkkäisten virtuaaliympäristöjen luomiseen Intel-laitteistolla. Poistettu tuki x86 32-bittisille ja ia64 (itanium) hypervisoreille. |
4.5 | 15.1.2015 [27] | Työkalupino on nyt kirjoitettu uudelleen C-kielellä ja nimeltään xl tai libxl, mikä korvaa kokonaan vanhan työkalupinon xendin, joka kirjoitettiin pythonilla. |
4.6 | 13.10.2015 [28] | |
4.7 | 24.6.2016 [29] | Parannuksia: turvallisuus, reaaliaikainen siirto, suorituskyky ja työmäärä. Laitteistotuki (ARM ja Intel Xeon). [kolmekymmentä] |
4.8.1 | 12.4.2017 [31] | |
4.9 | 28.7.2017 [32] | Xen Project 4.9:n julkaisutiedot |
4.10 | 12.12.2017 [33] | Xen Project 4.10:n julkaisutiedot |
4.11 | 10.7.2018 [34] | Xen Project 4.11:n julkaisutiedot |
4.12 | 2019.04.2019 [35] | Xen Project 4.12:n julkaisutiedot |
Virtuaalikoneiden teknologian avulla voit laajentaa laitteiden toimintoja seuraavilla tavoilla:
Hypervisorin ydinkäsite on toimialue . Virtuaalikoneen käynnissä olevaa kopiota kutsutaan toimialueeksi. Jos virtuaalikone käynnistetään uudelleen, sen toimialue päätetään (uudelleenkäynnistyksen yhteydessä) ja uusi toimialue tulee näkyviin. Lisäksi jopa siirron aikana sisältöä kopioidaan verkkotunnuksesta toiseen. Näin ollen lähes kaikki virtuaalikoneet löytävät itsensä elinaikanaan vuorotellen eri toimialueille. Xen toimii vain toimialueen käsitteen kanssa, ja "virtuaalikoneen" käsite näkyy hallintatasolla (sovellusohjelmat, jotka ohjaavat hypervisoria).
Domaineja on useita tyyppejä. Tunnetuimmat ovat dom0 ja domU . dom0 on ensimmäinen käynnistetty Xen-toimialue, yleensä se luodaan ja ladataan automaattisesti heti hypervisorin lataamisen ja alustuksen jälkeen. Tällä toimialueella on erityisoikeudet ohjata hypervisoria, ja oletusarvoisesti kaikki tietokonelaitteistot ovat käytettävissä dom0:sta. Itse asiassa dom0 on siellä, missä Xeniä hallitseva ohjelmisto elää. dom0 on aina yksin.
domU on jäsentoimialue (lyhenne sanoista User domain), joka sisältää käynnissä olevien virtuaalikoneiden toimialueen. Yleensä sillä ei ole pääsyä todellisiin laitteistoihin ja se on virtualisointijärjestelmän "hyötykuorma". Toisin kuin dom0, domU voi olla useita (yleensä useita kymmeniä).
stub-domain - toimialue, joka käyttää erittäin erikoistunutta käyttöjärjestelmää, joka tarjoaa työtä minkä tahansa laitteiston tai ajurin taustajärjestelmän kanssa. Se on Xen-tietoturvamallin evoluutio.
domain builder (domain constructor) - ohjelma, joka luo domU:n (lataa siihen tarvittavan koodin ja käskee hypervisoria ajamaan). Domainin rakentamisen lisäksi hän yleensä käsittelee virtuaalikoneen käytettävissä olevien virtuaalilaitteiden yhdistämistä ja konfigurointia. Hän on myös vastuussa virtuaalikoneen siirtoprosessista isännästä isäntään.
Paravirtualisointi on suoritettavan käyttöjärjestelmän ytimen mukauttamista toimimaan yhdessä Xenin kanssa, yleensä lyhennettynä PV:ksi. Mahdollistaa erittäin korkean suorituskyvyn "todellisen laitteiston" emuloinnin puutteen, rajapintojen yksinkertaisuuden ja hypervisorin olemassaolon huomioon ottamisen vuoksi suoritettaessa järjestelmäkutsuja ytimen koodissa. Etuoikeutettujen toimintojen suorittaminen on kiellettyä, niiden sijaan tehdään hyperpuheluita ( eng. hypercalls ) - pyyntöjä vieraskäyttöjärjestelmän ytimestä hypervisorille, jossa pyydetään suorittamaan tiettyjä toimintoja. Useimmissa tapauksissa muutokset siirrettäessä käyttöjärjestelmä Xenille vaikuttavat vain käyttöjärjestelmän ytimeen, vaikka ne voivat sisältää pieniä muutoksia järjestelmäkirjastoissa (esim. libc). Xeniin sopeutumisprosessi on hyvin samanlainen kuin uuden alustan siirtäminen, mutta se on paljon yksinkertaisempaa, koska kuljettajan "vieras"-osa on helppo toteuttaa (Xenin ajurit koostuvat kahdesta osasta - toinen suoritetaan ohjaimen ulkopuolella Virtuaalikone, toinen on sen sisällä. Vierasjärjestelmän ajurin osa on erittäin alkeellista ja toimii vain kyselyn kääntäjänä toiselle osalle (tämä tehtiin tarkoituksella käyttöjärjestelmän siirtämisen helpottamiseksi Xenille). PV-tila ei tue "sisättyjä" prosessoritiloja, kuten real-86, virtual-86, vaihto 32-bittisen ja 64-bittisen tilan välillä, tuki laitteiston virtualisoinnin emuloinnille jne. Tässä suhteessa PV-tilassa on ei alkupalaa tietokoneen käynnistyksestä (BIOS-koodin jäljitelmä, käynnistyslatain jne.), ja vierasjärjestelmän ydin käynnistyy välittömästi halutussa tilassa, aivan kuten tavalliset ohjelmat alkavat. Tässä suhteessa erityisesti Xen itse ei voi toimia PV-tilassa (eli on mahdotonta käyttää "sisättyä" hypervisoria PV-tilassa).
Laitteiston virtualisointi (HVM) -tilassa vieraskäyttöjärjestelmä ei "tiedä" hypervisorin olemassaolosta. Xen, joka käyttää QEMU :n moduuleja, emuloi todellista laitteistoa ja mahdollistaa käyttöjärjestelmän käynnistämisen. Sen lopussa, normaalia suorituskykyä varten, tulisi käynnistää PV-ajurit, jotka toteuttavat nopean rajapinnan virtuaalilaitteiden kanssa, samalla tavalla kuin se toimii PV-tilassa. Koska suurin osa etuoikeutetuista toiminnoista on emuloitu, on mahdollista suorittaa Xen HVM-tilassa Xenin alta. Tässä tapauksessa sisäkkäinen hypervisor voi toimia vain PV-tilassa.
Xen-hypervisor (versio 3.4) toteuttaa minimaalisen joukon toimintoja päämuistin, prosessorin tilan, prosessorin reaaliaikaisten ajastimien ja kellolaskurien (TSC), keskeytysten ja DMA-ohjauksen hallintaan. Kaikki muut toiminnot, kuten levy- ja lohkolaitteiden toteutus, virtuaalikoneiden luominen ja poistaminen, niiden siirto palvelimien välillä jne., toteutetaan ohjausalueella. Tästä johtuen hypervisorin koko on hyvin pieni (versiossa 3.4 koko hypervisorin binaarikoodin koko on alle 600 KB), samoin kuin sen lähdekoodin koko. Kirjoittajien tarkoituksen mukaan tämä lisää virtualisointijärjestelmän vakautta, koska virhe hypervisorin ulkopuolella olevissa komponenteissa ei johda itse hypervisorin vaarantumiseen/vaurioitumiseen ja rajoittaa vaurioitumisen vain epäonnistuneeseen komponenttiin häiritsemättä muita.
Kaikki verkon toimintaan liittyvät toiminnot, lohko- (levy)laitteet, videosovittimien emulointi ja muut laitteet siirretään pois hypervisorista. Suurin osa näistä laitteista koostuu kahdesta osasta: ajurit domU:ssa ja ohjelmat dom0:ssa. Ohjain (useimmiten käyttöjärjestelmän ytimeen sisäänrakennettu tai moduulina ladattu) toteuttaa mahdollisimman vähän työtä, itse asiassa kääntäen pyynnöt käyttöjärjestelmästä ohjelmaan dom0:ssa. Dom0:n ohjelma tekee suurimman osan työstä. Tässä tapauksessa ohjelma suoritetaan useimmiten erillisenä prosessina jokaiselle huollettavalle laitteelle. Vika tällaisessa ohjelmassa johtaa vain yhden laitteen (lohko, verkko) epäonnistumiseen eikä vaikuta ohjelman muiden kopioiden toimintaan (eli se ei vaikuta muiden toimialueiden verkko- / lohkolaitteisiin tai jopa muut saman verkkotunnuksen laitteet).
Perinteisesti käytetään seuraavaa terminologiaa: frontend on moduulin osa, joka sijaitsee domU:ssa, backend on osa, joka sijaitsee dom0:ssa. Joissakin laitetyypeissä taustaosa voi olla erilainen, vaikka käyttöliittymä pysyy samana. Esimerkiksi lohkolaiteohjaimella voi olla taustaohjelma VHD-kuvantajan, lohkolaiteohjaimen, iscsi-käynnistimen ja niin edelleen muodossa.
Xen tarjoaa kolme viestintämekanismia toimialueille: yhden hypervisorin kanssa (hyperkutsut) ja kaksi verkkotunnusten välillä. Useimmiten vuorovaikutusta tapahtuu dom0:n ja domU:n välillä, vaikka malli sallii vuorovaikutuksen kahden domU:n välillä.
Verkkotunnusten välinen vuorovaikutus jakautuu kahteen tyyppiin: tapahtumat (tapahtumat) ja jaettu muisti (jaettu muisti). Kolmas vaihtoehto, muistisivun siirto, on jaetun muistin käytön erikoistapaus.
Tapahtumat palvelevat suunnilleen samaa tarkoitusta kuin keskeytykset x86-arkkitehtuurissa tai signaalit Unixissa - nopea synkroninen tai asynkroninen signaalin lähetys jonkin tapahtuman esiintymisestä. Jaettu muisti tarjoaa mahdollisuuden siirtää merkittäviä määriä tietoa, ja tapahtumat tarjoavat siirtonopeuden.
Tapahtumat voivat olla naamioituja tai paljastamattomia. Naamioimattomat tapahtumat aiheuttavat takaisinkutsun (kutsuvat toimintoa, jonka osoite on välitetty aiemmin) ja mahdollistavat tapahtuman käsittelyn välittömästi sen tapahtuessa. Peitetyt tapahtumat asettavat vain lipun siitä, että tapahtuma on tapahtunut, ja käsittelijä tarkistaa säännöllisesti, onko tapahtuma (yksi tai useampi) tapahtunut. Toinen tapa antaa sinun olla soittamatta takaisinsoittoa jokaiselle tapahtumalle ja lyhentää huomattavasti käsittelyaikaa, jos tapahtumat ovat usein. Päinvastoin, ensimmäinen vaihtoehto (takaisinsoitto) antaa sinun nopeuttaa sellaisen tapahtuman käsittelynopeutta, joka ei ehkä tapahdu kovin usein, mutta vaatii välitöntä vastausta.
Xen (hallintapinon kautta) tukee vierasvirtuaalikoneiden siirtoa verkon yli. Paravirtuaalisten koneiden siirtoa tuetaan versiosta Xen 2 ja HVM - versiosta 3. Siirtyminen voi tapahtua vierasjärjestelmän ollessa pois päältä tai prosessin aikana niin sanottu "live" migration ( englanniksi live migration ) menettämättä saatavuus.
Vaaditaan, että molemmat fyysiset Xen-palvelimet näkevät saman tallennustilan, jossa virtuaalikoneen tiedot sijaitsevat. Tämä on tarpeen, koska virtuaalikoneen siirrettäessä sen tiedostojärjestelmää ei kopioida, koska se vie liian paljon aikaa jopa nopean verkon tapauksessa. Jaettu tallennus voi perustua erilaisiin SAN- tai NAS -tekniikoihin , kuten Fibre Channel , iSCSI tai DRBD .
Koska hypervisor itse (noin 500-600 KB) toteuttaa vain järjestelmän "ytimen", kaikki muut toiminnot siirretään dom0:ssa toimivalle sovelluskerrokselle. Ohjelmasarjaa, joka toteuttaa toimintoja Xenin ulkopuolella, kutsutaan englanniksi. työkalupino (ei ole vakiintunutta käännöstä, joskus käytetään termiä "hallintapino").
Xenin työkalupinosta on kaksi versiota: xend- pohjainen (sisältyy useimpiin Xen-jakeluihin) ja xapi- pohjainen (sisältyy Citrix XenServeriin ja Xen Cloud Platformiin). Xend kehitettiin samaan aikaan Pythonilla kirjoitetun Xenin kanssa ja se oli alusta alkaen avoimen lähdekoodin lisenssillä. Xapi oli Xensourcen (jäljempänä Citrix) oma, mutta se julkaistiin GPL:n alla vuonna 2009. Xapi on kirjoitettu OCamlissa , kirjoitushetkellä sillä oli pienempi joukko ominaisuuksia, mutta se oli vakaampi.
Versiossa 4.5 pythonilla kirjoitettu xend korvattiin C-kielellä kirjoitetulla xl/libxl:llä.
Molemmat työkalupinon versiot sisältävät seuraavat apuohjelmat:
Toolstack tarjoaa virtuaalikoneiden hallinnan (luominen/poisto, aloitus/pysäytys, siirto, resurssien yhdistäminen jne.). Lisäksi työkalupakki tarjoaa resurssienhallinnan suurille järjestelmille: se luo ja ylläpitää arkistoja virtuaalikoneen levykuvien tallentamiseen (SR - storage repository), tukee palvelinpooleja virtuaalikoneiden siirtoon ja voi hallita monimutkaisia paikallisverkkokokoonpanoja, mukaan lukien VLAN- tuella . Lisäksi tuetaan XML-RPC :hen [36] perustuvaa XenApi-kaukosäädinliitäntää .
Xen tukee yhä useampia alustoja päivittäin.
Tyypin 1 hybridihypervisorina Xen toimii suoraan laitteistoalustalla, mutta vaatii toimiakseen isäntäkäyttöjärjestelmän dom0:ssa. Xen tukee prosessoreita alkaen Pentium II , on versioita x86-64 , PowerPC , Itanium (versioon 4.4 asti) ja ARM-arkkitehtuureille (vakaa versiosta 4.4 lähtien). Xenin lataus tehdään käynnistyslataimella , kuten GRUB tai vastaava. Välittömästi lataamisen jälkeen Xen käynnistää käyttöjärjestelmän dom0:ssa.
Useimmat asennukset käyttävät Linuxia dom0-ohjausalueen käyttöjärjestelmänä. Pitkään aikaan Xen-tukea ei ollut mukana virallisessa Linux-ytimessä, ja se oli olemassa v2.6.18-ytimen korjaustiedostojen sarjana. Vuodesta 2.6.37 lähtien pv_ops - mekanismi on ilmestynyt Linux-ytimeen vuorovaikutuksessa hypervisoreiden kanssa [37] . Tämä mekanismi mahdollistaa ytimen toimimisen sekä paravirtuaalisessa tilassa että suoraan laitteistossa. Xen 4.0:sta alkaen se tukee pv_ops-mekanismia Linux-ytimen dom0:ssa [38] . Yli 3.0:n Linux-ytimet tukevat myös täysin Xeniä sekä dom0:lle että domU:lle [39] .
Myös seuraavat käyttöjärjestelmät voivat toimia nimellä dom0:
Useimpia käyttöjärjestelmiä voidaan käyttää HVM-laitteiston virtualisointitilassa, mutta paravirtualisointitekniikkaa käytetään suuren suoritusnopeuden saavuttamiseksi. Seuraavia vieraskäyttöjärjestelmiä voidaan käyttää paravirtuaalisessa tilassa domU:ssa:
Myös muiden käyttöjärjestelmien, kuten Plan 9 , portit ovat työn alla. On odotettavissa, että viralliset portit Xenille julkaistaan kaikille näille käyttöjärjestelmille (kuten tapahtui NetBSD:lle).
Microsoft Windows -perheen käyttöjärjestelmät voivat toimia täydessä HVM-virtualisointitilassa Xen 3:sta alkaen prosessoreissa, jotka tukevat laitteiston virtualisointia. Tässä tapauksessa virtuaalisia laitteita (levy, verkko) emuloidaan käyttämällä erityistä QEMU -versiota . Windowsin nopeuttamiseksi voidaan käyttää niin kutsuttuja paravirtuaalisia ohjaimia . Toisin kuin Linuxin paravirtuaalisessa tilassa, Windows-ydin on muokkaamaton ja toimii laitteiston virtualisointitilassa, mutta laiteohjaimet käyttävät Xeniä suoraan (HyperCalls-palvelun kautta) ohittaen QEMU-emulointikerroksen. Windowsille kehitetään GPL-paravirtualisointiohjaimia, ja Citrix XenServer- ja Oracle VM -tuotteet sisältävät allekirjoitettuja paravirtualisointiohjaimia Windowsille.
Xeniä käytetään laajasti virtualisointikomponenttina pilvipalveluissa ja erillisissä yksityisissä palvelinpalveluissa . Hosting-yritykset, kuten Amazon Elastic Compute Cloud , Liquid Web , Fujitsu Global Cloud Platform , [46] Linode , SparkNode [47] ja Rackspace Cloud , käyttävät Xeniä virtuaalikoneen hypervisorina.
Tällä hetkellä[ selventää ] Xen-yhteisö kehittää XCP:tä (Xen Cloud Platform), palvelinvirtualisointijärjestelmää. XCP on peräisin Citrix XenServerin ilmaisesta versiosta ja se on julkaistu kokonaan GNU GPL :n alla .
Xeniin perustuvia kaupallisia palvelimien yhdistämistuotteita on useita. Erityisesti nämä ovat tuotteita, kuten:
Emulointi - ja virtualisointiohjelmistot ( vertailu ) _ | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Sovelluskerros |
| ||||||||||||||
OS- taso (säilöt) |
| ||||||||||||||
Laitteistotaso _ |
| ||||||||||||||
Verkon virtualisointi |
|