除了 VirtualBox 和 VMware,還有么有更好更優(yōu)秀的虛擬機軟件?
時間:2024-01-11 18:12:02 | 來源:網(wǎng)站運營
時間:2024-01-11 18:12:02 來源:網(wǎng)站運營
除了 VirtualBox 和 VMware,還有么有更好更優(yōu)秀的虛擬機軟件?:目前我所了解的最常見的虛擬機就是vmware vbox hyper-v qemu/kvm 等,簡單介紹下吧,
1.vmware
這個沒什么可說的,目前用的最多的虛擬化軟件就是vmware了,對于一般人來說,vmware workstation就是最好的選擇。除此之外vmware還有其他版本,例如適用于mac的vmware fusion(現(xiàn)已支持M1芯片),以及用于企業(yè)的vmware esxi等。優(yōu)點就是對于硬件虛擬的支持很好(例如可完美支持3D加速),缺點也很明顯,vmware是商業(yè)化軟件,workstation pro是需要購買許可證的(當(dāng)然也可以使用免費版本workstation player.但是功能上也有很大限制;另外pro版的密鑰其實很好找,基本上找到了就能激活)
2.vbox
全名Oracle VM Virtualbox,是由Sun Microsystem推出的一款虛擬機軟件,后來Sun公司被Oracle收購之后Vbox也被歸至Oracle旗下。這是一款開源軟件,功能上也很齊全。但是其在硬件虛擬上不如vmware(例如legacy bios沒有vmware那么齊全的菜單,當(dāng)然有些設(shè)置并不需要bios菜單,直接在虛擬機設(shè)置中配置就可以了)
3.hyper-v
這是微軟推出的一款虛擬機軟件,是Windows系統(tǒng)自帶的虛擬機軟件。優(yōu)點就是可以打開即用,無需下載,只需要在控制面板>程序與功能>啟用或刪除Windows功能,勾選"hyper-v"單擊確定按提示重啟即可。缺點也很明顯:
1)Hyper-V僅支持Windows 專業(yè)版或更高版本,而家庭版,核心版等則不支持。一些電腦出廠就是家庭版的系統(tǒng),需要升級到專業(yè)版等版本才能啟用hyper-v;其他操作系統(tǒng)不支持用Hyper-V.
2)Hyper-V在某些方面也不如vmware,甚至不如其他虛擬機(例如顯示方面,分辨率調(diào)整就有點困難,需要借助特殊手段才能調(diào)整(例如Linux發(fā)行版需要在grub中配置分辨率),當(dāng)然通過顯卡直通的方式倒是可以解決這個問題,具體方法就不介紹了)
3)Hyper-V容易和其他虛擬化程序出現(xiàn)不兼容的情況,例如vmware和hyper-v就存在不兼容的問題(當(dāng)然最新版的vmware新增了hyper-v模式,可以解決上述問題,但是這樣的話嵌套虛擬化就無法打開,如果想要開啟嵌套虛擬化特性,則需要同時關(guān)閉"Hyper-V"和"虛擬機平臺"功能。)
4.qemu/kvm(不包括user模式)
這是一款跨平臺且開源的虛擬機軟件,前面幾種虛擬機均只支持少數(shù)架構(gòu)的模擬(大多都支持x86,少數(shù)支持arm),而qemu則支持多達30多種處理器架構(gòu)的模擬(當(dāng)然,只有同架構(gòu)模擬才能支持硬件虛擬化),功能上也比較強大,目前很多云服務(wù)器廠商都用qemu-kvm作為虛擬化引擎進行部署。缺點也很明顯,那就是對新手比較不友好,因為qemu/kvm虛擬機需要通過命令行進行配置(當(dāng)然也可以用其他前端,普通用戶可以用aqemu(基于qt編寫的qemu圖形界面前端),批量化部署可以用libvirt作為接口);另外kvm需要一些Linux內(nèi)核特性的支持,因此只有Linux上使用是最好的(當(dāng)然也可以用其他虛擬化引擎,例如xen,hax等).
除此之外,對于一些特定場合,這里也列舉出一些特殊的虛擬化方式:
1.容器
如果想在Linux上再運行一個Linux,那么容器是最好的方式。容器實際上就是將一個指定的本地目錄虛擬成一個新的根文件系統(tǒng),然后再加上一些特性以便于在其中運行一個應(yīng)用或者Linux發(fā)行版。容器并不涉及到硬件虛擬化,因此即使未在bios開啟虛擬化特性也可以用,性能上與真機無異,并且可以與宿主機共用一個Linux內(nèi)核。常用的容器引擎有LXC docker podman(已被Linux官方認可)等.缺點也很明顯,首先是容器會有一些限制,例如fuse特性不支持會導(dǎo)致你無法在容器內(nèi)掛載存儲;而且容器不支持套娃,在容器內(nèi)不能再開容器,即使能開也可能在功能上是個殘廢;另外除了LXC之外,很少有容器支持systemd(docker其實也支持,但是需要額外配置);最后容器只能Linux運行Linux,運行其他系統(tǒng)(Win Mac)是不好使的(那些所謂的Win Mac容器,實際上就是在容器中跑了個虛擬機,通常都需要硬件虛擬化)
2.wsl
WSL,全名Windows Subsystem for Linux,從這個名稱就可以看出這是微軟在Windows內(nèi)置的一個Linux子系統(tǒng),同樣是可以通過控制面板>程序或功能>啟用或關(guān)閉功能進行啟用。需要說明的是,WSL是分WSL1和WSL2的。前者的性質(zhì)更像是容器,很多功能是受限制的;后者是基于hyper-v虛擬化運行,功能上也有限制,只不過比WSL1略微好一些(還有一個WSLg,本質(zhì)上就是在WSL2的基礎(chǔ)上增加了圖形化功能).如果有硬件虛擬化支持的話,建議切換到WSL2,能獲得更好的支持,方法見
https://learn.microsoft.com/zh-cn/windows/wsl/install#upgrade-version-from-wsl-1-to-wsl-2另外根據(jù)我最新得到的消息,新版本的WSL已經(jīng)提供了對systemd的支持,也就是說可以用systemctl等命令管理服務(wù)等一系列配置。當(dāng)然,systemd支持則需要手動啟用,由于時間及篇幅的關(guān)系,就不展開講了。