Xen - Xen

Xen
Logo Xen hypervisor black.svg
Xen screenshot.png
Xen care rulează NetBSD și trei distribuții Linux
Autori originali Keir Fraser, William Perkins jr, Steven Hand, Ian Pratt , Laboratorul de Calculatoare al Universității din Cambridge
Dezvoltatori Linux Foundation
Intel
Eliberarea inițială 2003 ( 2003 )
Versiune stabila
4,15 / 8 aprilie 2021 ; acum 6 luni ( 08.04.2021 )
Repertoriu
Scris in C
Tip Hipervizor
Licență GPLv2
Site-ul web xenproject .org

Xen (pronunțat / z ɛ n / ) este un tip 1 hypervisor , furnizarea de servicii care permit mai multor calculatoare sisteme de operare pentru a executa pe același hardware de calculator concomitent. A fost inițial dezvoltat de Universitatea din Cambridge Computer Laboratory și este acum dezvoltat de Linux Foundation cu suport de la Intel , Citrix , Arm Ltd , Huawei , AWS , Alibaba Cloud , AMD , Bitdefender și epam .

Comunitatea Xen Project dezvoltă și menține Proiectul Xen ca software gratuit și open-source , sub rezerva cerințelor GNU General Public License (GPL), versiunea 2. Xen Project este disponibil în prezent pentru IA-32 , x86-64 și ARM seturi de instrucțiuni .

Arhitectura software

Xen Project rulează într-o stare CPU mai privilegiată decât orice alt software de pe aparat.

Responsabilitățile hipervizorului includ gestionarea memoriei și programarea procesorului pentru toate mașinile virtuale („domenii”) și pentru lansarea celui mai privilegiat domeniu („dom0”) - singura mașină virtuală care implicit are acces direct la hardware. De la dom0, hipervizorul poate fi gestionat și pot fi lansate domenii fără privilegii („domU”).

Domeniul dom0 este de obicei o versiune de Linux sau BSD . Domeniile utilizatorilor pot fi fie sisteme de operare tradiționale, cum ar fi Microsoft Windows, în care instrucțiunile privilegiate sunt furnizate de instrucțiunile de virtualizare hardware (dacă procesorul gazdă acceptă virtualizarea x86 , de exemplu, Intel VT-x și AMD-V ), sau sistemele de operare paravirtualizate prin care sistemul de operare este conștient că rulează în interiorul unei mașini virtuale și, prin urmare, face apeluri directe, mai degrabă decât să emită instrucțiuni privilegiate.

Xen Project pornește de la un bootloader precum GNU GRUB și apoi încarcă de obicei un sistem de operare gazdă paravirtualizat în domeniul gazdă (dom0).

Istorie

Xen își are originea ca proiect de cercetare la Universitatea din Cambridge, condus de Ian Pratt , lector superior în Laboratorul de Calculatoare , și doctorandul său Keir Fraser. Prima lansare publică a Xen a fost făcută în 2003, urmând v1.0 în 2004. La scurt timp, Pratt și Fraser împreună cu alți absolvenți din Cambridge, inclusiv Simon Crosby și CEO-ul fondator Nick Gault, au creat XenSource Inc. pentru a transforma Xen într-un produs competitiv pentru întreprinderi. .

Pentru a sprijini sistemele încorporate, cum ar fi smartphone-ul / IoT, cu resurse de calcul hardware relativ puține, arhitectura Secure Xen ARM pe un procesor ARM a fost expusă la Summit-ul Xen din 17 aprilie 2007, care a avut loc la IBM TJ Watson. Prima lansare publică a codului sursă Secure Xen ARM a fost realizată la Xen Summit pe 24 iunie 2008 de către Sang-bum Suh , absolvent al Cambridge, în Samsung Electronics.

