Ceph实验室:第二课:集成ceph与openstack

栏目: 服务器 · 发布时间: 7年前

内容简介: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)

参考文档


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Realm of Racket

Realm of Racket

Matthias Felleisen、Conrad Barski M.D.、David Van Horn、Eight Students Northeastern University of / No Starch Press / 2013-6-25 / USD 39.95

Racket is the noble descendant of Lisp, a programming language renowned for its elegance and power. But while Racket retains the functional goodness of Lisp that makes programming purists drool, it wa......一起来看看 《Realm of Racket》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

随机密码生成器
随机密码生成器

多种字符组合密码

URL 编码/解码
URL 编码/解码

URL 编码/解码