前言:
由于前期只有4台ARM主机,运行将近30台虚拟机,存在一定故障风险,后续扩容了部分主机,现计划热迁移大部分虚拟机,缓解主机资源紧张压力
故障原因:
由于迁移的虚拟机有部分内存使用率很高,导致热迁移实例写入内存页面的速度可能比复制它们的速度快,从而虚拟机产生了内存脏数据,无法完成迁移超时,虚拟机状态error
如何判断迁移超时:
首先虚拟机迁移失败,可查看当前迁移主机的nova-compute日志文件,通过虚拟机ID可以找到虚拟机日志
# grep d1df1b5a-70c4-4fed-98b7-423362f2c47c /var/log/nova/nova-compute.log
WARNING nova.virt.libvirt.migration [req-...] [instance: ...]
live migration not completed after 1800 sec
解决迁移超时:
如果想终止迁移任务,取消迁移热迁移,迁移虚拟机还在源主机
获取迁移ID
# nova server-migration-list 实例ID
取消迁移
# nova live-migration-abort 实例ID 迁移ID
如果想强制迁移,此时虚拟机将处于暂定状态,完成热迁移
# nova live-migration-force-complete 实例ID 迁移ID
如果在horizon看到虚拟机迁移过程电源状态异常,虚拟机状态异常
先将虚拟机状态设置为运行状态
# openstack server set –-state active 实例ID
将虚拟机关机
# openstack server stop 实例ID
将虚拟机开机
# openstack server start 实例ID