我正在尝试将 Openstack(版本:wallaby)的卷附加功能作为附加设备添加到服务器,但失败了。
卷后端是 ceph,其中所有的 osd 均已启动且健康。
ceph-osd/38* active idle 0 172.16.6.64 Unit is ready (1 OSD)
ntp/149 active idle 172.16.6.64 123/udp chrony: Ready
ceph-osd/39 active idle 1 172.16.6.65 Unit is ready (1 OSD)
ntp/147 active idle 172.16.6.65 123/udp chrony: Ready
ceph-osd/40 active idle 2 172.16.6.66 Unit is ready (1 OSD)
ntp/146* active idle 172.16.6.66 123/udp chrony: Ready
ceph-osd/41 active idle 3 172.16.6.67 Unit is ready (1 OSD)
ntp/148 active idle 172.16.6.67 123/udp chrony: Ready
其中服务器由nova提供服务。
在某些服务器上,整个卷附加过程成功完成。我可以将创建的卷附加到 nova 实例作为 /dev/vdb 和 /dev/vdc。但是,有些服务器无法做到这一点。我检查了 /var/log/nova/nova-compute.log 并收到以下消息
ERROR oslo_messaging.rpc.server libvirt.libvirtError: internal error: unable to execute QEMU command 'blockdev-add': error connecting: Invalid argument
附加信息:当服务器处于关闭状态时,可以附加卷,但如果附加了卷,则服务器无法启动。我查看了 /var/log/nova/nova-compute.log,错误消息如下:
ERROR oslo_messaging.rpc.server libvirt.libvirtError: internal error: process exited while connecting to monitor: 2021-11-01T16:34:08.889402Z qemu-system-x86_64: -blockdev {"driver":"rbd","pool":"cinder-ceph","image":"volume-c41ce9db-e375-4b21-920f-e815035b51ed","server":[{"host":"172.16.6.104","port":"6789"},{"host":"172.16.6.106","port":"6789"},{"host":"172.16.6.105","port":"6789"}],"user":"cinder-ceph","auth-client-required":["cephx","none"],"key-secret":"libvirt-1-storage-secret0","node-name":"libvirt-1-storage","cache":{"direct":true,"no-flush":false},"auto-read-only":true,"discard":"unmap"}: error connecting: Invalid argument
我很确定该卷没有问题,因为我可以将同一卷附加到其他 nova 实例而不会出现问题。
我已经采取了以下措施但仍然没有成功:
(1)我使用不同的实例 ID 重新创建了 nova 实例,但仍然无法连接
(2)我使用 virsh secret-list 检查了 nova 和 ceph 连接 virsh secret 和配置(/etc/nova/nova.conf 和 /etc/libvirt/secrets)。它们与其他成功的卷附加实例相同
所有 openstack 服务均已启动并运行,没有错误。有人能给我一些有关错误消息的线索吗?