OpenStack Juno系列之结合ceph

原文链接:http://docs.ceph.com/docs/master/rbd/rbd-openstack/ 

1.创建两个池。

 ceph osd pool create volumes 128

 ceph osd pool create p_w_picpaths 128

补充内容:
在glance节点
apt-get install python-ceph
在nova-compute节点和cinder节点
apt-get install ceph-common

2.ceph配置文件拷贝到glance节点和cinder-volumes节点

sshX.X.X.X sudo tee /etc/ceph/ceph.conf

3.Ceph授权用户

ceph auth get-or-create client.cinder mon 'allow r' osd 'allow class-readobject_prefix rbd_children, allow rwx pool=volumes, allow rx pool=p_w_picpaths'

ceph auth get-or-create client.glance mon 'allow r' osd 'allow class-readobject_prefix rbd_children, allow rwx pool=p_w_picpaths'

4.把密钥拷贝到glance节点和cinder-volumes节点、nova-compute 节点

ceph auth get-or-create client.glance | ssh X.X.X.X sudo tee /etc/ceph/ceph.client.glance.keyring

sshX.X..X.X sudo chown glance:glance /etc/ceph/ceph.client.glance.keyring

ceph auth get-or-create client.cinder | ssh X.X.X.X sudo tee/etc/ceph/ceph.client.cinder.keyring

sshX.X.X.X sudo chown cinder:cinder /etc/ceph/ceph.client.cinder.keyring

ceph auth get-key client.cinder | ssh X.X.X.X tee client.cinder.key  这里是把cinder密钥拷贝到计算节点

5.配置glance节点,在glance-api配置文件中修改以下内容

default_store= rbd

stores= glance.store.rbd.Store

rbd_store_ceph_conf= /etc/ceph/ceph.conf

rbd_store_user= glance

rbd_store_pool= p_w_picpaths

rbd_store_chunk_size= 8

show_p_w_picpath_direct_url = True

配置完重启glance-api服务即可

6.配置cinder-volume节点,添加以下内容

glance_host= XXXXX

volume_driver= cinder.volume.drivers.rbd.RBDDriver

rbd_pool= volumes

rbd_ceph_conf= /etc/ceph/ceph.conf

rbd_flatten_volume_from_snapshot= false

rbd_max_clone_depth= 5

rbd_store_chunk_size= 4

rados_connect_timeout= -1

glance_api_version= 2

rbd_user= cinder

rbd_secret_uuid= bfe573d1-0a91-42e8-941a-49d5730c4150

 

UUID需要自己生成

uuidgen命令

7.配置nova-compute节点

cat> secret.xml <

 

 bfe573d1-0a91-42e8-941a-49d5730c4150

 

  client.cinder secret

 

 

  EOF

sudovirsh secret-define --file secret.xml

sudovirsh secret-set-value --secret bfe573d1-0a91-42e8-941a-49d5730c4150 --base64$(cat client.cinder.key)

编辑nova.conf文件,添加以下内容

[libvirt]

p_w_picpaths_type= rbd

p_w_picpaths_rbd_pool= volumes

p_w_picpaths_rbd_ceph_conf= /etc/ceph/ceph.conf

rbd_user= cinder

rbd_secret_uuid= bfe573d1-0a91-42e8-941a-49d5730c4150

libvirt_live_migration_flag="VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE,VIR_MIGRATE_PERSIST_DEST"

配置完成之后重启nova-compute服务

8.验证copy on write功能

1.)上传一个 raw 镜像到 glance

2.cinder create  --p_w_picpath-id   10

3.)ceph节点查看

rbd lsvolumes -l

类似于以下这个比如出现snap字样

volume-1147d5ee-5cae-4819-b58e-9eb1723f6c1340960M volumes/e5b6d62f-2876-40e5-a4d8-27d41552a631@snap   2

补充排错:

Cinder节点

问题类型:

RBD的时候出现类似于这种情况一般都是RBD配置有问题

解决方法:

RBD相关内容放在[DEFAULT]选项中

OpenStack Juno系列之结合ceph_第1张图片

出现以下情况可能是因为cinder-volumes节点和ceph节点通信有问题导致驱动无法初始化

OpenStack Juno系列之结合ceph_第2张图片

Nova-compute节点

nova上配置RBD的时候遇见以下情况,一般都是RBD配置问题。

OpenStack Juno系列之结合ceph_第3张图片

解决方法把RBD相关内容放在[DEFAULT]选项中

libvirt_p_w_picpaths_type = rbd

libvirt_p_w_picpaths_rbd_pool = volumes

libvirt_p_w_picpaths_rbd_ceph_conf = /etc/ceph/ceph.conf

rbd_user = cinder

rbd_secret_uuid = 6badfb2f-7e11-4810-bc11-40a73373259e

libvirt_live_migration_flag="VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE,VIR_MIGRATE_PERSIST_DEST"