Skip to main content
开放网络的先行者与推动者—星融元
加入我们技术支持(Support)  TEL:(+86)4000989811

配置指导:Ceph存储对接OpenStack开源云平台

Ceph存储对接OpenStack开源云平台

1 目标

       本文档使用Stein版OpenStack开源云平台与Nautilus版Ceph存储集群,实现OpenStack与Ceph的集成。

2 Ceph简介

Ceph是当前非常流行的开源分布式存储系统,具有高扩展性、高性能、高可靠性等优点,同时提供块存储服务(RDB)、对象存储服务(RGW)以及文件系统存储服务(CephFS)。目前也是OpenStack的主流后端存储,为OpenStack提供统一共享的存储服务。

Ceph的整体架构如下图所示:

图2-1:Ceph的整体架构

3 OpenStack简介

OpenStack是一个开源的云计算管理平台项目,是一系列软件开源项目的组合,而不是一个软件。由NASA(美国国家航空航天局)和Rackspace合作研发,以Apache许可证(Apache软件基金会发布的一个自由软件许可证)进行开源授权。我们可以使用OpenStack来管理一个数据中心的大量硬件资源,起初它主要有计算、存储、网络三大子项目,面向IaaS服务。发展至今,整个生态已经涉及到PaaS服务、SaaS服务和FaaS服务等层面。

OpenStack项目的整体框架如下图所示:

图3-1:OpenStack项目的整体框架

4 OpenStack集成Ceph做存储后端的优势

使用Ceph作为OpenStack后端存储,具有如下优点:

  1. 计算节点共享存储,可以保证实例运行时的健壮性,也可以实现各节点间实例的快速迁移;
  2. 统一平台提供多种类型存储,减轻部署复杂度与工作量,可在运行时灵活扩展;
  3. 利用COW特性,从而可以实现云平台秒级创建实例;

5 实验环境

5.1 系统与软件版本

  • CEPH:Nautilus 14.2.9(鹦鹉螺)稳定版;
  • OpenStack:Stein (April 2019);
  • 操作系统:Red Hat Enterprise Linux Server 7.6 (Maipo);

5.2 节点配置与部署架构

本次实验共使用了4台节点,OpenStack与Ceph已经提前部署完成,为节省资源进行了角色融合。其中,node-01、node-02、node-03为3个节点的N版Ceph存储集群,同时也是OpenStack的计算节点。在部署OpenStack时,考虑到现有3个节点的承载能力,新加入一台节点node-00作为OpenStack的云控节点。

各节点的配置与角色设置如下表所示:

主机名IP地址处理器内存硬盘节点角色
node-00192.168.2.80 管理网8C16G200G 系统盘云控节点
node-01192.168.2.81 管理网
192.168.20.81 存储网
8C32G100G 系统盘
200G*5 OSD
计算节点/存储节点
node-02192.168.2.82 管理网
192.168.20.82 存储网
8C32G100G 系统盘
200G*5 OSD
计算节点/存储节点
node-03192.168.2.83 管理网
192.168.20.83 存储网
8C32G100G 系统盘
200G*5 OSD
计算节点/存储节点

表5-1:节点配置与角色

部署架构如下图所示:

图5-1:部署架构

6 集成步骤

6.1 创建所需存储池

  • 为OpenStack创建所需的RBD存储池:
[root@node-01 ~]# ceph osd pool create volumes
[root@node-01 ~]# ceph osd pool create images
[root@node-01 ~]# ceph osd pool create vms
  • 初始化RBD存储池:
[root@node-01 ~]# rbd pool init volumes
[root@node-01 ~]# rbd pool init images
[root@node-01 ~]# rbd pool init vms
  • 设置存储池类型:
[root@node-01 ~]# ceph osd pool application enable volumes rbd
[root@node-01 ~]# ceph osd pool application enable images rbd
[root@node-01 ~]# ceph osd pool application enable vms rbd
  • 检查存储池创建结果:
[root@node-01 ~]# ceph osd pool ls
.rgw
.rgw.root
.rgw.control
.rgw.gc
.rgw.buckets
.rgw.buckets.index
.rgw.buckets.extra
.log
.intent-log
.usage
.users
.users.email
.users.swift
.users.uid
default.rgw.control
default.rgw.meta
default.rgw.log
default.rgw.buckets.index
default.rgw.buckets.data
default.rgw.buckets.non-ec
volumes
images
vms
CFS_Data
CFS_Metadata

6.2 配置Ceph客户端

  • 导出Ceph配置文件到OpenStack中的所有节点,对于本文档,仅需导出至云控节点(node-00):
[root@node-00 ~]# mkdir /etc/ceph/
[root@node-00 ~]# scp node-01:/etc/ceph/ceph.conf /etc/ceph/
  • 在云控节点上(node-00):
[root@node-00 ~]# yum install python-rbd
[root@node-00 ~]# yum install ceph-common

6.3 配置Glance使用Ceph RBD

  • 在Glance的控制节点中(node-00),修改 /etc/glance/glance-api.conf 配置文件:
[DEFAULT]
……
show_image_direct_url = True
show_multiple_locations = True
......
[glance_store]
stores = rbd,file
filesystem_store_datadir = /var/lib/glance/images
default_store = rbd
rbd_store_pool = images
rbd_store_user = admin
rbd_store_ceph_conf = /etc/ceph/ceph.conf
rbd_store_chunk_size = 8

6.4 配置Cinder使用Ceph RBD

  • 在所有存储节点中(node-00、node-01、node-02、node-03),修改 /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

6.5 配置Nova使用Ceph RBD

  • 在所有计算节点中,向配置文件/etc/nova/nova.conf中增加如下部分:
[libvirt]
images_type = rbd
images_rbd_pool = vms
images_rbd_ceph_conf = /etc/ceph/ceph.conf
disk_cachemodes="network=writeback"
inject_password = false
inject_key = false
inject_partition = -2

6.6 重启OpenStack服务使生效

  • 在云控节点中(node-00):
[root@node-00 ~]# systemctl restart openstack-glance-api.service
  • 在各个计算/存储节点中(node-01/node-02/node-03):
[root@node-01 ~]# systemctl restart openstack-nova-compute.service
[root@node-01 ~]# systemctl restart openstack-cinder-volume.service
[root@node-02 ~]# systemctl restart openstack-nova-compute.service
[root@node-02 ~]# systemctl restart openstack-cinder-volume.service
[root@node-03 ~]# systemctl restart openstack-nova-compute.service
[root@node-03 ~]# systemctl restart openstack-cinder-volume.service

7 结果验证

  • Glance:
图7-1:Glance服务集成Ceph效果验证
[root@node-00 ~]# rbd ls images
……
75978fcd-1f18-477b-8ce4-9ce7ac47b353
  • Cinder:
图7-2:Cinder服务集成Ceph效果验证
[root@node-00 ~]# rbd ls volumes
……
volume-62bc9247-8f4a-4604-990c-10c42c9ee48e
  • Nova:
图7-3:Nova服务集成Ceph效果验证
[root@node-00 ~]# rbd ls volumes
……
volume-c0387940-3bd9-47c5-942f-38e287722bfb

8 参考资料

【1】 官方文档:BLOCK DEVICES AND OPENSTACK
【2】 Glance&Cinder集成Ceph
【3】 Nova集成Ceph

如有其它问题,请填写右侧需求表单联系我们。www.asterfusion.com

A-lab-云网络, A-lab-部署验证

对星融元产品感兴趣?

立即联系!

返回顶部

© 星融元数据技术(苏州)有限公司 苏ICP备17070048号-2