Pe 22 octombrie 2007, Citrix Systems a finalizat achiziția XenSource, iar Xen Project s-a mutat în domeniul xen.org. Această mișcare a început cu ceva timp anterior și a făcut publică existența Comitetului consultativ pentru proiectul Xen (Xen AB), care avea membri de la Citrix , IBM , Intel , Hewlett-Packard , Novell , Red Hat , Sun Microsystems și Oracle . Comitetul consultativ Xen îl consiliază pe liderul proiectului Xen și este responsabil pentru marca Xen, pe care Citrix a licențiat-o în mod gratuit tuturor furnizorilor și proiectelor care implementează hipervizorul Xen . Citrix a folosit însăși marca Xen pentru anumite produse proprietare care nu au legătură cu Xen, inclusiv XenApp și XenDesktop .

La 15 aprilie 2013, s-a anunțat că Proiectul Xen a fost mutat sub egida Fundației Linux ca proiect de colaborare. Fundația Linux a lansat o nouă marcă comercială pentru „Xen Project” pentru a diferenția proiectul de orice utilizare comercială a vechii mărci comerciale „Xen”. Ca parte a transferului, a fost lansat un nou site comunitar la xenproject.org. Membrii proiectului la momentul anunțului includeau: Amazon, AMD, Bromium, CA Technologies, Calxeda, Cisco, Citrix, Google, Intel, Oracle, Samsung și Verizon. Proiectul Xen în sine se autoguvernează.

De la versiunea 3.0 a kernel-ului Linux , suportul Xen pentru dom0 și domU există în kernel-ul principal.

Istoricul lansărilor

Versiune Data de lansare Note
1.0 2 octombrie 2003
2.0 5 noiembrie 2004 Migrarea în direct a clienților PV.
3.0 5 decembrie 2005

Versiunile până la 3.0.4 au adăugat, de asemenea:

  • Suport pentru extensiile de virtualizare AMD SVM .
  • Suport pentru arhitectura PowerPC .
  • Suport grafic framebuffer pentru oaspeții paravirtualizați.
3.1 18 mai 2007 Migrare live pentru oaspeții HVM, XenAPI
3.2 17 ianuarie 2008 Passthrough PCI și modul standby ACPI S3 pentru sistemul gazdă.
3.3 24 august 2008 Îmbunătățiri pentru passthrough-ul PCI și gestionarea energiei. Codul sursă Xen ARM pentru hipervizor lansat pentru suport ARM CPU
3.4 18 mai 2009 Conține o primă versiune a „Xen Client Initiative”, în scurt timp XCI.
4.0 7 aprilie 2010 Face posibilă utilizarea unui kernel Linux dom0, care a fost implementat utilizând PVOps. Un kernel Linux cu versiunea 2.6.31 a fost modificat în acest scop, deoarece kernel-ul oficial Linux nu acceptă utilizarea ca kernel dom0 (data de iulie 2010).
4.1 25 martie 2011 Unele dintre îmbunătățiri: Suport pentru mai mult de 255 de procesoare, stabilitate mai bună. Kernel-ul Linux v2.6.37 și ulterior suportă utilizarea ca kernel dom0.
4.2 8 septembrie 2012 XL a devenit setul de instrumente implicit. Suport pentru până la 4095 procesoare gazdă și până la 512 procesoare invitate.
4.3 9 iulie 2013 Suport experimental ARM. Programare conștientă de NUMA. Suport pentru Open vSwitch .
4.4 10 martie 2014 Suport solid libvirt pentru libxl, noua interfață de canal de evenimente scalabilă, hipervizor ABI pentru ARM declarat stabil, Virtualizare imbricată pe hardware Intel.
4.5 17 ianuarie 2015 Cu 43 de caracteristici noi majore, 4.5 include cele mai multe actualizări din istoria proiectului.
4.6 13 octombrie 2015 Concentrat pe îmbunătățirea calității codului, întărirea securității, activarea dispozitivelor de securitate și predictibilitatea ciclului de lansare.
4.7 24 iunie 2016 Îmbunătățit: securitate, migrații în direct, performanțe și volumul de muncă. Suport hardware (ARM și Intel Xeon).
4.8.1 12 aprilie 2017
4.9 28 iunie 2017 Note de lansare pentru Xen Project 4.9
4.10 12 decembrie 2017 Note de lansare pentru Xen Project 4.10
4.11 10 iulie 2018 Note de lansare pentru Xen Project 4.11
4.12 2 aprilie 2019 Note de lansare pentru Xen Project 4.12
4.13 18 decembrie 2019 Note de lansare pentru Xen Project 4.13
4.14 24 iulie 2020 Note privind versiunea Xen Project 4.14
4.15 8 aprilie 2021 Note de lansare pentru Xen Project 4.15

