vsphere迁移方案 (vsphere迁移存储)

在之前的分享的文章中,我们深入探讨了 vMotion 工作流程和原理《干货分享之vSphere vMotion(在线迁移)原理详解》以及如何利用高带宽网络来缩短实时迁移时间《干货分享之如何缩短vMotion的迁移时间》,那本文则重点关注在虚拟机做vMotion实时迁移出现的故障问题,应该如何进行排除以及分析迁移失败的典型原因是什么?要查看哪些日志?让我们看一下如何排除故障并防止 vMotion 操作失败。

话不多说,马上进入正题,首先我们来看一下常见的vMotion前提条件和限制,如果连前提条件都不满足或超出了限制的要求,那么肯定是会失败的。

vMotion前提条件

vsphere迁移方案,简述vsphere的基本功能和高级功能

满足前提条件后,我们再来一个归纳性的系统总结,看下常见的vMotion故障有哪些,方便我们在做排错时直接对号入座。

常见故障

导致vMotion迁移失败的常见故障和类型如下:

(1)vMotion 网络连接问题

  • ESXi 主机无法在 20 秒后执行 ping 操作或超时。
  • VMkernel 接口与网络层(即交换机和路由器)之间的 MTU 不匹配
  • ESXi 主机上启用了 vMotion 的网络配置错误

(2)存储问题

  • 数据存储无法访问或遇到 APD(所有路径丢失)
  • I/O 超时为 20 秒或更长时间

(3)vMotion 成功,但出现客户机问题

  • 无法访问虚拟机网络 – 目标 ESXi 主机上没有正确配置的 2 层网络连接
  • 资源过载长时间无法分配内存交换需要很长时间,导致 vMotion 超时

确认您已满足所有 vMotion 要求。这包括 vMotion 问题的主要原因,即网络连接或 MTU 不匹配。如果无法查明问题,那就直接通过查看 vSphere 日志以了解vMotion发生的失败时前后都有哪些记录,这对我们排查故障可能会很有用。

vSphere Logs

深入了解 vSphere 日志有助于验证导致实时迁移失败的原因。vMotion 进程同时使用 vCenter Server 和 ESXi 组件。涉及五个进程,这些进程登录到五个不同的日志文件中。

vsphere迁移方案,简述vsphere的基本功能和高级功能

vCenter Daemon (VPXD)、vCenter Agent (VPXA) 和 Host Daemon (hostd) 是 vMotion 进程的控制平面。“数据平面”位于 VMX 进程和 VMkernel 中。第一步是在这些日志中查找操作 ID (opID)。该 opID 映射到迁移 ID。 使用这两个标识符,我们可以按照 vMotion 过程查看相应的日志文件。

操作标识

在 vCenter Server 实例上的 VPXD 日志中查找 vMotion 进程的“操作 ID”。您可以连接到 VCSA (vCenter Server Appliance) 实例的控制台,然后转到 bash shell。您可以发出命令:

grep "relocate" /var/log/vmware/vpxd/vpxd-*.log | grep BEGIN

此命令的输出公开包含操作 ID 的日志条目( 以下输出为测试环境的样例日志,下同 ):

/var/log/vmware/vpxd/vpxd-214.log:2019-09-24T15:38:10.042Z info vpxd[29243] [Originator@6876 sub=vpxLro opID=XXXXX-11824-auto-94h-h5:70003561-20] [VpxLRO] — BEGIN task-8031 — vm-269 — vim.VirtualMachine.relocate — 52b17681-35d1-998b-da39-de07b7925dda(520681db-25b7-c5d6-44d7-6a056620e043)

迁移编号

检索操作标识 (opID) 后,可以使用操作标识在 ESXi 主机上的 hostd 日志文件中查找迁移标识。当您知道所涉及的源和目标 ESXi 主机时,它会有所帮助。此示例是一个计算和存储虚拟动作 (XvMotion),使用我们使用上一个命令找到的操作 ID。

grep XXXXX-11824-auto-94h-h5:70003561-20 /var/log/hostd.log | grep -i migrate

源 ESXi 主机输出:

2019-09-24T15:38:47.070Z info hostd[2100388] [Originator@6876 sub=Vcsvc.VMotionSrc. 3117907752192811422 opID=XXXXX-11824-auto-94h-h5:70003561-20-01-10-e036 user=vpxuser:VSPHERE.LOCAL\Administrator] VMotionEntry: migrateType = 1 2019-09-24T15:38:47.072Z info hostd[2100388] [Originator@6876 sub=Vmsvc.vm:/vmfs/volumes/b86202d8-fb958817-0000-000000000000/NH-DC-02/NH-DC-02.vmx opID=jzlgfw8g-11824-auto-94h-h5:70003561-20-01-10-e036 user=vpxuser:VSPHERE.LOCAL\Administrator] VigorMigrateNotifyCb:: hostlog state changed from success to none

目标 ESXi 主机输出:

2019-09-24T15:38:47.136Z info hostd[2099828] [Originator@6876 sub=Vcsvc.VMotionDst. 3117907752192811422 opID=XXXX-11824-auto-94h-h5:70003561-20-01-2c-3c35 user=vpxuser:VSPHERE.LOCAL\Administrator] VMotionEntry: migrateType = 1

VMkernel 条目

现在,我们有了迁移 ID,可以使用该 ID 在 vmkernel 日志文件中提取有关此特定实时迁移的 vMotion 进程的信息。在源和目标 ESXi 主机上使用以下命令:

grep VMotion /var/log/vmkernel*

