APP下载

基于开源软件构建云存储平台*

2017-07-20王东旭陈方县

电信工程技术与标准化 2017年7期
关键词:副本一致性集群

王东旭,陈方县

(中移(苏州)软件技术有限公司/中国移动苏州研发中心,苏州 215163)

基于开源软件构建云存储平台*

王东旭,陈方县

(中移(苏州)软件技术有限公司/中国移动苏州研发中心,苏州 215163)

为了解决在使用开源软件构建云存储平台的过程中,可能会面临的各种实际问题,比如存储集群的高可用、超大规模节点集群部署和维护、跨多数据中心解决方案等等。我们采用了诸多技术手段,如增加前端数据缓存、预备份数据来提高处理效率;通过增强数据冗余检查、数据的一致性检测保障数据安全,加强了健康检查和告警模块、自动化部署、优化通知和轮询机制,增强了网络监测技术来实现便捷的运维管理。我们通过将所有存储组件都多活热备,各种相同功能的组件高可用分布到不同机架,来达到提高产品可用性的目的。

高可靠性;多数据中心;超大规模集群;部署和维护

1 引言

传统的存储设备,比如SAN和NAS设备,价格昂贵,且很多核心技术掌握在国外的某些大企业手中。同时,技术的不透明也会使得数据安全受到威胁。随着云计算技术的不断发展,计算虚拟化、网络虚拟化、存储虚拟化技术日趋成熟,x86服务器性能和稳定性不断提升,但同时价格却不断下降,这使得使用开源软件为基础,提供构建x86服务器上的整体云计算解决方案成为可能。开源云计算技术具有成本低、灵活性高等优势[1]。基于日益成熟的开源软件,借助于OpenStack架构来构建云存储平台日益成为一种简单、可行的解决方案。如果规划得当,这种云存储产品可以用于各类IT平台,为IT平台提供块存储(BC-EBS)、对象存储(BCOnest)、文件系统(BC-NFS)等存储服务,借助于网络、计算等技术,可以方便的构建私有云和公有云平台。

2 研究目标

随着时代发展,应信息时代数据爆炸的需求,存储数据和规模呈高量级增长。IDC等机构认为分布式存储将会很快取代传统,占据存储市场的主流。对分布式存储技术而言,存储集群的高可靠性、超大规模节点集群部署及其维护技术成为急需解决的问题;由于存储集群规模增大,数据存储和访问技术呈现多样化,因此跨多数据中心也成为研究目标之一。

3 研究内容

3.1 存储集群高可靠性

本文基于中国移动目前的实际项目和理论基础,采用大规模分布式的廉价x86服务器集群,一致性哈希快速定位用户数据技术,结合计算节点内部采用的本地缓存I/O加速技术,构建出核心数据存储能力层,以此实现块设备存储、对象存储和文件访问3种通用存储访问协议,与此同时,用户数据冗余、缓存、快照备份、I/O进程调度等方面,系统也会进行管理与技术优化。系统内所有存储节点通过高速以太网络互联,全部采用易扩展的对称设计,利用优化的数据一致性技术,能使单集群支持至少上千节点规模,存储对象的数量也至少上千亿。

随着集群规模的扩大,维护存储环境中节点间数据一致性将消耗大量资源,在大规模的存储环境中体现更为明显,这将导致节点规模受到限制,为了优化此问题,将数据一致性维护操作和数据读写操作做一个分离的机制,减少集群压力,从而有效扩大集群的规模。

云计算的基础架构大量使用了廉价的服务器集群,特别是x86架构的服务器,节点之间的互联网络一般也使用普遍的吉比特以太网[2]。网络瓶颈和网络资源的竞争或多或少会对虚机系统性能造成影响。如果物理节点出现故障,可能造成虚机内部的数据不一致或不可用问题。为了增加集群的可靠性,对系统的计算节点做了优化,众所周知,缓存系统是存储系统的重要组成部分[3],如图1所示,增加前端数据缓存设备和实时同步机制,可以有效的缓存虚机系统磁盘的I/O数据,当需要进行数据读取时,系统优先读取本地副本的数据,已获得较快的速度,数据写入稍微复杂一些,需要同时写入远程日志和本地副本,当两者都成功返回时便可认为写入成功[4],系统定期进行回刷数据机制,同步前端缓存和后端集中网络存储数据,从而满足了虚机的热迁移功能。通过测试,此数据缓存机制可以减少80%的网络I/O请求,降低了网络I/O的负载压力,对网络集群的扩展有了很大帮助,可以使集群增加更多的计算节点。

