今天主要是使用 SMB 3.0 迁移虚拟机存储。


一、缘起

       晓红是公司的一开发项目经理,他的项目团队在一台特定服务器(Guest01)上保存了团队成员辛苦工作的代码,并且很快即将发布,而这台服务器又在公司的私有云环境中。

       晓红希望确保跨越多个地理位置与时区的项目团队始终可以访问这些数据,因此高可用性很重要。他还希望就算万一出现硬件故障,服务器仍可以继续运行。于是晓红找公司的私有云管理员小张沟通了一下。

       管理员小张决定将服务器Guest01迁移到群集中,以确保服务器始终可用,就算一台物理服务器故障或者需要关闭宿主机执行维护任务也不受影响。他还决定充分利用 SMB 3.0 存储的优势保存虚拟机,降低实施高可用解决方案的成本。

       在这个实践中,小张会将 HyperV02 上的服务器 Guest01 迁移到群集 EvalCluster。这样做的意图在于提供可靠的高可用平台。在进行配置前,需要对 SMB 3.0 共享进行一些设置。这些变动可实现通过 SMB 3.0 共享进行向内或向外的实时迁移。

       远程 SMB 3.0 共享上的虚拟机存储是 Hyper-V 3.0 的新功能,此外还有下列新增功能:

        简化供应与管理工作。您可以管理文件共享,而非存储设施及逻辑单元号(LUN)。

       增强灵活性。您可以动态迁移数据中心内的虚拟机或数据库。

        充分利用聚合网络的现有投资。您可以使用现有的聚合网络,而无需特殊的存储网络硬件。

       降低初始开销。初始开销(购买成本)可大幅降低。

       降低运作开销。因为无需专用存储设备,因此可降低运作成本。



二、准备

       1、以管理员身份连接到 Active Directory 服务器 AD,打开 Active Directory 用户和计算机。 

微软云计算介绍与实践(实践之十一) _Hyper-V


       2、点击查看,然后选择高级功能。

微软云计算介绍与实践(实践之十一) _Hyper-V_02


      3、随后右键点击 Contoso.com 域并选择查找。

微软云计算介绍与实践(实践之十一) _Hyper-V_03


       4、将查找框默认选择的用户、联系人和组改为计算机。

微软云计算介绍与实践(实践之十一) _Hyper-V_04


       5、输入 HyperV02 并点击立刻查找。

微软云计算介绍与实践(实践之十一) _Hyper-V_05


       6、右键点击 HyperV02 并选择属性。

微软云计算介绍与实践(实践之十一) _Hyper-V_06


       7、点击委派选项卡,选中 仅信任此计算机来委派指定的服务,然后选择 仅使用 Kerberos。点击添加。

微软云计算介绍与实践(实践之十一) _Hyper-V_07


       8、点击用户或计算机。 

微软云计算介绍与实践(实践之十一) _Hyper-V_08


       9、在对象名框中,输入 HyperV03; HyperV04,然后点击确定。

微软云计算介绍与实践(实践之十一) _Hyper-V_09


       10、向下拖动并选择 HyperV03 与 HyperV04 对应的 Microsoft Virtual System Migration Service(按住 Ctrl 键可选择多个项目),然后点击确定。

微软云计算介绍与实践(实践之十一) _Hyper-V_10


       11、点击确定关闭 HyperV02 属性。

微软云计算介绍与实践(实践之十一) _Hyper-V_11


12、为 HyperV03 和 HyperV04 重复上述 5-11 步。每台服务器需要添加下列委派的角色:

HyperV03

a、CIFSHyperV02

b、Microsoft Virtual System Migration ServiceHyperV02

c、Microsoft Virtual System Migration ServiceHyperV04


HyperV04

a、CIFSHyperV02

b、Microsoft Virtual System Migration ServiceHyperV02

c、Microsoft Virtual System Migration ServiceHyperV03




三、开始

       随后小张需要确保 Guest01 在迁移过程中不会导致服务丢失。此时一种简单的办法是对 Guest01 持续执行 Ping 操作,并确认传输过程中 Ping 操作没有遇到丢包的情况。

       1、在 HyperV02 上打开服务器管理器,并确保仪表板已打开。在工具菜单项中选择 Hyper-V 管理器。