输出揭示了 vMotion 过程中的几个有趣的数据点,例如用于传输数据的平均带宽。

源 ESXi 主机输出:

2019-09-24T15:38:47.402Z cpu13:46101760)VMotionUtil: 5199: 3117907752192811422 S: Stream connection 1 added. 2019-09-24T15:38:47.445Z cpu8:46092538)XVMotion: 2062: Allocating pool 0. 2019-09-24T15:38:47.445Z cpu8:46092538)XVMotion: 642: Bitmap page: len = 16384, pgLen = 1, bitSet = 3001, bitClear = 13383. 2019-09-24T15:38:47.445Z cpu8:46092538)XVMotion: 642: Bitmap block: len = 131072, pgLen = 4, bitSet = 131072, bitClear = 0. 2019-09-24T15:38:47.445Z cpu8:46092538)VMotion: 8134: 3117907752192811422 S: Requiring explicit resume handshake. 2019-09-24T15:38:47.445Z cpu13:46101760)XVMotion: 3384: 3117907752192811422 S: Starting XVMotion stream. 2019-09-24T15:39:34.622Z cpu14:46101762)VMotion: 5426: 3117907752192811422 S: Disk copy complete, no bandwidth estimate. 2019-09-24T15:39:34.905Z cpu24:46092539)VMotion: 5281: 3117907752192811422 S: Stopping pre-copy: only 37 pages left to send, which can be sent within the switchover time goal of 0.500 seconds ( network bandwidth ~185.134 MB/s , 1536000% t2d) 2019-09-24T15:39:34.965Z cpu13:46101760)VMotionSend: 5095: 3117907752192811422 S: Sent all modified pages to destination (network bandwidth ~281.100 MB/s) 2019-09-24T15:39:35.140Z cpu15:46101757)XVMotion: 642: Bitmap page: len = 16384, pgLen = 1, bitSet = 3001, bitClear = 13383. 2019-09-24T15:39:35.140Z cpu15:46101757)XVMotion: 642: Bitmap block: len = 131072, pgLen = 4, bitSet = 131072, bitClear = 0.2019-09-24T15:38:47.397Z cpu15:2099283)VMotionUtil: 5199: 3117907752192811422 D: Stream connection 1 added. 2019-09-24T15:38:47.440Z cpu3:3543984)XVMotion: 2062: Allocating pool 0. 2019-09-24T15:38:47.440Z cpu3:3543984)XVMotion: 642: Bitmap page: len = 16384, pgLen = 1, bitSet = 3001, bitClear = 13383. 2019-09-24T15:38:47.440Z cpu3:3543984)XVMotion: 642: Bitmap block: len = 131072, pgLen = 4, bitSet = 131072, bitClear = 0. 2019-09-24T15:38:47.440Z cpu3:3543984)VMotion: 8134: 3117907752192811422 D: Requiring explicit resume handshake. 2019-09-24T15:39:34.907Z cpu3:3543984)VMotionRecv: 761: 3117907752192811422 D: Estimated network bandwidth 205.138 MB/s during pre-copy 2019-09-24T15:39:34.960Z cpu3:3543984)VMotionRecv: 2961: 3117907752192811422 D: DONE paging in 2019-09-24T15:39:34.960Z cpu3:3543984)VMotionRecv: 2969: 3117907752192811422 D: Estimated network bandwidth 200.096 MB/s during page-in 2019-09-24T15:39:35.059Z cpu6:3543972)VMotion: 6675: 3117907752192811422 D: Received all changed pages. 2019-09-24T15:39:35.067Z cpu1:3543972)VMotion: 6454: 3117907752192811422 D: Resume handshake successful 2019-09-24T15:39:35.082Z cpu6:3543980)XVMotion: 642: Bitmap page: len = 16384, pgLen = 1, bitSet = 3001, bitClear = 13383. 2019-09-24T15:39:35.082Z cpu6:3543980)XVMotion: 642: Bitmap block: len = 131072, pgLen = 4, bitSet = 131072, bitClear = 0.

虚拟机日志文件条目

虚拟机日志文件驻留在虚拟机主文件夹中,该文件夹还包括 vmx 文件和 vmdk 文件。使用 ESXi 主机上的根访问权限,可以转到相应的文件夹。使用以下命令显示有关实时迁移的更多信息,例如源和目标 IP 地址:

grep “虚拟机文件夹名称” VMware.log

输出:

2019-09-24T15:38:47.280Z| vmx| I125: Received migrate ‘from’ request for mid id 3117907752192811422, src ip <192.168.200.93>. 2019-09-24T15:38:47.280Z| vmx| I125: MigrateSetInfo: state=8 srcIp=<XXX.XXX.XXX.XX3> dstIp=<XXX.XXX.XXX.XX1> mid=3117907752192811422 uuid=4c4c4544-004a-4c10-8044-c7c04f4d4e32 priority=high 2019-09-24T15:38:47.282Z| vmx| I125: MigID: 3117907752192811422 2019-09-24T15:39:34.971Z| vmx| I125: Migrate_Open: Restoring from < XXX.XXX.XXX.XX3 > with migration id 3117907752192811422 2019-09-24T15:39:35.023Z| vmx| I125: Migrate_Open: Restoring from < XXX.XXX.XXX.XX3 > with migration id 3117907752192811422

上述文中提及的日志示例非常详细的给小伙伴们展示了一台虚拟机 vMotion 成功后,可以查看哪些日志条目,通过显示的日志条目可以查看很多vMotion过程的详细信息。如果vMotion失败了,这些日志将是查找可能原因的良好资源。