设为首页 收藏本站
查看: 2252|回复: 0

[经验分享] ceph 对接openstack liberty

[复制链接]

尚未签到

发表于 2017-12-4 19:32:41 | 显示全部楼层 |阅读模式
Ceph 准备工作
  官方文档:http://docs.ceph.com/docs/master/rbd/rbd-openstack/
  官方中文文档:http://docs.ceph.org.cn/rbd/rbd-openstack/
  环境准备:保证openstack节点的hosts文件里有ceph集群的各个主机名,也要保证ceph集群节点有openstack节点的各个主机名

创建存储池

# ceph osd pool create volumes 128
# ceph osd pool create images 128
# ceph osd pool create backups 128
# ceph osd pool create vms 128
Create Ceph User ceph---为openstack创建ceph用户

如果你启用了 cephx 认证,需要分别为 Nova/Cinder 和 Glance 创建新用户。命令如下:
  ceph auth get-or-create client.cinder mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=volumes, allow rwx pool=vms, allow rx pool=images'
ceph auth get-or-create client.glance mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=images'
ceph auth get-or-create client.cinder-backup mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=backups'

  每创建一个用户会输出一个对应用户的秘钥环,秘钥环是其他节点访问集群的钥匙,如图:
   DSC0000.png
  用户创建完我们可以在ceph集群的mon节点上ceph auth list看下创建的用户是否正确,出现下面图那种,会导致接下来的调用ceph出现权限不正确的报错
   DSC0001.png
  报错信息:
DSC0002.png

  例子--{your-glance-api-server}节点:
把 client.cinder 、 client.glance 和 client.cinder-backup 的密钥环复制到适当的节点,并更改所有权:
ceph auth get-or-create client.glance | ssh {your-glance-api-server} sudo tee /etc/ceph/ceph.client.glance.keyring  
ceph auth get-or-create client.glance | ssh controller sudo tee /etc/ceph/ceph.client.glance.keyring
ssh controller sudo chown glance:glance /etc/ceph/ceph.client.glance.keyring
也可以登录到{your-glance-api-server}节点,更改秘钥的所有权
注意:必须已经在controller节点上安装过ceph包,也就是要有/etc/ceph这个文件夹,完成后可以在controller下面看到ceph.client.glance.keyring秘钥环
  
例子--{your-volume-server}:
ceph auth get-or-create client.cinder | ssh {your-volume-server} sudo tee /etc/ceph/ceph.client.cinder.keyring

ceph auth get-or-create client.cinder | ssh computer-1 sudo tee /etc/ceph/ceph.client.cinder.keyring
也可以登录到{your-volume-server}节点,更改秘钥的所有权
注意:必须已经在computer-1节点上安装过ceph包,也就是要有/etc/ceph这个文件夹,完成后可以在computer-1下面看到ceph.client.cinder.keyring秘钥环

运行着 glance-api 、 cinder-volume 、 nova-compute 或 cinder-backup 的主机被当作 Ceph 客户端,它们都需要 ceph.conf 文件,copy user.keyring to glance-api node and cinder-volume node


登录到ceph的节点上,把ceph.conf复制到 glance-api节点 cinder-volume节点 nova-compute节点  或 cinder-backup节点



# ssh controller tee /etc/ceph/ceph.conf < /etc/ceph/



# ssh computer-1 tee /etc/ceph/ceph.conf < /etc/ceph/

或者通过scp传递也行

ceph-deploy# ceph auth get-or-create client.ceph >> ceph.client.ceph.keyring
# scp ceph.client.ceph.keyring ceph.conf controller:/etc/ceph/
# scp ceph.client.ceph.keyring ceph.conf cinder-volume:/etc/ceph/
对接glance-api

install rbd

# yum install ceph-common python-rbd


设置key权限

# chown glance:glance /etc/ceph/ceph.client.ceph.keyring

vim  /etc/glance/glance-api.conf  添加下面的参数

[DEFAULT]
verbose=True
show_image_direct_url=True


