Intel 開源 NEMU:一款為雲時代而生的虛擬機管理程序
NEMU是一款開源虛擬機管理程序,是專門為了在現代64位英特爾和ARM CPU上運行現代雲工作負載而構建和設計的。
初衷:託管運行雲工作負載的現代訪客操作系統在不需要任何遺留硬體的虛擬硬體平台上運行。此外,數據中心中所使用的現代CPU有先進的虛擬化功能,無需大多數CPU模擬。
目前市面上沒有明確專註於在現代CPU上運行雲工作負載的開源虛擬機管理程序解決方案。所有可用的解決方案都在與時俱進,力求相當通用。它們嘗試支持一系列廣泛的虛擬硬體架構,在硬體虛擬化支持程度不一的硬體上運行。這導致要求提供一大批需要CPU、設備和平台模擬的遺留平台和設備款式。因此,它們建立在龐大複雜的代碼庫之上。
另一方面,NEMU旨在充分利用KVM,專註於在一組有限的硬體架構和平台上專門運行現代雲原生工作負載。它假設相當新的CPU和KVM讓用戶不需要大多數模擬邏輯。
與現有解決方案相比,這讓人們得以簡化代碼庫、降低複雜性和縮小攻擊面。它還為提供針對雲的優化以及為雲提供性能更高的虛擬機管理程序留下了更多的空間。減小代碼的數量和複雜性讓人們更容易審核代碼、進行模糊測試、模塊化和未來的創新。
QEMU基礎
QEMU是目前事實上的標準開源雲虛擬機管理程序。它有一套豐富的功能,這些功能不斷開發出來並加以測試。這包括實時遷移、PCI、內存、NVDIMM及CPU熱插拔、VFIO、中介式設備透傳(mediated device passthrough)和vhost-user等功能。QEMU還是眾多企業投入了大量精力和創新技術以創建多種高性能I/O模型所依賴的代碼基礎。
它還隨帶廣泛支持遺留功能、平台和設備的功能,並能夠在大量硬體平台上運行。它還允許跨平台模擬。基本目標之一是,儘可能通用,另外在大量硬體上運行,並託管運行各種工作負載。由於硬體缺乏關鍵的虛擬化功能,QEMU需要模擬支持融入到代碼中。
QEMU允許構建代碼時配置一些豐富的功能特性。QEMU還在代碼中含有支持所有這些遺留功能的抽象機制。
NEMU
NEMU基於QEMU,充分利用其豐富的功能特性,不過側重的面要窄得多。它利用了高性能、強大又穩定的QEMU代碼庫,無需支持與雲無關的眾多功能、平台和硬體。
NEMU的目的是保留QEMU代碼庫中下述功能特性所需要的最基本代碼。QEMU代碼庫也將得到簡化,以減少通用抽象的數量。
要求
NEMU提供了一個PCI virtio平台,支持基於vfio的設備直接分配,並支持中介式設備分配。它還旨在繼續支持實時遷移和vhost-user,並為PCI、內存、NVDIMM和CPU提供構建時可配置設備熱插拔支持。NEMU需要模擬一小部分功能,包括PCI主機橋。
NEMU還推出了一種新的QEMU x86-64機器類型:virt。它是一個純虛擬平台,不會試圖模擬任何現有的x86晶元組或遺留匯流排(ISA和SMBUS等),將儘可能多的功能卸載到KVM上。這種方法與已有的AArch64 virt機器類型相似,NEMU僅支持兩種virt機器類型。
以下是NEMU將保留和添加的QEMU功能列表。
大致功能
基於KVM
模擬極少
延遲低
內存佔用少
複雜性低
攻擊面小
只支持64位
構建時可配置的CPU、內存、PCI和NVDIMM熱插拔(可選)
機器到機器的遷移
網址:https://github.com/intel/nemu


※國防科技大學重大進展:用光子製造量子計算機
※2018年HEVC 視頻編解碼大賽冠軍:華為雲
TAG:雲頭條 |