【openstack】卷迁移导致的虚机热迁移失败问题排查及解决

问题现象

执行nova live-migration --block-migrate uuid热迁移虚机失败。

问题定位

执行nova migration-list --instance-uuid <uuid>确定迁移源节点、目标节点。

检查源节点nova-compute服务日志,发现如下报错:

txt 复制代码
ERROR nova.virt.libvirt.driver [req-01e02130-dbff-4c60-b35c-2a6922a2b95b req-a5e3dbcf-1358-45af-bda4-d450fabe6bfd 9d2ac2da5c9d45438493daec30280a3d eef10a485d6f4b74ad27600f25dbe452 - default default] [instance: 86d8b8e0-70a1-4444-ad4a-36362ca6b539] Live Migration failure: Requested operation is not valid: domain has active block job: libvirtError: Requested operation is not valid: domain has active block job

检查目标节点nova-compute服务日志,未发现异常信息。

根据源节点报错提示domain has active block job可知迁移失败的原因为虚机有活跃的卷任务,执行nova show <uuis>确定虚机的domain及宿主机,至虚机所在宿主机执行如下命令:

shell 复制代码
$ sudo virsh domblklist <domain>
Target     Source
------------------------------------------------
hda        /var/lib/nova/instances/86d8b8e0-70a1-4444-ad4a-36362ca6b539/disk.config
sda        ebs_ceph_cache_sys/volume-3e7460c3-bf48-4a83-ab2c-3a054eb12fbb
sdb        ebs_ceph_data/volume-42fd198f-9a43-4a25-9dda-3ebaf1119201

$ sudo virsh blockjob <domain> sda --info
No current block job for sda

$ sudo virsh blockjob <domain> sdb --info
Block Copy: [ 99 %]

可见sdb有卷拷贝任务正在执行,执行nova volume-attachments <uuid>确定sdbvolume id,继续执行cinder show <volume id>确定该卷有热迁移任务卡死。

问题解决

至虚机宿主机执行如下命令,强制终止卷迁移任务:

shell 复制代码
sudo virsh blockjob <domain> sdb --abort

再次执行虚机热迁移成功。

相关推荐
AAA@峥8 天前
CentOS Stream8 基于 Packstack 搭建 OpenStack 云平台全流程实战
linux·centos·openstack
EXIORAN13 天前
OpenStack 单元测试工作流程详解:tox + testr
openstack·unittesting·tox·testr
i2英方软件13 天前
OpenNebula 与 OpenStack:您应该选择哪一个?
openstack·opennebula·开源私有云对比
胖兔纸218 天前
OpenStack 1.7.2 & Ceph 9.2.1 运维命令
运维·ceph·openstack
24计网1王仔寿25 天前
Linux 系统运维全栈学习路线|从 Shell 脚本到容器云 OpenStack 完整学习指南
linux·学习·openstack
m0_547486661 个月前
《KVM Docker OpenStack实战—虚拟化与云计算配置 管理与运维》全套课件PPT
运维·docker·openstack
猫头虎-前端技术2 个月前
JS 作用域与闭包:从变量提升到闭包陷阱的超详细解析
开发语言·javascript·云计算·bootstrap·ecmascript·openstack·perl
笑脸笑脸2 个月前
OpenStack管理-nova计算
openstack
潮起鲸落入海2 个月前
OpenStack块存储管理-cinder对象存储-swift
openstack·swift