Microsoft udostępnił kod hipernadzoru OpenVMM oraz platformy parawirtualizacji OpenHCL

Firma Microsoft ogłosiła otwarcie kodu źródłowego warstwy w celu zapewnienia parawirtualizacji OpenHCL oraz monitora maszyn wirtualnych OpenVMM, rozwijanego specjalnie do organizacji pracy OpenHCL. Kodek OpenVMM i OpenHCL napisany jest w języku Rust i jest dystrybuowany na licencji MIT. OpenVMM jest hipernadzorcą drugiego poziomu, działającym w tym samym pierścieniu ochrony co jądro systemu operacyjnego, na wzór takich produktów jak VirtualBox i VMware Workstation. Obsługiwane są systemy gospodarze na bazie Linux (x86_64), Windows (x86_64, Aarch64) oraz macOS (x86_64, Aarch64), korzystające z interfejsów API wirtualizacji KVM, SHV (Microsoft Hypervisor), WHP (Windows Hypervisor Platform) oraz Hypervisor.framework.

Wśród możliwości wspieranych w OpenVMM:

  • Uruchamianie w trybach UEFI i BIOS, bezpośrednie uruchamianie jądra Linux;
  • Wsparcie parawirtualizacji bazującej na sterownikach Virtio (virtio-fs, virtio-9p, virtio-net, virtio-pmem)
  • Wsparcie parawirtualizacji bazującej na VMBus (storvsp, netvsp, vpci, framebuffer);
  • Emulacja vTPM, NVMe, UART, chipu i440BX + PIIX4, IDE HDD, PCI i VGA;
  • Backendy do przekazywania grafiki, urządzeń wejściowych, konsoli, pamięci masowej i dostępu do sieci;
  • Zarządzanie przez interfejs linii poleceń, interaktywną konsolę, gRPC i ttrpc.

OpenHCL jest pozycjonowane jako środowisko z komponentami parawirtualizacji (parawirtualizator), działające na hipernadzorcy OpenVMM. Kluczową cechą systemów wirtualizacji opartych na OpenVMM i OpenHCL jest to, że komponenty parawirtualizacji działają nie po stronie systemu gospodarza, ale w jednej maszynie wirtualnej z systemem gościnnym. Izolacja warstwy parawirtualizacji od gościnnego systemu operacyjnego jest zapewniana przez hipernadzorcę drugiego poziomu OpenVMM. OpenHCL w takim zastosowaniu może być postrzegane jako wirtualny firmware, działający na wyższym poziomie uprawnień niż działający w środowisku gościnym system operacyjny.

Podział systemu gościnnego i komponentów OpenHCL realizowany jest z wykorzystaniem koncepcji wirtualnych poziomów zaufania (VTL, Virtual Trust Level), do realizacji których mogą być stosowane zarówno mechanizmy programowe, jak i technologie sprzętowe, takie jak Intel TDX (Trust Domain Extensions), AMD SEV-SNP (Secure Encrypted Virtualization-Secure Nested Paging) oraz ARM CCA (Confidential Compute Architecture). Do uruchamiania komponentów OpenHCL używana jest okrojona wersja jądra Linux, zawierająca tylko minimalnie potrzebne komponenty do działania OpenVMM.

Microsoft udostępnił kod hipernadzoru OpenVMM oraz platformy parawirtualizacji OpenHCL

OpenHCL może działać na platformach x86-64 i ARM64 oraz obsługuje rozszerzenia Intel TDX, AMD SEV-SNP i ARM CCA dla dodatkowej izolacji. W skład OpenHCL wchodzi zestaw usług, sterowników i emulatorów stosowanych do organizacji dostępu do sprzętu, zapewniania działania wirtualnych urządzeń po stronie systemu gościa oraz emulacji urządzeń sprzętowych (np. może być emulowany chip do przechowywania kluczy kryptograficznych — vTPM).

Do translacji dostępu do sprzętu po stronie systemu gościa stosowane są istniejące sterowniki z obsługą parawirtualizacji lub może być wykonywana bezpośrednia wiązanie urządzeń z wirtualną maszyną, co pozwala na przenoszenie istniejących systemów gości do środowiska opartego na OpenHCL bez wprowadzania w nich zmian. Ponadto OpenHCL zawiera komponenty do diagnostyki i debugowania maszyn wirtualnych, realizowanych z użyciem rozszerzeń do zapewnienia poufnych obliczeń.

W przeciwieństwie do już istniejącego otwartego projektu COCONUT-SVSM (Secure VM Service Module), który dostarcza usługi i emulowane urządzenia dla systemów gości działających w trybie poufnym maszynach wirtualnych (CVM, Confidential Virtual Machine), OpenHCL pozwala na użycie w systemach gości standardowych interfejsów, podczas gdy COCONUT-SVSM wymaga organizacji specjalnej interakcji z SVSM, wprowadzania zmian w systemie gościa oraz używania odrębnych sterowników.

W zastosowaniach parawirtualizatora OpenHCL wymienia się takie scenariusze, jak przenoszenie istniejących systemów na użycie sprzętowych akceleratorów Azure Boost bez konieczności wprowadzania zmian w obrazie dysku systemu gościa; uruchamianie istniejących systemów gości w wirtualnych maszynach, które zapewniają poufne obliczenia (np. na bazie Intel TDX i AMD SEV-SNP); organizacja zweryfikowanego uruchamiania wirtualnych maszyn, wykorzystując tryb UEFI Secure Boot i vTPM.

Warto zauważyć, że projekt OpenVMM koncentruje się na wykorzystaniu OpenHCL i na razie nie jest gotowy do samodzielnego użycia w systemach hostujących do wdrożeń przez użytkowników końcowych. Wśród problemów OpenVMM, które utrudniają jego stosowanie w tradycyjnych środowiskach hostingowych, niezwiązanych z OpenHCL, wymienia się: słabą dokumentację interfejsu zarządzania; brak odpowiedniej optymalizacji wydajności backendów dla magazynów, sieci i grafiki; brak wsparcia dla niektórych sterowników (np. dysków IDE i myszy PS/2); brak gwarancji stabilności API i funkcjonalności. Tymczasem integracja OpenVMM i OpenHCL już osiągnęła poziom wdrożenia przemysłowego i jest używana przez Microsoft w platformie Azure (SKU Azure Boost) do obsługi ponad 1,5 miliona maszyn wirtualnych.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster