Microsoft membuat hypervisor OpenVMM dan platform paravirtualisasi OpenHCL menjadi sumber terbuka

Microsoft telah mengumumkan open source lapisan untuk paravirtualisasi OpenHCL dan monitor mesin virtual OpenVMM, yang dikembangkan khusus untuk mengatur pekerjaan OpenHCL. Kode OpenVMM dan OpenHCL ditulis dalam Rust dan didistribusikan di bawah lisensi MIT. OpenVMM mengacu pada hypervisor tingkat kedua yang bekerja di ring keamanan yang sama dengan kernel sistem operasi, mirip dengan produk seperti VirtualBox dan VMware Workstation. Mendukung operasi di atas sistem host berbasis Linux (x86_64), Windows (x86_64, Aarch64) dan macOS (x86_64, Aarch64), menggunakan KVM, SHV (Microsoft Hypervisor), WHP (Windows Hypervisor Platform) dan API virtualisasi Hypervisor yang disediakan oleh kerangka OS.

Di antara fitur-fitur yang didukung di OpenVMM:

  • Boot dalam mode UEFI dan BIOS, boot langsung dari kernel Linux;
  • Dukungan paravirtualisasi berdasarkan driver Virtio (virtio-fs, virtio-9p, virtio-net, virtio-pmem)
  • Dukungan paravirtualisasi berbasis VMBus (storvsp, netvsp, vpci, framebuffer);
  • Emulasi chipset vTPM, NVMe, UART, i440BX + PIIX4, IDE HDD, PCI dan VGA;
  • Backend untuk meneruskan grafik, perangkat input, konsol, penyimpanan dan akses jaringan;
  • Manajemen melalui antarmuka baris perintah, konsol interaktif, gRPC, dan ttrpc.

OpenHCL diposisikan sebagai lingkungan dengan komponen paravirtualisasi (paravisor) yang berjalan di atas hypervisor OpenVMM. Fitur utama dari sistem virtualisasi berdasarkan OpenVMM dan OpenHCL adalah bahwa komponen paravirtualisasi tidak berjalan di sisi sistem host, tetapi di mesin virtual yang sama dengan sistem tamu. Isolasi lapisan paravirtualisasi dari sistem operasi tamu dijamin oleh hypervisor OpenVMM tingkat kedua. Ketika digunakan dengan cara ini, OpenHCL dapat dianggap sebagai firmware virtual yang berjalan pada tingkat hak istimewa yang lebih tinggi daripada sistem operasi yang berjalan di lingkungan tamu.

Pemisahan komponen sistem tamu dan OpenHCL dilakukan dengan menggunakan konsep tingkat kepercayaan virtual (VTL, Virtual Trust Level), yang implementasinya dapat menggunakan mekanisme perangkat lunak dan teknologi perangkat keras, seperti Intel TDX (Trust Domain Extensions ), AMD SEV-SNP (Virtualisasi Terenkripsi Aman-Paging Bersarang Aman) dan ARM CCA (Arsitektur Komputasi Rahasia). Untuk menjalankan komponen OpenHCL, digunakan versi kernel Linux yang disederhanakan, yang hanya mencakup komponen minimum yang diperlukan untuk menjalankan OpenVMM.

Microsoft membuat hypervisor OpenVMM dan platform paravirtualisasi OpenHCL menjadi sumber terbuka

OpenHCL dapat berjalan pada platform x86-64 dan ARM64, dan mendukung ekstensi Intel TDX, AMD SEV-SNP dan ARM CCA untuk isolasi tambahan. OpenHCL mencakup serangkaian layanan, driver, dan emulator yang digunakan untuk mengatur akses ke peralatan, memastikan pengoperasian perangkat virtual di sisi sistem tamu, dan meniru perangkat keras (misalnya, chip untuk menyimpan kunci kriptografi - vTPM) dapat ditiru.

Untuk menerjemahkan akses ke perangkat keras di sisi sistem tamu, driver yang mendukung paravirtualisasi yang sudah ada digunakan, atau perangkat dapat langsung dihubungkan ke mesin virtual, memungkinkan sistem tamu yang sudah ada untuk dimigrasikan ke lingkungan berbasis OpenHCL tanpa modifikasi. OpenHCL juga mencakup komponen diagnostik dan debugging. mesin virtual, dilakukan dengan menggunakan ekstensi untuk memastikan komputasi yang bersifat rahasia.

Berbeda dengan proyek sumber terbuka yang ada, COCONUT-SVSM (Secure VM Service Module), yang menyediakan layanan dan perangkat yang diemulasi untuk sistem tamu yang berjalan di lingkungan rahasia. mesin virtual (CVM, Confidential Virtual Machine), OpenHCL memungkinkan penggunaan antarmuka standar pada sistem tamu, sedangkan COCONUT-SVSM memerlukan pengaturan interaksi khusus dengan SVSM, melakukan perubahan pada sistem tamu dan penggunaan driver terpisah.

Di antara penerapan paravisor OpenHCL, disebutkan skenario seperti transisi sistem yang ada untuk menggunakan akselerator perangkat keras Azure Boost tanpa perlu membuat perubahan pada image disk sistem tamu; Jalankan tamu yang ada di mesin virtual yang menyediakan komputasi rahasia (misalnya, berdasarkan Intel TDX dan AMD SEV-SNP); organisasi boot terverifikasi mesin virtual menggunakan UEFI Secure Boot dan mode vTPM.

Perlu dicatat secara terpisah bahwa proyek OpenVMM difokuskan pada penggunaan dengan OpenHCL dan belum siap untuk digunakan secara mandiri pada sistem host untuk implementasi produksi oleh pengguna akhir. Di antara masalah OpenVMM yang mencegah penggunaannya di lingkungan host dalam konteks tradisional, di luar OpenHCL, disebutkan hal berikut: dokumentasi antarmuka kontrol yang buruk; kurangnya optimalisasi kinerja backend yang tepat untuk penyimpanan, jaringan, dan grafis; kurangnya dukungan untuk beberapa driver (misalnya, drive IDE dan mouse PS/2); tidak ada jaminan stabilitas dan fungsionalitas API. Pada saat yang sama, kombinasi OpenVMM dan OpenHCL telah mencapai tingkat implementasi industri dan digunakan oleh Microsoft dalam platform Azure (Azure Boost SKU) untuk mendukung pengoperasian lebih dari 1.5 juta mesin virtual.

Sumber: opennet.ru

Tambah komentar