问题描述
我想将 Ceph rbd 块映像附加到正在运行的 VM。 我可以通过编辑 vm xml 来附加 img1,所以一切都在这里工作。但我想让它实时附加。
池和图像从主机 lvl 可见
# virsh pool-list
Name State Autostart
-------------------------------------------
data-hdd active no
local active yes
#
# virsh vol-list --details data-hdd
Name Path Type Capacity Allocation
---------------------------------------------------------------------------
img1 data-hdd/img1 network 10.00 GiB 10.00 GiB
#
# virsh attach-disk testvm data-hdd/img1 sdb
error: Failed to attach disk
error: Cannot access storage file 'data-hdd/img1': No such file or directory
我正在尝试多个驱动程序/子驱动程序/类型 - 但没有运气
如何将 CEPH rbd 卷附加到正在运行的 VM?
解决方法
这里是正确的步骤:
- 创建块设备池
- 创建一个块设备用户,例如访问“vms”池的 qemu 用户:
ceph auth get-or-create client.qemu mon 'profile rbd' osd 'profile rbd pool=vms,profile rbd-read-only pool=images' mgr 'profile rbd pool=images'
- 在 ceph 客户端节点上,使用 quemu 用户创建块设备映像:
rbd create foo --size 4096 --image-feature layering [-m {mon-IP}] [-k /path/to/ceph.qemu.keyring] [-p vms]
- 在 ceph 客户端映射图像:
sudo rbd map foo --name client.admin [-m {mon-IP}] [-k /path/to/ceph.qemu.keyring] [-p vms ]
- 创建文件系统:
sudo mkfs.ext4 -m0 /dev/rbd/vms/foo
并且您还可以在步骤 1. 和 2. 之后执行以下操作(也可以使用 qemu 直接映像):
示例:
qemu-img create -f rbd rbd:libvirt-pool/new-libvirt-image 2G
并验证:
rbd -p libvirt-pool ls