Xen - Xen

Xen
Logo hiperwizora Xen black.svg
Xen zrzut ekranu.png
Xen z NetBSD i trzema dystrybucjami Linuksa
Pierwotny autor (autorzy) Keir Fraser, William Perkins jr, Steven Hand, Ian Pratt , Laboratorium Komputerowe Uniwersytetu Cambridge
Deweloper(zy) Intel Fundacja Linuksa
Pierwsze wydanie 2003 ( 2003 )
Wersja stabilna
4.15/08 kwietnia 2021 ; 6 miesięcy temu ( 2021-04-08 )
Magazyn
Napisane w C
Rodzaj Nadzorca
Licencja GPLv2
Strona internetowa xenproject .org

Xen (wymawiane / oo ɛ n / ) jest typu 1 hypervisor , świadczenie usług, które umożliwiają wielokrotne komputerowe systemy operacyjne , aby wykonać na tym samym sprzęcie komputerowym jednocześnie. Został pierwotnie opracowany przez University of Cambridge Computer Laboratory, a obecnie jest rozwijany przez Linux Foundation przy wsparciu firm Intel , Citrix , Arm Ltd , Huawei , AWS , Alibaba Cloud , AMD , Bitdefender i epam .

Społeczność Xen Project rozwija i utrzymuje Xen Project jako wolne i otwarte oprogramowanie , podlegające wymogom GNU General Public License (GPL), wersja 2. Xen Project jest obecnie dostępny dla IA-32 , x86-64 i ARM zestawy instrukcji .

Architektura oprogramowania

Xen Project działa w bardziej uprzywilejowanym stanie procesora niż jakiekolwiek inne oprogramowanie na komputerze.

Do zadań hypervisora ​​należy zarządzanie pamięcią i planowanie CPU wszystkich maszyn wirtualnych ("domen") oraz uruchamianie najbardziej uprzywilejowanej domeny ("dom0") - jedynej maszyny wirtualnej, która domyślnie ma bezpośredni dostęp do sprzętu. Z dom0 można zarządzać hiperwizorem i uruchamiać domeny nieuprzywilejowane („domU”).

Domena dom0 jest zazwyczaj wersją systemu Linux lub BSD . Domeny użytkownika mogą być albo tradycyjnymi systemami operacyjnymi, takimi jak Microsoft Windows, w których uprzywilejowane instrukcje są dostarczane przez instrukcje wirtualizacji sprzętowej (jeśli procesor hosta obsługuje wirtualizację x86 , np. Intel VT-x i AMD-V ), albo parawirtualizowanymi systemami operacyjnymi, w których system operacyjny ma świadomość, że działa wewnątrz maszyny wirtualnej, dlatego wykonuje hiperwywołania bezpośrednio, zamiast wydawać uprzywilejowane instrukcje.

Xen Project uruchamia się z programu ładującego, takiego jak GNU GRUB , a następnie zwykle ładuje parawirtualizowany system operacyjny hosta do domeny hosta (dom0).

Historia

Xen powstał jako projekt badawczy na Uniwersytecie Cambridge prowadzonym przez Iana Pratta , starszego wykładowcę w Laboratorium Komputerowym , i jego doktoranta Keira Frasera. Pierwsze publiczne wydanie Xen zostało wydane w 2003 roku, a wersja 1.0 pojawiła się w 2004 roku. Niedługo potem Pratt i Fraser wraz z innymi absolwentami Cambridge, w tym Simonem Crosbym i założycielem Nick Gault, stworzyli XenSource Inc., aby przekształcić Xen w konkurencyjny produkt korporacyjny .

Aby wspierać systemy wbudowane, takie jak smartfony/IoT, przy stosunkowo niewielkich zasobach sprzętowych, architektura Secure Xen ARM na procesorze ARM została zaprezentowana na Xen Summit w dniu 17 kwietnia 2007 r., który odbył się w IBM TJ Watson. Pierwsze publiczne wydanie kodu źródłowego Secure Xen ARM zostało wydane na Xen Summit 24 czerwca 2008 r. przez Sang-bum Suh , absolwenta Cambridge, w Samsung Electronics.

