楊姍姍+陳彩+梁毅
摘 要:大數據時代的到來,給海量數據的存儲與管理帶來了更為嚴峻的挑戰。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.