
我試著去了解哪些類型的虛擬化,為了協助完成這項任務,我找到了黃迪江和吳惠軍寫的一本書《行動雲端運算》。
下面發布的段落也可以在 Google 圖書上找到:https://books.google.com/books?id=dupGDgAAQBAJ。
從第 42 頁,第 2.2.3 節,表 2.2:
哈爾(完整)
- 描述:虛擬機器管理程式提供完整的虛擬機器(與主機具有相同的運算架構),使未修改的來賓能夠獨立運作。
- 優點:靈活地運行來自多個供應商的不同作業系統的不同版本。
- 缺點:來賓作業系統不知道它正在被虛擬化;可能會對商用硬體造成相當大的效能影響,特別是對於 I/O 密集型應用程式。
哈爾(並行)
- 描述:虛擬機器管理程式為每個來賓提供完整但專用的虛擬機器(與主機具有相同的運算架構),允許修改後的來賓獨立運行。
- 優點:輕量且快速,接近原生速度;經證明可在 0.5-3.0% 的開銷範圍內運作;允許作業系統與虛擬機器管理程式合作 - 改進 IO 和資源調度;允許虛擬化不支援完全虛擬化的架構。
- 缺點:需要移植來賓作業系統以使用超級呼叫而不是敏感指令。並行虛擬化的主要限制是客戶作業系統必須專門自訂以在VM監視器(VMM)之上運行,VM監視器是支援多個相同執行環境的主機程式。這尤其影響尚未實現並行虛擬化擴展的傳統閉源作業系統。
這裡,「並行虛擬化」看起來是「半虛擬化」的同義詞。 (在閱讀這本書之前,我從未聽說過「並行虛擬化」這個術語。另一方面,「半虛擬化」這個術語在網路上是眾所周知的。)
然而,在第39頁的2.2.2節中,該書似乎與前面的段落相矛盾:
在第2.2.3節介紹的第三種虛擬化分類中,我們將介紹兩種最受歡迎的基於HAL的虛擬化解決方案,即平行虛擬化(或裸機,或Type-1虛擬化)和基於主機的虛擬化(或Type-1虛擬化) -2 虛擬化),詳細資訊。
也就是說,總結一下:
- 第 2.2.3 節:並行虛擬化與半虛擬化相同。
- 第 2.2.2 節:並行虛擬化與裸機(又稱 Type-1)虛擬化相同。
- 然而,據我所知,半虛擬化和裸機(又稱 Type-1)虛擬化是兩個不同的東西。不是同一件事。
問題:
- 第二段與第一段是否矛盾?
- 半虛擬化和裸機(又稱 Type-1)虛擬化是兩個不同的東西嗎?
- 您是否同意第 42 頁的段落正確,第 39 頁的段落正確?不是正確的?你如何解釋第39頁的這段話?
答案1
半虛擬化和裸機(又稱 Type-1)虛擬化是兩個不同的東西嗎?
來賓最佳化抽象層與虛擬機器管理程式位於通用作業系統之上是不同的維度。
QEMU 是一個模擬器。增加 KVM,硬體加速可將開銷降至最低,有效地使其成為類型 1。然而,QEMU 和 KVM 都運行在通用作業系統上;您可以在虛擬主機上執行任意應用程式。
超V透過執行 Windows 的特權根分割區來執行直接硬體存取。聽起來像是類型 2。
繪製抽象層的圖表可能會有所幫助。實作並不像類型 1 與類型 2 所暗示的那樣整齊地分為二元類別。此類類別不一定衡量實際考慮因素,例如與裸機相比的開銷,或希望簡單的虛擬機器管理程序的安全性和可服務性。
術語“半虛擬化”的早期使用出現在華盛頓大學麥金利峰論文。至少,一個Xen紙引用 Denali 創造了這個術語。我找不到任何證據證明其起源於「平行」。可能是為了調用前綴 para- 的“旁邊”和“協助”含義。