我有一个简单的安装在C上的甲骨文Linux 9.1和驾驶舱和座舱机器。在机器A和B上,我配置了一个ceph集群,它为VM磁盘定义了一个rbd块存储池。在将最小配置和密钥环复制到机器C上之后,我可以像机器C上的命令ceph osd lspools一样“访问”ceph集群,并按预期返回所有配置好的池。
然而,在驾驶舱UI中,我看到的配置新存储池的唯一选项是filesystem和network file system,而不是其他选项。
如何将现有的rbd存储池配置为我在驾驶舱UI中创建的新VM可用?
发布于 2023-02-24 12:47:15
虽然在驾驶舱UI中创建rbd存储池是不可能的,但我找到了一种方法来创建与libvirt一起使用的池。这个池在UI中正确显示,我也可以在那里创建新的卷。
ceph auth get-or-create client.libvirt mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=mypool'
virsh secret-define --file secret.xml virsh secret-set-value --secret UUID --base64 "$(ceph auth get-key client.libvirt)" virsh pool-define mypool.xml
配置文件应该与以下文件类似:
<secret ephemeral='no' private='no'>
<uuid>UID</uuid>
<usage type='ceph'>
<name>client.libvirt secret</name>
</usage>
</secret><pool type="rbd">
<name>mypool</name>
<source>
<name>mypool</name>
<host name='CEPH_MON_IP'/>
<auth username='libvirt' type='ceph'>
<secret uuid='UUID'/>
</auth>
</source>
</pool>发布于 2023-02-09 11:19:29
我对驾驶舱不熟悉,但对卡夫却很熟悉。读取驾驶舱医生时,我可能会选择物理磁盘作为源,而物理磁盘是映射的rbd设备。如果您已经有一个专用于rbd使用的池,我将创建一个(或多个)所需大小的rbd映像:
rbd -p <pool> create -s <size> <name>然后将rbd设备映射到系统管理程序上,以便在引导后自动映射,/etc/ceph目录中有一个示例文件:
# cat /etc/ceph/rbdmap
# RbdDevice Parameters
#poolname/imagename id=client,keyring=/etc/ceph/ceph.client.keyring要在引导后启用映射,需要启用rbdmap服务:
# systemctl enable --now rbdmap.service
● rbdmap.service - Map RBD devices
Loaded: loaded (/usr/lib/systemd/system/rbdmap.service; disabled; vendor preset: disabled)
Active: inactive (dead)当rbd映像映射到系统管理程序时,您应该在lsblk输出中看到它作为rbd设备,或者在/dev/rbd中看到它:
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 458K 0 rom
rbd0 252:0 0 10M 0 disk
# ls -l /dev/rbd0
brw-rw---- 1 root disk 252, 0 9. Feb 12:18 /dev/rbd0因此,从hypervisor的角度来看,它现在是一个本地磁盘,您可以使用它来创建存储池。
https://serverfault.com/questions/1119812
复制相似问题