分布式存储ceph---openstack对接ceph存储后端(4)
ceph对接openstack环境
一、使用RBD方式提供存储,如下数据:
1、image:保存glance中的image
2、volume存储:保存cinder的volume;保存创建虚拟机时选择创建新卷
3、vms的存储:保存创建虚拟机时不选择创建新卷
二、实施步骤
1、客户端也要有cent用户
- useradd cent && echo "123" | passwd --stdin cent
- echo -e 'Defaults:cent !requiretty\ncent ALL = (root) NOPASSWD:ALL' | tee /etc/sudoers.d/ceph
- chmod 440 /etc/sudoers.d/ceph
2、openstack要用ceph的节点(比如compute-node和storage-node)安装下载的软件包:
- yum localinstall ./* -y
或者:每个节点安装 clients(要访问ceph集群的节点):
- yum install python-rbd
- yum install ceph-common
- 如果先采用上面的方式安装客户端,其实这两个包在rpm包中早已经安装过了
3、部署节点上执行,为openstack节点安装ceph:
- ceph-deploy install controller
- ceph-deploy admin controller
4、客户端执行
- sudo chmod 644 /etc/ceph/ceph.client.admin.keyring
5、create pools,只需在一个ceph节点上操作即可:
- ceph osd pool create images 1024
- ceph osd pool create vms 1024
- ceph osd pool create volumes 1024
显示pool的状态
- ceph osd lspools
6、在ceph集群中,创建glance和cinder用户, 只需在一个ceph节点上操作即可:
- 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 mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=volumes, allow rwx pool=vms, allow rx pool=images'
- nova使用cinder用户,就不单独创建了
7、拷贝ceph-ring, 只需在一个ceph节点上操作即可:
- ceph auth get-or-create client.glance > /etc/ceph/ceph.client.glance.keyring
- 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节点即可 )
- [root@yunwei ceph]# ls
- ceph.client.admin.keyring ceph.client.cinder.keyring ceph.client.glance.keyring ceph.conf rbdmap tmpR3uL7W
- [root@yunwei ceph]#
- [root@yunwei ceph]# scp ceph.client.glance.keyring ceph.client.cinder.keyring controller:/etc/ceph/
8、更改文件的权限(所有客户端节点均执行)
- chown glance:glance /etc/ceph/ceph.client.glance.keyring
- chown cinder:cinder /etc/ceph/ceph.client.cinder.keyring
9、更改libvirt权限(只需在nova-compute节点上操作即可,每个计算节点都做)
- uuidgen
- 940f0485-e206-4b49-b878-dcd0cb9c70a4
在/etc/ceph/目录下(在什么目录没有影响,放到/etc/ceph目录方便管理):
- cat > secret.xml <<EOF
- <secret ephemeral='no' private='no'>
- <uuid>940f0485-e206-4b49-b878-dcd0cb9c70a4</uuid>
- <usage type='ceph'>
- <name>client.cinder secret</name>
- </usage>
- </secret>
- EOF
将 secret.xml 拷贝到所有compute节点,并执行::
- virsh secret-define --file secret.xml
- ceph auth get-key client.cinder > ./client.cinder.key
- 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
如遇到如下错误:
- [root@controller ceph]# virsh secret-define --file secret.xml
- 错误:使用 secret.xml 设定属性失败
- 错误:internal error: 已将 UUID 为d448a6ee-60f3-42a3-b6fa-6ec69cab2378 的 secret 定义为与 client.cinder secret 一同使用
- [root@controller ~]# virsh secret-list
- UUID 用量
- --------------------------------------------------------------------------------
- d448a6ee-60f3-42a3-b6fa-6ec69cab2378 ceph client.cinder secret
- [root@controller ~]# virsh secret-undefine d448a6ee-60f3-42a3-b6fa-6ec69cab2378
- 已删除 secret d448a6ee-60f3-42a3-b6fa-6ec69cab2378
- [root@controller ~]# virsh secret-list
- UUID 用量
- --------------------------------------------------------------------------------
- [root@controller ceph]# virsh secret-define --file secret.xml
- 生成 secret 940f0485-e206-4b49-b878-dcd0cb9c70a4
- [root@controller ~]# virsh secret-list
- UUID 用量
- --------------------------------------------------------------------------------
- 940f0485-e206-4b49-b878-dcd0cb9c70a4 ceph client.cinder secret
- virsh secret-set-value --secret 940f0485-e206-4b49-b878-dcd0cb9c70a4 --base64 $(cat ./client.cinder.key)
10、配置Glance, 在所有的controller节点上做如下更改:
- vim /etc/glance/glance-api.conf
- [DEFAULT]
- default_store = rbd
- [cors]
- [cors.subdomain]
- [database]
- connection = mysql+pymysql://glance:GLANCE_DBPASS@controller/glance
- [glance_store]
- stores = rbd
- default_store = rbd
- rbd_store_pool = images
- rbd_store_user = glance
- rbd_store_ceph_conf = /etc/ceph/ceph.conf
- rbd_store_chunk_size = 8
- [image_format]
- [keystone_authtoken]
- auth_uri = http://controller:5000
- auth_url = http://controller:35357
- memcached_servers = controller:11211
- auth_type = password
- project_domain_name = default
- user_domain_name = default
- project_name = service
- username = glance
- password = glance
- [matchmaker_redis]
- [oslo_concurrency]
- [oslo_messaging_amqp]
- [oslo_messaging_kafka]
- [oslo_messaging_notifications]
- [oslo_messaging_rabbit]
- [oslo_messaging_zmq]
- [oslo_middleware]
- [oslo_policy]
- [paste_deploy]
- flavor = keystone
- [profiler]
- [store_type_location_strategy]
- [task]
- [taskflow_executor]
在所有的controller节点上做如下更改:
- systemctl restart openstack-glance-api.service
- systemctl status openstack-glance-api.service
·创建image验证:
- [root@controller ~]# openstack image create "cirros" --file cirros-0.3.3-x86_64-disk.img.img --disk-format qcow2 --container-format bare --public
- [root@controller ~]# rbd ls images
- 9ce5055e-4217-44b4-a237-e7b577a20dac
- **********有输出镜像说明成功了
11、配置 Cinder:
- vim /etc/cinder/cinder.conf
- [DEFAULT]
- my_ip = 192.168.11.3
- glance_api_servers = http://controller:9292
- auth_strategy = keystone
- enabled_backends = lvm,ceph
- state_path = /var/lib/cinder
- transport_url = rabbit://openstack:admin@controller
- [backend]
- [barbican]
- [brcd_fabric_example]
- [cisco_fabric_example]
- [coordination]
- [cors]
- [cors.subdomain]
- [database]
- connection = mysql+pymysql://cinder:CINDER_DBPASS@controller/cinder
- [fc-zone-manager]
- [healthcheck]
- [key_manager]
- [keystone_authtoken]
- auth_uri = http://controller:5000
- auth_url = http://controller:35357
- memcached_servers = controller:11211
- auth_type = password
- project_domain_name = default
- user_domain_name = default
- project_name = service
- username = cinder
- password = cinder
- [matchmaker_redis]
- [oslo_concurrency]
- lock_path = /var/lib/cinder/tmp
- [oslo_messaging_amqp]
- [oslo_messaging_kafka]
- [oslo_messaging_notifications]
- [oslo_messaging_rabbit]
- [oslo_messaging_zmq]
- [oslo_middleware]
- [oslo_policy]
- [oslo_reports]
- [oslo_versionedobjects]
- [profiler]
- [ssl]
- [lvm]
- volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
- volume_group = cinder-vg
- volumes_dir = $state_path/volumes
- iscsi_protocol = iscsi
- iscsi_helper = lioadm
- iscsi_ip_address = 192.168.11.5
- [ceph]
- 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 = 940f0485-e206-4b49-b878-dcd0cb9c70a4
- volume_backend_name=ceph
重启cinder服务:
- systemctl restart openstack-cinder-api.service openstack-cinder-scheduler.service openstack-cinder-volume.service
- systemctl status openstack-cinder-api.service openstack-cinder-scheduler.service openstack-cinder-volume.service
创建volume验证:
- [root@controller gfs]# rbd ls volumes
- volume-43b7c31d-a773-4604-8e4a-9ed78ec18996
12、配置Nova:
- vim /etc/nova/nova.conf
- [DEFAULT]
- my_ip=172.16.254.63
- use_neutron = True
- firewall_driver = nova.virt.firewall.NoopFirewallDriver
- enabled_apis=osapi_compute,metadata
- transport_url = rabbit://openstack:admin@controller
- [api]
- auth_strategy = keystone
- [api_database]
- connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova_api
- [barbican]
- [cache]
- [cells]
- [cinder]
- os_region_name = RegionOne
- [cloudpipe]
- [conductor]
- [console]
- [consoleauth]
- [cors]
- [cors.subdomain]
- [crypto]
- [database]
- connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova
- [ephemeral_storage_encryption]
- [filter_scheduler]
- [glance]
- api_servers = http://controller:9292
- [guestfs]
- [healthcheck]
- [hyperv]
- [image_file_url]
- [ironic]
- [key_manager]
- [keystone_authtoken]
- auth_uri = http://controller:5000
- auth_url = http://controller:35357
- memcached_servers = controller:11211
- auth_type = password
- project_domain_name = default
- user_domain_name = default
- project_name = service
- username = nova
- password = nova
- [libvirt]
- virt_type=qemu
- images_type = rbd
- images_rbd_pool = vms
- images_rbd_ceph_conf = /etc/ceph/ceph.conf
- rbd_user = cinder
- rbd_secret_uuid = 940f0485-e206-4b49-b878-dcd0cb9c70a4
- [matchmaker_redis]
- [metrics]
- [mks]
- [neutron]
- url = http://controller:9696
- auth_url = http://controller:35357
- auth_type = password
- project_domain_name = default
- user_domain_name = default
- region_name = RegionOne
- project_name = service
- username = neutron
- password = neutron
- service_metadata_proxy = true
- metadata_proxy_shared_secret = METADATA_SECRET
- [notifications]
- [osapi_v21]
- [oslo_concurrency]
- lock_path=/var/lib/nova/tmp
- [oslo_messaging_amqp]
- [oslo_messaging_kafka]
- [oslo_messaging_notifications]
- [oslo_messaging_rabbit]
- [oslo_messaging_zmq]
- [oslo_middleware]
- [oslo_policy]
- [pci]
- [placement]
- os_region_name = RegionOne
- auth_type = password
- auth_url = http://controller:35357/v3
- project_name = service
- project_domain_name = Default
- username = placement
- password = placement
- user_domain_name = Default
- [quota]
- [rdp]
- [remote_debug]
- [scheduler]
- [serial_console]
- [service_user]
- [spice]
- [ssl]
- [trusted_computing]
- [upgrade_levels]
- [vendordata_dynamic_auth]
- [vmware]
- [vnc]
- enabled=true
- vncserver_listen=$my_ip
- vncserver_proxyclient_address=$my_ip
- novncproxy_base_url = http://172.16.254.63:6080/vnc_auto.html
- [workarounds]
- [wsgi]
- [xenserver]
- [xvp]
重启nova服务:
- systemctl restart openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-compute.service openstack-nova-cert.service
- 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)的更多相关文章
- OpenStack 对接 Ceph 环境可以创建卷但不能挂载卷的问题
问题 环境:Nova.Cinder.Glance 都对接了 Ceph RBD 后端存储. 以往的操作包括上传镜像.创建卷.挂载卷都是一切正常的,但突然出现了无法挂载卷的问题,而且还是因为 Ceph 客 ...
- 分布式存储ceph——(2)openstack对接ceph存储后端
ceph对接openstack环境 一.使用rbd方式提供存储如下数据: (1)image:保存glanc中的image: (2)volume存储:保存cinder的volume:保存创建虚拟机时选择 ...
- OpenStack 对接 Ceph
[TOC] 1. Openstack 与 Ceph 1.1. Ceph 简介 Ceph 是当前非常流行的开源分布式存储系统,具有高扩展性.高性能.高可靠性等优点,同时提供块存储服务(RBD).对象 ...
- OpenStack学习系列之十二:安装ceph并对接OpenStack
Ceph 是一种为优秀的性能.可靠性和可扩展性而设计的统一的.分布式文件系统.Ceph 的统一体现在可以提供文件系统.块存储和对象存储,分布式体现在可以动态扩展.在国内一些公司的云环境中,通常 ...
- OpenStack集成ceph
openstack组件集成ceph OpenStack集成ceph详细过程可以查看ceph官方文档:ceph document OpenStack Queens版本,1台控制节点controller, ...
- k8s对接ceph存储
前提条件:已经部署好ceph集群 本次实验由于环境有限,ceph集群是部署在k8s的master节点上的 一.创建ceph存储池 在ceph集群的mon节点上执行以下命令: ceph osd pool ...
- 理解 OpenStack + Ceph (5):OpenStack 与 Ceph 之间的集成 [OpenStack Integration with Ceph]
理解 OpenStack + Ceph 系列文章: (1)安装和部署 (2)Ceph RBD 接口和工具 (3)Ceph 物理和逻辑结构 (4)Ceph 的基础数据结构 (5)Ceph 与 OpenS ...
- 高可用OpenStack(Queen版)集群-14.Openstack集成Ceph准备
参考文档: Install-guide:https://docs.openstack.org/install-guide/ OpenStack High Availability Guide:http ...
- OpenStack Cinder 与各种后端存储技术的集成叙述与实践
先说下下loop设备 loop设备及losetup命令介绍 1. loop设备介绍 在类 UNIX 系统里,loop 设备是一种伪设备(pseudo-device),或者也可以说是仿真设备.它能使我们 ...
随机推荐
- 面试关于Spring循环依赖问题,我建议你这么答!
写在前面 在关于Spring的面试中,我们经常会被问到一个问题:Spring是如何解决循环依赖的问题的. 这个问题算是关于Spring的一个高频面试题,因为如果不刻意研读,相信即使读过源码,面试者也不 ...
- CIE标准色度系统(上)
一.颜色匹配 为了满足工业生产对颜色特性的定量化和标准化的需要,由国际照明委员会(CIE)的协调和指导下,先后提出CIE1931和CIE1964标准色度观察者光谱三刺激值,由此奠定了现代色度学基础. ...
- 请求转发(forward)和请求包含(include)的区别?
请求包含的例子 第一个Servlet (DispatcherServlet) @Override protected void doGet(HttpServletRequest req, HttpSe ...
- ambari介绍及安装
Ambari简介 Ambari概述 Apache Ambari是一种基于Web的工具,支持Apache Hadoop集群的创建.管理和监控.Ambari已支持大多数Hadoop组件,包括HDFS.Ma ...
- 太全了!Redis主从复制原理以及常见问题总结
相信很多小伙伴都已经配置过主从复制,但是对于redis主从复制的工作流程和常见问题很多都没有深入的了解.这次给大家整理一份redis主从复制的全部知识点. 下方可视频观看,效果更佳 Redis实战精讲 ...
- BPM系统,工作流引擎,表单引擎常用30个功能与常见问题
1.1:支持国际化 如果使用工具包的模式开发,支持国际化的工作由自己完成的. 如果使用Ccbpm 的前端,主要的功能页面已经支持, 后台的设置的页面全部中文,没有做支持国际化. 1.2:能单独部署,微 ...
- Sublime插件安装和使用
Sublime插件安装和使用 插件安装的方式: 插件安装方式一:直接安装 下载插件安装包,然后把安装解压到packages目中,按成安装(菜单->首选项->浏览插件) 插件安装方法二:使用 ...
- try catch 用法
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 获取中断描述符表IDT的信息
<pre name="code" class="cpp">//GetIDT.h文件 #ifndef _WIN32_WINNT // Allow us ...
- Android的so注入( inject)和函数Hook(基于got表) - 支持arm和x86
本文博客地址:http://blog.csdn.net/qq1084283172/article/details/53942648 前面深入学习了古河的Libinject注入Android进程,下面来 ...