2.5. 配置 Ceph 客户端身份验证
配置 Ceph 客户端的身份验证,以访问红帽 OpenStack 平台。
先决条件
- Ceph 监控节点的根级别访问权限.
- 一个正在运行的 Red Hat Ceph Storage 集群。
流程
从 Ceph 监控节点,为 Cinder、Cinder Backup 和 Glance 创建新用户:
ceph auth get-or-create client.cinder mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=volumes, allow rwx pool=vms, allow rx pool=images' ceph auth get-or-create client.cinder-backup mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=backups' ceph auth get-or-create client.glance mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=images'
[root@mon ~]# ceph auth get-or-create client.cinder mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=volumes, allow rwx pool=vms, allow rx pool=images' [root@mon ~]# ceph auth get-or-create client.cinder-backup mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=backups' [root@mon ~]# ceph auth get-or-create client.glance mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=images'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为
client.cinder、client.cinder-backup 和添加密钥环到适当的节点,并更改其所有权:client.glanceCopy to Clipboard Copied! Toggle word wrap Toggle overflow OpenStack Nova 节点需要
nova-compute进程的 keyring 文件:ceph auth get-or-create client.cinder | ssh NOVA_NODE tee /etc/ceph/ceph.client.cinder.keyring
[root@mon ~]# ceph auth get-or-create client.cinder | ssh NOVA_NODE tee /etc/ceph/ceph.client.cinder.keyringCopy to Clipboard Copied! Toggle word wrap Toggle overflow OpenStack Nova 节点还需要将
client.cinder用户的机密密钥存储在libvirt中。libvirt进程需要 secret 密钥来访问集群,同时从 Cinder 附加块设备。在 OpenStack Nova 节点上创建 secret 密钥的临时副本:ceph auth get-key client.cinder | ssh NOVA_NODE tee client.cinder.key
[root@mon ~]# ceph auth get-key client.cinder | ssh NOVA_NODE tee client.cinder.keyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果存储集群包含使用
exclusive-lock功能的 Ceph 块设备镜像,请确保所有 Ceph 块设备用户都有将客户端列入黑名单的权限:ceph auth caps client.ID mon 'allow r, allow command "osd blacklist"' osd 'EXISTING_OSD_USER_CAPS'
[root@mon ~]# ceph auth caps client.ID mon 'allow r, allow command "osd blacklist"' osd 'EXISTING_OSD_USER_CAPS'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 返回到 OpenStack Nova 节点:
ssh NOVA_NODE
[root@mon ~]# ssh NOVA_NODECopy to Clipboard Copied! Toggle word wrap Toggle overflow 为 secret 生成 UUID,并保存 secret 的 UUID,以便稍后配置
nova-compute:uuidgen > uuid-secret.txt
[root@nova ~]# uuidgen > uuid-secret.txtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意您不一定需要所有 Nova 计算节点上的 UUID。但是,从平台一致性角度来看,最好保持相同的 UUID。
在 OpenStack Nova 节点上,将 secret 密钥添加到
libvirt中并删除密钥的临时副本:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为
libvirt设置并定义 secret:virsh secret-define --file secret.xml virsh secret-set-value --secret $(cat uuid-secret.txt) --base64 $(cat client.cinder.key) && rm client.cinder.key secret.xml
[root@nova ~]# virsh secret-define --file secret.xml [root@nova ~]# virsh secret-set-value --secret $(cat uuid-secret.txt) --base64 $(cat client.cinder.key) && rm client.cinder.key secret.xmlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
其它资源
- 如需了解更多详细信息,请参阅《 红帽 Ceph 存储管理指南》 中的管理 Ceph 用户 章节。