VMware中跨vCenter迁移虚拟机

本文介绍了VMware环境下,如何利用xvm工具进行跨vCenter的批量虚拟机迁移,解决了传统迁移方法的不便。xvm提供图形化界面,支持批量操作,简化了不同vCenter Single Sign-On (SSO)域间迁移的复杂度,适用于大规模迁移场景。文章还详细讲解了迁移原理、软件安装和使用方法,并提供了API和PowerShell自动化迁移的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、场景描述

在我们VMware环境中,多资源池,多vc管理是极大可能出现的,当我们有计划迁移某一vc虚拟vm资源到其他vc下时,少量时可采用导出导出的方式,但是大批量要怎样操作呢?这里介绍vmware技术社区的一款工具xvm,它作为VMware vSphere 6.0 及更高版本的新功能,可在 vCenter Server 实例之间实现跨vc的图形化批量迁移虚拟机操作,大大方便我们的vm迁移工作。

通过该插件,可实现从不属于同一个 vCenter Single Sign-On (SSO) 域的不同 vCenter Server 之间实时迁移虚拟机。Cross vCenter vMotion 提供的这种扩展功能使客户能够解决具有挑战性的新场景需求,尤其是对于数据中心迁移、整合甚至将现有工作负载从当前环境迁移到新的 SDDC 部署(例如 VMware Cloud Foundation (VCF))的场景。尽管客户可以使用包含 PowerCLI 的 vSphere API 启动跨 vCenter vMotions,但整体体验不那么友好。特别对于可能只有少量 VM 进行迁移并且更喜欢基于 UI 的界面而不是仅 API/CLI 选项的客户来说尤其如此。而对于大批量的虚拟机迁移,对于不具备强大的自动化或 vSphere API 背景的人来说,这种插件增强的UI方式将极大简化操作复杂度,提升效率,尤其针对从属于不同vCenter Single Sign-On (SSO) 域的不同 vCenter Server 实例之间实时迁移虚拟机,非常有用,大大简化了在不同 vCenter Server 之间启动虚拟机迁移的消耗,尤其是在没有图形界面的不同 SSO 域之间。

【传统迁移弊端】:

1) 通过 Vsphere Client 连接vCenter,通过数据浏览将虚拟机或者模板文件下载到本地然后再迁移。如果虚拟化和模板比较大,就很头疼,而且常常下载失败,经常会出现自动终止的想象导致备份和迁移不成功。

2)通过VMware vCenter Converter Standalone Client 登录Exsi或者center ,将里面的虚拟及或者模板在线迁移至其他Exsi或Vcenter服务器,对带宽要求比较高,且耗时久,也会出现网络中断失败的问题。
3)将虚拟机转换为模板,选中模板,通过导出OVF模板的方式将模板导出。此过程会对模板文件进行压缩,250G的模板文件(前提精简制备且没有实际那么大空间),压缩后只有10G左右 。

【vMotion原理回顾】:

vMotion流程
启动虚拟机迁移后,vCenter Server实例将执行长时间运行的迁移任务以处理迁移。第一步是执行兼容性检查。是否可以在目标主机上运行虚拟机?考虑可能阻碍实时迁移的可能约束。接下来是告诉源和目标ESXi主机发生了什么。创建包含以下信息的迁移任务:

是否是正在迁移的虚拟机
是否在配置该虚拟机(虚拟硬件,VM选项等)
源ESXi主机是否符合要求
目标ESXi主机是否符合要求
vMotion网络相关问题

vCenter Server实例与源ESXi主机和目标ESXi主机共享迁移规范,确保交换所有必需信息以启动迁移过程。vCenter Server使用Virtual Provisioning X Daemon (VPXD) 与ESXi主机进行通信,后者调用ESXi主机上运行的Virtual Provisioning X Agent (VPXA)。VPXA侦听来自VPXD的消息,它接收迁移规范并通过hostd将其传递给VMX进程。主机守护程序(hostd)维护特定于主机的信息和管理访问,包括VMstate等虚拟机遥测。启动迁移时,hostd会将虚拟机置于中间状态,以便在迁移期间无法更改其配置的虚拟机。
虚拟机监视器(VMM)进程负责管理虚拟机内存并将虚拟机存储和网IO请求传输到VMkernel。所有其他对性能无关的IO请求都由VMM转发到VMX。虚拟机扩展(VMX)进程在VMkernel中运行,负责处理对性能不重要的设备的IO。 请注意,VMM仅在迁移期间在源ESXi主机上使用,因为这是虚拟机的活动内存所在的位置。

完成此操作后,源ESXi上的VMkernel迁移模块将打开启用vMotion的网络上的套接字,以设置与目标ESXi主机的通信。

在这里插入图片描述
在这里插入图片描述
准备阶段(虚拟机已经在目标主机上被创建了,但它处于被屏蔽状态)------>预复制阶段(此阶段将内存从源主机传输到目标ESXi主机,vMotion进程该阶段将跟踪源虚拟机的哪些内存页面在迁移期间被覆盖或修改(称为脏页面))------------>迭代内存预复制(多次迭代来实现内存预复制收敛)------->VM切换(由VMM终止内存预复制后,所有内存页都驻留在目标ESXi主机上。VMM现在向VMX发送远程过程调用(RPC),它可以挂起源虚拟机。VMX将进入检查点阶段,暂停虚拟机并将检查点数据发送到目标ESXi主机。目标ESXi主机上的虚拟机将被解除屏蔽,并使用源虚拟机的检查点数据恢复状态。基本流程是:启动目标虚拟机、中断启动过程、再把状态指向迁移过来的源虚拟机内存页,完成启动。所有这些通常发生在100-200ms,这是虚拟机处于不可访问的一个时间,这取决于主机硬件性能、动态的访问负载等各种因素)
在这里插入图片描述

