[黄宇民 庄一嵘 周晓燕]
基于CEPH的CDN源站系统设计与应用
[黄宇民 庄一嵘 周晓燕]
摘要
文章以CEPH开源分布式文件系统为基础,利用其提供的系统接口设计实现了基于CEPH的CDN源站系统,并通过实际的业务流程和相关测试验证了设计的可行性。
关键词:分布式文件系统 存储系统 CEPH CDN源站
黄宇民
男,毕业于五邑大学,本科学位,通信工程专业,现就职于越亮传奇科技股份有限公司,从事CDN系统及其相关建设工作半年。
庄一嵘
中国电信股份有限公司广东研究院。
周晓燕
越亮传奇科技股份有限公司。
随着科技的逐渐发展,互联网上的数据存储量出现了快速的增长。根据数据显示,近年来Internet产生的信息量比信息时代之前信息量的总和还要多。传统的数据存储方式是依靠单台性能相对较高的物理机器作为存储,其成本高,效率低,数据容易丢失,如今已经无法满足客户和企业与日俱增的存储需求。考虑到容量的利用率,价格的合理性和数据的安全性等因素,云存储技术应运而生。
云存储技术主要综合利用了存储应用、网格技术和分布式文件系统等功能,利用对象存储,通过应用软件将网络中不同类型的存储设备集合起来,共同对外提供存储和访问功能。本课题以当前云计算及云存储在企业间广泛应用为背景,提出了基于CEPH的CDN源站系统的设计与应用。本文目标是设计出具有强一致性和容错性,能够组成集群并替代传统存储设备的存储方案,实现CDN源站系统的数据共享,故障自恢复,高性能低损耗,高扩展性等。
2.1CDN源站系统需求
CDN回源服务器就是代替客户源站,将源站的内容注入至回源服务器节点中。当用户请求该内容需要回源站获取时,CDN节点直接向回源服务器获取内容,从而有效解决了CDN节点向源站点获取内容时产生网络距离、带宽和路由器转换过程中的技术延迟问题,提高了从源站点获取内容的速度,改善用户体验,增强用户满意度和粘合度。
(1)文件系统需求:系统需要具备高性能、低延时特性,满足大小文件存储传输,文件系统数据快速共享。同时要求达到I/O读写速度高,容错性强,高一致性等效果。
(2)资源上传与分发需求:数据上传需要满足在源站系统内达到快速共享数据的效果,实现延时小,冗余低,读写效率高等效果;web站点分发不仅需要及时同步来自源站系统的数据,而且需要及时响应用户的请求,提高用户访问质量。
2.2主流分布式文件系统选型分析
传统文件系统缺乏强一致性和容错性,单机情况下,难以解决由于系统故障、网络中断、硬盘损坏等造成的问题。组成的集群,各个节点的数据是独立非共享的,难以实现高效的分布式效果。基于目前的需求,可考虑采取hadoop、CEPH、openstack、FastDFS等存储方案,具体描述如下:
(1)Hadoop文件系统
Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件上的分布式文件系统。它和现有的分布式文件系统有很多共同点。但同时,它和其他的分布式文件系统的区别也是很明显的。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用[1]。HDFS是单Master的,所有的对文件的请求都要经过它,当请求多时,肯定会有延时。同时。Hadoop不适合大量小文件的传输。
(2)OpenStack文件系统
OpenStack是一个开源软件,它提供了一个部署云的平台。为虚拟计算或存储服务的公有/私有云,提供可扩展的、灵活的云计算。它使用普通的服务器来构建冗余的、可扩展的分布式对象存储集群,存储容量可达PB级[2]。兼容性差,对于现有代码的修改,难以兼容现存的版本,维护起来相当难。
(3)FastDFS文件系统
FastDFS是一个开源的,高性能的的分布式文件系统,他主要的功能包括:文件存储,同步和访问,设计基于高可用和负载均衡,fastfd非常适用于基于文件服务的站点,例如图片分享和视频分享网站。FastDFS的设计目标就是支持大容量和高访问量。对于大量的小文件,可以支持得很好,但是其不支持分块存储文件,达不到快速共享文件的效果。
(4)CEPH文件系统
CEPH是一种为优秀的性能、可靠性和可扩展性而设计的统一的、分布式的开源存储系统。“统一的”意味着CEPH可以一套存储系统同时提供对象存储、块存储和文件系统存储三种功能;而“分布式的”在CEPH系统中则意味着真正的无中心结构和没有理论上限的系统规模可扩展性[3]。
根据对上述文件系统的研究和分析,对其作出以下结论:
(1)Hadoop存储解决方案:时延高,性能上不符合存储要求
(2)Openstack存储解决方案:Swift存储方案缺乏强的统一存储特性
(3)FastDFS解决方案:不支持POSIX
(4)CEPH存储解决方案:对象存储、块存储和文件系统存储能力高,符合要求
因此本课题选择CEPH作为存储解决方案,并基于CEPH设计出分布式文件系统。
2.3CEPH分布式文件系统搭建
CEPH是可提供对象、块和文件存储的统一存储系统,具有以下特性:
(1)使用普通x86服务器,支持10~1 000台服务器,支持TB到PB级的扩展
(2)多数据副本,自动管理,故障自动修复。
(3)数据分布均衡,并行化度高。
(4)高扩展性:使用普通x86服务器,支持2~1000台服务器,支持TB到PB级的扩展。
(5)高可靠性:没有单点故障,多数据副本,自动管理,自动修复。
(6)高性能:数据分布均衡,并行化度高。
基于CEPH的存储系统主要提供了对象存储、块存储和文件存储。其中文件存储由CEPH FS提供,CEPH FS通过调用LIBRADOS的接口,最终都是以对象的形式存储于RADOS里。系统包括MDS、MON、OSD等部件。
(1) MDS服务器
使用元数据集群管理元数据请求,元数据都集中存放在OSD上,元数据服务器只处理元数据请求已经缓存部分的元数据信息。
本文设计两个MDS元数据管理节点,设计两个MDS元数据节点是为了使其能提供数据负载均衡来避免MDS的热点。当用户打开一个文件时,会查询并更新MDS相应的元数据的对象信息,然后再根据提供的对象信息直接从RADOW中返回客户端所需的文件数据。
(2) MON监视器
在 RADOS 集群中,CEPH 监视器后台进程(CEPHMON)位于 OSD 旁边。监视器是一些后台进程,客户端通过与这些后台进程进行通信来操作存储在集群中的数据。这是 CEPH 提出的一种创新方法:无需联系一个管理数据集群访问的集中的元数据服务器,这些轻量型后台进程向客户端提供集群映射,并处理与外部应用程序的所有通信。用户通过MON就能获取各个节点之间的通信情况和健康状况。
(3) OSD服务器
文件系统中的数据都存储在OSD中,可以通过客户端或者网关对其进行数据读写的操作,数据会从RADOS中进行读取或者写入,RADOS包括两个守护进程。OSD是访问文件系统并向其中写入数据的后台进程,它提供了通过集群网络访问文件系统的能力。
2.4用户资源上传与发布
对于客户端来说,访问存储系统是操作数据的关键。而数据是存储在OSD节点中,因此要对多个OSD节点进行共享和同步。以物理分区为存储基础,对分区进行格式化,格式成xfs格式。挂载相应的OSD节点到相应的分区,此时OSD节点数据在底层是共享同步的,通过CEPH-fuse可以从用户态空间挂载CEPH FS,挂载点为/home。/home则是用户访问和操作存储系统的入口。如图1。
存储系统web目录是根据用户需求而进行设计的,目的是给用户提供访问和上传下载的操作。设计框架如图2。存储系统web目录即发布目录,访问目录和发布目录之间用Rsync进行同步,Crontab实现一个定时任务,并修改相应的权限。
图1 系统存储架构
图2 发布目录框架
3.1业务流程验证
测试环境如表1:
表1 测试环境资源
用户可以通过浏览器,指定URL访问发布的web站点的资源。如图3。具体流程如下:
图3 业务测试流程
(1)通过ftp工具或者Rsync上传资源到CDN源站目录/home/client,并使用iozone工具测试CEPH文件系统的性能与磁盘性能作比较,观察并记录测试结果;
(2)通过Crontab同步源站目录/home/client到发布目录/home/www/client上;
(3)通过Nginx发布web站点,并对Nginx进行基于CEPH文件系统的测试,观察并记录测试结果
(4)用户通过浏览器访问到相应的资源
3.2CEPH文件系统读写性能测试
使用对应的命令测试CEPH文件系统和原生磁盘,查看读取对应文件大小时读写性能。使用iozone工具测试对应大小文件,记录块大小为4K,测试写和重复写,读和重复读。测试结果如下表2。
表2 系统读写性能测试数据表
根据测试数据看出:
(1)CEPH读写性能三项指标比原生磁盘性能高,并且读操作的速率逼近网络带宽,由于网络的局限,CEPH的性能上限无法测定;
(2)仅在初次写入新文件时,略比原生磁盘速度低。
3.3基于CEPH分布式文件系统下Nginx性能测试:
Nginx性能测试,服务对象是小文件测试结果如表3:
表3 Nginx小文件性能测试
当用户并发数为1 000时,最大流量达到一个峰值为974.048Mbp,随着用户并发数增加,响应时间值逐渐增加。
Nginx性能测试,服务对象是大文件测试结果如表4:
对于大文件,最大流量出现在并发用户数为1000的时候,为984.691Mbps,随着并发用户数的增加,最大流量值趋于稳定的水平。本次测试在CEPH分布式文件系统环境下的测试,Nginx与CEPH文件系统可以无缝工作,性能良好,可以满足现网的业务需求。
表4 Nginx大文件性能测试
本文结合应用和需求设计了基于CEPH的分布式文件系统,并应用在COS源站系统中。依照整体设计的架构图完成了系统的基本功能。现总结如下:
CEPH的架构决定了它具有强一致性和高容错性:CEPH的读写操作采用Primary-Replica模型,保证了数据的额一致性,操作者不需要考虑数据间同步问题;CEPH能容忍如系统故障、网络中断、硬盘损坏等故障,并进行自动修复,保证系统的可靠性和可用性。
CEPH具有高性能、高可靠性、高扩展性等优势:多个OSD节点能给系统带来更高的并发度,实现负载均衡,降低了网络拥塞。
通过设计基于CEPH的分布式文件系统,应用在COS源站系统上,通过一系列的业务流程实现了从客户文件上传到用户下载的过程。
通过测试,CEPH可以与Nginx Web系统无缝工作,验证了所设计的源站系统可以满足现网业务需求,性能指标良好。
参考文献
1黄晓云.基于 HDFS的云存储服务系统研究[D].大连:大连海事大学,2010.06.01
2OpenStack Community.http://www.openstack.org/.2013.05
3CEPH deployment-CEPH documentation_http://CEPH.com/2007.09
收稿日期:(2015-12-23)
DOI:10.3969/j.issn.1006-6403.2016.03.004