22 października 2007 r. firma Citrix Systems zakończyła przejęcie XenSource, a projekt Xen został przeniesiony do domeny xen.org. Ten ruch rozpoczął się jakiś czas wcześniej i upublicznił istnienie Xen Project Advisory Board (Xen AB), w skład którego wchodzą członkowie Citrix , IBM , Intel , Hewlett-Packard , Novell , Red Hat , Sun Microsystems i Oracle . Xen Advisory Board doradza liderowi projektu Xen i odpowiada za znak towarowy Xen, na który Citrix bezpłatnie udzielił licencji wszystkim dostawcom i projektom wdrażającym hipernadzorcę Xen . Citrix wykorzystał również samą markę Xen do niektórych zastrzeżonych produktów niezwiązanych z Xen, w tym XenApp i XenDesktop .

15 kwietnia 2013 roku ogłoszono, że projekt Xen został przeniesiony pod auspicjami Linux Foundation jako projekt współpracy. Linux Foundation wprowadziła nowy znak towarowy dla „Xen Project”, aby odróżnić projekt od jakiegokolwiek komercyjnego wykorzystania starszego znaku towarowego „Xen”. W ramach przeniesienia uruchomiono nową witrynę społecznościową pod adresem xenproject.org. Członkowie projektu w momencie ogłoszenia obejmowały: Amazon, AMD, Bromium, CA Technologies, Calxeda, Cisco, Citrix, Google, Intel, Oracle, Samsung i Verizon. Sam projekt Xen jest samorządny.

Od wersji 3.0 jądra Linux obsługa Xen dla dom0 i domU istnieje w głównym jądrze.

Historia wydań

Wersja Data wydania Uwagi
1,0 2 października 2003 r.
2,0 5 listopada 2004 r. Migracja na żywo gości PV.
3,0 5 grudnia 2005 r.

Wersje do 3.0.4 dodały również:

  • Obsługa rozszerzeń wirtualizacji AMD SVM .
  • Wsparcie dla architektury PowerPC .
  • Obsługa graficznego bufora ramki dla parawirtualizowanych gości.
3.1 18 maja 2007 r. Migracja na żywo dla gości HVM, XenAPI
3.2 17 stycznia 2008 Przejście PCI i tryb gotowości ACPI S3 dla systemu hosta.
3,3 24 sierpnia 2008 Ulepszenia dotyczące przekazywania PCI i zarządzania energią. Kod źródłowy hiperwizora Xen ARM udostępniony do obsługi procesorów ARM
3.4 18 maja 2009 Zawiera pierwszą wersję "Inicjatywy Klienta Xen", wkrótce XCI.
4.0 7 kwietnia 2010 Umożliwia korzystanie z jądra Linuksa dom0, które zostało zaimplementowane przy użyciu PVOps. Jądro Linuksa w wersji 2.6.31 zostało w tym celu zmodyfikowane, ponieważ oficjalne jądro Linuksa w rzeczywistości nie obsługuje użycia jądra dom0 (data lipiec 2010).
4.1 25 marca 2011 Niektóre ulepszenia: Obsługa ponad 255 procesorów, lepsza stabilność. Jądro Linux v2.6.37 i nowsze obsługują użycie jako jądro dom0.
4.2 8 września 2012 XL stał się domyślnym zestawem narzędzi. Obsługa do 4095 procesorów hosta i do 512 procesorów gości.
4,3 9 lipca 2013 r. Eksperymentalne wsparcie ARM. Planowanie zgodne z NUMA. Wsparcie dla Open vSwitch .
4.4 10 marca 2014 Solidna obsługa libvirt dla libxl, nowy skalowalny interfejs kanału zdarzeń, hiperwizor ABI dla ARM zadeklarowany jako stabilny, zagnieżdżona wirtualizacja na sprzęcie Intela.
4,5 17 stycznia 2015 Dzięki 43 głównym nowym funkcjom 4.5 zawiera najwięcej aktualizacji w historii projektu.
4,6 13 października 2015 Koncentruje się na poprawie jakości kodu, wzmacnianiu zabezpieczeń, włączaniu urządzeń zabezpieczających i przewidywalności cyklu wydań.
4,7 24 czerwca 2016 Ulepszono: bezpieczeństwo, migracje na żywo, wydajność i obciążenie. Wsparcie sprzętowe (ARM i Intel Xeon).
4.8.1 12 kwietnia 2017 r.
4,9 28 czerwca 2017 Xen Project 4.9 Informacje o wydaniu
4.10 12 grudnia 2017 r. Xen Project 4.10 Informacje o wydaniu
4.11 10 lipca 2018 Xen Project 4.11 Informacje o wydaniu
4.12 2 kwietnia 2019 Xen Project 4.12 Informacje o wydaniu
4.13 18 grudnia 2019 Xen Project 4.13 Informacje o wydaniu
4.14 24 lipca 2020 r. Xen Project 4.14 Informacje o wydaniu
4.15 8 kwietnia 2021 Xen Project 4.15 Informacje o wydaniu

