APP下载

分布式存储系统CEPH研究与试用

2017-12-29梁坤荣中国邮政集团公司广东省信息技术局

数码世界 2017年7期
关键词:存储系统试用备份

梁坤荣 中国邮政集团公司广东省信息技术局

分布式存储系统CEPH研究与试用

梁坤荣 中国邮政集团公司广东省信息技术局

分布式存储系统通过软件定义存储,具有高可用、高扩展性、价格低廉等优点,正日益取代传统存储成为云计算的新宠。本文通过研究开源分布式存储系统CEPH的工作原理,试用并提出调优方案,尝试为数据中心使用分布式存储系统来降低企业IT成本、提高数据安全性提供方案。

分布式存储 开源 CEPH

1 分布式存储系统简介

分布式存储系统通过软件定义存储,将数据分散存储在多台独立的设备上,采用可扩展的系统结构,利用多台存储服务器分担存储负荷,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。

常见的分布式文件系统有GFS、HDFS、Ceph等。GFS是Google公司为了满足本公司需求而开发的专有分布式文件系统;HDFS是Hadoop分布式文件系统的简称,是为处理离线大数据设计的;Ceph是一个通用的实时存储系统,既可满足高IOPS的随机读写,又可满足高带宽的连续读写操作,既可为云计算提供对象存储,又可为传统设备提供块存储服务。

2 CEPH架构

2.1 基本架构

Ceph主要由核心服务RADOS以及块存取接口(RBD)、对象存取接口(RADOSGW)和文件系统接口(CEPH FS)组成。

RADOS作为底层服务实现集群数据的复制、恢复、回填、再均衡、集群状态监控等核心功能。Librados为客户端与底层RADOS通讯提供接口。RADOS GateWay、RBD的作用是在librados库的基础上提供抽象层次更高、更便于应用或客户端使用的上层接口。由于实验环境所限,本文以块存储(RBD)接口为例子对该系统原理加以详细阐述以及进行试验。

2.2 数据存储过程

无论使用哪种存储方式(对象、块、挂载),存储的数据都会被切分成对象(Objects)。每个对象映射到一个PG(归置组),PG通过CRUSH算法存储到不同的OSD节点上,而且每个PG会对应一个主OSD和若干从OSD,这样就避免了OSD损坏时PG找不到OSD的问题。

Ceph的读写操作采用主从模型,客户端要读写数据时,只能向对象所对应的主OSD节点发起请求。主节点在接受到写请求时,会同步的向从OSD中写入数据。当所有的OSD节点都写入完成后,主节点才会向客户端报告写入完成的信息,因此保证了主从节点数据的高度一致性。而读取的时候,客户端也只会向主osd节点发起读请求,并不会有类似于数据库中的读写分离的情况出现。

3 CEPH试用

为了以最低的成本来部署实验环境,我们利旧了淘汰的5台pc server,购买了一批2T的SATA硬盘。pc server的配置各异,CPU和内存容量尚未能满足CEPH的一些硬件要求,因此性能会稍差,但并不影响可用性的要求,后续可进行扩容优化。

3.1 安装

在互联网环境中安装CEPH非常简单,只要配置好yum源,使用ceph-deploy工具即可快速部署所有机器。如果是内网环境,则需要配置本地yum源,然后进行安装,本文不再详细叙述。

3.2 自定义CRUSH

CRUSH算法通过计算数据存储位置来确定如何存储和检索,使Ceph避免了单点故障、性能瓶颈、和伸缩的物理限制。

CRUSH图包含OSD列表、把设备汇聚为物理位置的“桶”列表、和指示CRUSH如何复制存储池里的数据的规则列表。我们把每个硬盘对应的OSD汇聚到所在的物理服务器上(HOST),再把5台HOST汇聚到ROOT。HOST和ROOT都是虚拟出来的桶列表,使CRUSH算法能有效的将每份数据分布到不同的主机中,保证当主机发生故障时只会损坏一份数据,而不会出现所有数据都在同一台主机中的现象。

3.3 系统概览

通过指令ceph-s可查看系统当前健康状态,还可以看到monitor情况、OSD概况、归置组PG概况以及系统总空间、已用空间等情况。由此指令看到我们的实验环境当前有3个monitor,25个OSD,总空间为46T,已用308G。但这个空间应该除以3,因为我们设置了3份数据,因此实际总空间只有46/3=15.3T,已用空间为308G/3=102.7G。

4 性能测试与调优

4.1 性能测试

为使测试结果更接近实际使用环境,我们使用了一台虚拟机,同时挂载HP DS4700存储和CEPH存储,这两款存储都使用2T容量的SATA硬盘。随后使用scp工具来读写同一个ORACLE数据文件,结果发现两款存储在该测试中的性能非常接近,DS4700性能稍微好一点,但基本上是一个级别的。

4.2 性能调优

4.2.1 满足基本硬件配置

实验环境中的设备未能满足CEPH的最低硬件要求,可通过提升硬件配置以提升性能。

4.2.2 使用SSD作为journal

Journal的作用是当有突发的大量写入操作时,先把一些零散的,随机的IO请求保存到缓存中进行合并,然后再统一向内核发起IO请求。这样做效率会比较高,但是journal的IO是非常密集的,所以可以使用SSD来单独存储journal文件以提高CEPH读写性能。

4.2.3 网络优化

CEPH使用以太网进行数据传输、故障点自我修复等,因此对网络带宽要求特别大。实验环境中仅使用一张千兆以太网网卡进行所有的数据传输,如用于生产环境,建议把CEPH的内部通讯和外部通讯分开,并且使用万兆网络,即可提高CEPH与外部传输数据的性能,减少故障修复的时间。

5 应用场景

CEPH分布式存储早已是企业级的产品,被大量的为亚马逊、Openstack等云平台提供对象存储。

实验环境中使用的是基于Vmware的虚拟化平台,无法使用对象存储,但是可以使用CEPH块存储来代替传统存储,为虚拟机提供块设备。在前期试用阶段,可作为备份存储使用,为OS备份、应用备份、数据备份等提供存储空间,解决备份存储的空间和成本问题。

[1]Ceph中国社区(著)《Ceph分布式存储实战》机械工业出版社2016年12月

猜你喜欢

存储系统试用备份
血管吻合试验台的研制及试用
分层式大数据存储系统缓存调度策略与性能优化
GYK-160G型和GYK-160X型轨道车运行控制设备通过试用评审
如何只备份有用数据而不备份垃圾数据
创建vSphere 备份任务
Windows10应用信息备份与恢复
天河超算存储系统在美创佳绩
基于Hadoop 的海量医药电商数据存储系统设计与开发
旧瓶装新酒天宫二号从备份变实验室
和肌肤说晚安