一些Windows 8版本包含了一个类似Windows Server 2012和Windows Server 2012 R2中windowsHyper-V角色的windowsHyper-V版本。我的建议是最好避免在桌面上使用windowsHyper-V,除非你有足够让人信服的理由。
每家组织都有不同的windowsHyper-V需求,在一些情况下,在桌面上使用windowsHyper-V是合理的。例如,一些组织可能会要求用户从windowsHyper-V虚拟机(VM)中浏览网页,因为网络上满是病毒网站。
如果不小心访问到恶意网站,可能会导致安装恶意软件,损坏操作系统,窃取数据或带来各种其他的伤害。在VM上运行Internet Explorer浏览器可以安全地将其远离主操作系统。这可以防止敏感数据通过浏览器泄露。
还有其他组织也允许开发人员通过桌面使用VM。这样可以获得隔离的开发或测试环境,远离主桌面操作系统。
也有组织使用windowsHyper-V运行备用操作系统。例如组织的任务关键型应用程序只运行在Windows XP上。这时用户只需要在VM中的Windows XP上运行该应用,而不需要再所有台式机上都运行Windows XP。
最新版的windowsHyper-V增强了对Linux虚拟机的支持,windowsHyper-V增加了很多高级功能,例如动态内存和虚拟机实时备份。
在过去一段时间里,微软在windowsHyper-V角色提供的功能上取得了很大的改变,比如,动态内存、虚拟机实时备份、云备份、在线调整VHDX大小以及第2代虚拟机,但是,这些一般在windowsHyper-V生产环境中会运行一些不同的操作系统,包括Linux发行版。在最初的windowsHyper-V版本中,通过添加安装一个Linux集成服务(LIS)的组件,windowsHyper-V可以支持运行Linux的虚拟机一些基本的功能。最近,微软正和供应商合作添加新功能,并在新的Linux版本中移除需要安装的Linux集成服务。
这是Linux虚拟机期待已久的功能。从Windows Server 2012 R2开始,现在运行在Windows Server 2012 R2 windowsHyper-V上的Linux虚拟机已经完全支持内存的热添加和删除。虽然你可以让在Windows Server 2012 windowsHyper-V主机上运行的Linux虚拟机使用动态内存,但是,官方的说法是不支持的。每当windowsHyper-V需要为Linux虚拟机分配内存时,windowsHyper-V会用到动态内存功能中的热添加功能,实际上是通过windowsHyper-V主机来执行的。如果windowsHyper-V想从Linux虚拟机中收回一些内存,windowsHyper-V会使用LIS的膨胀驱动程序。更为值得注意的是windowsHyper-V动态内存功能只支持64位的Linux发行版。某些Linux的发行版可能需要你手动启用此功能的支持。例如,CentOS 和Red Hat Linux发行版需要你在/etc/udev/rules.d路径下创建一个"udev"规则来启用动态内存热添加功能。
在早期的windowsHyper-V版本中,你必须暂停Liunx虚拟机才能创建备份。如果你的Linux虚拟机运行在Windows Server 2012 R2 的windowsHyper-V主机上,这些windowsHyper-V虚拟机现在就可以在不停机的情况下,使用兼容的windowsHyper-V备份工具备份,比如Windows Server Backup。更为重要的是要知道,Windows虚拟机是利用Volume Shadow Copy Service,或VSS,来实现实时备份的,windowsHyper-V支持两种备份类型:文件系统备份和应用程序一致备份。对于Linux虚拟机,微软推出了文件系统快照,只能执行基于文件系统的备份。另外有报道称,如果Linux虚拟机有附加的iSCSI设备或直通设备,windowsHyper-V实时备份可能会失败。
之前Linux发行版windowsHyper-V是不支持2代虚拟机安装的。从Windows Server 2012 R2开始,新的Linux发行版,比如CentOS 和 Red Hat Enterprise 7.0,以及SUSE SLES 12 和Ubuntu 14.10,是可以支持2代虚拟机安装的。此外值得注意的是,2代虚拟机默认已开启安全启动。由于Linux虚拟机不支持安全启动,你可能需要从Linux虚拟机的属性页禁用它或者通过windowsHyper-V主机上PowerShell命令禁用它。
在线备份是对运行在Windows Server 2012 R2 windowsHyper-V主机上的Linux虚拟机支持的另一个增强功能。你现在可以使用Windows Azure Online Backup程序和System Center Data Protection Manager来在线备份Linux虚拟机到Microsoft Azure上。
你现在可以在不停机的情况下,调整附加到Linux虚拟机windowsHyper-V上的固定VHDX的大小。这个功能是许多拥有Linux虚拟机windowsHyper-V的组织一直在等待的功能,因为在线调整VHDX大小的功能消除了需要经过复杂变更的过程,并在windowsHyper-V不停机的情况下,提高关键Linux虚拟机windowsHyper-V的存储工作负载。值得一提的是,并不是所有Linux发行版都支持在线调整VHDX大小的功能。
Windows Server 2012 R2 的windowsHyper-V引进了一个Guest Services的集成服务组件。一旦启用Guest Services,windowsHyper-V将允许你将文件复制到Linux虚拟机。Linux集成服务提供一个hv_fcopy的守护进程。目前windowsHyper-V此功能只支持CentOS 和 Red Hat 6.6 and 7.0, SUSE SLES 12以及Ubuntu 14.10 和 14.04。
尽管微软的主要焦点是针对Windows虚拟机开发新的windowsHyper-V特性,但是现在很多功能都可用在Linux发行版windowsHyper-V上,以及可能对希望将他们的Linux工作负载整合到windowsHyper-V虚拟化平台上的组织带来巨大的价值。
将你的虚拟机迁移到最新版本的windowsHyper-V上,可以让你更好地利用新windowsHyper-V的功能和特性。
在考虑从Windows Server 2012 R2 windowsHyper-V迁移到下一个windowsHyper-V版本(可能是Windows Server 10 Hyper-V)时,需要考虑如何将现有的虚拟机迁移到新版本。windowsHyper-V一个版本将包括一个滚动更新功能,将允许管理员在windowsHyper-V集群不下线的情况下,一次性更新一个集群节点,即使如此,管理员也必须要考虑如何将虚拟机迁移到新版本的windowsHyper-V上。
不管是否正在实施一个windowsHyper-V集群部署,它都有可能从一个旧版本windowsHyper-V服务器上的虚拟机实时迁移到下一代windowsHyper-V器上。最重要的是,实时迁移不一定是一个唯一的选项。管理员可以在虚拟机实时迁移时选择上一代windowsHyper-V服务器,只要它们不更新虚拟机版本。更新了虚拟机版本后,虚拟机只能与最新版本windowsHyper-V兼容。
与旧版本的windowsHyper-V一样,主机必须开启发送和接收实时迁移虚拟机。
让我们举例说明,看它是如何工作的。我已经使用了Get-VM PowerShell 命令检索了一个运行在Windows Server 2012 R2 的windowsHyper-V服务器上虚拟机版本号。
即使是从旧版本的windowsHyper-V服务器上将虚拟机实时迁移到下一代windowsHyper-V服务器。实时迁移过程其实和Windows Server 2012 R2 的windowsHyper-V一样。
旧版本的虚拟机实时迁移到"Windows Server 10" 的windowsHyper-V服务器后的截图。更重要的是,你可以看到虚拟机尽管运行在新版本的虚拟化管理程序上,但是windowsHyper-V保留了原来的虚拟机版本号。
由于虚拟机还是windowsHyper-V原来的版本号,那么它实时迁移到以前的windowsHyper-V服务器上不会有任何问题。如果虚拟机版本升级到6后将不能实时迁移到以前的windowsHyper-V服务器上。
这将引申出一个重要的问题。刚才我说过新版本的windowsHyper-V将提供一个滚动更新功能,也就是说它允许集群节点一个接一个的更新。如果一个虚拟机运行在一个既有新的也有旧的windowsHyper-V版本的集群中,那么在所有的群集节点更新到新版本之前,你将不能更新windowsHyper-V虚拟机的版本。
当然,提升windowsHyper-V虚拟机的版本能否带来好处是个新问题,特别是虚拟机版本升级后不能降级。升级到版本6可以启用windowsHyper-V新的功能和新的配置文件格式。所以,假如虚拟机运行在以前版本的windowsHyper-V上,windowsHyper-V的版本还是版本5。但是新的特性和功能只支持已升级的虚拟机。
将windowsHyper-V虚拟机升级到版本6非常简单,只需要在PowerShell上输入下面的命令就可以。
Update-VMConfigurationVersion <VM name>
输入此命令后,您将收到一条警告消息,警告你你将不能将虚拟机迁移或将其导入正在运行旧版本的 windowsHyper-V主机上。
正如你看到的,迁移一个虚拟机到"Windows Server 10" 的windowsHyper-V器上非常简单。只要不更新虚拟机版本,虚拟机就可以实时迁移到旧版本的windowsHyper-V器上。
将你的虚拟机迁移到最新版本的windowsHyper-V上,可以让你更好地利用新的功能和特性。
在考虑从windowsHyper-V迁移到下一个Hyper-V版本时,需要考虑如何将现有的虚拟机迁移到新版本。windowsHyper-V一个版本将包括一个滚动更新功能,将允许管理员在windowsHyper-V集群不下线的情况下,一次性更新一个集群节点,即使如此,管理员也必须要考虑如何将虚拟机迁移到新版本的windowsHyper-V上。
不管是否正在实施一个windowsHyper-V集群部署,它都有可能从一个旧版本windowsHyper-V服务器上的虚拟机实时迁移到下一代windowsHyper-V器上。最重要的是,实时迁移windowsHyper-V不一定是一个唯一的选项。管理员可以在虚拟机实时迁移时选择上一代windowsHyper-V服务器,只要它们不更新windowsHyper-V虚拟机版本。更新了虚拟机版本后,虚拟机只能与最新版本windowsHyper-VV兼容。
与旧版本的windowsHyper-V一样,主机必须开启发送和接收实时迁移虚拟机。
即使是从旧版本的windowsHyper-V服务器上将虚拟机实时迁移到下一代windowsHyper-V服务器。实时迁移过程其实和windowsHyper-V一样。
旧版本的虚拟机实时迁移到"Windows Server 10" windowsHyper-V服务器后的截图。更重要的是,你可以看到虚拟机尽管运行在新版本的windowsHyper-V虚拟化管理程序上,但是windowsHyper-V保留了原来的虚拟机版本号。
由于虚拟机还是它原来的版本号,那么它实时迁移到以前的windowsHyper-V服务器上不会有任何问题。如果虚拟机版本升级到6后将不能实时迁移到以前的windowsHyper-V服务器上。
这将引申出一个重要的问题。刚才我说过新版本的windowsHyper-V将提供一个滚动更新功能,也就是说它允许集群节点一个接一个的更新。如果一个虚拟机运行在一个既有新的也有旧的windowsHyper-VV版本的集群中,那么在所有的群集节点更新到新版本之前,你将不能更新windowsHyper-V虚拟机的版本。
当然,提升虚拟机的版本能否带来好处是个新问题,特别是windowsHyper-V虚拟机版本升级后不能降级。升级到版本6可以启用windowsHyper-V新的功能和新的配置文件格式。所以,假如虚拟机运行在以前版本的windowsHyper-V上,它们的版本还是版本5。但是新的特性和功能只支持已升级的虚拟机。
将虚拟机升级到版本6非常简单,只需要在PowerShell上输入下面的命令就可以。
输入命令后,您将收到一条警告消息,警告你你将不能将虚拟机迁移或将其导入正在运行旧版本的 windowsHyper-V 主机上。
正如你看到的,迁移一个虚拟机到"Windows Server 10" windowsHyper-V服务器上非常简单。只要不更新虚拟机版本,虚拟机就可以实时迁移到旧版本的windowsHyper-V服务器上。
在通用的windowsHyper-V主机之上运行windowsHyper-V时,可以使用诸多特性。但通过另一种方法可以使用windowsHyper-V更多的功能。
在Windows Server 2012 R2上运行windowsHyper-V,你可以使用更多的虚拟化特性。这些特性来自于运行在windowsHyper-V之上的windowsHyper-VManager,但通过SCVMM 2012 R2管理产品使用这些特性能够提供更高的灵活性与可用性。以下是通过SCVMM 2012 R2使用windowsHyper-V时能够使用的新特性,而且用户体验相当棒。
windowsHyper-V 2012 R2支持虚拟机在线克隆。在windowsHyper-V 2012 R2上运行的虚拟机不需要停机就可以被克隆。尽管你可以通过windowsHyper-V Manager使用在线克隆功能,但SCVMM 2012 R2提供了更大的灵活性,允许你克隆运行在远端windowsHyper-V主机之上的虚拟机或者已经准备好并存储在SCVMM类库中的虚拟机。
Windows Server 2012 R2现在支持创建站点间的网络网关,在windowsHyper-V网络虚拟化环境中有时被称为HNV或NVGRE网关。尽管不使用SCVMM也可以增加NVGRE网关,但却需要使用很多PowerShell命令而且管理网关很麻烦。
不需要增加你不想要的复杂性,SCVMM R2能够帮助你快速部署NVGRE网关。增加HNV网关时另一个很重要的因素就是SCVMM 2012 R2支持增加第三方网关。你需要做的只是通过SCVMM 2012 R2增加网络服务并在windowsHyper-V主机上部署网关。
Hyper-V 2012 R2的windowsHyper-V共享特性支持客户机集群。SCVMM 2012 R2更近一步,使在服务模板中集成windowsHyper-V共享特性成为了可能,反之,这使得在虚拟主机上快速部署支持集群功能的虚拟机成为了现实。
windowsHyper-V有很多文件与运行虚拟机相关,windowsHyper-V包括XML文件、虚拟硬盘文件以及快照文件。XML文件包括虚拟机配置信息,windowsHyper-V虚拟硬盘文件包括客户操作系统及应用数据。windowsHyper-V支持两种类型的虚拟硬盘文件:VHD和VHDX。VHD文件格式自windowsHyper-V第一版就推出了,在Windows Server 2012的windowsHyper-V中增加了对VHDX的支持。当你在Windows Server 2012和windowsHyper-V主机上创建虚拟机时,windowsHyper-V可以在两类虚拟硬盘种进行选择:固定和动态。
windowsHyper-V会分配虚拟硬盘文件的元数据所需要的空间。例如,如果你想创建一个大小为127GB的VHD/VHDX文件,windowsHyper-V最初只会创建一个4KB的文件,但windowsHyper-V允许该文件大小增大到127GB,有时我们将这种配置方式称之为精简配置。
windowsHyper-V所支持的虚拟硬盘类型有了初步的了解,但windowsHyper-V问题依旧:哪种windowsHyper-V虚拟硬盘适合生产负载?固定大小的VHD/VHDX的性能往往很好,因为针对运行在windowsHyper-V主机上的每个虚拟机都会有一个单独的VMWP.exe进程,windowsHyper-V不必担心在需要时确保能够增加VHD/VHDX文件。换句话说,windowsHyper-V虚拟硬盘文件不会产生太多的I/O操作。
在windowsHyper-V虚拟机内的应用要对动态VHDX文件进行持续的读写操作,那么建议选择固定的VHDX,但并非强烈建议你这么做。如果是在SSD存储上运行动态VHDX文件,windowsHyper-V可以在生产负载中使用动态VHDX文件。然而,有时有必要关注应用需求。
windowsHyper-V虚拟机磁盘文件存储格式有两种包括VHD、VHDX。windowsHyper-V还支持将物理磁盘直接分配给虚拟机,这称之为直通磁盘。windowsHyper-V直通磁盘没有使用虚拟硬盘文件,windowsHyper-V而是将本地磁盘或者SAN存储上的LUN直接映射给windowsHyper-V主机供虚拟机使用。windowsHyper-V管直通磁盘的性能仍旧被认为是最好的,但windowsHyper-V仍旧存在一些限制。首先无法执行快照,第二个限制是使用直通磁盘的虚拟机不能使用“无共享在线迁移”功能。windowsHyper-V尽管使用直通磁盘的虚拟机仍旧支持在线迁移,但必须在windowsHyper-V集群中被配置为存储磁盘资源。
windowsHyper-V管理网络配置取决于主机服务器安装的网络适配器数量以及使用这些网络适配器的方式。windowsHyper-V能够运行在仅安装了一块网卡的服务器上,但可以这么做却并不意味着应该这么做。我通常建议在安装了尽可能多的物理网络适配器的服务器上部署hypervisor。当然网络适配器的数量并不能决定一切,如何使用这些网络适配器同样很重要。
在windowsHyper-V环境中最少使用三块网络适配器,但多多益善。windowsHyper-V第一块网卡应该用于配置管理网络,用于传输管理及监控流量。
windowsHyper-V生产服务器至少应该配置三块网络适配器,windowsHyper-V第一块网卡应用用于传输集群及管理流量。windowsHyper-V第二块网络适配器应该用于传输用户流量,windowsHyper-V第三块网络适配器应该用于传输存储流量。显然这种配置方式并非总是很有效。比如服务器可能会使用DAS或者FC存储。即使是这样,windowsHyper-V服务器配置三块网络适配器仍旧是一个比较可行的指导原则。
windowsHyper-V生产服务器应该配置三块物理网络适配器之外,用户应该为服务器配置尽可能多的物理网络适配器。但什么时候其他网络适配器能够派上用场呢?
windowsHyper-V配置的物理网络适配器超过三块,那么我建议对剩下的网络适配器进行绑定。windowsHyper-V网卡绑定是物理网络适配器的一个集合,可以当做一块网卡来使用。Windows Server 2012可以在软件层面定义网卡绑定,好处在于网卡绑定对硬件没有特殊要求
windowsHyper-V管理网络在逻辑上应该与其他网络隔离,仅传输管理、监控以及集群流量。windowsHyper-V避免直接在主机服务器上安装应用以及配置防火墙规则阻挡不必要的网络流量有助于实现网络隔离。