[glance_store]
default_store=rbd
stores = rbd
rbd_store_pool = images
rbd_store_user = glance         ////这里的用户是我们上面创建的client.glance 只写glance
rbd_store_ceph_conf = /etc/ceph/ceph.conf
rbd_store_chunk_size = 8
filesystem_store_datadir=/var/lib/glance/images/
注意:网上有的把这个给注释掉了,亲测liberty 注释不注释都是不会在给/var/lib/glance/image下存储镜像了,镜像存在了ceph集群glance pool里了


restart glance service

systemctl restart openstack-glance-api.service
systemctl restart openstack-glance-registry.service


对接cinder-volume

install ceph-common

yum install ceph-common   python-rbd


设置key权限
  登录到cinder节点,对秘钥进行授权

chown cinder:cinder /etc/ceph/ceph.client.ceph.keyring

vim  /etc/cinder/cinder.conf 添加下面的参数

[DEFAULT]
enabled_backends = ceph
[ceph]
volume_driver = cinder.volume.drivers.rbd.RBDDriver
volume_backend_name = ceph
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      ////这里的用户是我们上面创建的client.cinder 只写cinder
rbd_secret_uuid = 457eb676-33da-42ec-9a8c-9293d545c337
restart cinder-volume service

# systemctl restart  openstack-cinder-volume.service
对接compute

install

# yum install ceph-common python-rbd
vim /etc/nova/nova.conf 添加下面的参数

[cinder]
os_region_name = RegionOne
[libvirt]
images_type = rbd
images_rbd_pool = vms
images_rbd_ceph_conf = /etc/ceph/ceph.conf
disk_cachemodes="network=writeback"
rbd_user = cinder    ////这里的用户是我们上面创建的client.cinder 只写cinder

rbd_secret_uuid = 457eb676-33da-42ec-9a8c-9293d545c337
inject_password = false
inject_key = false
inject_partition = -2
live_migration_flag="VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE,VIR_MIGRATE_PERSIST_DEST,VIR_MIGRATE_TUNNELLED"
hw_disk_discard = unmap
从ceph集群复制ceph.conf到控制节点或者计算节点的/etc/ceph/文件夹下并更改所有权

# scp ceph-node:/etc/ceph/ceph.conf  /etc/ceph
# chown cinder:cinder /etc/ceph/ceph.conf

设置libvird

# uuidgen  ///这里uuid会生成一个新的随机数,我们这里工这个固定的随机数
457eb676-33da-42ec-9a8c-9293d545c337

# cat > secret.xml <<EOF
<secret ephemeral='no' private='no'>
<uuid>457eb676-33da-42ec-9a8c-9293d545c337</uuid>
<usage type='ceph'>
<name>client.cinder secret</name>
</usage>
</secret>
EOF

virsh secret-list ////可以列出我们设定的secret列表

virsh secret-undefine  ///可以取消我们定义的secret,其实相当于删除之前的设定的参数
如果提示我们这样的报错:
DSC0003.png
这是说明我明我们的几点没有开启libvirtd服务
systemctl start libvirtd.service
systemctl status libvirtd.service

# virsh secret-define --file secret.xml       ////定义秘钥
Secret 457eb676-33da-42ec-9a8c-9293d545c337 created

# cat /etc/ceph/ceph.client.cinder.keyring
[client.cinder]
key = AQC62PtZIX7TFRAAQJz981zXIvuMoQlRNnrJiQ==


# virsh secret-set-value --secret 457eb676-33da-42ec-9a8c-9293d545c337 --base64 $(cat client.ceph.key)
virsh secret-set-value --secret 457eb676-33da-42ec-9a8c-9293d545c337 --base64 AQC62PtZIX7TFRAAQJz981zXIvuMoQlRNnrJiQ==                                 
Secret value set

为了省事,用下面命令一下即可:

virsh secret-set-value --secret 457eb676-33da-42ec-9a8c-9293d545c337 --base64 $(cat /etc/ceph/ceph.client.cinder.keyring |grep key|awk -F ' '  '{print $3}')

restart nova-compute

systemctl restart openstack-nova-compute.service

  至此修改过的文件,对应的服务重启一下
  cinder service-list 查看ceph是都up了

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-420576-1-1.html 上篇帖子: Ceph v12.2 Luminous基于ubuntu16.04集群部署 下篇帖子: ceph 对接openstack mitaka
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表