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


    问题现象

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

    问题定位

    执行nova migration-list --instance-uuid 确定迁移源节点、目标节点。
    检查源节点nova-compute服务日志,发现如下报错:

    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
    
    • 1

    检查目标节点nova-compute服务日志,未发现异常信息。
    根据源节点报错提示domain has active block job可知迁移失败的原因为虚机有活跃的卷任务,执行nova show 确定虚机的domain及宿主机,至虚机所在宿主机执行如下命令:

    $ 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 %]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

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

    问题解决

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

    sudo virsh blockjob <domain> sdb --abort
    
    • 1

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

  • 相关阅读:
    【机器学习】这3种特征分箱方法,一定要理解掌握
    如何在Python中操作MySQL?
    WPF中依赖属性及附加属性的概念及用法
    python第一个接口返回的数据作为第二个接口的参数
    6张思维导图,搞定项目管理!(PMP项目管理可用)
    Docker-compose容器群集编排管理工具
    JAVA转GO
    【Git】Git基础命令操作速记
    QT 使用百度语音识别--生成文本
    数据库基础知识
  • 原文地址:https://blog.csdn.net/sinat_32582203/article/details/134473728