Utilizări

Companiile de servicii de găzduire pe internet utilizează hipervizoare pentru a furniza servere private virtuale . Amazon EC2 (din august 2006), IBM SoftLayer , Liquid Web, Fujitsu Global Cloud Platform , Linode , OrionVM și Rackspace Cloud utilizează Xen ca principal hipervizor VM pentru ofertele lor de produse.

Monitoarele mașinilor virtuale (cunoscute și sub denumirea de hipervizoare) funcționează adesea pe mainframe și pe servere mari care rulează IBM, HP și alte sisteme. Virtualizarea serverului poate oferi avantaje precum:

  • Consolidare care duce la o utilizare sporită
  • Aprovizionare rapidă
  • Toleranță dinamică la erori împotriva eșecurilor software-ului (prin bootstrapping sau repornire rapidă)
  • Toleranță la erori hardware (prin migrarea unei mașini virtuale către hardware diferit)
  • Separați în siguranță sistemele de operare virtuale
  • Suport pentru software vechi, precum și pentru noi instanțe ale sistemului de operare pe același computer

Suportul Xen pentru migrarea virtuală a mașinilor virtuale de la o gazdă la alta permite echilibrarea încărcării și evitarea timpilor de nefuncționare.

Virtualizarea are și avantaje atunci când se lucrează la dezvoltare (inclusiv dezvoltarea sistemelor de operare): rularea noului sistem ca invitat evită necesitatea repornirii computerului fizic ori de câte ori apare o eroare. Sistemele de oaspeți cu nisip pot ajuta, de asemenea, în cercetarea securității computerului, permițând studiul efectelor unor virusuri sau viermi, fără posibilitatea compromiterii sistemului gazdă.

În cele din urmă, furnizorii de dispozitive hardware pot decide să-și livreze dispozitivul rulând mai multe sisteme de oaspeți, astfel încât să poată executa diverse software care necesită diferite sisteme de operare.

Tipuri de virtualizare

Xen oferă cinci abordări pentru rularea sistemului de operare pentru oaspeți:

  • HVM (mașină virtuală hardware)
  • HVM cu drivere PV
  • PVHVM (paravirtualizare cu virtualizare hardware completă, adică HVM cu drivere PVHVM)
  • PVH (PV într-un container HVM)
  • PV (paravirtualizare).

Xen oferă o formă de virtualizare cunoscută sub numele de paravirtualizare, în care oaspeții rulează un sistem de operare modificat. Oaspeții sunt modificați pentru a utiliza un hypercall special ABI , în loc de anumite caracteristici arhitecturale. Prin paravirtualizare, Xen poate obține performanțe ridicate chiar și pe arhitectura gazdă (x86), care are o reputație de necooperare cu tehnicile tradiționale de virtualizare. Xen poate rula invitați paravirtualizați („invitați PV” în terminologia Xen) chiar și pe procesoare fără niciun suport explicit pentru virtualizare. Paravirtualizarea evită necesitatea de a emula un set complet de servicii hardware și firmware, ceea ce face un sistem PV mai simplu de gestionat și reduce suprafața de atac expusă oaspeților potențial rău intenționați. Pe x86 pe 32 de biți, codul nucleului gazdă Xen rulează în Ring 0 , în timp ce domeniile găzduite rulează în Ring 1 (nucleu) și Ring 3 (aplicații).

