第十章 实时迁移

实时迁移是一项很是有用的功能,也是实现虚拟化高可用的有力组成部分之一。它的目的是在将虚拟机从一台 Hyper-V 主机迁移到另外一台 Hyper-V 主机时,虚拟机对用户而言不产生中断,继而不影响业务的开展。在 Hyper-V 2008 R2 中,实时迁移同时只能进行一条。而在 Hyper-V 2012/2012 R2 中,则没有这个限制。同时若是但愿使用实时存储迁移,在 Hyper-V 2008 R2 中,必须使用 SCVMM 来完成,这种限制在 Hyper-V 2012/2012 R2 中也被取消了,版本区别如表 10-1 所示。 ios

更为吸引人的是,在 Hyper-V 2012/2012 R2 下的实时迁移,再也不依赖共享存储,能够由两台独立的 Hyper-V 主机发起和接收。这种改进的实时迁移能够为对效率不是太敏感的企业节省必定的硬件采购成本。 服务器

资源 网络

Hyper-V 架构

Hyper-V 运维

Hyper-V 性能

(2008 R2) 测试

2012 spa

2012 R2 操作系统

实时迁移 3d

一次一个

没有限制

没有限制

实时存储迁移

必须经过SCVMM

没有限制

没有限制

10-1 Hyper-V 中实时迁移和实时存储迁移差别

10.1 实时迁移分类

10.1.1 共享实时迁移

共享实时迁移即意味着实时迁移须要共享存储的参与,如故障转移群集和 SMB3.0 共享文件夹下的虚拟机迁移均属于共享实时迁移。其特色是整套环境中有一台或多台承载数据的共享存储。共享实时迁移拥有如下几个特色:

  • 迁移速度快,通常迁移会在 1 2 分钟内完成。
  • 迁移中断时间短:以 ping 包为检测方法,迁移中断时间通常只会丢 1 5 个包。
  • 必须使用共享存储,可使用 SMB3.0、直连、iSCSI、光纤中的一种或多种。

10.1.2 无共享实时迁移

无共享实时迁移是 Hyper-V 2012/2012 R2 所带来的新功能,其特色是实时迁移过程无需共享存储参与,同时在实时迁移过程当中,中断时间也能够作到和共享实时迁移一致,无共享实时迁移拥有如下几个特色:

  • 迁移速度慢,迁移时间依赖虚拟机磁盘的大小和网络带宽。
  • 迁移中断时间短:以 ping 包为检测方法,迁移中断时间通常只会丢 1 5 个包。
  • 无需使用共享存储,使用 Hyper-V 主机的本机磁盘便可完成实时迁移。

10.2 实时迁移准备条件

10.2.1 快速迁移过程

提到实时迁移,就不得不说起在 Windows Server 2008R2 中存在的快速迁移了。快速迁移的过程以下:

  • Hyper-V 主机 A 上的虚拟机 A1 发起快速迁移。
  • "保存"虚拟机 A1,将虚拟机的全部权交由 Hyper-V 主机 B
  • Hyper-V 主机 B 得到虚拟机 A1 的全部权,将处于保存状态的虚拟机 A1 开启。
  • 更新网络路由表

因为快速迁移拥有"保存"再"开启"的这个环节,而"保存"状态虚拟机是没法为外界提供服务的,因此通常使用快速迁移的中断时间会在10-20秒甚至更长。所以在HyperV 2012/2012 R2 中尽管也提供了快速迁移以保持对上代产品的兼容性,但在实际应用当中,用到快速迁移的机会很小。

10.2.2 实时迁移过程

实时迁移拥有改进的迁移过程,能够实现更短的中断时间。实时迁移的过程以下:

  • Hyper-V 主机 A 上的虚拟机 A1 发起实时迁移。
  • 经过 Microsoft Virtual System Migration Service Hyper-V 主机 B 创建联系。如不在本机发起,则须要提早委派。
  • 将虚拟机 A1 的初始内存拷贝到 Hyper-V 主机 B
  • 将虚拟机 A1 的内存标记,在上一阶段到本阶段中变更的内存拷贝到 Hyper-V 主机B
  • 持续该过程,直至变更的内存愈来愈小。
  • 暂停 Hyper-V 主机 A 上的 A1(此时发生中断)
  • 将虚拟机 A1 的最终内存状态复制到 Hyper-V 主机 B
  • Hyper-V 主机 B 上启动虚拟机 A1
  • 更新网络路由表

