vMotion的前提需求

  • CPU的兼容性
  • ESXi主机版本兼容
  • 至少1GB的NIC
  • 在迁出端和迁入端的资源要相互满足
  • 网络带宽至少250Mbps,或31.25MB/s

vMotion工作原理:

  1. 目标主机创建shadow虚拟机,可以理解为占位
  2. 复制(可以理解为快照捕获)内存中不变的数据数据发送到对端
  3. 虚拟机在正常运行,内存中的数据仍然会有改变,内存位图记录初始复制期间内存发生的变化,为了保证数据的一致性,继续复制(重复快照捕获)内存bitmap进行传输
  4. 无限接近数据相同时,静默内存读写I/O,将bitmap传送到目标主机(此时出现延迟增大或丢包)
  5. 在源主机上静默VM后,VM立即初始化并开始在目标主机上运行。发送RARP通知VM A的MAC地址现在位于新的交换机端口上。
  6. 用户可以访问vMotion后的虚拟机
  7. VM在源主机上使用的内存页被标记为可用。

vMotion的12阶段

找日志的命令参考:

Pre-Check

  • 进度条:0% – 14%
  • 做了什么事:
    • ping网络,检查能不能ping通
    • 检查维护模式,Maintenance(MTC)Check
  • 日志记录了什么:
    • VC:
      • vpxd.log
  • 插播一个有意思的小发现:
    • HA迁移VM时,看似相同的日志,有一些不同。
  • 源主机:
  • 目标主机:
  • 虚拟机:
    • vmware-0.log
    • 看到这边的日志会发现,state0-8的日志被忽略了。想要找到这部分日志需要看之前的日志,而不是现在的vmware.log。 

Connection

  • 进度条:15% – 24%
  • 日志记录了什么:
  • 源主机:
  • 目标主机:
  • 虚拟机:
    • vmware-0.log 

Pre-Copy Start

  • 进度条:24%
  • 日志记录了什么:
  • 源主机:
  • 目标主机:
  • 虚拟机:
    • vmware-0.log 

Pre-Copy

  • 进度条:24%
  • 日志记录了什么:
  • 源主机:
  • 目标主机:
  • 虚拟机:
    • vmware-0.log 

Pre-Copy Done

  • 进度条:25% – 30%
  • 日志记录了什么:
  • 源主机:
  • 目标主机:
  • 虚拟机:
    • vmware-0.log 

Checkpoint Saved

  • 进度条:31% – 58%
  • 日志记录了什么:
  • 目标主机:
  • 虚拟机:
    • vmware-0.log 

Power Down

  • 进度条:59% – 72%
  • 日志记录了什么:
  • 源主机:
  • 目标主机:
  • 虚拟机:
    • vmware-0.log 

Failover

  • 进度条:72%
  • 日志记录了什么:
    • 虚拟机:
      • vmware-0.log 

Be Ready to Receive VM

  • 日志记录了什么:
    • 虚拟机:
      • vmware.log 

VMX is ready and waiting for Source to send data

  • 日志记录了什么:
    • 虚拟机:
      • vmware.log 

Both memory and checkpoint data is being copied to Destination

  • 日志记录了什么:
    • 虚拟机:
      • vmware.log 

Clean up of all pending work

  • 日志记录了什么:
    • 虚拟机:
      • vmware.log 

Finishing

  • 日志记录了什么:
    • 虚拟机:
      • vmware.log 

vMotion中常见报错

在14%时,vMotion失败

  • 通常是VMK的网络不通,属于网络问题

在21%时,vMotion失败

  • 通常是VMK的MTU问题。Max Transission Unit。

在32%时,vMotion失败

  • 通常是存储的migrate失败

有用的kb

Storage vMotion:

  1. 启动存储迁移。
  2. 使用VMkernel 中的data move工具迁移数据文件(第一次全量复制从源到目的,经过主机,所以消耗主机CPU等计算资源)或vSphere Storage API-阵列集成来复制数据(支持VAAI硬件加速功能的存储,可以将这个操作卸载到存储阵列,存储侧完成迁移动作,实现离线存储(off-host),教材中蓝色箭头)
  3. 新增数据,同时向源和目的写入,会启用镜像驱动同时向源和目标写入。
  4. 写入完成后,重新启动一个虚拟机进程,转换到目标VM进程以开始访问虚拟磁盘副本。

Categories:

Tags: