openstack组件集成ceph

OpenStack集成ceph详细过程可以查看ceph官方文档:ceph document

OpenStack Queens版本,1台控制节点controller,1台计算节点compute;

1. 创建存储池

  1. Glance:Glance可以把镜像存储在Ceph上;

  2. Cinder:Cinder负责管理volume,把volume挂载给instance使用或者直接从volume启动instance。集成Ceph后可以让Cinder在Ceph上创建volume;

  3. Nova:在OpenStack Havana版本开始,Nova可以直接把instance的disk存放在Ceph上。

在Ceph集群上总共创建3个存储池,分别给Glance,Cinder和Nova使用;

  1. backups: 存放备份文件

2. 配置OpenStack的ceph客户端

2.1. 拷贝ceph.conf

把Ceph的配置文件/etc/ceph/ceph.conf拷贝到2台OpenStack节点上,控制节点和计算节点都需要,因为他们都要跟Ceph通信。

ssh {your-openstack-server} sudo tee /etc/ceph/ceph.conf </etc/ceph/ceph.conf

注意:

运行着 glance-apicinder-volumenova-computecinder-backup 的主机被当作 Ceph 客户端,它们都需要 ceph.conf 文件。

2.2. 安装软件包

在控制节点安装python-rbd和ceph软件包:

[root@controller   ~]# yum install -y python-rbd ceph

在计算节点安装ceph:

[root@compute   ~]# yum install -y ceph

注意: 如果不安装ceph,OpenStack在使用Ceph时会报找不到ceph命令。

2.3. 配置cephx认证

创建client.cinder用户给Cinder和Nova使用,cinder用户有存储池volumes、vms、images的所有权限

[root@ceph1 ~]# 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'

创建client.glance用户给Glance使用,glance用户有存储池images的所有权限

[root@ceph1 ~]# ceph auth get-or-create client.glance mon 'allow   r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=images'

生成2个用户的密钥文件,

[root@ceph1 ~]# ceph auth   get-or-create client.cinder > /etc/ceph/ceph.client.cinder.keyring

[root@ceph1 ~]# ceph auth   get-or-create client.glance > /etc/ceph/ceph.client.glance.keyring

然后把/etc/ceph/ceph.client.cinder.keyring和/etc/ceph/ceph.client.glance.keyring拷到controller的/etc/ceph下,并且修改文件权限:

[root@controller ~]# chown cinder:cinder   /etc/ceph/ceph.client.cinder.keyring

[root@controller ~]# chown   glance:glance /etc/ceph/ceph.client.glance.keyring

把/etc/ceph/ceph.client.cinder.keyring拷到compute的/etc/ceph下,并且修改文件权限:

[root@compute ~]# chown nova:nova   /etc/ceph/ceph.client.cinder.keyring

2.4. 配置compute节点的libvirt

在ceph上获取client.cinder的key

[root@ceph1 ~]# ceph auth get-key   client.cinder > client.cinder.key

把client.cinder.key拷到compute节点的/etc/ceph下,在compute节点上执行以下步骤:

[root@compute ~]# cat > secret.xml <<EOF
<secret ephemeral='no' private='no'> <uuid>e21a123a-31f8-425a-86db-7204c33a6161</uuid> <usage type='ceph'> <name>client.cinder secret</name> </usage> </secret>
EOF
[root@compute ~]# virsh secret-define --file secret.xml
[root@compute ~]# virsh secret-set-value --secret e21a123a-31f8-425a-86db-7204c33a6161 --base64 $(cat /etc/ceph/client.cinder.key) && rm client.cinder.key secret.xml

3. 配置Glance

修改glance-api.conf,

[DEFAULT]
......
default_store = rbd
[glance_store]
stores = rbd
rbd_store_chunk_size = 8
rbd_store_pool = images
rbd_store_user = glance
rbd_store_ceph_conf = /etc/ceph/ceph.conf

重启Glance服务,

[root@controller ~]# systemctl restart   openstack-glance-api openstack-glance-registry

4. 配置Cinder

修改cinder.conf

[DEFAULT]
......
enabled_backends = ceph
[ceph]
rbd_pool = volumes
rbd_user = cinder
rbd_ceph_conf = /etc/ceph/ceph.conf
rbd_flatten_volume_from_snapshot = false
rbd_secret_uuid = e21a123a-31f8-425a-86db-7204c33a6161
rbd_max_clone_depth = 5
rbd_store_chunk_size = 4
rados_connect_timeout = -1
volume_driver = cinder.volume.drivers.rbd.RBDDriver
volume_backend_name = ceph

重启Cinder服务,

[root@controller   ~]# systemctl restart openstack-cinder-api openstack-cinder-volume

5. 配置Nova

修改compute节点的nova.conf,

[libvirt]
virt_type=kvm
inject_password=false
inject_key=false
inject_partition=-2
disk_cachemodes = "network=writeback"
images_type=rbd
images_rbd_pool=vms
images_rbd_ceph_conf = /etc/ceph/ceph.conf
hw_disk_discard=unmap
rbd_user=cinder
rbd_secret_uuid=e21a123a-31f8-425a-86db-7204c33a6161

重启nova-compute服务,

[root@compute ~]# systemctl restart   openstack-nova-compute

6. 验证

创建测试镜像