能够发现,实时迁移的过程之因此中断时间更短,其根源在于迁移过程当中会不断的切割内存标记,以使得虚拟机 A1 在 Hyper-V 主机 A 和 B 之间的内存差别愈来愈小,而且使用"暂停"而不是"保存"来中断虚拟机,可使虚拟机更快恢复。

10.2.3 实时迁移优点

因为混合了共享实时迁移和无共享实时迁移,所以实时迁移能够实现如下特性:

  • 不一样群集之间,使用不一样的共享存储而进行的实时迁移。
  • 相同群集之间,使用不一样的共享存储而进行的实时迁移。
  • 群集和非群集之间,使用不一样的共享存储或非共享存储的实时迁移。

10.2.4 实时迁移前置条件

如但愿使用实时迁移,则须要知足以下的前置条件:

  • Hyper-V 主机采用 Hyper-V 2012/2012 R2 操做系统(Hyper-V 2008R2 不支持无共享实时迁移)。
  • Hyper-V 主机必须是同一个域的域成员身份,或彼此信任的两个域的域成员身份。
  • 如不在本机发起实时迁移,则必须提早配置委派。
  • 在生产中,Hyper-V 主机的 CPU 必须为同厂商产品,能够为不一样型号产品,但不建议。
  • 尽量快的网络链接,网络链接支持 NIC 组合和 SMB 多通道。

10.3 实时迁移

10.3.1 实时迁移配置

如但愿使用实时迁移,则须要在每一台涉及到的 Hyper-V 主机上开启相应的实时迁移配置。不管采用何种实时迁移方式,均需提早配置如下选项。

第 1 步,打开 hv1.contoso.com 的"Hyper-V 管理器",右键点击 Hyper-V 主机主机,选择 Hyper-V 设置,如图 10-1 所示。

图 10-1 进入 Hyper-V 设置

第 2 步,在弹出的 Hyper-V 设置中,于左侧列表点击"实时迁移",进入配置页,如图 10-2 所示。在右侧勾选"启用传入和传出的实时迁移";在并行实时迁移处,能够定义容许的实时迁移数量,默认为 2,用户可以根据网络状况设置任意数值;在传入的"实时迁移" 处,默认选择"使用任何可用的网络进行实时迁移"。如 Hyper-V 主机存在多网卡,此处能够根据须要定义是否所有网络链接均参与实时迁移。

图 10-2 开启实时迁移

第 3 步,双击"实时迁移",再点击左侧下拉出现的"高级功能",可于右侧配置"身份验证协议"和"性能选项"。于右侧勾选"使用 kerberos",如图 10-3 所示,点击"肯定"继续。

图 10-3 配置身份验证协议

第 4 步,若是须要迁移虚拟机所在的 Hyper-V 主机所使用的 CPU 型号不一样,则务必要在虚拟机的配置页,双击"处理器",修改兼容性为"迁移到具备不一样处理器版本的物理计算机",如图 10-4 所示。

图 10-4 修改处理器兼容性

第 5 步,在域控制器上,打开"Active Directory 用户和计算机",使用本书第 9 章的方法,为全部涉及的 Hyper-V 主机配置"Microsoft Virtual System Migration Service"的约束委派。如图 10-5 所示,点击"肯定"完成配置。

图 10-5 配置约束委派

10.3.2 基于 SMB3.0 的实时迁移

第 1 步,打开"Hyper-V 管理器",在作好委派的 Hyper-V 主机 hv2.contoso.com 上使用 "新建虚拟机向导",建立一个 SMB3.0 共享文件夹上的虚拟机,如图 10-6 所示。此处虚拟机所保存的位置为\\fs\Hyper-V 存储共享\ ,因为是演示环境,能够直接点击"完成"结束快速建立。

图 10-6 修改处理器兼容性

第 2 步,首先启动该虚拟机,而后在对应的虚拟机"SMB3.0 迁移测试"上右键点击,选择"移动",如图 10-7 所示。

图 10-7 准备移动虚拟机

第 3 步,在"移动虚拟机向导"的"选择移动类型"对话框中,选择"移动虚拟机"选项,点击"下一步"继续,如图 10-8 所示。

 

图 10-8 准备移动虚拟机

