是否可能同時運行Hyper-V和第三方虛擬機?
以Windows10 1903為例,有很多功能需要基於Hyper-V。但由於一些其他需求,需要使用VMware和virtualbox。那是否有可能使幾種hypervisor同時存在呢?
一年多以前,我發現 Windows 預覽版相關 API 變化的時候提過這個問題:
Windows Hypervisor Platform API 是否意味著什麼??www.zhihu.com
然而關注的人太少,到現在也沒有太理想和細緻的解答。
按照我自己連蒙帶猜的理解,這個 API 至少可以讓第三方的虛擬化軟體保留自己的界面和用戶態工具,通過 API 使用 Hyper-V 作為虛擬化底層。如此「共存」。
2020-06-11 更新:
- QEMU:v2.12 版本開始試驗性支持(稱為whpx) https://wiki.qemu.org/ChangeLog/2.12#Host_support
- VirtualBox:v6.1.4 以後恢復支持(看意思是曾經取消過)https://www.virtualbox.org/wiki/Changelog-6.1#v4
- VMware Workstation:v15.5 開始支持 https://blogs.vmware.com/workstation/2020/05/vmware-workstation-now-supports-hyper-v-mode.html
可以,前提是第三方虛擬機需要支援搜尋結果Windows Hypervisor Platform API。
Windows Hypervisor Platform API類似linux的KVM,都是type1的虛擬機。 type1的虛擬機,特色是Hypervisor在主系統之上,主系統和其他系統處於平行的位置。所以整個系統只能有一個Hypervisor。導致啟用了KVM的linux,一樣不能用Virtualbox。
type2的虛擬機,主系統在最上層,每個程式有權限的話都可以申請成為Hypervisor,所以可以Virtualbox VMware各自運行。
type1的虛擬機,Virtualbox或是VMware,或是QEMU就只是前端GUI而已了,後端還是調用系統Hypervisor提供的API,來創建管理虛擬機。
微軟的Hyper-V一開始只有自己能用。2018以後,微軟開放了API,讓大家都能調用,就可以保有自己的前端介面,但是使用Hyper-V做為後端了。自從Virtualbox 6以後,也已經已經支援這個API了,VMware也支援了。所以可以一起使用。
但是Virtualbox 6這個功能預設關閉,要手動打開才行。管理員執行以下指令:
cmd
cd "C:Program FilesOracleVirtualBox"
VBoxManage setextradata global "VBoxInternal/NEM/UseRing0Runloop" 0
以後,Virtualbox就可以和Hyper-V同時使用了(其實是使用Hyper-V做為後端)。
有圖為證:
TAG:微軟Microsoft | 操作系統 | 虛擬機 | HyperV | Windows10 |