原标题:最佳实践:建设统一CEPH存储池

664656fb439caef9efa87a8731a614a6.png

本文规划设计搭建一套统一的 CloveStorage CEPH存储池,并与TECS、RedHat Openstack以及VMware成功对接,将数据存储在统一的CPEH池中,成功解决各个集成项目日益凸显存储空间不足的问题,每个集成DC都能按照商用存储规格部署,提升集成验证的效率和质量。

1.背景介绍

Ceph的存储类型是通过软件方式定义的,软件定义存储是一种数据存储方式,所有存储相关的控制工作都仅在相对于物理存储硬件的外部软件中,Ceph的优势,可以在廉价的存储设备上,不依赖特有的存储服务器,提供高性能,高可靠,高容量,易扩展的存储特性,提供海量存储使用场景。

Ceph存储通过CRUSH算法实现存储的高可用性和伸缩性,实现了传统存储设备无法绕开的高可用和去中心化。并通过对外API接口剥离的形式,对外提供对象存储、文件存储和块存储,底层通过RADOS实现存储的高可用性和伸缩性。CEPH凭借这些优势,在越来越多的数据中心选择CEPH当做存储资源。

2.统一CEPH存储池规划

统一CEPH存储池通过交换机或路由与TECS、RedHat OSP 以及VMware类型的云互通,为这些云提供存储服务,逻辑组网图如下。CEPH存储池由低成本大容量的架式服务器组成。

351b42ba735ff2b3888bd1d0b68e663c.png

Ceph云存储中心初期按照10台ZXCLOUD R5300,1台9904交换设备,1台5928规模进行规划,预留资源可供后续在扩容20台ZXCLOUD R5300存储设备。其中5928用于管理平面的数据交换,9904用于数据平面的交换。统一存储的逻辑图如下:

6967059735d493b90b94ab496be99905.png

管理平面:用于调试机登录服务器操作系统的管理口进行相关配置、web网管与存储节点的管理交互,本网络采用1G网口

数据平面:用于服务器存储节点间的交互,使用10G光口互连

公共业务平面:存储业务网络,负责客户端(TECS)与存储集群、MON与MON、MON与OSD间的交互,使用10G光口互连

硬件管理平面:用于与硬件服务器的PIM相连,便于对服务器进行操作维护,本网络采用1G网口。

3.统一CEPH存储池搭建

CEPH搭建过程大概可以分为4个步骤:获取软件安装版本;RAID设置;操作系统安装以及集群部署,其大概流程如下图所示。

b265f321c7b177b9c9e540ce2b359430.png

4.统一CEPH存储池应用实践

Ceph集群可以作为Openstack的存储后端,向Openstack提供卷存储空间,Openstack可以通过卷启动映像,也可以向运行中的VM添加额外的卷。Openstack 利用QEMU走librbd途径访问TECS Storage(Ceph)的块设备,如下图。

828b7747913f1c8fe44f556f02ea563b.png

CEPH跟TECS对接,大致上分3步:

1:打通TECS到CEPH的路由;具体为打通TECS的STORAGE平面到CEPH的数据平面的路由

2:在TECS上部署CEPH的客户端;

3:TECS连入CEPH。

c924b3b11a15288c9206f088595faddc.png

实践1:TECS与存储池对接

e9fd326add4502952b5f903203bf064a.png

4.1打通TECS到CEPH的路由

1)数据中心和9904的链接规划

CEPH使用9904交换机使用万兆交换板卡跟外部数据中心对接,和每个计算中心启用单独的VLAN连接,启用三层路由相互互通,为每一架的G14口链接到ODF光钎汇聚交换机,再从ODF光钎汇聚交换机链接到D4的9904交换机;目前CEPH这边光纤所有外部网卡到9904已经连接,端口为SHUTDOWN状态,VLAN配置信息如见下,对接的时候需要检查一下TECS所在机架上G14口的连接状态,通过这根光纤打通到9904的路由。

2)9904上配置到DC的路由

9904上VLAN配置,接口IP配置均按照上面表格已经完成,只需要在9904上面增加到具体每个DC的路由。

3)CEPH节点配置到TECS的路由

在CEPH的所有节点上配置到每个接入的TECS地址段的路由

4.2 在TECS上部署CEPH客户端

1)配置TECS到CEPH的路由

打通所有TECS节点(包括计算节点和控制节点)到CEPH的路由

以下160.254.0.x/24这个段是CEPH对外对接的网段,需要打通所有TECS节点(包括计算节点和控制节点)到CEPH的这个段的IP路由

2)部署CEPH的客户端

3)TECS连入CEPH

第一个OpenStack 集群对接Ceph集群的可以使用脚本进行操作,目前第一个TECS已经对接。

第二个OpenStack 集群对接同一个Ceph集群的步骤目前只能采用手工方式对接。

4.3在CEPH上创建资源池

4.4CEPH客户端配置

通过WEB界面创建Cinder、Nova、Glance所需的存储池,对应为 volumes2 ,vms2,images2 , ,根据需要选用前面创建的低性能,中性能,高性能的安全规则。

(1)在OpenStack主用控制节点创建Ceph客户端及存储池的鉴权,生成相应的key文件,并将生成的key文件拷贝到所有其他OpenStack节点

ceph auth get-or-create client.cinder2 mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=volumes2, allow rwx pool=vms2, allow rx pool=images2' -o /etc/ceph/ceph.client.cinder2.keyring

ceph auth get-or-create client.glance2 mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=images2' -o /etc/ceph/ceph.client.glance2.keyring

