当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 常见问题解答:使用 VMWare vMotion 实时迁移虚拟机

作者:精品下载站 日期:2024-12-14 22:55:04 浏览:14 分类:玩电脑

常见问题解答:使用 VMWare vMotion 实时迁移虚拟机


vMotion 允许将正在运行的 VMWare 虚拟机从一台物理 ESXi 主机迁移到另一台物理 ESXi 主机,而无需中断其操作并停止任何服务。在本文中,我们将讨论 VMWare vMotion 功能:vMotion 如何工作、存在哪些 vMotion 类型以及如何在 ESXi 主机或存储之间手动迁移虚拟机。我们还将考虑 vMotion 优化和故障排除的典型方法。

正如我们已经说过的,vMotion 允许您执行虚拟机的实时迁移,而不会造成任何停机或中断用户的工作。 vMotion 并不定位为提供虚拟机高可用性的一种方式。首先,当您必须使用已安装的 ESXi 虚拟机管理程序或存储阵列来维护/更新/更换物理服务器时,它是移动高效虚拟机的简单便捷的工具。此外,DRS(动态资源调度程序)是一种基于 vMotion 的技术,允许分配(平衡)物理服务器的负载。

用于在 Hyper-V 主机之间迁移虚拟机的类似 Microsoft 技术称为 Hyper-V 实时迁移。

[玩转系统] 常见问题解答:使用 VMWare vMotion 实时迁移虚拟机

VMWare vMotion 如何工作?

要使用 vMotion 在物理主机之间迁移虚拟机,需要使用以下 VMWare 组件:

  • VMWare vCenter 管理服务器;

  • 存储虚拟机文件的共享存储(使用光纤通道、iSCSI 或 NAS 连接)。共享存储允许多个物理ESXi主机访问SAN中同一虚拟机的文件;

  • 源和目标 ESXi 主机之间共享快速网络(至少 1GB 以太网)。迁移虚拟机时,它会保留其原始 MAC 地址,并且 vMotion 会通知网络交换机虚拟机 MAC 地址的位置已更改。它允许保持活动的网络连接;

  • 主机上CPU 的兼容性或启用的增强型 vMotion 兼容性 (EVC) 选项。

vMotion 如何执行实时迁移? 首先,在目标主机上创建具有相同配置(来自 VMX 文件)的源虚拟机的影子克隆。克隆虚拟机可以看到共享存储上的所有虚拟机文件。 RAM 内容和正在运行的虚拟机的状态通过网络从源传输到目标 ESXi 主机。 vMotion 制作虚拟机内存快照并通过网络将其复制到目标服务器。同时,vMotion 跟踪内存页上的更改,并仅复制修改的内存段(可能会分几个阶段发生,每次复制的数据较少,花费的时间也较少)。

在某个时刻,源虚拟机的状态会被冻结,更改的内存段和 CPU 指令会被复制,并且虚拟机会在目标 ESXi 主机上启动。对于 1/10 GB 以太网上的中型虚拟机,整个过程需要几秒钟。

VMware vMotion 类型

通过 vMotion,VMWare 意味着一整套不同的技术,允许您在主机、存储阵列、城市或本地和云基础设施之间动态移动正在运行的虚拟机。

vMotion 类型:

  1. 标准vMotion - 在ESXi主机之间迁移正在运行的虚拟机;

  2. Storage vMotion - 在数据存储(SAN 存储阵列、NAS、vVol、NFS 等)之间在线移动虚拟机文件;

  3. Shared-Nothing vMotion——在网络中的 ESXi 服务器之间迁移虚拟机,无需使用共享存储(需要 L2 网络);

  4. 长距离 vMotion - 在远程站点之间迁移虚拟机(最大往返时间长达 150 毫秒,也包括 L3 网络)。它在 vSphere 6.0 中引入;

  5. 加密 vSphere vMotion - 允许在通过网络传输虚拟机时对其进行加密(在 vSphere 6.5 中提供);

  6. 跨云冷热迁移 - 本地和云基础设施之间的在线或离线迁移。

VMware Storage vMotion 功能

正如我们所说,Storage vMotion 允许您将正在运行的虚拟机的文件(vmdk 虚拟磁盘和配置文件)移动到另一个 VMFS/NFS/vVol 数据存储(LUN、存储阵列),而无需停止虚拟机。

