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)

参考文档

优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/72372

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。