
【摘要】:分布式存储作为目前流行的数据中心存储系统,在具有高性能、高扩展性的同时,面临着系统能耗增加的问题。为此,基于Ceph分布式存储,分析其数据布局在节能方面的不足,提出划分功耗组的节能优化算法,以提升系统节能比例。建立Ceph的多级功耗模型并给出管理策略,设计并实现Ceph系统的多级功耗管理框架,以进行Ceph系统功耗的动态管理。实验结果证明,该框架能够有效降低Ceph分布式存储的能耗,并保证系统的服务质量和数据可用性。
【关键词】:分布式存储;节能计算;Ceph存储;功耗管理;数据布局
1概述
能耗管理是数据中心面临的重要挑战。_方面,随着基础架构规模的扩大,数据中心需要为曰益剧增的能源消耗买单,在数据中心总体总拥有成本(TotalCostofOwnership,TCO)中,用于能源的费用已经成为重要的组成部分。另一方面,随着数量的增加与规模的扩大,数据中心所消耗的能源,在整个社会能源消耗中所占的比重也越来越大,据统计,全球数据中心在2010年对电能的消耗超过了2X1011千瓦时,约占全球总用电量的1.3%,且呈逐年上升的趋势在数据中心的组件中,存储系统是能源消耗主要来源之一,仅次于计算资源,约占30%。因此,
降低存储系统的能耗是达到数据中心节能目的的重要手段。近年来,存储系统节能技术受到了广泛关注,从单个磁盘到磁盘阵列,再到分布式存储,均出现了大量的研究工作M。
分布式存储是目前大部分数据中心所采用的存储形式。作为近年热门的分布式存储,Ceph0因具备了高扩展性、高性能、高可靠性的特点,而备受关注。因此,本文基于开源项目Ceph,进行分布式存储系统节能技术的研究。本文的工作主要有:以节能为目的的Ceph数据布局优化;多级功耗管理策略;功耗管理框架的设计与实现。该框架结合了上述数据布局优化方法、多级功耗管理策略以及硬件的节能功能,实现了Ceph分布式存储的动态功耗管理。
2相关工作
分布式存储系统的节能技术近年来受到了广泛的关注,是存储领域热门的研究方向之一。
微软剑桥研究院的ThereskaE等人设计并开发了Sierra7分布式存储系统,该系统使用了能耗感知的数据布局和基于负载预测的节点状态管理,在系统低负载时,关闭部分节点,从而增加系统的能源利用率。为保证系统的容错能力以及数据的一致性,Sierra使用了分布式虚拟日志(DVL)技术。经过测试,该系统在作为Hotmail和WindowsMessenger服务的后端存储时能够节省23%以上的能耗,且性能的损失相当微小。
UIUC的KaushikR等人基于标准的HDFS提出了其节能的衍生版GreenHDFS18。在GreenHDFS中,数据节点最初被划分为热区和冷区,处于热区的数据(约70%)有着更高的访问频率,所以为保证性能,热区的节点是一直处于活跃状态的;而冷区的数据(约30%)使用率非常低,所以冷区的节点将会进入省电模式。一个自适应的划分策略用来动态地指定节点所属的区,并使得冷区节点能够达到_定的数量,进而增加整个集群节能的程度:在Yahoo的_个真实负载环境中,GreenHDFS在3个月的测试时间内,节省了26%的能耗。
此外,针对Ceph分布式存储的节能技术也受到了关注,文献9提出了一种CephOSD(对象存储设备)的自适应的磁盘降速算法。该算法针对单个OSD,在其低负载时降低所对应的磁盘速度,进入节能状态。他们的工作针对的只是部分OSD上磁盘的节能,所以对整个系统能耗的影响十分有限。
3数据布局优化
分布式存储中的数据放置算法及其产生的数据布局是影响系统可靠性、扩展性的重要因素之_。Ceph存储系统基于CRUSH算法的数据布局是其具备可靠性、高性能、高扩展性的基础,但同时也限制了系统节能的能力。
3.1Ceph数据布局
作为Ceph存储的关键技术之一,CRUSH算法由WeilSA于2006年提出10。CRUSH基于伪随机的哈希算法产生确定的均匀的数据分布。CRUSH有多个输入,包含了对象id,Crushmap和放置规则。其中,对象id_般用于区别需要存放的数据对象,实际运行时对象会被映射到不同的放置组(PG),所以作为输入id的实际是PG的id。Crushmap描述了数据节点的层级关系,用树形结构表示,包含bucket和类型的节点,其中bucket节点可以包含其他类型的bucket和device节点,通常用于描述故障域(failuredomain),如主机、机架、机柜等,把副本分布于不同故障域,是Ceph保证数据可靠性的重要措施;而device节点只能作为叶子节点,表示对象存储设备(OSD)。放置规则用于指定副本放置的策略,包含了take,select,emti等语句,其中select可以指定副本个数和副本放置的故障域。在一个包含4台主机的集群中,副本分布策略为:select(2,host),即数据的2个副本放置于不同的主机上,则通过CRUSH算法产生的数据布局如图1所示。
3.2存储系统存在的不足
很多应用场景中都存在低负载时期,此时,为了节省系统的能耗,可以关闭部分数据节点。出于以下考虑,关闭节点时应保证数据全集是可用的(即任意的数据对象至少有_个以上副本是未被关闭的):_方面,如果发生不可用数据的访问,则会产生非常大的访问延迟;另一方面,频繁开启相应的节点会产生不可忽视的额外能耗。在Ceph存储系统中,数据节点数为N被划分为n个故障域fd,副本分布策略为select(r,/d),则在系统低负载系统时期最多可以关闭的故障域的个数为n'<r,因为任何大于或者等于r个故障域的组合中,必然包含了某些数据的所有副本。如图1中,可以关闭的主机个数为1台,当关闭2台以上主机时/个~F个数据块必然有一个无法访问。随着集群规模的增加,最多只能关闭r-1个故障域的节点,可以达到最大节能比例为(r-1)/n,当集群规模较大时,节能的效果微乎其微。
3.3节能优化
结合CRUSH的特性,在Crushmap中引入了功耗组(Pup)的bucket,用于对故障域集合进行再次划分,即数据副本在放置于不同故障域前,将首先被分布于不同的功耗组。同_个功耗组的节点处于相同的能耗状态,功耗组的个数等于副本个数r。优化算法的描述如下:
{detecttargetfailuredomain;/*确定分布的故障域*/declarePowerGroupbucket;PowerGroup[r]pgs;forfdinallfailuredomainsdoPGid=fd.idmodr;/*故障域功耗组划分*/pgsPGid].items.append(id);rule='select(r,PowerGroup)''insert_rule(rule);/*插入新select规则*/}
以图i中场景为例,则经过优化的数据布局如图2所示。
图2优化后的数据布局
此时,可以关闭的节点为2个,且所有数据仍然可用。经过优化的数据布局中,数据的副本分别位于r个不同的功耗组中,在保证数据集可用的情况下,则最多可以关闭r-1个功耗组的节点,系统能够达到的节能比例为r-1/r,当集群规模较大时,节省的能耗是非常可观的。同时,由于很好地实现了副本的分布,可以关闭的功耗组个数可以是1~r-1的任何_个,从而为系统的多级功耗管理提供了基础。
4多级功耗管理
基于对数据副本分布的优化,使得系统中活跃的功耗组个数可以根据系统I/O负载的情况按需调整,让系统处于不同的功耗级别,从而实现系统的多级功耗管理,减少能耗。
4.1多级功耗模型
在Ceph中,系统的主要能耗来自于OSD节点。在一个包含n个OSD节点的Ceph集群中,副本个数设置为r,经过数据布局优化后,节点被划分至r个功耗组,若单个OSD节点的功耗为p则单个功耗组的功耗为:
Pg=pXn/r
系统中活跃(未关闭或休眠)的功耗组个数为则系统功耗为:
Ptotal=PgXractive=(n/r)XPXractive=
ractive\
其中,rac_的取值可以为1~r,即系统可以处于尸^P2,…,Pr不同的功耗级别。在一段时间T内,系统所消耗的能耗为:
rE=XP,h+Et(1)
其中,是系统处于相应功耗级别的时间;尽是系统用于级别切换所消耗的能耗之和。
4.2功耗级别管理
功耗级别管理的主要任务是根据I/O负载状态动态调整功耗级别,在保证服务质量的同时,尽量减少功耗。I/O负载状态可以通过统计分析或者预测的方式确定,本文采用的是前者,即收集并统计系统在一定时间内的I/O数据如I/O次数、I/O数据量等,并以此确定系统的I/O负载状态。为描述不同场景下的I/O负载状态,需要对随机I/O和顺序I/O都进行收集与统计,因此,在可配置的时间窗口W内,对系统的I/O状态数据可统计为:
=IOIOseq=IOstotal/W
其中,Ortotal为W时间内发生的随机I/O的次数;lOstotal为W时间内顺序I/O请求的数据量。两者分别与预先测得的系统峰值I/O能力对比,得出系统I/O状态的量化描述,即I/O负载率L:
L=max{IO^,IIO^}(2)
rpeakspeak
其中,被用于与当前功耗率Pi=ract"Jr比较,确定系统下_阶段所处的功耗级别:当系统的I/O负载率高于能耗率时,活跃的功耗组已经不能满足I/O负载的要求,需要更多的功耗组提供服务;当系统的I/O负载率低于能耗率时,则系统中有部分功耗组可以被关闭,以达到节能的目的。功耗级别确定的伪代码为:
while(overtime(W)){if(L<pl)-/*切换至低级别*/while((ractive>1)&&(L<=pl))ractivefif(L>p{/*切换至高级别*/while((ractive<r)&&(L>=pl))?
active
active
输出的ract"e将作为下一个W时间段内的系统所处的功耗级别,此时需要关闭/开启的功耗组的个数为I-一?I。为保证系统的高可用性,可以设置允许的最少活跃的功耗组个数为2,即允许系统数据副本至少有2个是可用的。
5系统实现与实验评估
基于第3节、第4节所述的优化方法,结合Ceph自身技术特点,本文设计并实现了一个能耗管理框架,并进行了实验评估。
5.1系统架构
如图3所示,该功耗管理框架由4个模块组成,其中LayoutOptimizer模块实现针对CRUSH的数据布局的优化算法,并生成新的Crushmap和放置规则;I/OTracer模块用于跟踪与统计系统的I/O数据,即以一定的频率采集分析CephLog中的I/O相关信息记录;LeverShifter则是管理系统功耗级别的模块,根据跟踪统计到的I/O数据,分析当前系统的I/O负载状态,基于所选择的的策略确定是否需要切换功耗级别;StatusManager模块负责功耗级别切换的执行,首先利用Ceph的OSD状态管理工具设置OSD在Ceph集群中的状态为noout,保证不会因主动停止OSD而发生数据迁移,接着通过远程休眠/网络唤醒(WOL11)等技术控制OSD所在的服务器电源管理状态,基于休眠/唤醒的方式比传统的关闭/开启服务器的方式更为节能,式(1)中用于级别切换的能耗对系统的总能耗的影响几乎可以忽略不计,且响应时间更短。
图3系统架构
OSDStatus
I/OTracer
5.2实验评估
在一个有6个OSD节点的Ceph系统中进行了该功耗管理框架的实验评估。Ceph版本为0.80.5,操作系统为Kylin3.2,每个节点上配置一个OSD,副
本策略为select(3,host)。为模拟不同的负载场景,用fio12测试工具进行测试。
如图4所示内容为连续8h测试(级别切换的超时时间设置为10min,通过thinktime参数使得系统约4h处于低负载时期)中,系统分别处于各能耗级别的次数。
20100
在未使用节能框架时,系统运行8h的能耗约为48x6x10minx400W,在开启了节能框架(Ceph-PM)后,系统运行8h的能耗约为(11x2+12x4+25x6)x10minx400W,系统达到的节能比例约为25%,如果系统规模增大,节省的能源开支将会非常可观。但需要注意的是,在真实环境中,系统负载的变化可能更为频繁、剧烈,所以需要更精确、复杂的负载级别切换策略,这也是本文未来的工作内容之一。
图5、图6描述的是系统在低功耗状态下对随机I/O和顺序I/O的响应时间的影响,总体上,读操作平均响应时间有略微变化,但不会太大地影响服务
质量。
而写操作时,由于低功耗状态下需要写副本的次数变少,对于客户端来说,响应时间反而更小一些,且对于顺序写影响更为明显。?
6结束语
本文基于Ceph系统,研究分布式存储技术,分析基于CRUSH算法的数据布局存在的不足,提出以节能为目的的优化算法和系统多级功耗管理策略,并实现了Ceph的多级功耗管理框架。实验结果表明,该能耗管理框架能够根据系统负载变化动态地调整系统功耗级别,有效地降低系统能耗。
参考文献
[1]KoomeyJ.GrowthinDataCenterElectricityUse2005to2010[EB/OL].(2011-10-11).http://www.analyticspress.com/datacenters.html.
[2]GurumurthiS,SivasubramaniamA,KandemirM,etal.DRPM:DynamicSpeedControlforPowerManagementinServerClassDisks[C]//Proceedingsofthe30thAnnualInternationalSymposiumonComputerArchitecture.SanDiego,USA:IEEEPress,2003:211-219.
[3]李海东.磁盘阵列节能技术研究与实现[D].武汉:华中科技大学,2009.
[4]VermaA,KollerR,UsecheL,etal.SRCMap!EnergyProportionalStorageUsingDynamicConsolida-tion[C]//ProceedingsofFASTJ10.SanJose,USA:USENIXAssociation,2010:148455.
[5]廖彬,于炯,孙华,等.基于存储结构重配置的分布式存储系统节能算法J].计算机研究与发展,2013,50(1):348.
[6]WeilSA,BrandtSA,MillerEL.Ceph:AScalable,High-performanceDistributedFileSystemC]//ProceedingsofOSDI'06.Seattle,USA:USENIXAssociation,20061269^77.
[7]ThereskaE,DonnellyA,NarayananD.Sierra:PracticalPower-proportionalityforDataCenterStorageC]//ProceedingsofEuroSys'11.Salzburg,Austria:ACMPress,2012:153461.
[8]KaushikRT,BhandarkarM.Greenhdfs:TowardsanEnergy-conserving,Storage-efficient,HybridHadoopComputeClusterC]//ProceedingsofUSENIXAnnualTechnicalConference.Boston,USAIUSENIXAssociation,2010:159467.
[9]BissonT,WuJ,BrandtSA.ADistributedSpin-downAlgorithmforanObject-basedStorageDevicewithWriteRedirection[C]//Proceedingsofthe7thWork-shoponDistributedDataandStructures.SantaClara,USA:ACMPress,2006:459468.
[10]WeilSA,BrandtSA,MillerEL,etal.CRUSH:
Controlled,Scalable,DecentralizedPlacementof
ReplicatedDataC]//Proceedingsof2006ACM/IEEEConferenceonSupercomputing.Tampa,USAIACMPress,2006:367-378.
[11]Wake-mlan[EB/OL].(2013-10-10).http://en.wiki
pedia.org/wiki/Wake_on_lan.
[12]Fio[EB/OL].(2013-10-10).http://freecode.com/projects/fio.
(www.fabiaoba.com),是一个专门从事期刊推广期刊发表、投稿辅导、发表期刊的网站。
本站提供如何投稿辅导、发表期刊,寻求论文刊登合作,快速投稿辅导,投稿辅导格式指导等解决方案:省级论文刊登/国家级论文刊登/
CSSCI核心/医学投稿辅导/职称投稿辅导。
投稿邮箱:fabiaoba365@126.com
在线咨询:
275774677、
1003180928
在线咨询:
610071587、
1003160816
联系电话:13775259981
期刊简介: 主管单位:吉林省社会保险事业管理局 主办单位:吉林省人力资源和社会保障...
主管单位:国家民族事务委员会 主办单位:西北民族大学 出版地:甘肃省兰州市 国际标...
主管单位:山东省教育厅 主办单位:山东省教委 国内刊号:CN 37-1025/G4 国际刊号:IS...
期刊简介: 《种子科技》(月刊)创刊于1983年,曾用刊名:(种子通讯)是中国种子协...
主管单位:湖北省国资委 主办单位:湖北省经济干部管理学院 出版地:湖北省武汉市 国...
期刊简介: 《高等工程教育研究》是我国第一份、也是唯一一份面向工程教育研究的全国...
近来发现有些作者论文投稿存在大量剽窃、抄袭行为,“发表吧”对此类存在大量剽窃、抄袭的论文已经停止编辑、推荐。同时我们也提醒您,当您向“发表吧”投稿时请您一定要保证论文的原创性、唯一性,这既是对您自己负责,更是对他人的尊敬。
此类投稿的论文如果发表之后,对您今后的人生和事业将造成很大的麻烦,后果不堪设想,请您一定要慎重,三思而后行。
如因版权问题引起争议或任何其他原因,“发表吧”不承担任何法律责任,侵权法律责任概由剽窃、抄袭者本人承担。