成功运行 Storage vMotion 的要求:

  • 虚拟机磁盘类型必须是持久化或RDM;

  • 不支持VMware Tools安装过程中的虚拟机迁移;

  • 数据存储的 VMFS 版本对于迁移很重要。例如,您无法将超过 2 TB 的 vmdk 文件从 VMFS5 移动到 VMFS3;

  • ESXi 主机上的许可证;

  • 运行虚拟机的主机必须能够访问源数据存储和目标数据存储;

  • 复制虚拟机磁盘时使用更改块跟踪 (CBT) 技术。它允许跟踪更改的数据块并复制它们。

VMWare 中增强的 vMotion 兼容性 (EVC)

如果集群基于具有不同代(但不是制造商!!!)CPU 的主机,则使用 VMware HA/DRS 集群的增强型 vMotion 兼容性 (EVC) 模式。如果为集群启用 EVC,虚拟机管理程序将开始屏蔽并非所有主机都支持的 CPU 指令。启用 EVC 后,群集中 ESXi 主机的所有 CPU 功能都将与 vSphere 管理员在群集设置中设置的一些基本的最小处理器指令集兼容。

因此,借助 EVC,您可以在具有不同受支持处理器指令集的主机之间迁移虚拟机。

不要在同一个 vSphere 集群中混合使用不同处理器供应商(例如 Intel 或 AMD)的主机。 EVC 允许实现同一供应商的处理器之间的兼容性。

您可以在群集级别启用 VMWare EVC。转到配置 -> 配置 -> VMWare EVC,然后单击编辑

[玩转系统] 常见问题解答:使用 VMWare vMotion 实时迁移虚拟机

如果为群集启用 EVC,则必须选择 EVC 模式(适用于 AMD 或 Intel 主机),并从下拉列表中选择 VMWare 群集中该供应商提供的最低 CPU 代数。

[玩转系统] 常见问题解答:使用 VMWare vMotion 实时迁移虚拟机

VMWare 建议始终启用 EVC,无论集群中有哪些主机。如果你想扩展你的集群,你会更容易做到。甚至有一篇单独的知识库文章证明,即使您的虚拟机不使用全套 CPU 指令,也不会影响主机性能。

VMware vSphere 6.7引入了云与本地之间的迁移技术(跨云冷热迁移)。要将虚拟机迁移到云,您现在可以在虚拟机设置中启用每虚拟机 EVC(在硬件版本 14 的 vSphere 6.7 中可用)。

您可以使用 PowerCLI 获取为集群中的虚拟机设置的基线 EVC 级别:

Get-VM | Select Name,HardwareVersion,
@{Name='VM_EVC_Mode';Expression={$_.ExtensionData.Runtime.MinRequiredEVCModeKey}},
@{Name='Cluster_Name';Expression={$_.VMHost.Parent}},
@{Name='Cluster_EVC_Mode';Expression={$_.VMHost.Parent.EVCMode}} | ft

要获取最大支持的 EVC 模式:

Get-VMHost | Select-Object Name,ProcessorType,MaxEVCMode

如何在VMWare vSphere中启用vMotion?

让我们看看如何在 VMWare vSphere 6.7 中启用和配置 vMotion。要使用 vMotion,拥有 Essentials Plus VMWare 许可证就足够了。

vMotion 在 ESXi 主机虚拟交换机的 VMkernel 级别启用。选择主机并转到配置 -> 网络 -> VMkernel 适配器

选择您的 VMkernel 适配器并单击编辑

[玩转系统] 常见问题解答:使用 VMWare vMotion 实时迁移虚拟机

在 vmk 端口属性中,在启用的服务部分启用vMotion

[玩转系统] 常见问题解答:使用 VMWare vMotion 实时迁移虚拟机

在我的示例中,VMWare HA 集群已创建,并使用 vSphere Distributed Switch (VDS)。

如何使用 vMotion 在主机之间迁移虚拟机?

要在两台 ESXi 主机之间迁移正在运行的虚拟机,请打开 vSphere Client,右键单击要移动的虚拟机,然后选择迁移

[玩转系统] 常见问题解答:使用 VMWare vMotion 实时迁移虚拟机

选择您要使用的迁移类型:

  • 仅更改计算资源 — 将虚拟机迁移到另一台 ESXi 主机;

  • 仅更改存储 — 这意味着 Storage vMotion(更改虚拟机文件所在的数据存储);

  • 同时更改计算资源和存储 — 无共享存储的迁移模式(无共享存储的 vMotion/Shared-Nothing),通过网络在主机之间复制虚拟机文件