普通PC服务器和廉价磁盘也会影响系统的可靠性,如何保证系统在不可靠的硬件条件下能够伸缩或者扩展,使磁盘、节点和机架的多级数据可以自动的恢复并且重新分布,针对此问题,提出一致性哈希[5]的数据卷分片多副本[6]的分布和管理方法,大大提高了系统的可靠性。

系统数据的备份和恢复[7]已经被用户广泛使用,但是备份和恢复会降低系统的性能,如何保证数据既可以备份和恢复[8],又不影响系统的性能,此项目采用预备份设备的数据快速备份和数据冗余检查的方法,不但可以提高性能,又可以减少数据的冗余。

缓存数据分为热点数据和冷数据,热点数据会缓存到服务器的内部高速缓存设备中,但是有时会出现缓存数据不一致的问题,例如服务器掉电再重启,缓存的数据不能及时被保存到缓存设备中。为了保证数据可以及时恢复并对外提供服务,研究出了一个缓存数据一致性检测和保护的方法,保证数据的完整性。

采用上述的可靠性设计[9],系统的数据可靠性可达99.999999999%(11个9)的水平,在存储行业处于领先地位。以在国内某公司私有云环境搭建的一套环境为例,总共有28个标准机架,每个机架部署10个存储节点,一共有280个存储节点,采用三副本的机制均匀分布。数据的可靠性可以通过计算,得到99.999999998891%(10个9),除此之前,该系统在两台互备计算节点上添加了前端缓存设备,以及2个或4个(磁盘RAID1)副本,通过计算,可靠性可以达到99.9999999%(9个9)。结合整个系统的备份恢复机制,系统可靠性可以达到99.999999999%(11个9)的水平,在存储行业遥遥领先。

图1 增加前端缓存设备

3.2 跨多数据中心

利用存储集群划分、节点分布、供电冗余等技术,首先保证机架之间的存储高可用,然后通过异步数据远程复制和日志技术,实现异地多数据中心间的准实时数据同步,以及解决异地容灾问题。

系统如果要保证在单机、单机架故障时仍能对外不停的提供服务正常运行,可以通过把系统的所有组件都热备,并且组件HA节点分布到不同机架上的方法来解决,经测试,这种方法可使服务可用性可达99.95%以上。系统也提供一个健康检查的模块,定时启动之后,如果系统的副本减少,能自动修复副本的数量。通过网络检查通信事件,并比较各类通信信息集合事件发生的时间点变化,就可以检查远端服务器的性能和可用性。元数据一般保存在仲裁服务器中,集群管理服务会在本地保留一份元数据的Cache,如果要保证Cache和仲裁服务区保持一致,则需采用通知和轮询机制,通过仲裁服务区的元数据这一分布式服务框架来有效的管理集群。

针对跨数据中心的对象存储服务,该项目采用异地主备容灾的方案,对于容器对象异步远程复制技术,主节点对外提供服务的过程中,用户数据写入主节点之后,就会给用户返回写成功的消息,并且会有数据实时变化的日志信息。而备节点会实时与主节点进行比较,如果有不同的数据,就会把差异的数据及时拉回备节点,保证主备节点的数据实时同步。

3.3 超大规模节点集群部署和维护技术

超大规模节点集群的部署和维护技术已经成为云计算领域的一个难题,该项目通过利用自动化系统部署,针对分布式软件的插件化统一部署和主动式、被动式集中监控告警管理来解决这一大难题,如图2所示。

系统出现频繁告警的时候,会给网络和运维带来压力和负担,为系统设置一个告警上报功能,完善告警上报的流程,通过这种告警信息处理方法可以优化这样的问题。部署的过程有时会耗费很长时间,并且部署过程可能会遇到未知问题,针对此问题,对于部署过程中可能会遇到的一些问题及报错,要提前做好应对措施和规避方法,并且可以实现自动化的软件就进行自动化部署,部署后进行自动动态配置系统信息,无需用户再手动去配置,并且手动配置容易出错。虚机进行热迁移之后,数据的完整性和虚机状态的一致性也容易出现问题,为了提高虚机计算能力的整体可靠性和稳定性,在虚机迁移的源虚机中的迁移日志同步到目标虚机中去,如果报错会及时查看迁移日志。