CPU-urile care acceptă virtualizarea fac posibilă rularea oaspeților nemodificați, inclusiv sisteme de operare proprietare (cum ar fi Microsoft Windows). Aceasta este cunoscută sub numele de virtualizare asistată de hardware , cu toate acestea, în Xen aceasta este cunoscută sub numele de mașină virtuală hardware (HVM). Extensiile HVM oferă moduri de execuție suplimentare, cu o distincție explicită între cele mai privilegiate moduri utilizate de hipervizorul cu acces la hardware-ul real (numit „mod rădăcină” în x86) și modurile mai puțin privilegiate utilizate de nucleele de oaspeți și aplicațiile cu „ hardware "accesează sub controlul complet al hipervizorului (în x86, cunoscut sub numele de" mod non-root "; atât modul root, cât și non-root au inele 0-3). Atât Intel, cât și AMD au contribuit cu modificări la Xen pentru a exploata extensiile lor de arhitectură Intel VT-x și AMD-V. Utilizarea extensiilor de virtualizare ARM v7A și v8A a venit cu Xen 4.3. Extensiile HVM oferă, de asemenea, noi instrucțiuni pentru a permite apeluri directe de către un client / șofer paravirtualizat în hipervizor, de obicei utilizate pentru I / O sau alte operații care necesită performanțe ridicate. Acestea permit oaspeților HVM cu modificări minore adecvate să obțină multe dintre beneficiile de performanță ale I / O paravirtualizate. În versiunile actuale ale Xen (până la 4.2), numai oaspeții HVM complet virtualizați pot utiliza facilități hardware pentru mai multe niveluri independente de protecție a memoriei și de paginare. Ca urmare, pentru unele încărcări de lucru, oaspeții HVM cu driver PV (cunoscut și sub numele de PV-on-HVM sau PVH) oferă performanțe mai bune decât oaspeții PV puri. Xen HVM are o emulare a dispozitivului bazată pe proiectul QEMU pentru a oferi virtualizare I / O către mașinile virtuale. Sistemul emulează hardware printr-un daemon QEMU "patch manager" (qemu-dm) care se execută ca backend în dom0. Aceasta înseamnă că mașinile virtualizate văd o versiune emulată a unui PC destul de simplu. Într-un mediu critic de performanță, discurile PV-on-HVM și driverele de rețea sunt utilizate în timpul funcționării normale a oaspeților, astfel încât hardware-ul PC-ului emulat este utilizat în principal pentru boot.

Caracteristici

Administratorii pot „migra în direct” mașinile virtuale Xen între gazde fizice pe o rețea LAN fără pierderea disponibilității. În timpul acestei proceduri, LAN copiază iterativ memoria mașinii virtuale la destinație fără a opri executarea acesteia. Procesul necesită o oprire de aproximativ 60–300 ms pentru a efectua sincronizarea finală înainte ca mașina virtuală să înceapă executarea la destinația sa finală, oferind o iluzie de migrare fără probleme. Tehnologie similară poate servi la suspendarea rulării mașinilor virtuale pe disc, „înghețând” starea lor de funcționare pentru reluare la o dată ulterioară.

Xen poate scala până la 4095 de procesoare fizice, 256 VCPU-uri per invitat HVM, 512 VCPU-uri per invitat PV, 16 TB RAM per gazdă și până la 1 TB RAM pentru fiecare invitat HVM sau 512 GB RAM per invitat PV.

Disponibilitate

Hipervizorul Xen a fost portat la mai multe familii de procesoare:

  • Intel: IA-32, IA-64 (înainte de versiunea 4.2), x86-64
  • PowerPC: suportat anterior în cadrul proiectului XenPPC, nu mai este activ după Xen 3.2
  • ARM: susținut anterior în cadrul proiectului XenARM pentru versiunile mai vechi ale ARM fără extensii de virtualizare, cum ar fi Cortex-A9. În prezent este acceptat de la Xen 4.3 pentru versiunile mai noi ale ARM cu extensii de virtualizare, cum ar fi Cortex-A15 .
  • MIPS : port experimental XLP832

Gazde

Xen poate fi livrat pe o platformă dedicată de virtualizare, cum ar fi Citrix Hypervisor (fost Citrix XenServer, și înainte XenSource XenEnterprise).

