vMotion的前提需求
- CPU的兼容性
- ESXi主机版本兼容
- 至少1GB的NIC
- 在迁出端和迁入端的资源要相互满足
- 网络带宽至少250Mbps,或31.25MB/s
vMotion工作原理:
- 目标主机创建shadow虚拟机,可以理解为占位
- 复制(可以理解为快照捕获)内存中不变的数据数据发送到对端
- 虚拟机在正常运行,内存中的数据仍然会有改变,内存位图记录初始复制期间内存发生的变化,为了保证数据的一致性,继续复制(重复快照捕获)内存bitmap进行传输
- 无限接近数据相同时,静默内存读写I/O,将bitmap传送到目标主机(此时出现延迟增大或丢包)
- 在源主机上静默VM后,VM立即初始化并开始在目标主机上运行。发送RARP通知VM A的MAC地址现在位于新的交换机端口上。
- 用户可以访问vMotion后的虚拟机
- VM在源主机上使用的内存页被标记为可用。
vMotion的12阶段
找日志的命令参考:

Pre-Check
- 进度条:0% – 14%
- 做了什么事:
- ping网络,检查能不能ping通
- 检查维护模式,Maintenance(MTC)Check
- 日志记录了什么:
- VC:
- vpxd.log
- VC:

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