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虚拟机提供了更多的支持。