Hyper-V最值得注意的改進之一是對Linux虛擬機的支持。之前Hyper-V能夠運行Linux虛擬機,但Windows虛擬機最受寵愛。因此,Linux虛擬機無法利用Hyper-V針對Windows虛擬機提供的眾多特性。幸運的是,情況已經發生變化,Hyper-V現在能夠為Linux提供更多的支持。
Hyper-V管理員幾乎能夠在Hyper-V中運行當前所有的Linux發行版。然而,微軟仍舊列出了所支持的Linux發行版及版本,包括:
紅帽Linux企業版 / CentOS 5.x, 6.x, 7.x
Debian 7.x 及更高版本
Oracle Linux 6.4-6.8, 7.0-7.2
Oracle Linux RHCK 6.4 – 6.8, 7.0 – 7.2
SUSE SLES 11 SP2, 11 SP3, 11 SP4, 12, 12 SP1
Open SUSE 12.3
Ubuntu 12.4, 14.04, 16.04, 16.10
Free BSD 8.4, 9.1 – 9.3, 10 – 10.3 11
了解盡管官方支持在Hyper-V上使用這些構建,但仍舊存在一些限制是很重要的。例如,紅帽Linux企業版 / CentOS 7.0不支持將主機上的文件拷貝到客戶機。
針對所有受支持的構建,微軟列出了Hyper-V支持的特性以及不支持的特性。大多數新版構建幾乎支持Hyper-V的所有特性,但某些較低版本的構建存在一些缺陷。
Hyper-V更具吸引力盡管微軟提供的所支持的Linux版列表非常有幫助,但你可能會對Hyper-V如何更好地支持Linux感到好奇。在Windows Server 2016 Hyper-V中,微軟已經增加了對Linux安全引導的支持。正如之前提到的那樣,在Hyper-V中運行Linux虛擬機仍舊存在特定的版本限制。安全引導支持Ubuntu 14.04及后續版本,SUSE Linux 服務器企業版12及后續版本,紅帽Linux企業版7.0及后續版本以及CentOS 7.0及后續版本。同樣有必要指出,Linux安全引導功能僅支持第二代虛擬機,而且需要配置管理使用微軟統一可擴展固件接口認證中心。微軟做的令Hyper-V對Linux管理員更具吸引力的另一件事是能夠動態添加、刪除虛擬機中的虛擬網卡、內存。該功能在Windows Server 2016中引入,支持Linux及Windows虛擬機。Hyper-V管理員能夠在第一代、第二代虛擬機運行時修改內存分配。類似地,管理員能夠增加或刪除正在運行的虛擬機的虛擬網卡。然而,該特性僅支持第二代虛擬機。
仍有改進空間盡管微軟已經做了一些努力使Windows Server 2012 R2下的Hyper-V能夠更友好地支持Linux虛擬機,但仍有兩個新引入的特性僅支持Windows虛擬機,并不支持Linux虛擬機。
第一個特性是生產檢查點。Hyper-V支持使用檢查點—有時被稱為快照—該特性在Windows Server 2008中引入。檢查點允許管理員將虛擬機近乎實時地恢復到前一個狀態,并不需要恢復備份。不用說,檢查點是一個非常流行的Hyper-V特性。直到最近,檢查點還不支持在生產環境中應用。
只有一個條件:應用檢查點可能會對正在虛擬機上運行的應用造成嚴重破壞。尤其是對數據庫應用或者多層應用來說更是如此。
Hyper-V 2016是支持生產檢查點的第一個版本。微軟已經更新了檢查點機制,這樣就能夠使用卷鏡像拷貝服務在創建檢查點以前將虛擬機及其應用置于一致狀態。這樣就可以安全地使用檢查點了。
從Linux角度看,問題在于卷鏡像拷貝服務是在Windows平臺下提供的技術。因此,Hyper-V創建了針對Linux虛擬機的文件系統一致性檢查點,但這些檢查點無法保證應用的一致性。
Hyper-V 2016的另一個還無法應用到Linux虛擬機的新特性是保持集成服務最新。微軟通過Windows更新程序更新集成服務。然而,Linux虛擬機使用的是Linux集成服務,這與Windows虛擬機所使用的集成服務有所不同。
據微軟所說,Linux內核包括了針對Hyper-V的Linux集成服務,但無法保證這些服務是最新的。因此,微軟提供了最新版本的Linux集成服務可供下載,但這些更新無法通過Windows更新程序交付。
微軟已經做了很多工作使Hyper-V對Linux更友好。微軟在Windows Server 2012 R2中做了大量的工作改善Hyper-V對Linux虛擬機的支持,從Windows Server 2016開始,針對Linux虛擬機提供了更多的支持。