[root@controller ~]# wget http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img
#Glance以Ceph RBD为后端存储时只支持raw格式,不是raw格式创建实例时会出错
[root@controller ~]# qemu-img convert -f qcow2 -O raw cirros-0.4.0-x86_64-disk.img cirros-0.4.0-x86_64-disk.raw
[root@controller ~]# openstack image create "cirros" --file cirros-0.4.0-x86_64-disk.raw --disk-format raw --container-format bare --public

有两种在Ceph上启动实例的方式:

  1. 以镜像为基础创建可启动的卷,然后启动实例时选择boot-from-volume,选择此卷;

  2. 直接使用镜像创建实例,这种用法是Havana版本后才支持的。

创建实例

​ 测试

7. 总结

OpenStack集成ceph,作为cinder、nova、glance的后端存储,整体过程:

(1)搭建ceph集群,在Ceph集群上总共创建4个存储池,分别给Glance,Cinder,Nova和backup使用

(2)将Ceph的配置文件/etc/ceph/ceph.conf拷贝到2台OpenStack节点,以便节点可以和ceph集群进行通信,运行着 glance-apicinder-volumenova-computecinder-backup 的主机被当作 Ceph 客户端,它们都需要 ceph.conf 文件。

(3)在OpenStack中配置ceph客户端

(4)修改Glance的配置文件,支持ceph后端存储

(5)修改Cinder的配置文件,支持ceph后端存储

(6)修改Nova的配置文件,支持ceph后端存储

上述过程完成后,即可将OpenStack的所有存储工作交给ceph来管理,在OpenStack数据的容灾备份方面即有ceph来接管。

具体实现OpenStack数据容灾备份备份,可参考博文:ceph中rbd的备份和恢复

文章参考:OpenStack集成ceph

OpenStack集成ceph的更多相关文章

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

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

  2. openstack高可用集群17-openstack集成Ceph准备

    Openstack集成Ceph准备 Openstack环境中,数据存储可分为临时性存储与永久性存储. 临时性存储:主要由本地文件系统提供,并主要用于nova虚拟机的本地系统与临时数据盘,以及存储gla ...

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

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

  4. 高可用OpenStack(Queen版)集群-16.Nova集成Ceph

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

  5. 高可用OpenStack(Queen版)集群-15.Glance&Cinder集成Ceph

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

  6. OpenStack 对接 Ceph

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

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

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

  8. OpenStack集成Docker

    声明:绝对原创,欢迎转载,但请标明出处,谢谢! 最近在做openstack与Docker的集成工作,走了不少弯路,遇到不少问题,不过最终搭建成功了.现在将过程分享出来,以供参考. 一.环境介绍 1.软 ...

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

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

随机推荐

  1. java编写基于netty的RPC框架

    一 简单概念 RPC:(Remote Procedure Call),远程调用过程,是通过网络调用远程计算机的进程中某个方法,从而获取到想要的数据,过程如同调用本地的方法一样. 阻塞IO:当阻塞I/O ...

  2. 数据结构(三十四)最短路径(Dijkstra、Floyd)

    一.最短路径的定义 在网图和非网图中,最短路径的含义是不同的.由于非网图没有边上的权值,所谓的最短路径,其实就是指两顶点之间经过的边数最少的路径:而对于网图来说,最短路径是指两顶点之间经过的边上权值之 ...

  3. 我发现了Unity3D的2D Light Renderer, 随后就把它抄了过来

    . 前几个月,偶然在群里看到有人讨论Unity3D光照,于是我又萌生了一个新的目标----把它抄过来! . 众所周知,3D渲染的整个流水线都跟光照密不可分,相关的技术更是数不甚数,而2D游戏的光照通常 ...

  4. spring源码学习(二)

    本篇文章,来介绍finishBeanFactoryInitialization(beanFactory);这个方法:这个方法主要是完成bean的实例化,invokeBeanFactoryPostPro ...

  5. Gitlab在Centos7上的安装

    一 官网说明 安装步骤:https://about.gitlab.com/install/#centos-7 安装说明:本文只是用来给微服务当配置中心,只是较浅的记录一下安装步骤,后面会详细讲解及在d ...

  6. 【重构】AndroidStudio中代码重构菜单Refactor功能详解

    代码重构几乎是每个程序员在软件开发中必须要不断去做的事情,以此来不断提高代码的质量.Android Stido(以下简称AS)以其强大的功能,成为当下Android开发工程师最受欢迎的开发工具,也是A ...

  7. Java 8 - 行为参数化

    前言: 以下内容来源于java8实战一书,我将里面学习的内容做一个整理,方便没空读书的小伙伴快速入门实战java8 正文: 假设一个果农收获了一园的苹果,他需要你根据他的条件筛选出满意的苹果 首先我们 ...

  8. 在虚拟机中使用DHCP动态管理主机地址

    小知识 DHCP协议服务能够自动化的管理局域网内的主机IP地址,有效的提升IP地址使用率,提高配置效率,减少管理与维护成本.简而言之,就是ip地址分配. *****五星重点 所需要的服务:dhcp 下 ...

  9. 程序员这十个java题你都会吗?

    前言 不论你是职场新人还是步入职场N年的职场新人大哥大~当然这个N<3~,我能担保你答不对这十个题~不要问我为什么这么自信~,这些个题还是"有水平"的javase的基础题,传 ...

  10. [考试反思]0924csp-s模拟测试51:破碎

    总参赛人数:15 有点菜. 不知道是撞了什么大运没有滚出A层. 但是一回到A层就暴露出了一个大问题:码速. 不是调试速度,,就是纯粹码的速度... 边讲考试状态边说吧... 上来肝T1.一看,是个换根 ...