微软云计算介绍与实践(实践之十一) _Hyper-V_12


       2、在虚拟机窗格中点击 Guest01。

微软云计算介绍与实践(实践之十一) _Hyper-V_13


       3、在控制台底部的 Guest01 框中,打开网络选项卡,记录 IP 地址。此 IP 地址是 Guest01 的网络地址,后续操作中将会用到。在本例中,这个 IP 地址为 192.168.1.109。

微软云计算介绍与实践(实践之十一) _Hyper-V_14


       4、在 HyperV02 上打开命令提示符,输入命令 ping <Guest01 IP> -t 并按下回车键。这样既可持续对 Guest01 执行 Ping 操作。在上文步骤中记录的 IP 地址为 192.168.1.109,因此在本例中实际运行的命令就是 ping 192.168.1.109 –t。不要关闭命令提示符窗口,以便持续观察 Ping 操作的结果。

微软云计算介绍与实践(实践之十一) _Hyper-V_15



四、进行

       随后的操作会让 SMB 3.0 共享可以被 HyperV 群集使用。这样既可用于保存 Guest01 的共享存储。

       1、启动 Virtual Machine Management 控制台,以小张的身份登录。点击虚拟机与服务。

微软云计算介绍与实践(实践之十一) _Hyper-V_16


       2、展开所有宿主机,右键点击 EvalCluster,然后选择属性。

微软云计算介绍与实践(实践之十一) _Hyper-V_17


       3、点击文件共享存储,点击添加。 

微软云计算介绍与实践(实践之十一) _Hyper-V_18


       4、在添加文件共享窗口的文件共享路径中,输入 \\Hyperv02\SMB3Share 并点击确定。 

微软云计算介绍与实践(实践之十一) _Hyper-V_19


       5、点击 运行为账户 框旁边的浏览按钮,选择 VMM_RunAs_Contoso 并点击确定。

微软云计算介绍与实践(实践之十一) _Hyper-V_20


       6、确认您的设置并点击确定。

微软云计算介绍与实践(实践之十一) _Hyper-V_21



五、收尾 

       最后的操作会将 Guest01 从 HyperV02 迁移到 EvalCluster。

       1、打开 Virtual Machine Management 控制台,以小张的身份登录。展开所有宿主机,点击 HyperV02。

微软云计算介绍与实践(实践之十一) _Hyper-V_22


       2、在虚拟机窗格中右键点击 Guest01,然后选择迁移虚拟机。

微软云计算介绍与实践(实践之十一) _Hyper-V_23


       3、等待 Virtual Machine Manager 评估您的服务器,并为您的每台宿主机提供评分。选择 使此 VM 高度可用 选项,随后 Virtual Machine Manager 会重新评估该服务器,并从高可用性的角度为该服务器评分。选择 HyperV03 然后点击下一步。 

微软云计算介绍与实践(实践之十一) _Hyper-V_24


       4、确认 HyperV02 使用了 SMB 3.0 共享,不要更改任何其他设置,点击下一步。 

微软云计算介绍与实践(实践之十一) _Hyper-V_25


       5、在选择网络窗口中,保留默认设置并点击下一步。

微软云计算介绍与实践(实践之十一) _Hyper-V_26


       6、查阅您的设置,并点击移动。        

微软云计算介绍与实践(实践之十一) _Hyper-V_27


       在进行迁移的过程中,请在 HyperV02 上查看命令提示符中执行 Ping 操作的结果。您应该能发现迁移过程中即使存在丢包的情况,出现频率也非常低。在最终接手迁移工作的过程中,Ping的执行时间可能会出现少量波动,并可能出现少量丢包情况。



六、缘灭

       随着该操作的完成,管理员小张已成功将原本不具备高可用性的 Guest01 迁移到新创建的高可用故障转移群集中。现在不仅 Guest01 具备高可用性,并且可以不停机,不丢失服务进行迁移。不借助共享存储的情况下,在两个节点间迁移了虚拟机 – 这是无需共享实施迁移功能一个绝佳的例子。虚拟机可以在不同的 Hyper-V 3.0 宿主机之间迁移,就算没有可共同访问的存储,也不会造成停机。