VMware虚拟机迁移失败的故障排查方法
客户一台DELL的SCV3020存储有部分extent,就是磁盘条带数据无法读出,客户正在做数据迁移的工作。在迁移过程中遇到了部分虚拟机迁移失败的问题,咨询是否和存储磁盘有关系,下面是客户的问题:
还是要回到我一直说的问题,这个问题无法直接回答,我也猜测不出来,导致虚机motion失败的原因太多了,有存储问题,有网络问题,还有资源配置问题等。
本着“授人以鱼不如授人以渔”的原则,还是把渔网给大家吧,如果您还搞不定,就加vx:StorageExpert来进一步沟通吧。
在 VMware 中,如果虚拟机迁移(例如 vMotion 或 Storage vMotion)失败,你需要查看相关的日志文件来排查失败原因。以下是可能需要检查的主要日志文件及其位置:
- 虚拟机日志文件 (vmware.log)
- 位置: 虚拟机的日志文件通常位于虚拟机的主目录中,与 .vmx 配置文件和 .vmdk 文件存放在一起。例如:
/vmfs/volumes/<datastore>/<VM_Name>/vmware.log - 作用: vmware.log 是虚拟机级别的日志文件,记录了虚拟机的运行状态和事件,包括迁移过程中发生的错误。如果迁移失败,这个日志通常会提供具体的错误信息,例如超时、资源不足或配置问题。
- 查看方法:
- 位置: 虚拟机的日志文件通常位于虚拟机的主目录中,与 .vmx 配置文件和 .vmdk 文件存放在一起。例如:
使用 SSH 登录到 ESXi 主机,进入虚拟机目录,查看日志(按照您的爱好,less,more,vi等,看你的细喜好了):
cat /vmfs/volumes/<datastore>/<VM_Name>/vmware.log | grep -i "migrate"
搜索关键字如 "migrate"、"vMotion" 或 "error" 来定位相关记录。
- VMkernel 日志文件 (vmkernel.log)
- 位置:
/var/log/vmkernel.log - 作用: vmkernel.log 是 ESXi 主机的内核级日志,记录了与 vMotion 和存储相关的底层操作。如果迁移失败是由于网络问题、存储访问不到或主机资源问题,这个日志会提供详细信息。
- 查看方法:
cat /var/log/vmkernel.log | grep -i "vMotion"
或搜索 "migration"、"failed" 等关键字。
- 位置:
- 主机守护demon进程日志 (hostd.log)
- 位置:
/var/log/hostd.log - 作用: hostd.log 记录了 ESXi 主机的管理服务活动,包括 vMotion 的发起和执行过程。如果迁移是由 vCenter 触发,这个日志可能会包含任务的详细信息。
- 查看方法:
cat /var/log/hostd.log | grep -i "migrate"
- 位置:
- vCenter Server 日志 (vpxd.log)
- 位置: 如果使用 vCenter 管理环境,日志位于 vCenter Server 上:
- Linux 版 vCenter: /var/log/vmware/vpxd/vpxd.log
- Windows 版 vCenter: C:\ProgramData\VMware\vCenterServer\logs\vpxd.log
- 作用: vpxd.log 记录了 vCenter 的操作,包括迁移任务的调度和错误。如果问题出在 vCenter 端(例如权限或配置错误),这里会有相关记录。
- 查看方法:
cat /var/log/vmware/vpxd/vpxd.log | grep -i "migrate"
- 位置: 如果使用 vCenter 管理环境,日志位于 vCenter Server 上:
排查建议
- 步骤 1: 先检查 vmware.log,因为它直接与虚拟机相关,通常能提供最具体的失败原因。
- 步骤 2: 如果 vmware.log 没有足够信息,检查源和目标 ESXi 主机的 vmkernel.log 和 hostd.log,看看是否有网络、存储或资源相关的错误。
- 步骤 3: 如果使用 vCenter 发起迁移且以上日志未解决问题,查看 vpxd.log。
常见失败原因示例
- 网络问题: vmkernel.log 中可能显示 "timeout" 或 "connection refused"。
- 存储问题: vmware.log 或 vmkernel.log 中可能提到 "disk not accessible"。
- 资源不足: hostd.log 或 vmware.log 中可能有 "insufficient resources" 或 "reservation" 相关的错误。