(2)在/etc/ceph下会生成ceph.client.glance2.keyring和ceph.client.cinder2.keyring,把这两个文件拷贝到其他所有节点

(3)在OpenStack控制节点修改密钥文件拥有者为对应的组件用户

(4)在运行nova-compute的节点上,将密钥添加到libvirt,删除临时的密钥文件

(5)在计算节点上执行uuidgen ,uuidgen只需要运行一次即可,所有涉及uuid的地方都共用这个生成的uuid

(6)在计算节点etc/ceph下编辑一个secret.xml文件

(7) 在计算节点执行

4.5修改OpenStack的配置文件

4.6验证对接有效性

b38142b4ec766cb76e50bdfb9f7f43ef.png

实践2:VMware与CEPH存储池对接

a8ec8b7cd7018648925fa9547e0e6578.png

1.创建vmk网卡,配置磁阵连接地址

1)选择一台主机,依次点击Manager――Networking――VMkernel adapter-Add network;

a33ea8aa96f9fe42049a9e5afb485bf0.png

2)选择VMkernel network adapter,单击Next按钮继续;

be6a8a5166b04245e663b55696b56799.png

3)选择Select an exting netwok,单击Browse按钮,选择之前创建的连接磁阵的端口组,然后点击Ok按钮;

a284b77201ee8aadbcc08b9a919fbe83.png

4)单击Next按钮继续;

fb4f4fcc8df8ad783b2c436b5d592595.png

5)单击Next按钮继续;

d45692bb6f3d4a086be2139520dc73e8.png

6)输入IP地址和掩码,单击Next继续;

30e95a5c0d3cb6e2fc161de3adab2a60.png

7)单击Finish按钮结束vmk网卡配置;

afc038e900d5384428963675137577ea.png

2.增加software iscsi adapter

1)选择一台主机,点击Storage,切换到存储管理界面,点击添加iscsi软件适配器:

9da6b2ddf9b7321cb97860fdfdb86abf.png

2)点击OK按钮完成software iscsi adapter添加。

3.Ceph集群配置部分

配置前提:Ceph 集群搭建完成,支持 iSCSI 挂载。

1) 创建一个 100G的块存储卷vmwarelun

53484769b152b24bdcfaaa7be96fbb6d.png

2) 创建三个客户端即主机vmware1、vmware2、vmware3

其中的IQN是Vmware上的主机IQN,查看方法:在 vSphere Center 页面,选择主机-配置-存储-存储适配器-iSCSI Software Adapter,查看 IQN

91bd922687f671ce7f0461878362d9cd.png

fb0c4e84008fd8f550407b617072a9fa.png

3) 创建映射组vmwareGroup

0667e0109ce7161ad9c0d625540a23dc.png

4) 将 vmwarelun 和三个客户端主机vmware1、vmware2、vmware3加入到同一映射组 vmwareGroup 中,此时 vmwarelun即为三台 ESXi 主机的共享存储。

e9668c6747e0e4c531ffbcb86910033b.png

a2e4092d337cbde345abe3a86d732f7b.png

5) 服务器启用iSCSI

2c9cf00e0fda42e03e1624461cc473ab.png

8837acbfb84d8a9bc15d5653963e6cb2.png

3fdcf9ad9782211eed0d08e79ba6fc1b.png

c9ca4fa1049d78994cc9c6f32509e894.png

6) 返回到映射组的界面,添加网关服务器

3939e0c1a59183a1f669b266b5f4d3ea.png

3b069c4f1c85712ec2dee5841ef55935.png

4.Vmware上连接Ceph集群

1) 添加Ceph集群的业务地址

在主机的manage页面,依次点击storage――Storage Adapters――Iscsi Software Adapter;然后在下面点击Targets,选择Dynamic Discovery动态发现,点击Add

7ed554a49513085dc7c9078b4247e7f2.png

添加Ceph集群的业务地址,注意不是上面2.6节的网关服务器地址,一定是集群的对外业务地址。

15afd56678dc7eb71107802915e62548.png

2) 重新扫描存储控制器

添加完端口的地址之后,点击按钮,重新扫描存储控制器,可以识别到Ceph上创建的卷:

9a29437282b6af1fda54ff0ea682a24a.png

点击OK扫描所有设备和卷;

d841579be82eaaf2a4aa992773f5ce49.png

可以在iscsi Software Adapters对应的device看到扫描到的磁盘设备。至此,对接完成。在VMware中创建虚机,验证存储的有效性。

72d847661e3766d5cf7a67f5182e2a12.png

0a3cb4a7cb6de8aae06848f75d22597d.png

实践3:RedHat OSP与存储池对接

48050ea23b4c0ca19d3458084877c9e5.png

RedHat OSP与统一存储池对接有两种方式:在控制节点和计算节点上安装的是自研CEPH客户端还是RedHat的客户端。两者应该都能进行部署,本文采用的是在计算节点上安装自研的客户端。对接流程与3章节相同,在此不进行详述。在安装客户端时可能会出现有些依赖包找不到,从而导致安装失败。通过将把Redhat iso镜像挂载到/mnt上,使用rpm -ivh xxx.rpm来安装依赖包。

CEPH支持对象存储,块存储和文件存储等多种存储方式。本文成功验证了自研的CEPH存储池为各个集成项目不同厂家的云环境提供存储服务。CEPH产品提供WEB界面的运营和运维,简单高效。

096441cd4b6da5e944fb979c4c58b608.png

责任编辑:

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