Zastosowania

Firmy świadczące usługi hostingu internetowego używają hipernadzorców do udostępniania wirtualnych serwerów prywatnych . Amazon EC2 (od sierpnia 2006), IBM SoftLayer , Liquid Web, Fujitsu Global Cloud Platform , Linode , OrionVM i Rackspace Cloud używają Xen jako głównego hipernadzorcy maszyn wirtualnych w swoich ofertach produktów.

Monitory maszyn wirtualnych (znane również jako hipernadzorcy) również często działają na komputerach mainframe i dużych serwerach z systemami IBM, HP i innymi. Wirtualizacja serwerów może zapewnić takie korzyści, jak:

  • Konsolidacja prowadząca do zwiększonego wykorzystania
  • Szybkie udostępnianie
  • Dynamiczna odporność na awarie oprogramowania (poprzez szybkie uruchamianie lub ponowne uruchamianie)
  • Odporność na uszkodzenia sprzętu (poprzez migrację maszyny wirtualnej na inny sprzęt)
  • Bezpieczne separacje wirtualnych systemów operacyjnych
  • Obsługa starszego oprogramowania oraz nowych instancji systemu operacyjnego na tym samym komputerze

Wsparcie Xen dla migracji na żywo maszyn wirtualnych z jednego hosta do drugiego pozwala na równoważenie obciążenia i uniknięcie przestojów.

Wirtualizacja przynosi również korzyści podczas pracy nad rozwojem (w tym rozwoju systemów operacyjnych): uruchamianie nowego systemu jako gość pozwala uniknąć konieczności ponownego uruchamiania fizycznego komputera w przypadku wystąpienia błędu. Systemy gości w trybie piaskownicy mogą również pomóc w badaniach nad bezpieczeństwem komputerów, umożliwiając badanie skutków działania niektórych wirusów lub robaków bez możliwości narażania systemu hosta.

Wreszcie, dostawcy urządzeń sprzętowych mogą zdecydować się na wysyłanie swoich urządzeń z kilkoma systemami gościa, aby móc wykonywać różne części oprogramowania, które wymagają różnych systemów operacyjnych.

Rodzaje wirtualizacji

Xen oferuje pięć podejść do uruchamiania systemu operacyjnego gościa:

  • HVM (sprzętowa maszyna wirtualna)
  • HVM ze sterownikami PV
  • PVHVM (parawirtualizacja z pełną wirtualizacją sprzętową, czyli HVM ze sterownikami PVHVM)
  • PVH (PV w kontenerze HVM)
  • PV (parawirtualizacja).

Xen zapewnia formę wirtualizacji znaną jako parawirtualizacja, w której goście uruchamiają zmodyfikowany system operacyjny. Goście są modyfikowani tak, aby używali specjalnego hipercall ABI zamiast pewnych funkcji architektonicznych. Dzięki parawirtualizacji Xen może osiągnąć wysoką wydajność nawet na swojej architekturze hosta (x86), która ma reputację braku współpracy z tradycyjnymi technikami wirtualizacji. Xen może uruchamiać parawirtualizowanych gości ("goście PV" w terminologii Xen) nawet na procesorach bez wyraźnej obsługi wirtualizacji. Parawirtualizacja pozwala uniknąć konieczności emulowania pełnego zestawu usług sprzętowych i oprogramowania układowego, co ułatwia zarządzanie systemem fotowoltaicznym i zmniejsza powierzchnię ataku na potencjalnie złośliwych gości. Na 32-bitowej architekturze x86 kod jądra hosta Xen działa w pierścieniu 0 , podczas gdy hostowane domeny działają w pierścieniu 1 (jądro) i pierścieniu 3 (aplikacje).