Alternativ, Xen este distribuit ca o configurație opțională a multor sisteme de operare standard. Xen este disponibil și distribuit cu:

Vizitatori

Sistemele de oaspeți pot rula complet virtualizate (care necesită suport hardware), paravirtualizate (care necesită un sistem de operare pentru oaspeți modificat) sau complet virtualizate cu drivere paravirtualizate (PVHVM). Majoritatea sistemelor de operare care pot rula pe PC-uri pot rula ca invitat Xen HVM. Următoarele sisteme pot funcționa ca invitați Xen paravirtualizați:

Versiunea Xen 3.0 a introdus capacitatea de a rula Microsoft Windows ca sistem de operare invitat nemodificat dacă procesorul mașinii gazdă acceptă virtualizarea hardware furnizată de Intel VT-x (fost denumit în cod Vanderpool) sau AMD-V (anterior codificat Pacifica). În timpul dezvoltării Xen 1.x, Microsoft Research , împreună cu grupul de sisteme de operare Universitatea din Cambridge, au dezvoltat un port Windows XP către Xen - posibil datorită programului de licențiere academică al Microsoft . Termenii acestei licențe nu permit publicarea acestui port, deși documentația despre experiență apare în hârtia Xen SOSP originală . James Harper și comunitatea open-source Xen au început să dezvolte drivere gratuite de paravirtualizare pentru Windows. Acestea oferă drivere front-end pentru blocul Xen și dispozitive de rețea și permit performanțe mult mai mari pe disc și rețea pentru sistemele Windows care rulează în modul HVM. Fără aceste drivere, tot traficul de disc și de rețea trebuie procesat prin QEMU-DM. Ulterior, Citrix a lansat sub licență BSD (și continuă să mențină) driverele PV pentru Windows.

Management

Dezvoltatorii terți au construit o serie de instrumente (cunoscute sub numele de console de management Xen) pentru a facilita sarcinile comune de administrare a unei gazde Xen, cum ar fi configurarea, pornirea, monitorizarea și oprirea oaspeților Xen. Exemplele includ:

  • HyperVM bazat pe web
  • OpenNebula set de instrumente de management cloud
  • Pe openSUSE YaST și virt-man oferă management grafic al VM
  • OpenStack acceptă nativ Xen ca țintă Hypervisor / Compute
  • Apache CloudStack acceptă, de asemenea, Xen ca hipervizor
  • PlateSpin Orchestrate de la Novell gestionează, de asemenea, mașinile virtuale Xen pentru expediere Xen în SUSE Linux Enterprise Server.

Versiuni comerciale

Hipervizorul Xen este acoperit de licența publică generală GNU, deci toate aceste versiuni conțin un nucleu de software gratuit cu cod sursă. Cu toate acestea, multe dintre ele conțin adăugiri proprietare.

Prezentare generală a lansărilor Citrix XenServer și a versiunilor legate de Xen Project
Versiune de distribuție comercială Data lansării versiunii comerciale Versiunea Xen Projects Data lansării comerciale EOL
Citrix XenServer 6.0 30.09.2011 4.1.1 26.09.2016
Citrix XenServer 6.1 2012-09-28 4.1.3 30.09.2016
Citrix XenServer 6.2 18.06.2013 4.1.5 26.06.2018
Citrix XenServer 6.2 SP1 16.12.2013 4.1.5 26.06.2018
Citrix XenServer 6.5 13.01.2015 4.4.1 26.06.2018
Citrix XenServer 6.5 SP1 12.05.2015 4.4.1 26.06.2018
Citrix XenServer 7.0 24.05.2016 4.6.1 2021-05-19
Citrix XenServer 7.1 23-02-2017 4.7.1 2022-08-01
Citrix XenServer 7.4 27.02.2018 4.7.4 30.09.2018
Citrix XenServer 7.5 30.05.2018 4.7.x 2019-04-20
Citrix XenServer 7.6 06.09.2018 4.7.6 2019-07-06

Vezi si

Referințe

Lecturi suplimentare

linkuri externe