该项目在国内某公司的私有云环境下,实现了云计算计算节点、存储节点和虚机的统一监控和管理。单套系统可以统一管理存储节点,集群规模达到了1 000台,计算节点3 000台,虚机近6万台,处于行业的领先地位。

4 总结及展望

随着云计算技术的不断发展,该项目打破了传统存储技术的缺陷,解决了投资巨额的问题,并且不断实践,打造存储技术的自主核心能力,实现了云计算领域领先水平的高可靠性服务、首创跨多数据中心的数据存储和访问技术以及国内率先实现超大规模节点集群部署和维护技术。为后续更先进、更可靠的云存储技术的发展打下了良好基础。

图2 各个模块的作用与方法

[1] 姜毅,王伟军,曹丽,等. 基于开源软件的私有云计算平台构建方法[J]. 电信科学, 2013,29(1):68-75.

[2] 陈康, 郑纬民. 云计算:系统实例与研究现状[J]. 软件学报, 2009,20(5):1337-1348.

[3] 贾博文, 张文军, 李小勇. 面向虚拟机的分布式块存储系统设计及实现[J]. Microcomputer Applications Vol.31,No.3,2015.

[4] 杨彧剑,林波. 分布式存储系统中一致性哈希算法的研究[J].电脑知识与技术:学术交流, 2011,07(22):5295-5296.

[5] 姚墨涵,谢红薇. 一致性哈希算法在分布式系统中的应用[J].电脑开发与应用, 2012,25(7):1-2.

[6] 刘田甜, 李超, 胡庆成, 等. 云环境下多副本管理综述[J]. 计算机研究与发展, 2011,48(s3):254-260.

[7] 张艳, 李舟军, 何德全. 灾难备份和恢复技术的现状与发展[J].计算机工程与科学, 2005,27(2):107-110.

[8] 凌宗虎, 李先国, 韩志勇. 远程复制系统数据一致性研究与实现[J]. 计算机应用, 2005,25(11):2638-2640.

[9] 王意洁, 孙伟东, 周松, 等. 云计算环境下的分布存储关键技术[J]. 软件学报,2012,23(4).

Building cloud storage platform based on open source software

WANG Dong-xu, CHEN Fang-xian
(China Mobile (Suzhou) Software Technology Co., Ltd./China Mobile Suzhou R & D Center, Suzhou 215163, China)

For a long time, the core technology of storage equipment, such as SAN and NAS, belongs to some large enterprises abroad, in order to break this situation, and get involved core storage technology, our team from China Mobile conducted in-depth research and extensive practice. Use open source software, such as Ceph, as a technical basis, engineers can be more convenient and quick to cut into the storage areas, which technology is believed not easy to master. This article is to solve the practical problems that may be faced in the process of building a cloud storage platform using open source software, for example, high availability of storage clusters, deployment and maintenance of ultra-large-scale nodes, cross-data center solutions, and so on. We have adopted a number of technical means, such as adding front-end data cache, pre-backup data to improve processing efficiency; by enhancing data redundancy checks, data consistency detection to protect our data,enhancing health check and alarm module, automated deployment, optimizing the notification and polling mechanism, and enhancing the network monitoring technology to achieve convenient operation and maintenance management. We are able to achieve the goal of improving product availability by distributing all the storage components in a variety of racks of the same function.

high reliability; cross-data centers;large scale cluster; deployment and maintenance techniques

TP393

A

1008-5599(2017)07-0010-04

2017-06-21

* 中国移动集团级一类科技创新成果,原成果名称为《大云弹性块存储系统BC-EBS》。

猜你喜欢

副本一致性集群
关注减污降碳协同的一致性和整体性
注重教、学、评一致性 提高一轮复习效率
IOl-master 700和Pentacam测量Kappa角一致性分析
海上小型无人机集群的反制装备需求与应对之策研究
面向流媒体基于蚁群的副本选择算法①
一种无人机集群发射回收装置的控制系统设计
Python与Spark集群在收费数据分析中的应用
勤快又呆萌的集群机器人
副本放置中的更新策略及算法*
基于事件触发的多智能体输入饱和一致性控制