搭建openstack时,配置好rbd后,我们并没有在virsh pool-list 时看到一个存储池,但是如果我们要配置一个存储池也是可以的:
编写配置文件: rbd-volumes.xml
1 2 3 4 5 6 7 8 9 10 |
<pool type='rbd'> <name>rbd-volumes</name> <source> <host name='10.88.12.4' port='6789'/> <name>volumes</name> <auth username='cinder' type='ceph'> <secret uuid='9dd5c6f0-ffc2-476b-b89c-071998ad8462'/> </auth> </source> </pool> |
其中rbd-volumes是我们给这个存储池起的一个名字,随便你;
10.88.12.4 是ceph monitor节点地址
volumes 是rbd所在的ceph中的pool
auth里面有用户名cinder和预先定义好的秘钥(秘钥通过secret-define来定义)
然后执行:
1 |
virsh pool-define rbd-volumes.xml |
然后就会自动生成文件 /etc/libvirt/storage/rbd-volumes.xml:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<pool type='rbd'> <name>rbd-volumes</name> <uuid>09ec5b59-509d-40b9-9c8a-e03e8de60b1d</uuid> <capacity unit='bytes'>0</capacity> <allocation unit='bytes'>0</allocation> <available unit='bytes'>0</available> <source> <host name='10.88.12.4' port='6789'/> <name>volumes</name> <auth type='ceph' username='cinder'> <secret uuid='9dd5c6f0-ffc2-476b-b89c-071998ad8462'/> </auth> </source> </pool> |
然后通过virsh pool-list 可以查看到定义好的存储池:
1 |
virsh pool-list |
然后启动池子:
1 |
virsh pool-start rbd-volumes |
就可以列出来存储池中的rbd了;(我这里的volumes就是上面提到的rbd-volumes)
然后就可以使用这里的rbd来启动虚拟机了呗?不过又遇到问题,通过virt-manage来使用这里的rbd创建机器时报错:
话说这个和/root/volumes 有毛关系?
google 之,别人也有遇到: https://bugzilla.redhat.com/show_bug.cgi?id=1074169#c14
问题似乎出现在virt-manager 上,问题版本: 1.4.1 ; 换个新的试试:
https://github.com/virt-manager/virt-manager
更新到 1.5.0 依然存在这个问题,稍后再研究; 最新的版本构建起来麻烦一些,依赖python3的东西,我的安装源中有些找不到
相关fix: https://github.com/tonich-sh/virt-manager/commit/ce939a04099431ea273fa53850ab8a6db363a112
大哥 解决了吗 我也遇到这个问题了
没有,应该是virt-manager 没把这部分做好吧,我绕走了