虚拟机热迁移前检查清单:为什么迁移不是简单点一下
虚拟机热迁移依赖共享存储、网络带宽、CPU 兼容性和内存脏页收敛,生产环境迁移前要做检查。
虚拟机热迁移看起来很方便:业务不停机,把虚拟机从一台宿主机迁到另一台宿主机。但它不是没有成本,也不是所有虚拟机都适合随时迁移。
迁移前先确认共享存储或磁盘复制方式。如果目标节点访问不到虚拟磁盘,迁移一定失败。
第二看 CPU 兼容性。不同代 CPU 指令集差异可能导致迁移失败。生产集群通常会使用统一 CPU model,牺牲一点性能换取可迁移性。
第三看网络带宽。大内存虚拟机迁移会传输大量内存页。业务写内存频繁时,脏页不断产生,迁移可能长时间不收敛。
第四看业务特性。数据库、高延迟敏感业务、大流量网关,迁移时要观察连接、延迟和错误率。
检查清单:
- 源/目标节点资源是否充足。
- 存储是否可被目标节点访问。
- CPU model 是否兼容。
- 迁移网络是否稳定。
- 当前是否有备份、快照、重平衡任务。
- 业务是否允许短暂抖动。
热迁移是高可用工具,不是随意搬家的玩具。越是关键业务,越要在低峰期执行,并准备回退方案。
迁移失败时看什么
热迁移失败通常不是单一原因。建议按资源、兼容性、网络、存储、虚拟机状态五个方向排查。
资源检查:
free -h
uptime
df -h
目标节点 CPU、内存、存储空间不足,会导致迁移开始前就失败,或迁移后业务性能下降。
兼容性检查:
lscpu
virsh capabilities
不同 CPU 代际、不同 CPU flags、不同虚拟化平台配置,都可能影响迁移。生产集群要尽量统一 CPU model。
网络检查:
ip -s link
ethtool -S <interface>
ping <target-migration-ip>
迁移网络有丢包或错误包时,大内存虚拟机迁移最容易失败。
存储检查:
iostat -xz 1
如果迁移同时伴随快照、备份、Ceph recovery,存储延迟可能成为瓶颈。