Procesory obsługujące wirtualizację umożliwiają uruchamianie niezmodyfikowanych gości, w tym zastrzeżonych systemów operacyjnych (takich jak Microsoft Windows). Jest to znane jako wirtualizacja wspomagana sprzętowo , jednak w Xen jest to znane jako sprzętowa maszyna wirtualna (HVM). Rozszerzenia HVM zapewniają dodatkowe tryby wykonywania, z wyraźnym rozróżnieniem między najbardziej uprzywilejowanymi trybami używanymi przez hiperwizor z dostępem do rzeczywistego sprzętu (nazywanymi „trybem root” w x86) a mniej uprzywilejowanymi trybami używanymi przez jądra gościa i aplikacje z „ sprzęt” uzyskuje dostęp pod pełną kontrolą hipernadzorcy (w x86, znany jako „tryb non-root”; zarówno tryb root, jak i tryb non-root mają pierścienie 0–3). Zarówno Intel, jak i AMD wniosły modyfikacje do Xen, aby wykorzystać ich odpowiednie rozszerzenia architektury Intel VT-x i AMD-V. Korzystanie z rozszerzeń wirtualizacji ARM v7A i v8A pojawiło się wraz z Xen 4.3. Rozszerzenia HVM często oferują również nowe instrukcje umożliwiające bezpośrednie wywołania przez parawirtualizowanego gościa/sterownika do hipernadzorcy, zwykle używane do operacji we/wy lub innych operacji wymagających wysokiej wydajności. Dzięki temu goście HVM z odpowiednimi drobnymi modyfikacjami mogą uzyskać wiele korzyści związanych z wydajnością parawirtualizowanych we/wy. W obecnych wersjach Xen (do 4.2) tylko w pełni zwirtualizowani goście HVM mogą korzystać z udogodnień sprzętowych dla wielu niezależnych poziomów ochrony pamięci i stronicowania. W rezultacie w przypadku niektórych obciążeń goście HVM ze sterownikami fotowoltaicznymi (znani również jako PV-on-HVM lub PVH) zapewniają lepszą wydajność niż goście czysto PV. Xen HVM posiada emulację urządzenia opartą na projekcie QEMU , aby zapewnić wirtualizację I/O maszynom wirtualnym. System emuluje sprzęt za pośrednictwem załatanego demona „menedżera urządzeń” QEMU (qemu-dm) działającego jako backend w dom0. Oznacza to, że zwirtualizowane maszyny widzą emulowaną wersję dość podstawowego komputera. W środowisku krytycznym dla wydajności dyski PV-on-HVM i sterowniki sieciowe są używane podczas normalnej pracy gościa, więc emulowany sprzęt PC jest używany głównie do uruchamiania.

Cechy

Administratorzy mogą „migrować na żywo” maszyny wirtualne Xen między hostami fizycznymi w sieci LAN bez utraty dostępności. Podczas tej procedury sieć LAN iteracyjnie kopiuje pamięć maszyny wirtualnej do miejsca docelowego bez zatrzymywania jej wykonywania. Proces wymaga zatrzymania na około 60–300 ms, aby wykonać ostateczną synchronizację, zanim maszyna wirtualna zacznie działać w miejscu docelowym, zapewniając iluzję bezproblemowej migracji. Podobna technologia może służyć do zawieszania uruchomionych maszyn wirtualnych na dysku, „zamrażania” ich stanu działania w celu wznowienia w późniejszym terminie.

Xen można skalować do 4095 fizycznych procesorów, 256 VCPU na gościa HVM, 512 VCPU na gościa PV, 16 TB pamięci RAM na host i do 1 TB pamięci RAM na gościa HVM lub 512 GB pamięci RAM na gościa PV.

Dostępność

Hypervisor Xen został przeniesiony do kilku rodzin procesorów:

  • Intel: IA-32, IA-64 (przed wersją 4.2), x86-64
  • PowerPC: wcześniej obsługiwany w ramach projektu XenPPC, nie jest już aktywny po Xen 3.2
  • ARM: wcześniej obsługiwane w ramach projektu XenARM dla starszych wersji ARM bez rozszerzeń wirtualizacji, takich jak Cortex-A9. Obecnie obsługiwane od Xen 4.3 dla nowszych wersji ARM z rozszerzeniami wirtualizacji, takimi jak Cortex-A15 .
  • MIPS : port eksperymentalny XLP832

Zastępy niebieskie

Xen może być dostarczany na dedykowanej platformie wirtualizacyjnej, takiej jak Citrix Hypervisor (dawniej Citrix XenServer, a wcześniej XenEnterprise firmy XenSource).

