Windows Server 2012 无需共享存储的实时迁移
在 Windows Server 2012(WS2012)中微软提供了其最新的虚拟化平台 - Hyper-V 3.0,依靠 WS2012 最新的 SMB(Server Message Block)协议实现了透明迁移,也就是我们常说的实时迁移,这意味着我们能够在不中断虚机运行的情况下对其进行迁移。虽然这个技术之前就能够实现,但是我们需要为之付出高昂的成本,在过去为了实现迁移我们不得不购买专用的共享存储设备,而现在 Windows Server 2012 在虚机的可移动性方面做出了重大的改进。我们不必再依靠共享存储设备来实现实时迁移。
Windows Server 2012 也为我们提供了非常具有弹性和灵活性的选择,依靠 Windows Server 2012 目前能够实现的四个实时迁移方案:
- 无需共享存储的实时迁移
- 使用SMB 共享存储的实时迁移
- 存储环境下的迁移
- 故障转移群集中的实时迁移
而今天 gOxiA 将引领大家实践无需共享存储的实时迁移,相信大家一定会有不小的收获。顾名思义,无需共享存储的实时迁移使得我们能够在多台域成员的 Hyper-V 主机之间直接移动其虚拟机,且无需中断运行着的虚拟机。
这一操作的基本过程,将使用 SMB 实现对虚拟机 VHD 等文件的实时迁移工作,将被迁移的虚拟机 VHD 文件镜像以及快照等文件同步到目标主机(Hyper-V),而迁移过程的连接管理依靠 VMMS(Virtual Machine Management Service)进行。当 VHD 等文件在两端同步完毕后,才会开始实时迁移的后续步骤,首先虚机的状态信息会从源主机迁移到目标主机,之后中断两端文件的同步关系,并删除源主机上的文件存储,最后关闭实施迁移连接完毕迁移工作。
无需共享存储的实时迁移还具备以下四个特性:
- 即使在迁移工程中遇到故障或问题,导致迁移失败,那么总能保证有一台可用虚机。
- 可跨群集迁移虚机,例如我们可以从非群集的计算机迁移到群集计算机。
- 支持不同存储类型的迁移虚拟机,无需受存储类型约束,不管环境是 JBOD 还是直通存储,又或者是 iSCSI 存储,都能实现实时迁移。
- 可以使用 Powershell 发起实施迁移的操作,那么就能够实现自动化的操作。
综上所述,无需共享存储的实时迁移为我们提供了低成本,高效率,灵活便捷的迁移方案,我们利用这一功能特性能够适用到多种应用环境下。例如:
- 开发或 IT 人员能够将测试好的虚机在不停机的前提下直接迁移到生产环境。
- 在多主机环境下,如果需要进行主机维护,可以在不依赖共享存储的前提下,快速、灵活的在主机之间移动虚机。
- 故障检修和硬件升级,中小企业可能只有一台服务器并通过虚拟化方式运行着业务服务器,当遇到硬件故障或需要更新服务器时,IT顾问可以快速的在笔记本上建立临时的基于 Windows Server 2012 的 Hyper-V 主机,将其加入到现有域中完成业务虚机的迁移,在完成原服务器的更换后,再迁移回去。
利用无需共享存储的实时迁移技术,能够应对很多场景的应用,而接下来 gOxiA 将引领大家进行实践演练,首先准备好两台基于 Windows Server 2012 的 Hyper-V 主机,并将其加入到现有活动目录(AD域)中,这一步是必须的。然后,在其中一台主机上创建一个虚机用于迁移实践。以 gOxiA 环境为例,使用两台设备:Dell T310(Intel Xeon X3470)、Thinkpad T420(Intel i7-2620m),安装 WS2012 启用 Hyper-V,并加入到公司活动目录(AD域),在 HV3 上创建一个 XP 虚拟机,局域网是一个千兆网络。
准备就绪后首先需要对两台虚机进行配置,启用迁移功能,为此打开 Hyper-V 管理器,选中要操作的主机,点击鼠标右键选择”设置“,在”实施迁移“选项中勾选”启用传入和传出的实时迁移“,身份验证协议选择”使用 Kerberos“,”并行实时迁移“设置保持默认,因为是测试,所以”传入的实时迁移“可以选择”使用任何可用的网络进行实时迁移“。
完成这些设置后我们便可以开始执行迁移工作了,可能有朋友会问:“为什么没有按照网上其他的教程去做权限委派?岂不是会迁移失败?!”,事实是这样吗?!gOxiA 会在文末与大家分享这一知识!首先还是开始我们的迁移步骤,首先登录到 XP 虚机所在的 Hyper-V 主机(HV3),打开 Hyper-V 管理器选中 XP 虚机,在右边“操作”窗体点击“移动…”启动迁移向导,并在向导首页点击“下一步”。
在“指定目标计算机”向导页的名称框中键入虚机迁移的目标主机名称,本环境下为“Hyper-V”,当然也可以通过“浏览”进行确认选择。
“移动选项”下默认选择“将虚拟机的数据移动到一个位置”,并点击“下一步”。如果你希望将配置文件、分页文件或快照存储到目标主机的不同位置,则可以选择“通过选择项目移动位置来移动虚拟机的数据”;而“仅移动虚拟机”则适用于“使用了 SMB 共享存储”的环境。
之后会弹出目标主机的资源管理窗体,便于我们选择和确定目标的存储位置。
完成上面的步骤离成功就接近一半了,确认各选项设置后点击“完成”开始迁移,如下图所示:
接下来的过程会出现错误(PS:不是权限委派方面的错误,大家别急!),“无法将虚拟机移动到目标计算机。目标计算机上的硬件与此虚拟机的硬件要求不兼容”,具体的提示时说:“虚拟机正在使用物理计算机 Hyper-V 上不受支持的特定于处理器的功能。”回顾一下前面的文字,是否注意到了 gOxiA 对实践环境下的计算机处理器进行了醒目的标注!微软虚拟化实时迁移技术目前不支持在不同厂商的处理器之间进行虚机的迁移。但是,支持同厂商不同版本处理器的实时迁移。所以前面提到的硬件兼容性错误可以在虚机的配置上进行设置解决。为此,选中虚机进入其属性设置,在右边窗体中找到“处理器”并展开选项进入“兼容性”设置,复选“迁移到具有不同处理器版本的物理计算机”。完成该操作后即可解决处理器兼容性问题,我们可以重新开始进行迁移操作。
在迁移过程中我们还会遇到一个问题(PS:别急,还不是权限委派的事儿!哈哈),迁移向导会可能会提示我们在目标主机上无法找到该虚拟机的网络连接,即:“虚拟交换机”。这个问题比较常见,因为我们可能并未在所有的 Hyper-V 主机上对虚拟交换机进行名称的规划,固然在迁移配置文件时,无法验证虚机的网络连接是否存在于目标主机,但是迁移向导为我们提供了解决此问题的步骤,可以重新为虚机指定目标主机上已经存在的虚机交换机,也就是我们常说的虚拟网卡,虽然进行了重新的指定设置,但虚机之前的 MAC 地址会得到保留,这也是保证透明迁移的前提!
最后确认迁移选项,点击“完成”并开始执行迁移!
整个的迁移过程所消耗的时间取决被迁移的虚机大小以及网络带宽和服务器的磁盘 I/O 性能,在 gOxiA 的千兆网络环境中,基于 SATA 磁盘进行的迁移,耗去了几分钟的时间,完全在合理的接受范围内!整个迁移过程确实没有中断虚机的运行,实践中 gOxiA 分别用 Ping 和网络拷贝进行了测试,均没有出现异常。
Windows Server 2012 无需共享存储的实时迁移整体来讲非常易用,无需过多的复杂设置即可完成,仔细看看也就是几个简单的步骤,这完全依靠强大的基础架构作为支撑,所以 AD 是必须的!
现在我们来谈谈权限委派问题!网上有文章提到 Windows Server 2012 无需共享存储的实时迁移不支持双向操作,简单讲就是在 A 主机上通过 Hyper-V 管理器去连接 B 主机并将 B 主机的虚机迁移到 A 主机上,当默认设置时这样操作肯定会失败!因为 Kerberos 验证协议默认情况下,Hyper-V 主机只信任从本机发起的迁移,简单理解就是只将自己主机上的资源主动搬到其他主机上,反之就要对权限进行委派!否则就会出现如下图所示的常见错误!
“迁移源上的虚拟机迁移操作失败”,具体信息是“无法与主机 Hyper-V 建立连接:安全包中没有可用的凭证(0x8009030E)。”当出现这个错误提示时,一定是用户在 A 主机上通过 Hyper-V 管理器去迁移 B 主机上的虚机,且没有设置权限委派。所以,为了避免此类情况的发生,并在符合安规的前提下可以为 Hyper-V 主机设置权限委派。为此,打开 ADUC 找到 Hyper-V 主机,进入其属性的”委派“选项卡, 选择”仅信任此计算机来委派指定的服务“,并为子项选择”仅使用 Kerberos“,并添加两个服务类型”CIFS“和”Microsoft Virtual System Migration Service“,前者就是代表 SMB,后者则是所需的 VMMS 服务模块。”用户或计算机“则设置为对端的主机名称。
完成上面的权限委派设置后,便可以在当前主机上去操作对端或其他主机执行迁移任务(被动迁移)。当然会有网友会问“既然发起虚机迁移需要本机信任,那么迁移的目标主机如何限制或信任发起迁移的源主机呢?!”简单说就是允许哪些源主机将虚机迁移到本机?!其实这个问题前面的介绍就有提到,即: Hyper-V 主机属性里“实时迁移”设置下的“传入的实时迁移”选项,在这里我们可以指定本机接受哪个网络或 IP 发起的迁移。
为确保无需共享存储的实时迁移得以顺利的进行,gOxiA 做一下总结:
- Hyper-V 主机必须是 Windows Server 2012 系统。
- Hyper-V 主机必须加入到 AD。
- Hyper-V 主机处理器(CPU)必须为同一厂家,但允许使用不同的版本。
- 如需执行被动迁移,必须为源主机配置权限委派。
OK!到这里相信大家已经对 Windows Server 2012 无需共享存储的实时迁移有了深刻和正确的认识,并解开了心中的疑问!现在感兴趣的网友便可以正确、顺利的开始进行实践,祝君好运!
最后的友情提示(PS:gOxiA 没完没了了,呵呵!)很重要!Windows Server 2012 无需共享存储的实时迁移技术,能够迁移使用差异磁盘的虚机,但目前貌似并未得到完美的支持,可能属于 Bug 问题!gOxiA 会单独撰写一篇文章与大家简要分享一下如何确保使用差异磁盘的虚机完成迁移任务。而剩下的几种实时迁移技术,会在今后与大家进行分享!