内容简介:Ceph实验室:第二课:集成ceph与openstack
本课程介绍如何配置ceph作为Nova的后端存储,用来存放vm的临时磁盘。
集成ceph与Openstack Nova
安装ceph客户端
集成ceph与Openstack的第一步就是要在openstack的节点上安装ceph客户端(一些ceph命令行 工具 和连接ceph集群需要的libraries)。
$ ceph-deploy install --cli --no-adjust-repos openstack $ ceph-deploy config push openstack
创建pool
给虚拟机的ephemeral disks创建一个ceph pool。
$ ceph osd pool create compute 256 pool 'compute' created
给nova客户端创建一个ceph用户和密钥
ceph get-or-create 会产生一个用户名和一个秘钥,并将它们保存在ceph monitor上。下面命令给nova客户端创建一个用户和秘钥,并赋予合适的权限。
[root@ceph ceph]# ceph auth get-or-create client.compute mon "allow r" osd "allow class-read object_prefix rbd_children, allow rwx pool=volumes, allow rwx pool=compute, allow rx pool=images" [client.compute] key = AQBLHcJYm1XxBBAA75foQeQ72bT3GsGVDzBZcg==
分发秘钥给nova客户端,并修改秘钥文件的group和权限
客户端需要ceph秘钥去访问集群,ceph创建了一个默认用户client.admin,他有足够的权限去访问ceph集群。不能把这个用户共享给其他客户端。更好的做法是用分开的秘钥,创建一个新的ceph用户去访问特定的pool。
[root@ceph ceph]# ceph auth get-key client.compute | ssh openstack tee /etc/ceph/ceph.client.compute.keyring AQBLHcJYm1XxBBAA75foQeQ72bT3GsGVDzBZcg== [root@openstack]# chgrp nova /etc/ceph/ceph.client.compute.keyring [root@openstack]# chmod 0640 /etc/ceph/ceph.client.compute.keyring
建一个临时秘钥,用来配置libvirt
[root@ceph ceph]# ceph auth get-key client.compute | ssh openstack tee /etc/ceph/client.compute AQBLHcJYm1XxBBAA75foQeQ72bT3GsGVDzBZcg==
把密钥配置在计算节点的ceph.conf文件
compute节点,其进程需要nova的密钥环文件。
vi /etc/ceph/ceph.conf [client.compute] keyring = /etc/ceph/ceph.client.compute.keyring
集成ceph和libvirt
libvirt进程需要有访问ceph集群的权限。所以需要把nova客户端的密钥存进libvirt。在计算节点上把nova客户端密钥加进libvirt 。
生成一个uuid
[root@openstack]# uuidgen c1261b3e-eb93-49bc-aa13-557df63a6347
创建libvirt secret文件,设置uuid
<secret ephemeral="no" private="no"> <uuid>c1261b3e-eb93-49bc-aa13-557df63a6347</uuid> <usage type="ceph"> <name>client.compute secret</name> </usage> </secret> [root@openstack]# virsh secret-define --file ceph.xml Secret c1261b3e-eb93-49bc-aa13-557df63a6347 created
把nova密钥加进libvirt
[root@openstack]# virsh secret-set-value --secret c1261b3e-eb93-49bc-aa13-557df63a6347 --base64 $(cat client.compute.key) Secret value set [root@openstack]# virsh secret-list UUID Usage --------------------------------------------------- c1261b3e-eb93-49bc-aa13-557df63a6347 ceph client.compute secret
配置nova
修改/etc/nova/nova.conf文件里的libvirt部分,增加ceph的认证信息。libvirt会使用该用户来和Ceph集群进行连接和认证。
[libvirt] images_rbd_pool=compute images_type=rbd rbd_secret_uuid=c1261b3e-eb93-49bc-aa13-557df63a6347 rbd_user=compute
重启nova compute服务
[root@openstack]#systemctl restart openstack-nova-compute
测试
新建一个vm,然后检查VM’s ephemeral disk是否健在ceph上。
[root@ceph ceph]# rbd -p compute ls 24e6ca7f-05c8-411b-b23d-6e5ee1c809f9_disk [root@ceph ceph]# rbd -p compute info 24e6ca7f-05c8-411b-b23d-6e5ee1c809f9_disk rbd image '24e6ca7f-05c8-411b-b23d-6e5ee1c809f9_disk': size 1024 MB in 256 objects order 22 (4096 kB objects)
参考文档
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- Ceph实验室:第二课:集成ceph与openstack
- Ceph实验室:第四课:Ceph监控
- Ceph实验室:第四课:Ceph监控
- 2018Android实验室CV培训总结
- 复旦NLP实验室NLP上手教程
- Ceph实验室:第三课:Ceph服务管理
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。