openstack 与 ceph 集成

  1. ceph 上创建 openstack 需要的 pool.
sudo ceph osd pool create volumes 128
sudo ceph osd pool create images 128
sudo ceph osd pool create backups 128
sudo ceph osd pool create vms 128
  1. 将 ceph 服务器上 /etc/ceph/ceph.conf 复制到 openstackcomputeglance 节点中。
  2. 安装 ceph 相关依赖
sudo yum install python-rbd ceph-common
  1. cephadmin-node 上创建相关的用户
sudo ceph auth get-or-create client.glance mon 'allow *' osd 'allow * pool=images' -o client.glance.keyring
sudo ceph auth get-or-create client.cinder mon 'allow *' osd 'allow * pool=volumes, allow * pool=vms, allow * pool=images' -o client.cinder.keyring
sudo ceph auth get-or-create client.cinder-backup mon 'allow *' osd 'allow * pool=backups' -o client.cinder-backup.keyring

如果填错权限可以改 sudo ceph auth caps client.glance mon 'allow *' osd 'allow * pool=images' -o client.glance.keyring

  1. 拿到 cinder 的 key
ceph auth get-key client.cinder  >> client.cinder.key
sz client.cinder.key
# 然后把 文件发到每一个 compute node 上
uuidgen # aff9070f-b853-4d19-b77c-b2aa7baca432
#d2b06849-6a8c-40b7-bfea-0d2a729ac70d
# 生成一个 uuid 然后写到 secret.xml 中
<secret ephemeral='no' private='no'>
<uuid>{your UUID}</uuid>
<usage type='ceph'>
<name>client.cinder secret</name>
</usage>
</secret>

然后执行

sudo virsh secret-define --file secret.xml
sudo virsh secret-set-value --secret {your UUID} --base64 $(cat client.cinder.key)
rm -rf client.cinder.key secret.xml

到这了 compute2 上 http://docs.ceph.com/docs/master/rbd/rbd-openstack/#configuring-cinder

  1. 编辑 /etc/glance/glance-api.conf
[DEFAULT]
...
default_store = rbd
...
[glance_store]
stores = rbd
rbd_store_pool = images
rbd_store_user = glance
rbd_store_ceph_conf = /etc/ceph/ceph.conf
rbd_store_chunk_size = 8
show_image_direct_url = True
show_multiple_locations = True
[paste_deploy]
flavor = keystone

如果 glance 连接失败可以考虑是不是 /etc/cinder 下的 keyring 文件是不是 ceph.client.*.keyring 格式 。 ceph!!!

  1. 编辑 /etc/cinder/cinder.conf
[DEFAULT]
...
enabled_backends = ceph
glance_api_version = 2
### 添加
[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
rbd_user = cinder
host_ip = 10.0.5.10 ## 这个地方用本地机器替换一下
rbd_secret_uuid = 457eb676-33da-42ec-9a8c-9293d545c337
# * backup *
backup_driver = cinder.backup.drivers.ceph
backup_ceph_conf = /etc/ceph/ceph.conf
backup_ceph_user = cinder-backup
backup_ceph_chunk_size = 134217728
backup_ceph_pool = backups
backup_ceph_stripe_unit = 0
backup_ceph_stripe_count = 0
restore_discard_excess_bytes = true
[libvirt]
rbd_user = cinder
rbd_secret_uuid = 457eb676-33da-42ec-9a8c-9293d545c337

如果 cinder 失败,可以看看 /etc/ceph/ceph.conf 下的 public network 是不是加了一个下划线

  1. 编辑 /etc/nova/nova.conf
[client]
rbd cache = true
rbd cache writethrough until flush = true
admin socket = /var/run/ceph/guests/$cluster-$type.$id.$pid.$cctid.asok
log file = /var/log/qemu/qemu-guest-$pid.log
rbd concurrent management ops = 20
mkdir -p /var/run/ceph/guests/ /var/log/qemu/
chown qemu:libvirt /var/run/ceph/guests /var/log/qemu/

最新文章

  1. 对rxandroid的简单理解
  2. 导出Excel And 导出word
  3. linux基础1——网络配置入门
  4. 第二十四篇:导出SOUI对象到LUA脚本
  5. list和set的区别
  6. 第四次java实验报告
  7. 安装opencms时遇到问题及解决方法
  8. C语言数据输入与输出
  9. Android Activity 管理
  10. 浏览器中直接是使用react系列包开发,非打包方式。
  11. ls-dyna基础教程
  12. Gazebo機器人仿真學習探索筆記(三)機器人模型
  13. table 如何不越过父级div
  14. v2ray和ss的安装资料整理
  15. 2-2 Todolist简单案例
  16. Excel VBA 使用笔记
  17. nginx中server的匹配顺序
  18. 使用TCP在同一台电脑上可以建立连接,在两台电脑上却连接失败的原因分析
  19. UML总结---UML中的事物和关系
  20. 内置函数补充,__str__方法、__del__方法 和 __call__方法和元祖

热门文章

  1. HDU3376 最小费用最大流 模板2
  2. 如何更有效使用 Rational AppScan 扫描大型网站,第 1 部分: 工作原理及技术分析
  3. Intellij IDEA 使用jrebel运行spring-boot并实现自动编译进行热部署
  4. 设置zookeeper开机自启动
  5. Java中哈希表(Hashtable)是如何实现的
  6. javascript工厂模式、单例模式
  7. jq_$.extend和$.fn.extend插件开发和方法的封装
  8. 9.0docker的数据管理
  9. Android日历开发之右上角标注红点事件
  10. Python标准库笔记(2) — re模块