二、软件安装前准备

软件下载:该实用程序允许用户使用跨 vCenter vMotion 功能从 vCenter 服务器之间的图形用户界面轻松地批量迁移虚拟机。
在这里插入图片描述
验证:SHA256: 3a490880f10c62bd3a6d0a82e3ed9ade5c55df802e2b4cb301aa52157038abde

注: vSphere 7.0 U1c 中的更高级的跨 vCenter vMotion 功能仅在 vSphere(vCenter 和 ESXi)实例 6.5 或更高版本之间受支持,不再支持vSphere 6.0 内部各版本;要从 vSphere 6.0 迁移虚拟机,可以使用 PowerCLI/SDK/API。

软件特性:

通过 vSphere Client 插件和独立 UI 进行虚拟机迁移的完全 UI 驱动的工作流;
提供用于自动化迁移任务的 REST API;
与相同或不同 SSO 域中的 vCenter Server 配合使用;
支持迁移到/从 VMware Cloud on AWS;
支持并行批量迁移多个 VM;
与 vSphere Client 清单树的主机/集群/资源池菜单集成;
自动填充库存以便于管理;
通过 vCenter Server 任务监控工作负载迁移进度;
注册站点以存储 vCenter Server 信息;

软件功能:

1、执行实时/冷迁移以及重定位(重新放置)/克隆操作;

2、适用于 vCenter 管理域内和跨 vCenter 管理域的迁移任务,但需要两个管理域网络可通;

3、选择主机/集群/文件夹/资源池作为放置目标

4、支持存储 vMotion 和共享数据存储迁移

5、具有多个网络接口的 VM 的灵活配置

安装环境要求:

vCenter Server 6.0 Update 3 或更高版本(ESXi 主机也必须是 6.0u3+及以上)

Java 运行时环境 1.8-10

网络要求:

8000 和 902 用于 ESXi 之间的 vMotion 和 NFC;
两个 vCenter Server 之间的 443;
vCenter Server 和 ESXi 服务器之间的 443(这是将 ESXi 主机添加到 vCenter Server 的要求);

资源池环境要求:

1、源和目标 vCenter Server 实例以及 ESXi 主机必须运行 6.0 或更高版本;
2、跨 vCenter Server 和远距离 vMotion 功能需要 Enterprise Plus 许可证;
3、使用 vSphere Web Client 时,两个 vCenter Server 实例必须处于增强型链接模式,并且必须位于同一个 vCenter Single Sign-On 域中,以便源 vCenter Server 可以向目标 vCenter Server 进行身份验证。使用 GUI(webclient)时需要 ELM(相同的 SSO 域)使用 sdk/api/PowerCLI 时不需要 ELM(相同的 SSO 域);
4、两个 vCenter Server 实例必须彼此时间同步才能正确验证 vCenter Single Sign-On 令牌;
5、如仅对计算资源的迁移,两个 vCenter Server 实例都必须连接到共享虚拟机存储;
6、使用 vSphere API/SDK 时,两个 vCenter Server 实例可能存在于不同的 vSphere Single Sign-On 域中。执行非联合跨 vCenter Server vMotion 时需要其他参数。自 PowerCLI 6.5 起,Move-VM cmdlet 支持联合和非联合跨 vCenter Server vMotion。

在这里插入图片描述
在这里插入图片描述
其他注意事项:

1、上面适用于所有 VMware Cloud on AWS 版本和 vSphere 6.7 及更高版本;

2、需要加密 vMotion 的虚拟机无法将 vMotion 与 vSphere 6.5 GA 之前的目标 vCenter 版本一起使用。

3、使用 vSphere 6.5 中引入的 vSphere HA 重新启动优先级属性的虚拟机无法使用 vMotion 并使用 vSphere 6.5 GA 之前的目标 vCenter 版本进行冷重定位

4、vSphere 6.7 及更早版本的跨 vCenter Server vMotion 和虚拟机克隆不支持 vSphere 加密。

5、vSphere 7.0 上的 API 支持 vSphere 加密。

6、第三方交换机不支持跨 vCenter Server vMotion。

7、3.1版本支持的磁盘格式:Thick (Lazy Zeroed), Thick (Eager Zeroed) and Thin provisioning

三、软件安装及使用

3.1、jdk1.8 安装

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2 启动程序

#Java 8环境下
$ java -jar xvm-3.0.jar --vcenter.fqdn=VCENTER-IP-OR-FQDN --vcenter.user=ADMIN-USER --vcenter.pass=ADMIN-PASSWORD

#或可以简写:
$ java -jar xvm-3.0.jar   //构建独立web客户端,之后访问http://localhost: (default port 8443)即可

#用指定服务端口启用程序,这里为31000,默认为8443
$ java -jar -Dserver.port=31000 xvm-3.0.jar

#对于Java 9/10环境
java --add-modules java.se.ee -jar xvm-3.0.jar

在这里插入图片描述

3.3 软件使用

1)如果是注册了vc,即使用第一条命令,可登录https://VCENTER-IP-OR-FQDN/ui找到该插件;
在这里插入图片描述

2)如果是独立客户端启动(目前这种方式已弃用),可以使用在本地主机和端口 8080(默认)上运行的 Web 浏览器轻松访问它:https://:;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3)为迁移操作注册 vCenter 服务器:(迁移前的首要任务)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

羌俊恩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值