第 4 步,在"指定目标"对话框中,能够输入目标 Hyper-V 主机的名称,或使用"浏览" 选择目标 Hyper-V 主机。此处输入 Netbios 或者 FQDN 都可,如图 10-9 所示。

图 10-9 输入指定目标

第 5 步,在"选择移动选项"对话框中,选择仅移动虚拟机,因为该虚拟机的存储位于 SMB3.0 的共享文件夹上,其本质也是共享存储的一种,所以可使用共享存储迁移。如图10-10 所示。此处直接点击"完成",开始进行虚拟机的实时迁移。

图 10-10 仅移动虚拟机并开始迁移

第 6 步,因为这是一个新建立的虚拟机,所以实时迁移速度很快,几秒钟便可完成实时迁移,能够在 hv1.contoso.com 上找到这台虚拟机,同时其状态也是"正在运行"。如图 10-11 所示。

图 10-11 实时迁移结束

10.3.3 基于故障转移群集的实时迁移

第 1 步,打开"故障转移群集管理器",点击"角色",选中须要进行实时迁移的开机状态的虚拟机,右键点击,选择"移动",如图 10-12 所示

图 10-12 故障转移群集下的实时迁移

第 2 步,依次"点击移动"→"实时迁移"→"最佳节点",如图 10-13 所示。在双节点的群集中,选择最佳节点即意味着群集中的另外一台 Hyper-V 主机。若是是多节点群集,能够点击"选择节点",手动确认实时迁移的目标。若是但愿使用快速迁移,则依次点击"移动"→"快速迁移"→"最佳节点",考虑到快速迁移中断时间相对较长,在已配置实时迁移的前提下,将再也不建议用户使用快速迁移。

图 10-13 选择节点进行实时迁移。

第 3 步,在"角色"列表中,能够看到虚拟机正在迁移,以及迁移的进度。如图 10-14 所示,几十秒后便可完成迁移,同时角色的状态也由"正在进行……"变为"正在运行"。

图 10-14 实时迁移过程

能够看到,使用故障转移群集进行实时迁移的操做步骤和逻辑都比使用"Hyper-V 管理器"要简洁一些,所以在实现虚拟机高可用的状况下,建议用户采用硬件存储来搭建故障转移群集。

10.3.4 基于独立 Hyper-V 主机的无共享实时迁移

无共享实时迁移不只能够应用在廉价高可用解决方案中,也能够帮咱们解决两个群集之间的虚拟机迁移,当某一台虚拟机须要升级底层硬件,好比从戴尔的 R510 服务器迁移到 R620 服务器,因为底层硬件的提高,能够为系统的的运行带来更强大的稳定性和扩展性,可是此时又不想停机操做,则可使用无共享实时迁移,将虚拟机从不一样的存储结构中迁移过去。因为须要完整的拷贝一份磁盘镜像,所以无共享实时迁移的迁移时间较长,但在迁移所形成的网络中断和共享实时迁移一致,大约会丢 1-5 个 ping 包。

第 1 步,打开"Hyper-V 管理器",使用"新建虚拟机向导",在 hv2.contoso.com 上建立一台虚拟机,命名为"无共享实时迁移",无需进行任何设置,直接点击"完成",如图 10-15 所示。

图 10-15 建立标准虚拟机以进行无共享实时迁移

第 2 步,开启该虚拟机,右键点击该虚拟机,选择"设置",检查"硬盘驱动器"的配置,确认虚拟硬盘保存在本地磁盘中,未使用共享存储或群集。如图 10-16 所示。

图 10-16 检查虚拟机磁盘是否位于本地

第 3 步,右键点击该虚拟机,选择"移动",打开移动虚拟机向导,在"选择移动类型" 对话框中,选择"移动虚拟机"选项。如图 10-17 所示,点击"下一步"继续。

图 10-17 准备移动虚拟机

第 4 步,在"指定目标"对话框,输入 hv1,或经过"浏览"按钮,选择目标计算机。

如图 10-18 所示。

图 10-18 准备移动虚拟机

第 5 步,在"选择移动选项"对话框,选择"将虚拟机的数据移动到一个位置",准备进行无共享实时迁移,此处也能够选择第二项:"经过选择项目移动位置来移动虚拟机的数据",该选项能够将虚拟机所包含的文件定义到不一样的位置,但通常不建议这样操做,如图10-19 所示。

图 10-19 选择移动选项