我选择了第一个选项。

迁移向导将让您选择要将虚拟机移动到的主机、集群、资源池或 vApp。选择一个主机。如果 vMotion 配置正确并且未发现冲突,您将在兼容性部分看到兼容性检查成功消息。

如果您在兼容性选项卡中看到任何错误,请彻底研究并修复它们。

点击下一步。

[玩转系统] 常见问题解答:使用 VMWare vMotion 实时迁移虚拟机

VM 迁移向导将提示您选择一个网络以将 VM 的 vNIC 放置在目标主机上。如果您希望虚拟机在迁移后可用,请将其放置在与源主机相同的网段 (VLAN) 中。如果您使用标准 vSphere 交换机,请在所有 ESXi 主机上创建相同的端口组。使用 VDS 时,所有集群主机上的端口组都是相同的。

[玩转系统] 常见问题解答:使用 VMWare vMotion 实时迁移虚拟机

在最后一步中,选择 vMotion 任务的优先级。默认情况下,使用最高优先级(以高优先级安排 vMotion)。我总是用它。

[玩转系统] 常见问题解答:使用 VMWare vMotion 实时迁移虚拟机

然后点击下一步 -> 完成,虚拟机将开始迁移到另一台主机。您可以在近期任务面板中跟踪迁移状态(重新定位虚拟机任务)。就我而言,使用 vMotion 通过 10 GB 以太网迁移虚拟机大约需要 3 秒。

确保您的虚拟机现在正在另一台 ESXi 主机上运行。

[玩转系统] 常见问题解答:使用 VMWare vMotion 实时迁移虚拟机

您可以使用 Move-VM PowerShell cmdlet 将正在运行的 VM 迁移到 PowerCLI 中的另一台主机。例如,我们要将所有虚拟机从 mun-esxi01 移动到 mun-esxi02:

Get-VMHost mun-esxi01|Get-Vm| Move-VM -Destination (Get-VMHost mun-esxi02)

为什么 VMWare vMotion 无法工作?

以下列出了 vMotion 失败或虚拟机迁移速度非常慢的典型原因:

  • CPU 不兼容(启用 EVC/Enhanced vMotion 兼容性模式);

  • VMkernel 界面中未启用 vMotion;

  • ESXi 主机或虚拟交换机、端口组的网络设置不正确(巨型帧配置不正确、vMotion 网络中的 IP 地址冲突、vSwitch 设置不正确、网络速度慢、数据包丢失);

  • 无共享存储(适用于 vSphere 5.1 或更早版本)。在 vSphere 5.1 或更高版本中,Shared-Nothing VMotion 可用;

  • 目标主机上没有 CD/DVD 或 ISO 映像;

  • 启用反关联规则;

  • VMWare Tools 正在安装在来宾操作系统中;

  • 如果来宾操作系统主动更改其 RAM 内容,vMotion 可能会延迟将修改后的数据通过网络移动到另一台主机上的虚拟机副本;

  • 如果目标主机没有足够的 CPU 或 RAM 资源来创建影子虚拟机,vMotion 将失败并出现错误。

如果发生 vMotion 迁移错误,您的虚拟机不会关闭并且仍在源主机上运行。

如何提高/优化vMotion速度以快速迁移虚拟机?

您可以通过多种方式加速虚拟机迁移。

  • 首先,两台ESXi主机之间最好使用性能最高的网络。至少使用 10 GB 网络,25 GB 更好(ESXi 服务器的网络适配器和物理交换机必须支持此模式);

  • 对 vMotion 流量使用不同的物理接口;

  • vMotion 迁移使用线程(也称为流)。为每个启用 vMotion 的 VMkernel 创建一个线程。然而,该线程只能使用一个处理器核心。

要为 vMotion 进程提供多个 CPU 核心,请创建多个 VMkernel 接口,为它们启用 vMotion 并将它们链接到一个 NIC 接口。 vMotion 线程的平均吞吐量约为 15 GbE,因此要加载 100 GbE,您需要 6 个线程。

此外,您还可以使用高级系统设置中的 Migrate.VMotionStreamHelpers 选项增加 VMkernel 接口的 vMotion 线程数。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