nova 卷分离失败,无提示,计算日志显示 libvirtError: invalid argument: no target device vdb

nova 卷分离失败,无提示,计算日志显示 libvirtError: invalid argument: no target device vdb

使用 Openstack Havana,我尝试从 nova 实例中分离 cinder 卷。

Nova 卷列表将其显示为正在使用中:

| 34b0ea26-f85c-4b62-8ebd-884b0e63e2d5 | in-use | filestore | 256  | None| 4d05ffe4-d30a-4c93-b710-c9ec80dad1c2 |

该卷通过 iSCSI 连接:

# iscsiadm -m session
tcp: [5] 10.3.40.10:3260,1 iqn.2010-10.org.openstack:volume-34b0ea26-f85c-4b62-8ebd-884b0e63e2d5 (non-flash)

它在实例中以 /dev/vdb 形式可见,并且可安装和读/写。

但是,在实例中卸载它并发出

# nova volume-detach 4d05ffe4-d30a-4c93-b710-c9ec80dad1c2 34b0ea26-f85c-4b62-8ebd-884b0e63e2d5

它不会分离。该卷仍标记为“正在使用”。我在compute.log 中收到此错误:

libvirtError: invalid argument: no target device vdb

当我在计算节点上运行“virsh edit 4”时,vdb 的磁盘设备实际上丢失了。但是,当我运行“virsh dumpxml 4”时它仍然存在!

我怎样才能解开这个谜团?

Virsh dumpxml 与编辑差异: http://pastebin.com/3CrGbcwu

错误的Compute.log: http://pastebin.com/1UCahB3d

答案1

我能够通过将 xml 转储中的 XML 复制到其自己的文件中来重新同步 lib​​virt 配置,然后通过以下方式将其更新回当前配置

virsh attach-device 4 filestore.xml --config

之后,我重新运行 novavolume-detach。它成功清理了计算节点,iscsi 会话现在空闲。然而,现在该卷陷入了“分离”状态。任何地方都没有错误,不知道为什么它没有返回“可用”。 tgt-admin 允许我将其脱机并恢复就绪状态,然后我使用 cinder reset-state 将其恢复为可用状态。

相关内容