杨姗姗+陈彩+梁毅
摘 要:大数据时代的到来,给海量数据的存储与管理带来了更为严峻的挑战。HDFS能够有效缓解飞速增长的海量数据存储需求。最初HDFS被设计用于同构的硬件环境,然而随着集群硬件的迭代更新,存储介质的硬件异构特性愈发明显。为了充分利用高性能存储介质,提升HDFS的数据访问性能,设计了一种基于层次分析法的异构存储的HDFS副本选择策略,并在扩展的CloudSim仿真系统中实现了该策略。实验结果表明,该策略在HDFS数据访问性能方面优于HDFS默认副本选择策略。
关键词:大数据;异构存储;HDFS;副本选择策略;CloudSim
DOIDOI:10.11907/rjdk.171284
中图分类号:TP301
文献标识码:A 文章编号:1672-7800(2017)007-0011-03
0 引言
云存储技术已经受到了商业与学术领域的广泛关注,目前已成为大数据时代的研究热点。随着大数据时代的到来,大数据的存储需求成倍增长,分布式存储技术是大数据时代应对存储容量的压力与成本等诸多挑战下的极为重要的解决方案。HDFS是大数据领域最受关注的具备高度容错性与高吞吐量的海量数据存储的开源框架[1]。
近年来,计算机硬件技术的飞速发展,使得固态硬盘的性能不断提升,价格快速下降。由于固态硬盘具有较高的I/O性能,目前已经被应用于HDFS中以提升海量数据的存储性能。但是固态硬盘的使用成本仍旧高于机械硬盘,综合考虑大规模HDFS的基础设施成本与存储的性能需求,将固态硬盘与机械硬盘混合应用是一种有效的解决手段。
副本选择策略是HDFS数据访问的基础,副本选择策略的优劣将直接影响HDFS集群的数据访问性能。为了充分利用异构的存储介质,同时避免集群负载不均所带来的瓶颈,本文充分考虑副本所在存储介质与集群中节点的负载差异,构建了数学模型,提出了一种异构存储下的HDFS副本读取选择(Heterogeneous Storage Replica Selection,HSRS)策略。
1 HDFS的异构存储
最初,Hadoop默认所有存储介质都是同构的,但是随着Hadoop集群硬件的迭代更新,使得在集群中出现了异构的存储介质。不同的存储介质具有不同的I/O性能。机械硬盘作为目前主流的存储介质,尽管价格低、容量大,但是由于其机械构造、磁盘寻道时间与定位时间难以被消除,使得机械硬盘在读写性能上难以有进一步提升。随着多核处理器的飞速发展,机械硬盘的访问性能与处理器和内存之间的差距越来越大。机械硬盘的I/O性能已经成为分布式存储系统访问性能的主要瓶颈之一。固态硬盘无需寻道,读写延迟远远小于机械硬盘,并且提供了良好的随机访问性能,并且比机械硬盘的能耗更低[2]。
为了充分利用异构存储介质的性能特点,Hadoop于2.6.0版本中添加了对异构存储的支持,同时引入了存储策略的新概念,在数据写入至HDFS时可以为数据指定不同的存储策略,使得数据可以写入不同类型的存储介质中。然而在副本选择策略方面仍旧采用就近副本选择策略。
在此之前,许多学者研究如何在HDFS中将机械硬盘与固态硬盘混合使用以充分发挥不同存储介质的性能。Islam等[3-5]提出将固态硬盘作为机械硬盘的缓存层的HDFS架构; Krish等[6-7]提出了固态硬盘与机械硬盘混合使用的HDFS系统架构,并提出了数据放置与查询策略,有效提升了HDFS的系统访问性能。Chen等[8]在操作系统内核层面进行了异构存储的HDFS数据放置策略设计与实现。目前,异构混合存储的HDFS主要集中于架构设计,在副本选择策略方面仍具备较大的研究空间。
2 异构存储的HDFS副本选择策略
2.1 HDFS读过程分析
为了避免分布式文件系统中存储节点失效带来的数据丢失情况,HDFS采用数据多副本分块对数据进行冗余存储。这在保证数据安全性的同时也提升了数据的访问性能,多客户端可并发地从不同数据节点中读取数据。HDFS读过程如图 1所示。
尽管HDFS支持了异构存储类型并引入了存储策略,然而在进行副本读取节点选择时,HDFS默认的副本读取选择策略仍旧为副本就近读取选择策略。以最小化访问延迟与集群中全局网络带宽为目标,只考虑了数据副本所在数据节点的网络拓扑距离,选择与请求节点网络拓扑距离最小的副本进行访问,选择可用节点而不是最佳访问节点。
在异构存储的HDFS中,在相同负载场景下,從具有较高访问性能的存储介质读取数据能够大幅度地提升副本的访问速率。集群中的各个数据节点存储了不同的数据副本,不同数据副本的访问呈现动态性,数据节点的负载情况也会影响数据访问性能。如果从负载过重的节点中读取数据块会加重该数据节点的任务量,易导致读取性能的降低。选择负载较轻的数据节点能够有效提高数据传输速度。
如何从存储数据副本的多个数据节点中选择出最佳节点进行访问以提升数据访问速度,是异构存储的HDFS副本选择的关键问题之一。
2.2 数学描述
在异构存储的HDFS中,多副本分散存储于集群中的不同数据节点之上。影响数据访问性能的因子包含副本所在存储介质的负载情况、网络拓扑距离与数据节点的负载情况等。
2.2.1 数据节点集
设HDFS中数据块Bi所在的数据节点集合为DN(Bi)={DN1,…,DNi,…,DNn},DNi用于表示编号为i的数据节点。
2.2.2 网络拓扑距离
HDFS集群节点通常会部署于多个机架上。机架内机器之间的网络速度通常都会高于跨机架机器之间的网络速度,网络拓扑距离会直接影响客户端到数据节点访问请求的响应时间。本文对网络拓扑距离进行了量化设置,当客户端与数据节点位于相同物理节点中,网络拓扑距离为0;当客户端与数据节点位于相同机架的不同物理节点中,网络拓扑距离为2;当客户端与数据节点位于不同机架的物理节点中,网络拓扑距离为4,di则用于表示目标数据节点与编号为i的数据节点的网络拓扑距离,dmax用于表示集群中的最远网络拓扑距离。
2.2.3 数据节点负载
设数据节点负载定义为Li={CPUi,Memi,Diskidev},分别表示为CPU使用率、内存使用率和负载所在存储介质的使用率。然而由于存储介质的异构性,固态硬盘与机械硬盘的数据访问性能具有较大的差距。因此,需要对磁盘使用率进行数值上的处理,使得磁盘使用率这一指标能够无差别地表示不同存储介质的IO使用情况。
综上所述,数据节点 DNi上的副本访问性能进行评估函数如式(1)所示,其中ωj为对应项的权系数,W=(ω1,ω2,…,ωn)T为权向量,∑njωj=1;Speedidev表示副本所在存储介质的速度;SpeedMAX表示集群中最大的存储介质访问速度。Perf(DNi)的值越小,说明DNi的副本访问性能越差,值越大,则反之。
为了确定每个影响因子对于数据节点副本访问性能的影响程度,本文采用了层次分析法来确定权系数的值。由美国运筹学家T L Satty[9]提出的层次分析法是一种定性和定量相结合的、系统化、层次化的分析方法。它的应用已遍及能源政策和分配、行为科学、军事指挥和运输等领域。该方法将复杂的问题分解成若干关键因素,将每两个关键因素的重要程度进行比对并进行定量计算后作出选择与判断。
根据层次分析法计算得出权向量为:
由于数据节点的影响因子是以一定的时间周期进行收集,在主节点中存储的数据节点的影响因子数值是历史某一时刻的快照值,无法用于表示数据节点的实时性能状况,如果仅仅以Perf(DNi)值排列顺序作为目标数据节点选择优先级的依据,会造成短期内所有访问请求均被发送至Perf(DNi)值最大的数据节点中,使得该数据节点需要处理过多的数据访问请求。
本文采取基于数据节点评估值概率的轮盘赌选择策略,Perf(DNi)值高的数据节点被选中的概率更大,Perf(DNi)值低的数据节点被选中的概率更小。节点DNi的选择概率计算公式为:
在选择时利用计算机生成的[0,1]随机数确定目标数据节点。通过这种基于概率的选择策略可以保证访问请求的有效分发,避免短期内数据节点访问过热情况的发生。
2.3 HSRS策略流程
基于上述分析,异构存储的HDFS副本选择策略流程如下:①根据集群的网络拓扑结构,初始化所有数据节点的网络拓扑距离;②根据用户请求从主节点中获取候选副本所在的数据节点集合DN(Bi);③根据式(1)计算集合DN(Bi)中的数据节点副本访问性能评估值;④根据式(2)计算集合DN(Bi)中数据节点选择概率值;⑤生成范围[0,1]的随机数r,当Probability(DNi-1)≤r≤Probability(DNi)时,则选择编号为i的数据节点中的数据副本进行读取;⑥重复步骤②至步骤⑤直至数据全部读取完毕。
3 实验结果及分析
3.1 实验环境
本实验将扩展后的CloudSim 4.0作为异构存储的HDFS仿真工具。CloudSim的配置文件包括集群硬件配置文件,数据配置文件以及任务配置文件。在本实验中,将100台主机节点按照集群硬件配置文件分布在5个机架之上,设置了8种不同硬件配置的主机类型。本实验参考真实机械硬盘与固态硬盘的读取速度,设置仿真机械硬盘的读取速度为300MB/s,固态硬盘的读取速度为100MB/s,机架内最大数据传输带宽为1 000MB/s,机架间最大数据传输带宽为500MB/s。
3.2 性能分析
本实验参考HDFS默认的数据上传流程,采用ONE_SSD的数据存储策略,在集群中每个数据包含3个副本,每个数据均有一个副本放置于SSD中。在进行仿真实验之前,预先向HDFS中写入任务所需的数据。每个数据的大小为2 048MB,每个数据共3个副本,数据块大小为64MB,共写入10 000个数据。本实验通过程序自动生成所有任务,任务到达服从λ=5.0的泊松分布。任务总数量分别为50、100、150、200、250和300个。
作为对比实验的HDFS默认副本选择策略(Default Replica Select, DRS)的任务运行结果,与本文提出的异构存储的HDFS副本选择策略任务运行结果如图 2和图3所示。
本实验中采用任务平均读取速度与集群中SSD总访问次数两个指标将DRS策略与HSRS策略进行对比。如式(3)所示,n個任务的平均读取速度即为读取的数据总量除以读取的所有时间。
图2是集群中SSD总访问次数对比。从图 2可以看出,在不同任务总量下,HSRS策略集群中的SSD总访问次数高于DRS策略。在任务总量为300个的实验中,采用HSRS策略的SSD总访问次数是DRS策略的2.61倍。SSD的读取性能优于机械硬盘,充分利用SSD可以有效提升数据的访问性能。
图3为采用DRS策略与采用HSRS策略时不同任务总量下的任务平均读取速度对比。由图 3可知,在不同的任务总量下,采用HSRS策略的HDFS任务平均读取速度均优于DRS策略。
4 结语
实验结果表明,在异构存储的HDFS下,本文提出的HSRS策略在不同的任务量下性能优于DRS策略,具有较好的可扩展性。主要原因在于:DRS策略仅仅考虑了请求节点与副本所在数据节点之间的网络距离,而本文所提出的HSRS策略在DRS策略的基础之上考虑了副本所在数据节点的负载以及副本存储介质的差异,避免了数据节点负载过于集中的情况,充分利用了高性能存储介质的数据读取能力,能够有效提升数据的读取性能。
参考文献:
[1]SHVACHKO K,KUANG H,RADIA S.The hadoop distributed file system[C].2010 IEEE 26th symposium on mass storage systems and technologies (MSST),2010:1-10.
[2]MOON S,LEE J,KEE Y S.Introducing SSDs to the hadoop mapReduce framework[C].2014 IEEE 7th International Conference on Cloud Computing,2014:272-279.
[3]POLATO I,BARBOSA D,HINDLE A.Hybrid HDFS:decreasing energy consumption and speeding up hadoop using SSDs[R].e1626,PeerJ PrePrints,2015.
[4]KRISH K R,IQBAL M S,BUTT A R.VENU:orchestrating SSDs in hadoop storage[C].2014 IEEE International Conference on Big Data (Big Data),2014:207-212.
[5]ISLAM N S,LU X,WASI-UR-RAHMAN M.Triple-H:a hybrid approach to accelerate HDFS on HPC clusters with heterogeneous storage architecture[C].2015 15th IEEE/ACM International Symposium on Cluster,Cloud and Grid Computing,2015:101-110.
[6]KRISH K R,ANWAR A,BUTT A R.HatS:a heterogeneity-aware tiered storage for hadoop[C].2014 14th IEEE/ACM International Symposium on Cluster,Cloud and Grid Computing, 2014:502-511.
[7]KRISH K R,ANWAR A,BUTT A R.Sched:a heterogeneity-aware hadoop workflow scheduler[C].2014 IEEE 22nd International Symposium on Modelling,Analysis & Simulation of Computer and Telecommunication Systems (MASCOTS),2014:255-264.
[8]CHEN F,KOUFATY D A,ZHANG X.Hystor: making the best use of solid state drives in high performance storage systems[C].Proceedings of the International Conference on Supercomputing,2011:22-32.
[9]SAATY T L.Decision making with the analytic hierarchy process[J].International journal of services sciences,2008(1):83-98.