ceph对接openstack环境

一、使用RBD方式提供存储,如下数据:

1、image:保存glance中的image

2、volume存储:保存cinder的volume;保存创建虚拟机时选择创建新卷

3、vms的存储:保存创建虚拟机时不选择创建新卷

二、实施步骤

1、客户端也要有cent用户

  1. useradd cent && echo "123" | passwd --stdin cent
  2. echo -e 'Defaults:cent !requiretty\ncent ALL = (root) NOPASSWD:ALL' | tee /etc/sudoers.d/ceph
  3. chmod 440 /etc/sudoers.d/ceph

2、openstack要用ceph的节点(比如compute-node和storage-node)安装下载的软件包:

  1. yum localinstall ./* -y

  或者:每个节点安装 clients(要访问ceph集群的节点):

  1. yum install python-rbd
  2. yum install ceph-common
  3. 如果先采用上面的方式安装客户端,其实这两个包在rpm包中早已经安装过了

3、部署节点上执行,为openstack节点安装ceph:

  1. ceph-deploy install controller
  2. ceph-deploy admin controller

4、客户端执行

  1. sudo chmod 644 /etc/ceph/ceph.client.admin.keyring

5、create pools,只需在一个ceph节点上操作即可:

  1. ceph osd pool create images 1024
  2. ceph osd pool create vms 1024
  3. ceph osd pool create volumes 1024

  显示pool的状态

  1. ceph osd lspools

6、在ceph集群中,创建glance和cinder用户, 只需在一个ceph节点上操作即可:

  1. ceph auth get-or-create client.glance mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=images'
  2.  
  3. 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'
  4.  
  5. nova使用cinder用户,就不单独创建了

7、拷贝ceph-ring, 只需在一个ceph节点上操作即可:

  1. ceph auth get-or-create client.glance > /etc/ceph/ceph.client.glance.keyring
  2. ceph auth get-or-create client.cinder > /etc/ceph/ceph.client.cinder.keyring

  使用scp拷贝到其他节点(ceph集群节点和openstack的要用ceph的节点比如compute-node和storage-node,本次对接的是一个all-in-one的环境,所以copy到controller节点即可 )

  1. [root@yunwei ceph]# ls
  2. ceph.client.admin.keyring ceph.client.cinder.keyring ceph.client.glance.keyring ceph.conf rbdmap tmpR3uL7W
  3. [root@yunwei ceph]#
  4. [root@yunwei ceph]# scp ceph.client.glance.keyring ceph.client.cinder.keyring controller:/etc/ceph/

8、更改文件的权限(所有客户端节点均执行)

  1. chown glance:glance /etc/ceph/ceph.client.glance.keyring
  2. chown cinder:cinder /etc/ceph/ceph.client.cinder.keyring

9、更改libvirt权限(只需在nova-compute节点上操作即可,每个计算节点都做)

  1. uuidgen
  2. 940f0485-e206-4b49-b878-dcd0cb9c70a4

  在/etc/ceph/目录下(在什么目录没有影响,放到/etc/ceph目录方便管理):

  1. cat > secret.xml <<EOF
  2. <secret ephemeral='no' private='no'>
  3. <uuid>940f0485-e206-4b49-b878-dcd0cb9c70a4</uuid>
  4. <usage type='ceph'>
  5. <name>client.cinder secret</name>
  6. </usage>
  7. </secret>
  8. EOF

  将 secret.xml 拷贝到所有compute节点,并执行::

  1. virsh secret-define --file secret.xml
  2. ceph auth get-key client.cinder > ./client.cinder.key
  3. virsh secret-set-value --secret 940f0485-e206-4b49-b878-dcd0cb9c70a4 --base64 $(cat ./client.cinder.key)

  最后所有compute节点的client.cinder.key和secret.xml都是一样的, 记下之前生成的uuid:940f0485-e206-4b49-b878-dcd0cb9c70a4

如遇到如下错误:

  1. [root@controller ceph]# virsh secret-define --file secret.xml
  2. 错误:使用 secret.xml 设定属性失败
  3. 错误:internal error: 已将 UUID d448a6ee-60f3-42a3-b6fa-6ec69cab2378 secret 定义为与 client.cinder secret 一同使用
  4.  
  5. [root@controller ~]# virsh secret-list
  6. UUID 用量
  7. --------------------------------------------------------------------------------
  8. d448a6ee-60f3-42a3-b6fa-6ec69cab2378 ceph client.cinder secret
  9.  
  10. [root@controller ~]# virsh secret-undefine d448a6ee-60f3-42a3-b6fa-6ec69cab2378
  11. 已删除 secret d448a6ee-60f3-42a3-b6fa-6ec69cab2378
  12.  
  13. [root@controller ~]# virsh secret-list
  14. UUID 用量
  15. --------------------------------------------------------------------------------
  16.  
  17. [root@controller ceph]# virsh secret-define --file secret.xml
  18. 生成 secret 940f0485-e206-4b49-b878-dcd0cb9c70a4
  19.  
  20. [root@controller ~]# virsh secret-list
  21. UUID 用量
  22. --------------------------------------------------------------------------------
  23. 940f0485-e206-4b49-b878-dcd0cb9c70a4 ceph client.cinder secret
  24.  
  25. virsh secret-set-value --secret 940f0485-e206-4b49-b878-dcd0cb9c70a4 --base64 $(cat ./client.cinder.key)

10、配置Glance, 在所有的controller节点上做如下更改:

  1. vim /etc/glance/glance-api.conf
  1. [DEFAULT]
  2. default_store = rbd
  3. [cors]
  4. [cors.subdomain]
  5. [database]
  6. connection = mysql+pymysql://glance:GLANCE_DBPASS@controller/glance
  7. [glance_store]
  8. stores = rbd
  9. default_store = rbd
  10. rbd_store_pool = images
  11. rbd_store_user = glance
  12. rbd_store_ceph_conf = /etc/ceph/ceph.conf
  13. rbd_store_chunk_size = 8
  14. [image_format]
  15. [keystone_authtoken]
  16. auth_uri = http://controller:5000
  17. auth_url = http://controller:35357
  18. memcached_servers = controller:11211
  19. auth_type = password
  20. project_domain_name = default
  21. user_domain_name = default
  22. project_name = service
  23. username = glance
  24. password = glance
  25. [matchmaker_redis]
  26. [oslo_concurrency]
  27. [oslo_messaging_amqp]
  28. [oslo_messaging_kafka]
  29. [oslo_messaging_notifications]
  30. [oslo_messaging_rabbit]
  31. [oslo_messaging_zmq]
  32. [oslo_middleware]
  33. [oslo_policy]
  34. [paste_deploy]
  35. flavor = keystone
  36. [profiler]
  37. [store_type_location_strategy]
  38. [task]
  39. [taskflow_executor]

  在所有的controller节点上做如下更改:

  1. systemctl restart openstack-glance-api.service
  2. systemctl status openstack-glance-api.service

  ·创建image验证:

  1. [root@controller ~]# openstack image create "cirros" --file cirros-0.3.3-x86_64-disk.img.img --disk-format qcow2 --container-format bare --public
  2.  
  3. [root@controller ~]# rbd ls images
  4. 9ce5055e-4217-44b4-a237-e7b577a20dac
  5. **********有输出镜像说明成功了

11、配置 Cinder:

  1. vim /etc/cinder/cinder.conf
  1. [DEFAULT]
  2. my_ip = 192.168.11.3
  3. glance_api_servers = http://controller:9292
  4. auth_strategy = keystone
  5. enabled_backends = lvm,ceph
  6. state_path = /var/lib/cinder
  7. transport_url = rabbit://openstack:admin@controller
  8. [backend]
  9. [barbican]
  10. [brcd_fabric_example]
  11. [cisco_fabric_example]
  12. [coordination]
  13. [cors]
  14. [cors.subdomain]
  15. [database]
  16. connection = mysql+pymysql://cinder:CINDER_DBPASS@controller/cinder
  17. [fc-zone-manager]
  18. [healthcheck]
  19. [key_manager]
  20. [keystone_authtoken]
  21. auth_uri = http://controller:5000
  22. auth_url = http://controller:35357
  23. memcached_servers = controller:11211
  24. auth_type = password
  25. project_domain_name = default
  26. user_domain_name = default
  27. project_name = service
  28. username = cinder
  29. password = cinder
  30. [matchmaker_redis]
  31. [oslo_concurrency]
  32. lock_path = /var/lib/cinder/tmp
  33. [oslo_messaging_amqp]
  34. [oslo_messaging_kafka]
  35. [oslo_messaging_notifications]
  36. [oslo_messaging_rabbit]
  37. [oslo_messaging_zmq]
  38. [oslo_middleware]
  39. [oslo_policy]
  40. [oslo_reports]
  41. [oslo_versionedobjects]
  42. [profiler]
  43. [ssl]
  44. [lvm]
  45. volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
  46. volume_group = cinder-vg
  47. volumes_dir = $state_path/volumes
  48. iscsi_protocol = iscsi
  49. iscsi_helper = lioadm
  50. iscsi_ip_address = 192.168.11.5
  51. [ceph]
  52. volume_driver = cinder.volume.drivers.rbd.RBDDriver
  53. rbd_pool = volumes
  54. rbd_ceph_conf = /etc/ceph/ceph.conf
  55. rbd_flatten_volume_from_snapshot = false
  56. rbd_max_clone_depth = 5
  57. rbd_store_chunk_size = 4
  58. rados_connect_timeout = -1
  59. glance_api_version = 2
  60. rbd_user = cinder
  61. rbd_secret_uuid = 940f0485-e206-4b49-b878-dcd0cb9c70a4
  62. volume_backend_name=ceph

  重启cinder服务:

  1. systemctl restart openstack-cinder-api.service openstack-cinder-scheduler.service openstack-cinder-volume.service
  2. systemctl status openstack-cinder-api.service openstack-cinder-scheduler.service openstack-cinder-volume.service

  创建volume验证:

  1. [root@controller gfs]# rbd ls volumes
  2. volume-43b7c31d-a773-4604-8e4a-9ed78ec18996

12、配置Nova:

  1. vim /etc/nova/nova.conf
  1. [DEFAULT]
  2. my_ip=172.16.254.63
  3. use_neutron = True
  4. firewall_driver = nova.virt.firewall.NoopFirewallDriver
  5. enabled_apis=osapi_compute,metadata
  6. transport_url = rabbit://openstack:admin@controller
  7. [api]
  8. auth_strategy = keystone
  9. [api_database]
  10. connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova_api
  11. [barbican]
  12. [cache]
  13. [cells]
  14. [cinder]
  15. os_region_name = RegionOne
  16. [cloudpipe]
  17. [conductor]
  18. [console]
  19. [consoleauth]
  20. [cors]
  21. [cors.subdomain]
  22. [crypto]
  23. [database]
  24. connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova
  25. [ephemeral_storage_encryption]
  26. [filter_scheduler]
  27. [glance]
  28. api_servers = http://controller:9292
  29. [guestfs]
  30. [healthcheck]
  31. [hyperv]
  32. [image_file_url]
  33. [ironic]
  34. [key_manager]
  35. [keystone_authtoken]
  36. auth_uri = http://controller:5000
  37. auth_url = http://controller:35357
  38. memcached_servers = controller:11211
  39. auth_type = password
  40. project_domain_name = default
  41. user_domain_name = default
  42. project_name = service
  43. username = nova
  44. password = nova
  45. [libvirt]
  46. virt_type=qemu
  47. images_type = rbd
  48. images_rbd_pool = vms
  49. images_rbd_ceph_conf = /etc/ceph/ceph.conf
  50. rbd_user = cinder
  51. rbd_secret_uuid = 940f0485-e206-4b49-b878-dcd0cb9c70a4
  52. [matchmaker_redis]
  53. [metrics]
  54. [mks]
  55. [neutron]
  56. url = http://controller:9696
  57. auth_url = http://controller:35357
  58. auth_type = password
  59. project_domain_name = default
  60. user_domain_name = default
  61. region_name = RegionOne
  62. project_name = service
  63. username = neutron
  64. password = neutron
  65. service_metadata_proxy = true
  66. metadata_proxy_shared_secret = METADATA_SECRET
  67. [notifications]
  68. [osapi_v21]
  69. [oslo_concurrency]
  70. lock_path=/var/lib/nova/tmp
  71. [oslo_messaging_amqp]
  72. [oslo_messaging_kafka]
  73. [oslo_messaging_notifications]
  74. [oslo_messaging_rabbit]
  75. [oslo_messaging_zmq]
  76. [oslo_middleware]
  77. [oslo_policy]
  78. [pci]
  79. [placement]
  80. os_region_name = RegionOne
  81. auth_type = password
  82. auth_url = http://controller:35357/v3
  83. project_name = service
  84. project_domain_name = Default
  85. username = placement
  86. password = placement
  87. user_domain_name = Default
  88. [quota]
  89. [rdp]
  90. [remote_debug]
  91. [scheduler]
  92. [serial_console]
  93. [service_user]
  94. [spice]
  95. [ssl]
  96. [trusted_computing]
  97. [upgrade_levels]
  98. [vendordata_dynamic_auth]
  99. [vmware]
  100. [vnc]
  101. enabled=true
  102. vncserver_listen=$my_ip
  103. vncserver_proxyclient_address=$my_ip
  104. novncproxy_base_url = http://172.16.254.63:6080/vnc_auto.html
  105. [workarounds]
  106. [wsgi]
  107. [xenserver]
  108. [xvp]

  重启nova服务:

  1. systemctl restart openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-compute.service openstack-nova-cert.service
  2. systemctl status openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-compute.service openstack-nova-cert.service

  创建虚机验证:

分布式存储ceph---openstack对接ceph存储后端(4)的更多相关文章

  1. OpenStack 对接 Ceph 环境可以创建卷但不能挂载卷的问题

    问题 环境:Nova.Cinder.Glance 都对接了 Ceph RBD 后端存储. 以往的操作包括上传镜像.创建卷.挂载卷都是一切正常的,但突然出现了无法挂载卷的问题,而且还是因为 Ceph 客 ...

  2. 分布式存储ceph——(2)openstack对接ceph存储后端

    ceph对接openstack环境 一.使用rbd方式提供存储如下数据: (1)image:保存glanc中的image: (2)volume存储:保存cinder的volume:保存创建虚拟机时选择 ...

  3. OpenStack 对接 Ceph

    [TOC]   1. Openstack 与 Ceph 1.1. Ceph 简介 Ceph 是当前非常流行的开源分布式存储系统,具有高扩展性.高性能.高可靠性等优点,同时提供块存储服务(RBD).对象 ...

  4. OpenStack学习系列之十二:安装ceph并对接OpenStack

        Ceph 是一种为优秀的性能.可靠性和可扩展性而设计的统一的.分布式文件系统.Ceph 的统一体现在可以提供文件系统.块存储和对象存储,分布式体现在可以动态扩展.在国内一些公司的云环境中,通常 ...

  5. OpenStack集成ceph

    openstack组件集成ceph OpenStack集成ceph详细过程可以查看ceph官方文档:ceph document OpenStack Queens版本,1台控制节点controller, ...

  6. k8s对接ceph存储

    前提条件:已经部署好ceph集群 本次实验由于环境有限,ceph集群是部署在k8s的master节点上的 一.创建ceph存储池 在ceph集群的mon节点上执行以下命令: ceph osd pool ...

  7. 理解 OpenStack + Ceph (5):OpenStack 与 Ceph 之间的集成 [OpenStack Integration with Ceph]

    理解 OpenStack + Ceph 系列文章: (1)安装和部署 (2)Ceph RBD 接口和工具 (3)Ceph 物理和逻辑结构 (4)Ceph 的基础数据结构 (5)Ceph 与 OpenS ...

  8. 高可用OpenStack(Queen版)集群-14.Openstack集成Ceph准备

    参考文档: Install-guide:https://docs.openstack.org/install-guide/ OpenStack High Availability Guide:http ...

  9. OpenStack Cinder 与各种后端存储技术的集成叙述与实践

    先说下下loop设备 loop设备及losetup命令介绍 1. loop设备介绍 在类 UNIX 系统里,loop 设备是一种伪设备(pseudo-device),或者也可以说是仿真设备.它能使我们 ...

随机推荐

  1. 面试关于Spring循环依赖问题,我建议你这么答!

    写在前面 在关于Spring的面试中,我们经常会被问到一个问题:Spring是如何解决循环依赖的问题的. 这个问题算是关于Spring的一个高频面试题,因为如果不刻意研读,相信即使读过源码,面试者也不 ...

  2. CIE标准色度系统(上)

    一.颜色匹配 为了满足工业生产对颜色特性的定量化和标准化的需要,由国际照明委员会(CIE)的协调和指导下,先后提出CIE1931和CIE1964标准色度观察者光谱三刺激值,由此奠定了现代色度学基础. ...

  3. 请求转发(forward)和请求包含(include)的区别?

    请求包含的例子 第一个Servlet (DispatcherServlet) @Override protected void doGet(HttpServletRequest req, HttpSe ...

  4. ambari介绍及安装

    Ambari简介 Ambari概述 Apache Ambari是一种基于Web的工具,支持Apache Hadoop集群的创建.管理和监控.Ambari已支持大多数Hadoop组件,包括HDFS.Ma ...

  5. 太全了!Redis主从复制原理以及常见问题总结

    相信很多小伙伴都已经配置过主从复制,但是对于redis主从复制的工作流程和常见问题很多都没有深入的了解.这次给大家整理一份redis主从复制的全部知识点. 下方可视频观看,效果更佳 Redis实战精讲 ...

  6. BPM系统,工作流引擎,表单引擎常用30个功能与常见问题

    1.1:支持国际化 如果使用工具包的模式开发,支持国际化的工作由自己完成的. 如果使用Ccbpm 的前端,主要的功能页面已经支持, 后台的设置的页面全部中文,没有做支持国际化. 1.2:能单独部署,微 ...

  7. Sublime插件安装和使用

    Sublime插件安装和使用 插件安装的方式: 插件安装方式一:直接安装 下载插件安装包,然后把安装解压到packages目中,按成安装(菜单->首选项->浏览插件) 插件安装方法二:使用 ...

  8. try catch 用法

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. 获取中断描述符表IDT的信息

    <pre name="code" class="cpp">//GetIDT.h文件 #ifndef _WIN32_WINNT // Allow us ...

  10. Android的so注入( inject)和函数Hook(基于got表) - 支持arm和x86

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/53942648 前面深入学习了古河的Libinject注入Android进程,下面来 ...