6

OpenStack对接多Ceph资源池

 3 years ago
source link: http://sunqi-site-7gue3m8k5fbec136-1254137673.tcloudbaseapp.com/2020/09/14/OpenStack%E5%AF%B9%E6%8E%A5%E5%A4%9ACeph%E8%B5%84%E6%BA%90%E6%B1%A0/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

OpenStack对接多Ceph资源池

2020-09-14

字数统计: 475字

  |   阅读时长≈ 2分

OpenStack支持与多个不同的Ceph资源池进行对接,通过cinder的volume type与backend进行对应,创建时只需要选择不同的volume type就可以实现指定资源池创建。配置OpenStack对接分为两个部分:

  • Cinder配置:主要配置存储资源池与Volume Type和Backend对应关系
  • Libvirt配置:配置与Ceph之间的鉴权关系

Cinder配置

其中rbd_secret_uuid可以使用uuidgen命令生成

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# /etc/cinder/cinder.conf
[DEFAULT]
......
# 与下面的段落对应
enabled_backends = rbd-1, rbd-2
......

[rbd-1]
volume_driver = cinder.volume.drivers.rbd.RBDDriver

# 与上面的enabled_backends对应
volume_backend_name = rbd-1

rbd_pool = volumes

# 需要从Ceph集群拷贝这两个配置文件到相应目录
rbd_ceph_conf = /etc/ceph/ceph-1.conf
rbd_keyring_conf = /etc/ceph/ceph.client.cinder1.keyring

rbd_flatten_volume_from_snapshot = false
rbd_max_clone_depth = 5
rbd_store_chunk_size = 4
rados_connect_timeout = 4
rbd_user = admin
rbd_secret_uuid = 5774b929-0690-4513-a1f7-41aac49cbb31
report_discard_supported = True
image_upload_use_cinder_backend = True

[rbd-2]
volume_driver = cinder.volume.drivers.rbd.RBDDriver
volume_backend_name = rbd-2
rbd_pool = volumes
rbd_ceph_conf = /etc/ceph/ceph-2.conf
rbd_keyring_conf = /etc/ceph/ceph.client.cinder2.keyring
rbd_flatten_volume_from_snapshot = false
rbd_max_clone_depth = 5
rbd_store_chunk_size = 4
rados_connect_timeout = 4
rbd_user = admin
rbd_secret_uuid = 0563c419-bc4c-4794-972a-685498248869
report_discard_supported = True
image_upload_use_cinder_backend = True

建立与Volume Type对应关系

1
2
3
4
5
6
7
cinder type-create rbd-1
cinder type-key rbd-1 set volume_backend_name=rbd-1
cinder extra-specs-list

cinder type-create rbd-2
cinder type-key rbd-2 set volume_backend_name=rbd-2
cinder extra-specs-list

Libvirt配置

在/etc/libvirt/secretes建立与上述rbd_secret_uuid同名的两个文件,后缀为.xml和.base64,两个文件的内容为

1
2
3
4
5
6
7
# 5774b929-0690-4513-a1f7-41aac49cbb31.xml
<secret ephemeral='no' private='no'>
<uuid>5774b929-0690-4513-a1f7-41aac49cbb31</uuid>
<usage type='ceph'>
<name>client.cinder1 secret</name>
</usage>
</secret>

其中base64文件的内容就是keyring文件中key的值

1
2
[client.admin]
key = AQB/E15f42WdABAAR32oTiidCbVGpwhYbWcKAw==
1
2
# 5774b929-0690-4513-a1f7-41aac49cbb31.xml
AQB/E15f42WdABAAR32oTiidCbVGpwhYbWcKAw==

最后执行如下命令完成配置:

1
2
3
virsh secret-define --file 5774b929-0690-4513-a1f7-41aac49cbb31.xml
virsh secret-set-value --secret 5774b929-0690-4513-a1f7-41aac49cbb31 --base64 $(cat 5774b929-0690-4513-a1f7-41aac49cbb31.base64)
systemctl restart libvirtd

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK