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 <
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
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]选项中
出现以下情况可能是因为cinder-volumes节点和ceph节点通信有问题导致驱动无法初始化
Nova-compute节点
在nova上配置RBD的时候遇见以下情况,一般都是RBD配置问题。
解决方法把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"