NetBSD 專案正在開發新的 NVMM 管理程序

NetBSD 專案開發人員 宣布 關於建立新的虛擬機器管理程式和相關的虛擬化堆疊,它們已經包含在實驗性的NetBSD 目前分支中,並將在NetBSD 9 的穩定版本中提供。後端啟用硬體虛擬化機制:支援 AMD 的 x86-SVM 和適用於 Intel CPU 的 x64-VMX CPU 虛擬化擴充。在目前的形式下,一台主機上最多可運行 86 個虛擬機,每個虛擬機最多可分配 86 個虛擬處理器核心 (VCPU) 和 128 GB RAM。

NVMM 包括一個在系統核心層級運行並協調對硬體虛擬化機制的存取的驅動程序,以及在用戶空間中運行的 Libnvmm 堆疊。內核元件和使用者空間之間的交互作用是透過IOCTL進行的。 NVMM 有別於 KVM 等虛擬機器管理程式的一個特性是 HAXM 和 Bhyve 的區別在於,在核心級別,僅執行圍繞硬體虛擬化機制所需的最小綁定集,並且所有硬體模擬程式碼都從核心移出到用戶空間。這種方法可讓您減少使用提升的權限執行的程式碼量,並降低在虛擬機器管理程式中的漏洞受到攻擊時損害整個系統的風險。此外,專案的調試和模糊測試也顯著簡化。

然而,Libnvmm 本身不包含模擬器功能,僅提供一個 API,可讓您將 NVMM 支援整合到現有模擬器中,例如 QEMU。此API涵蓋了建立和啟動虛擬機器、為客戶系統分配記憶體以及分配VCPU等功能。為了提高安全性並減少可能的攻擊媒介,libnvmm 僅提供明確請求的函數 - 預設情況下,不會自動呼叫複雜的處理程序,如果可以避免,則可能根本不會使用它們。 NVMM 試圖讓事情變得簡單,不會變得太複雜,並允許您控制工作的盡可能多的方面。

NetBSD 專案正在開發新的 NVMM 管理程序

NVMM 的核心級部分與 NetBSD 核心緊密整合,並透過減少來賓作業系統和主機環境之間的上下文切換次數來提高效能。在使用者空間方面,libnvmm 會嘗試聚合常見的 I/O 操作並避免進行不必要的系統呼叫。記憶體分配系統基於 pmap 子系統,它允許您在系統記憶體不足的情況下將訪客記憶體頁面移出到交換分區。 NVMM 沒有全域鎖,且可擴充性良好,可讓您同時使用不同的 CPU 核心來執行不同的來賓虛擬機器。

基於QEMU的解決方案已經準備好,使用NVMM來啟用硬體虛擬化機制。將準備好的修補程式納入 QEMU 主要結構中的工作正在進行中。 QEMU+NVMM組合已經 它允許 在配備AMD 和Intel 處理器的x7_8.1 系統上成功運行FreeBSD、OpenBSD、Linux、Windows XP/10/86/64 和其他作業系統的來賓系統(NVMM 本身不依賴特定架構,例如,如果創建了適當的後端,它將能夠在 ARM64 系統上工作)。在 NVMM 進一步應用的領域中,單一應用程式的沙箱隔離也受到關注。

NetBSD 專案正在開發新的 NVMM 管理程序

來源: opennet.ru

添加評論