第 6 步,在"虚拟机"对话框,能够指定"目标位置",既能够直接输入实际存在的目录位置进行定位,也能够经过"浏览"按钮选择进行定位。不只能够选择在本地磁盘上,也能够选择储存在 SMB3.0 的共享文件夹上,或群集共享卷上,如图 10-20 所示,点击"完成" 开始虚拟机的实时迁移。

图 10-20 选择虚拟机的保存位置

第 7 步,点击"完成"后,系统会弹出正在执行移动的进度条,耐心等待进度完成,如图 10-21 所示。

图 10-21 实时迁移过程

第 8 步,迁移完成后,在 hv1.contoso.com 上找到迁移事后的虚拟机,右键点击,选择 "设置",检查硬盘驱动器的保存位置,能够看到其存储位置已经变成了 hv1.contoso.com 上的本地路径了。

图 10-22 验证明时迁移结果

10.3.5 存储实时迁移

存储实时迁移也是为了解决新旧硬件交替而存在的,当虚拟机因为底层 Hyper-V 主机的磁盘 IO 不足时,须要将虚拟机迁移到新的快速存储上时,则能够用到存储实时迁移。又或者性能足够,但容量不足时,经过存储实时迁移,也能够从小容量的存储迁移至大容量的存储。存储实时迁移的过程以下:

  • 发起存储实时迁移。
  • 在存储实时迁移阶段中,新的改动都写入到原始磁盘中。同时开始将数据从原始存储复制到新存储。
  • 在最初的数据复制完成后,磁盘的写入操做被镜像到新存储。
  • 当新的存储的数据和原始磁盘相同时,虚拟机切换到新的存储上。
  • 源磁盘数据被删除。

能够看到,存储实时迁移的过程和虚拟机的实时迁移相似,都是先完成最初数据的完整复制,再补充增量数据的复制,最后切换全部权。

第 1 步,在"Hyper-V 管理器"中,使用"新建虚拟机向导",在 hv2.contoso.com 上建立一个新的虚拟机,将虚拟机保存在"d:\虚拟机存储\"下,直接点击"完成",完成快速建立,如图 10-23 所示。

图 10-23 建立虚拟机

第 2 步,开启该虚拟机,在虚拟机上右键点击,选择"移动",如图 10-24 所示。

图 10-24 移动虚拟机

第 3 步,打开移动虚拟机向导,在"选择移动类型"对话框中,选择"移动虚拟机的存储"选项,如图 10-25 所示。

图 10-25 移动虚拟机存储

第 4 步,在"选择移动选项"选项卡下,选择"将虚拟机的全部数据移动到一个位置" 选项。该选项会将虚拟机的全部文件移动到统一的位置下,如选择"将虚拟机的数据移动到其余位置",则能够对虚拟机的配置文件、快照等指定单独的位置。如图 10-26 所示。

图 10-26 移动虚拟机存储

第 5 步,在"虚拟机"选项卡下,能够定义存储迁移的新位置,这里将虚拟机迁移至"c:\users\"下。如图 10-27 所示,点击"完成"开始存储实时迁移。

图 10-27 目标存储位置

第 6 步,在完成存储实时迁移后,能够检查虚拟机的属性,会发现硬盘虚拟硬盘的存储已经移动到新的位置下了。如图 10-28 所示。

 

图 10-28 检查移动后的虚拟机存储

10.4 小结

实时迁移在 Hyper-V 2012/2012 R2 下是一项普及率很是高的技术,不只能够实时迁移虚拟机,也能够实时迁移存储,须要注意的是,为了尽量的提高实时迁移的效率,必定要保障网络带宽和网络传输质量。同时在实时迁移能够在 NIC 组合和 SMB 多通道上运行,这可以极大的提高实时迁移的效率和可靠性。

另一点是,涉及到实时迁移的 Hyper-V 主机,最好使用彻底一致的硬件环境,尽管 CPU 型号不一样也能够完成实时迁移,但默认状况下还须要手动修改虚拟机的处理器兼容性才可实现该功能。所以也不建议用户在重要生产环境中混合不一样硬件架构的服务器。

若是基于成本考虑而须要利用和混合不一样硬件的服务器,则必须接受能够预见的性能损失和少许增长的运维工做量。

实时迁移是微软高可用技术的一个直观体现,不只仅是虚拟化,在私有云中,实时迁移也是一项值得单独书写的新功能。

相关文章
相关标签/搜索