Alternatywnie, Xen jest dystrybuowany jako opcjonalna konfiguracja wielu standardowych systemów operacyjnych. Xen jest dostępny i dystrybuowany z:

Goście

Systemy gości mogą działać w pełni zwirtualizowane (co wymaga obsługi sprzętu), parawirtualizowane (co wymaga zmodyfikowanego systemu operacyjnego gościa) lub w pełni zwirtualizowane ze sterownikami parawirtualizowanymi (PVHVM). Większość systemów operacyjnych, które mogą działać na komputerach PC, może działać jako gość Xen HVM. Następujące systemy mogą działać jako parawirtualizowane goście Xen:

Xen w wersji 3.0 wprowadził możliwość uruchamiania Microsoft Windows jako systemu operacyjnego gościa w niezmienionej formie, jeśli procesor hosta obsługuje wirtualizację sprzętu zapewnianą przez Intel VT-x (wcześniej o nazwie kodowej Vanderpool) lub AMD-V (wcześniej o nazwie kodowej Pacifica). Podczas opracowywania Xen 1.x, Microsoft Research wraz z grupą zajmującą się systemami operacyjnymi Uniwersytetu Cambridge opracowali port Windows XP na Xen — możliwy dzięki programowi Microsoft Academic Licensing Program. Warunki tej licencji nie pozwalają na publikację tego portu, chociaż dokumentacja doświadczenia pojawia się w oryginalnym dokumencie Xen SOSP . James Harper i społeczność open-source Xen zaczęli opracowywać sterowniki do parawirtualizacji wolnego oprogramowania dla systemu Windows. Zapewniają one sterowniki frontonu dla bloku Xen i urządzeń sieciowych oraz umożliwiają znacznie wyższą wydajność dysku i sieci w systemach Windows działających w trybie HVM. Bez tych sterowników cały ruch dyskowy i sieciowy musi być przetwarzany przez QEMU-DM. Następnie Citrix wydał na licencji BSD (i nadal utrzymuje) sterowniki PV dla systemu Windows.

Kierownictwo

Zewnętrzni deweloperzy zbudowali szereg narzędzi (znanych jako konsole zarządzania Xen), które ułatwiają wykonywanie typowych zadań związanych z administrowaniem hostem Xen, takich jak konfigurowanie, uruchamianie, monitorowanie i zatrzymywanie gości Xen. Przykłady obejmują:

  • HyperVM oparty na sieci Web
  • OpenNebula Management Toolkit chmura
  • W openSUSE YaST i virt-man oferują graficzne zarządzanie VM
  • OpenStack natywnie obsługuje Xen jako cel Hypervisora/Compute
  • Apache CloudStack obsługuje również Xen jako hiperwizor
  • PlateSpin Orchestrate firmy Novell zarządza również maszynami wirtualnymi Xen przeznaczonymi do dostarczania Xen w systemie SUSE Linux Enterprise Server.

Wersje komercyjne

Hypervisor Xen jest objęty Powszechną Licencją Publiczną GNU, więc wszystkie te wersje zawierają rdzeń wolnego oprogramowania z kodem źródłowym. Jednak wiele z nich zawiera autorskie dodatki.

Przegląd wydań Citrix XenServer i powiązanych wersji Xen Project
Komercyjna wersja dystrybucyjna Data wydania wersji komercyjnej Wersja Xen Projects Data wydania komercyjnego EOL
Citrix XenServer 6.0 2011-09-30 4.1.1 2016-09-26
Citrix XenServer 6.1 2012-09-28 4.1.3 2016-09-30
Citrix XenServer 6.2 2013-06-18 4.1.5 2018-06-26
Citrix XenServer 6.2 SP1 2013-12-16 4.1.5 2018-06-26
Citrix XenServer 6.5 2015-01-13 4.4.1 2018-06-26
Citrix XenServer 6.5 SP1 2015-05-12 4.4.1 2018-06-26
Citrix XenServer 7.0 2016-05-24 4.6.1 2021-05-19
Citrix XenServer 7.1 2017-02-23 4.7.1 2022-08-01
Citrix XenServer 7.4 2018-02-27 4.7.4 2018-09-30
Citrix XenServer 7,5 2018-05-30 4.7.x 2019-04-20
Citrix XenServer 7.6 2018-09-06 4.7.6 2019-07-06

Zobacz też

Bibliografia

Dalsza lektura

Zewnętrzne linki