陶永才,巴 陽(yáng),石 磊,衛(wèi) 琳
1(鄭州大學(xué) 信息工程學(xué)院,鄭州 450001) 2(鄭州大學(xué) 軟件技術(shù)學(xué)院,鄭州 450002)
近年來(lái)隨著科學(xué)技術(shù)的快速發(fā)展,云計(jì)算、物聯(lián)網(wǎng)、社會(huì)網(wǎng)絡(luò)等新技術(shù)應(yīng)運(yùn)而生,數(shù)據(jù)的類型和數(shù)量呈現(xiàn)爆炸式增長(zhǎng),大數(shù)據(jù)時(shí)代已經(jīng)到來(lái).
云存儲(chǔ)把互聯(lián)網(wǎng)上大量地理上分散的存儲(chǔ)設(shè)備整合到一個(gè)存儲(chǔ)池中,應(yīng)用虛擬化技術(shù),基于低成本、不可靠的節(jié)點(diǎn)和網(wǎng)絡(luò)資源,為用戶提供大容量和高性能的云存儲(chǔ)服務(wù)[1].云存儲(chǔ)是云計(jì)算的基礎(chǔ),其規(guī)模正以驚人的速度擴(kuò)大.目前比較流行的云存儲(chǔ)系統(tǒng)有RAID 1,GFS[1],Ceph[2]和HDFS[3].
在云存儲(chǔ)中,為提高性能,數(shù)據(jù)分塊是一種廣泛采用的技術(shù)[4].除了最后一個(gè)塊,文件被分割成多個(gè)大小相同的塊.這些塊分布存儲(chǔ)在各數(shù)據(jù)節(jié)點(diǎn)中,通過(guò)并行傳輸數(shù)據(jù),提高數(shù)據(jù)帶寬.然而,由于云存儲(chǔ)系統(tǒng)的動(dòng)態(tài)性、分布性和異構(gòu)性,節(jié)點(diǎn)軟硬件故障、電源故障和網(wǎng)絡(luò)故障時(shí)常發(fā)生,導(dǎo)致數(shù)據(jù)塊無(wú)法訪問(wèn)[16].因此,一個(gè)數(shù)據(jù)塊訪問(wèn)故障可能會(huì)導(dǎo)致整個(gè)文件不可用.為了避免由節(jié)點(diǎn)故障引起的訪問(wèn)失敗和數(shù)據(jù)丟失,數(shù)據(jù)副本被廣泛采用,通過(guò)在不同節(jié)點(diǎn)上放置數(shù)據(jù)副本來(lái)保證云存儲(chǔ)中數(shù)據(jù)的可靠性和可用性[5].數(shù)據(jù)副本保證如果一個(gè)數(shù)據(jù)節(jié)點(diǎn)失效,數(shù)據(jù)仍然可用,服務(wù)將不中斷.除了提高數(shù)據(jù)可靠性和可用性之外,如果副本的分布和請(qǐng)求合理,副本機(jī)制將能改善系統(tǒng)負(fù)載平衡和總體性能.
現(xiàn)有的云存儲(chǔ)系統(tǒng)(如Amazon S3[6]、GFS和HDFS)主要采用靜態(tài)副本管理策略,副本因子一般為3,放置策略是將一個(gè)副本放置在本地機(jī)架上的節(jié)點(diǎn),另一個(gè)副本放在同一機(jī)架上的其他節(jié)點(diǎn),最后一個(gè)副本放在不同機(jī)架上的任意一個(gè)節(jié)點(diǎn)[7].這種機(jī)制存在一些缺點(diǎn).首先,在可靠性高的云存儲(chǔ)系統(tǒng)中,副本會(huì)占用大量的存儲(chǔ)空間,提高云存儲(chǔ)系統(tǒng)的可靠性成本,最終轉(zhuǎn)嫁給用戶.其次,該機(jī)制無(wú)法適應(yīng)動(dòng)態(tài)變化的數(shù)據(jù)訪問(wèn)量和節(jié)點(diǎn)性能變化,導(dǎo)致系統(tǒng)負(fù)載不均衡和性能低.
為解決上述問(wèn)題,本文提出一種動(dòng)態(tài)副本管理機(jī)制DRM(Dynamic Replica Management scheme),DRM主要貢獻(xiàn)如下:
1)研究確定數(shù)據(jù)可用性和副本數(shù)之間的關(guān)系模型,并利用此模型來(lái)動(dòng)態(tài)計(jì)算和維護(hù)給定可用性要求的最小副本數(shù).
2)基于節(jié)點(diǎn)性能和用戶訪問(wèn)特性確定副本放置位置.
本研究在HDFS上實(shí)現(xiàn)了DRM,實(shí)驗(yàn)結(jié)果表明DRM在成本、負(fù)載平衡和性能都優(yōu)于現(xiàn)有HDFS副本管理機(jī)制.
現(xiàn)有的GFS和HDFS的副本管理使用默認(rèn)數(shù)量,通過(guò)數(shù)據(jù)遷移實(shí)現(xiàn)負(fù)載均衡,消耗較多的帶寬資源[3].
副本放置對(duì)于存儲(chǔ)系統(tǒng)的數(shù)據(jù)可用性和容錯(cuò)至關(guān)重要[12].一個(gè)好的副本放置策略可以提高數(shù)據(jù)可靠性、可用性和網(wǎng)絡(luò)帶寬利用率.因此,如果副本分布和請(qǐng)求合理,優(yōu)化副本策略不僅可以提高可用性,還可以提高負(fù)載均衡和總體性能.文獻(xiàn)[8]提出面向用戶的副本放置策略,把副本放置在距離用戶較近的節(jié)點(diǎn)上,使得訪問(wèn)數(shù)據(jù)時(shí)能夠較快地獲取數(shù)據(jù).文獻(xiàn)[9]提出面向請(qǐng)求的副本放置策略,對(duì)經(jīng)常訪問(wèn)的數(shù)據(jù)創(chuàng)建較多的副本,并把副本放置到用戶訪問(wèn)密集的區(qū)域.此方法能夠明顯減少查找路徑長(zhǎng)度,從而提高查詢效率.文獻(xiàn)[10]提出面向業(yè)務(wù)的副本放置策略在具有最多轉(zhuǎn)發(fā)流量的節(jié)點(diǎn)上進(jìn)行副本放置,與面向請(qǐng)求的方法相比,其副本可以為大多數(shù)請(qǐng)求者服務(wù),使得利用率更高.文獻(xiàn)[11]提出了一種改進(jìn)的數(shù)據(jù)放置策略,該策略基于數(shù)據(jù)負(fù)載和結(jié)點(diǎn)網(wǎng)絡(luò)距離計(jì)算各個(gè)結(jié)點(diǎn)的調(diào)度評(píng)價(jià)值,依據(jù)此調(diào)度評(píng)價(jià)值選擇一個(gè)最佳的遠(yuǎn)程數(shù)據(jù)副本的放置結(jié)點(diǎn).
上述研究都是采用類似HDFS中的靜態(tài)副本管理策略.在很多情況下,僅僅使用三個(gè)副本放置策略會(huì)引起巨大的空間資源的浪費(fèi),它無(wú)法適應(yīng)動(dòng)態(tài)變化的數(shù)據(jù)訪問(wèn)和節(jié)點(diǎn)性能,并會(huì)導(dǎo)致糟糕的性能和負(fù)載不均衡,本文提出的動(dòng)態(tài)副本管理機(jī)制,根據(jù)可用性來(lái)決定副本的數(shù)量,基于節(jié)點(diǎn)性能和用戶訪問(wèn)特性確定副本放置位置.不僅節(jié)省了大量的存儲(chǔ)空間,也提高了大規(guī)模云存儲(chǔ)的性能.
數(shù)據(jù)副本一定程度上滿足了數(shù)據(jù)可靠性的要求,但是需要更多的存儲(chǔ)空間.在云存儲(chǔ)中,如果采用一些適當(dāng)?shù)牟呗?數(shù)據(jù)副本機(jī)制仍可以減少對(duì)存儲(chǔ)空間的占用.數(shù)據(jù)副本機(jī)制必須面臨兩個(gè)挑戰(zhàn):副本數(shù)量和副本放置.
在實(shí)際應(yīng)用中,數(shù)據(jù)訪問(wèn)是高度不規(guī)則的,呈現(xiàn)時(shí)間局部性和空間局部性,數(shù)據(jù)時(shí)間局部性是一些數(shù)據(jù)在一定時(shí)間段內(nèi)被訪問(wèn)頻率很高,數(shù)據(jù)空間局部性是用戶對(duì)數(shù)據(jù)的訪問(wèn)主要集中一些熱點(diǎn)區(qū)域[17].因此,熱點(diǎn)區(qū)副本訪問(wèn)量通常偏高,節(jié)點(diǎn)負(fù)載過(guò)大,無(wú)法滿足用戶的訪問(wèn)質(zhì)量.相反,一些數(shù)據(jù)副本很少被訪問(wèn),而且有些熱點(diǎn)區(qū)副本隨著時(shí)間的推移會(huì)被冷卻,所以,過(guò)多的副本將浪費(fèi)存儲(chǔ)資源,并導(dǎo)致不必要的維護(hù)開銷.
Hadoop[7]采用3副本策略,存儲(chǔ)1 GB數(shù)據(jù)需要3 GB的數(shù)據(jù)空間,這將導(dǎo)致200%的額外成本.對(duì)于一些數(shù)據(jù)密集型應(yīng)用程序,額外的花費(fèi)可能是巨大的.然而,在實(shí)際中,有些數(shù)據(jù)不需要可靠性保證,比如一些應(yīng)用的中間結(jié)果數(shù)據(jù).對(duì)于這類數(shù)據(jù),可以不采用副本機(jī)制.此外,對(duì)于有高可靠性保證要求的關(guān)鍵數(shù)據(jù),固定的3副本策略并不能保證.在爆炸性訪問(wèn)突發(fā)的情況下應(yīng)該始終保持最大數(shù)量的副本,還是保持較少副本以犧牲性能為代價(jià)來(lái)節(jié)省資源?因此,系統(tǒng)應(yīng)保留多少個(gè)副本以滿足可用性要求是云存儲(chǔ)需要解決的一個(gè)難題?
另一方面,與小規(guī)模同構(gòu)系統(tǒng)相比,分布式大規(guī)模異構(gòu)存儲(chǔ)系統(tǒng)中的副本放置更復(fù)雜,其中每個(gè)數(shù)據(jù)節(jié)點(diǎn)可能具有不同的處理能力(包括CPU、存儲(chǔ)、網(wǎng)絡(luò)帶寬等),并且只能提供有限數(shù)量的訪問(wèn)請(qǐng)求.在這種異構(gòu)存儲(chǔ)系統(tǒng)中平均的副本分配策略不能達(dá)到負(fù)載均衡和優(yōu)化總體性能.相反,可能會(huì)發(fā)生訪問(wèn)傾斜,使得熱數(shù)據(jù)節(jié)點(diǎn)的請(qǐng)求被拒絕,而其他數(shù)據(jù)節(jié)點(diǎn)處于空閑,從而導(dǎo)致系統(tǒng)負(fù)載不均衡和低性能[18].
為了降低存儲(chǔ)成本,提高存儲(chǔ)性能和負(fù)載均衡,上述問(wèn)題必須予以考慮.
本文提出一種動(dòng)態(tài)副本管理機(jī)制DRM,旨在優(yōu)化如何基于可用性來(lái)確定副本數(shù)目和副本放置位置問(wèn)題.
DRM研究數(shù)據(jù)可用性和副本數(shù)之間的關(guān)系,設(shè)計(jì)基于可用性的副本創(chuàng)建模型,并利用此模型來(lái)動(dòng)態(tài)計(jì)算和維護(hù)給定可用性要求的最小副本數(shù)[13].
符號(hào)定義如表1所示.
表1 符號(hào)的定義
Table 1 Definition of symbols
符號(hào)定義P(NAi)數(shù)據(jù)節(jié)點(diǎn)Ai的可用概率P(NAi)數(shù)據(jù)節(jié)點(diǎn)Ai的不可用概率P(BAi)數(shù)據(jù)塊Bi的可用概率P(BAi)數(shù)據(jù)塊Bi的不可用概率P(FA)文件F的可用概率P(FA)文件F的不可用概率Aexcept期望文件F的可用性
在云存儲(chǔ)系統(tǒng)中,假設(shè)文件F由m個(gè)數(shù)據(jù)塊組成,標(biāo)記為{b1,b2,…,bm},并存放到不同的數(shù)據(jù)節(jié)點(diǎn)中.假設(shè)塊bi有rj個(gè)副本,如果這個(gè)塊的所有節(jié)點(diǎn)都是不可用的,說(shuō)明這個(gè)塊是不可用的,所以塊bi不可用的概率如式(1)所示.
(1)
因?yàn)樗泄?jié)點(diǎn)都是獨(dú)立的,所以可以得到:
(2)
云存儲(chǔ)數(shù)據(jù)可靠性服從指數(shù)分布.根據(jù)經(jīng)典理論[14],假設(shè)一個(gè)云存儲(chǔ)節(jié)點(diǎn)的可靠性在時(shí)間T內(nèi)服從指數(shù)分布:
F(T)=e-λ T
(3)
其中λ是云存儲(chǔ)節(jié)點(diǎn)的故障率,F(T)表示在某時(shí)間段內(nèi)云存儲(chǔ)節(jié)點(diǎn)故障的期望值.
假設(shè)多個(gè)副本存儲(chǔ)在不同的存儲(chǔ)節(jié)點(diǎn)中.根據(jù)云存儲(chǔ)節(jié)點(diǎn)可靠性,數(shù)據(jù)的可靠性與多個(gè)副本的關(guān)系可以由式(4)計(jì)算.
(4)
Trj為rj個(gè)副本的存儲(chǔ)生命期時(shí)間.
要保證文件的可用性就必須要求所有的塊可用,一個(gè)不可用的塊會(huì)導(dǎo)致整個(gè)文件不可用,如式(5)所示.
(5)
DRM假設(shè)數(shù)據(jù)塊相互獨(dú)立,即塊bj的不可用不會(huì)影響塊bk.可以獲得:
(6)
由式(4)和(5)可計(jì)算得式(7).
(7)
則文件F的可用性如式(8)所示.
(8)
如果要滿足文件F的可用性Aexcept,則式(9)應(yīng)滿足成立.
(9)
DRM使用式(9)計(jì)算最小副本數(shù)rmin以滿足具有平均數(shù)據(jù)節(jié)點(diǎn)故障率的預(yù)期可用性.在數(shù)據(jù)節(jié)點(diǎn)失效或者數(shù)據(jù)塊的當(dāng)前副本數(shù)量小于rmin的情況下,額外的副本將被創(chuàng)建到云存儲(chǔ)的數(shù)據(jù)節(jié)點(diǎn)中.
此外,對(duì)于不是關(guān)鍵的并且僅用于短期的數(shù)據(jù)類型,可以采用相對(duì)低的可靠性保證,并且不需要必要的數(shù)據(jù)回復(fù),因此副本的數(shù)量可以設(shè)置為1.
大型云存儲(chǔ)系統(tǒng)的存儲(chǔ)節(jié)點(diǎn)通常分布在集群的多個(gè)機(jī)架中,節(jié)點(diǎn)間通過(guò)交換機(jī)互連.不同機(jī)架節(jié)點(diǎn)間的通信必須經(jīng)過(guò)交換機(jī).通常情況下,同一機(jī)架節(jié)點(diǎn)間的網(wǎng)絡(luò)帶寬大于不同機(jī)架節(jié)點(diǎn)間的網(wǎng)絡(luò)帶寬.
目前的云存儲(chǔ)系統(tǒng)(HDFS)采用靜態(tài)副本管理機(jī)制,不考慮節(jié)點(diǎn)異構(gòu)性,地理分布性.這將導(dǎo)致副本成本增加、負(fù)載不均衡和低性能.因此,在智能副本放置機(jī)制應(yīng)考慮一些重要因素,例如:訪問(wèn)熱點(diǎn)變化、網(wǎng)絡(luò)帶寬、阻塞概率、節(jié)點(diǎn)異構(gòu)性、負(fù)載不均衡等.
為解決上述問(wèn)題,DRM采用智能副本放置機(jī)制,采用三種不同的副本放置策略(面向用戶,面向請(qǐng)求和面向業(yè)務(wù))適應(yīng)不同的應(yīng)用場(chǎng)景.副本放置機(jī)制可以分為如下兩個(gè)步驟:
1.副本創(chuàng)建階段.在此階段,DRM使用面向用戶的副本放置策略.在初始階段,副本創(chuàng)建的目的是保證數(shù)據(jù)可用性,而不是增加訪問(wèn)量.在開始階段,系統(tǒng)不能確定用戶訪問(wèn)密集的區(qū)域,訪問(wèn)量低難以判斷轉(zhuǎn)發(fā)業(yè)務(wù)量大的節(jié)點(diǎn),并且難以預(yù)測(cè)未來(lái)的訪問(wèn)速率和訪問(wèn)來(lái)源.因此,面向請(qǐng)求和面向業(yè)務(wù)的副本放置策略不適合.此外,由于復(fù)制成本較低,因此復(fù)制失敗的可能性也較低,所以使用面向用戶的策略更優(yōu).DRM采用的面向用戶策略的算法如下.
首先,系統(tǒng)將客戶端作為起始點(diǎn),其標(biāo)記為0.最靠近客戶端的機(jī)架標(biāo)記為1,需要通過(guò)標(biāo)記1機(jī)架的其他機(jī)架標(biāo)記為2,以此類推.系統(tǒng)選擇具有最小標(biāo)記機(jī)架中的節(jié)點(diǎn)來(lái)放置副本.
第二,在同一機(jī)架中,根據(jù)四個(gè)性能指標(biāo)選擇節(jié)點(diǎn):(1)自由空間存儲(chǔ),(2)CPU性能,(3)I/O性能,(4)網(wǎng)絡(luò)帶寬.
2.副本運(yùn)行時(shí)調(diào)整.在系統(tǒng)運(yùn)行期間,數(shù)據(jù)的訪問(wèn)率高度不規(guī)則.如果數(shù)據(jù)塊訪問(wèn)量增加并成為熱分區(qū),則將創(chuàng)建新的副本以保證負(fù)載均衡,并且在指定的時(shí)間內(nèi)對(duì)客戶端做出響應(yīng).因此,系統(tǒng)采用面向業(yè)務(wù)的策略,在具有最多轉(zhuǎn)發(fā)流量的節(jié)點(diǎn)(許多必要的路由路徑的連接節(jié)點(diǎn))上放置副本數(shù)據(jù).與面向請(qǐng)求策略相比,面向業(yè)務(wù)策略下的副本可以為大多數(shù)請(qǐng)求者服務(wù),保證更高的利用率.
在路由轉(zhuǎn)發(fā)過(guò)程中,轉(zhuǎn)發(fā)查詢根據(jù)不同的路由算法產(chǎn)生的流量也不同.在此,只計(jì)算直接到目的地的有效流量,不包括向所有鄰居轉(zhuǎn)發(fā)信息.每個(gè)請(qǐng)求者j到副本Bi存在路由路徑,該路徑中的所有節(jié)點(diǎn)的集合被表示為Aij.
Aij={Nk|Nk表示此節(jié)點(diǎn)在節(jié)點(diǎn)Ni到節(jié)點(diǎn)Nj的路由路徑上}
在單位時(shí)間t內(nèi),假設(shè)trijkt表示節(jié)點(diǎn)Nk從請(qǐng)求者j到副本Bi的業(yè)務(wù)負(fù)載,trikt表示節(jié)點(diǎn)Nk用于副本Bi的轉(zhuǎn)發(fā)流量.節(jié)點(diǎn)Nk的處理能力和副本數(shù)分別為Cikl(0 (10) 在單位時(shí)間t內(nèi)將來(lái)自請(qǐng)求者j到副本Bi的查詢數(shù)量定義為qijt,假設(shè)節(jié)點(diǎn)Nkx是路由路徑中節(jié)點(diǎn)Nk之前的任何一個(gè)節(jié)點(diǎn),因此Nkx∈Aij.節(jié)點(diǎn)Nkx的處理能力和副本數(shù)分別為Cikxl(0 (11) (12) 對(duì)于轉(zhuǎn)發(fā)節(jié)點(diǎn),如果其流量大于系統(tǒng)平均查詢的γ倍,則認(rèn)為它是過(guò)載的并且被標(biāo)記為流量中心節(jié)點(diǎn),即: (13) DRM采用文獻(xiàn)[15]提出的動(dòng)態(tài)副本調(diào)整策略,利用灰色預(yù)測(cè)技術(shù),根據(jù)最近數(shù)據(jù)的訪問(wèn)特征來(lái)預(yù)測(cè)未來(lái)數(shù)據(jù)塊的訪問(wèn)熱度,并且動(dòng)態(tài)調(diào)整副本數(shù)目.當(dāng)數(shù)據(jù)塊訪問(wèn)增加成為熱點(diǎn)時(shí),動(dòng)態(tài)增加副本數(shù)目,以提高數(shù)據(jù)訪問(wèn)效率.如果數(shù)據(jù)塊為非熱點(diǎn)訪問(wèn)數(shù)據(jù),則動(dòng)態(tài)刪除最近訪問(wèn)頻數(shù)最少的副本,以節(jié)省系統(tǒng)存儲(chǔ)空間. 算法1為動(dòng)態(tài)副本控制算法.首先是基于可用性的副本創(chuàng)建模型,使用式(9)根據(jù)用戶給定的文件可用性算出最小副本數(shù)rmin(第2-6行).其次是智能副本放置機(jī)制,在副本創(chuàng)建階段,采用面向用戶的策略將副本放置在離用戶最近的機(jī)架上,以保證數(shù)據(jù)的可用性(第11-12行);而在副本運(yùn)行調(diào)整階段,采用面向業(yè)務(wù)的策略,在具有最多轉(zhuǎn)發(fā)流量的節(jié)點(diǎn)放置副本,保證為大多數(shù)請(qǐng)求者服務(wù),有效的提高利用率(第14-15行).最后是動(dòng)態(tài)副本調(diào)整策略,數(shù)據(jù)塊的訪問(wèn)頻率并不總是保持很高,根據(jù)文獻(xiàn)[13]提出的算法,如果當(dāng)前副本數(shù)大于rmin并且數(shù)據(jù)塊平均訪問(wèn)頻率下降到刪除閾值thdel,則根據(jù)文獻(xiàn)[15]提出的LFU算法計(jì)算出數(shù)據(jù)塊各個(gè)副本i在當(dāng)前時(shí)刻之前的N個(gè)單位時(shí)間段T內(nèi)的總訪問(wèn)頻數(shù)VNi,刪除最近訪問(wèn)頻數(shù)最少的副本,調(diào)整副本數(shù)目以節(jié)省存儲(chǔ)空間(第18-22行). 算法1.動(dòng)態(tài)副本控制算法 輸入:Aexcept,文件的可用性; trk,路由路徑上節(jié)點(diǎn)k用于副本的轉(zhuǎn)發(fā)流量; q,副本的平均查詢; thdel,刪除閾值. 輸出:data nodel k,副本放置的流量中心節(jié)點(diǎn). 1.foreach time window Tdo 2.foreachfile 3.ifavailability reset by user 4. Calculate rmin 5.endif 6.endfor 7.foreach block do 8. rj=current replica number of block j 9. aj=Access frequency of block j 10.ifr < rmin 11.ifr=0 //副本創(chuàng)建階段 12. add rminreplicas to the nearest data nodes 13.else 14.iftrk>= γq 15. add one replica to the data node k 16.endif 17.else 18.ifaj< thdelthen 19.fori=1 to rjdo 20. calculate VNi 21.endfor 22. delete the replicas of smallest VNito the data nodes 23.endif 24.endfor 25.endfor 該算法可以很好的解決靜態(tài)副本策略無(wú)法適應(yīng)云計(jì)算的動(dòng)態(tài)性特征,算法中提出的動(dòng)態(tài)副本控制策略可以根據(jù)資源環(huán)境的變化而動(dòng)態(tài)調(diào)整副本的數(shù)目與位置,以適應(yīng)資源環(huán)境不穩(wěn)定的情況.該算法雖然會(huì)增加一些額外的開銷,但是計(jì)算主要集中在系統(tǒng)CPU空閑時(shí)間,對(duì)整體性能影響很小. 除了默認(rèn)的副本管理策略,HDFS還提供了靈活的API方便擴(kuò)展和實(shí)施高效的副本管理.副本因子在HDFS中按文件進(jìn)行配置.應(yīng)用程序可以指定文件的副本數(shù).副本因子可以在文件創(chuàng)建時(shí)被指定,以后可以更改.但是,HDFS不提供確定副本因子的策略.本文可用于確定給定可用性要求下的最小副本數(shù).HDFS還為Datanode之間的數(shù)據(jù)遷移提供接口,以平衡工作負(fù)載.因此,HDFS是實(shí)現(xiàn)和評(píng)估DRM的良好平臺(tái). 為了在HDFS中實(shí)現(xiàn)本文提出的DRM,使用副本因子來(lái)表示Namenode的元數(shù)據(jù)中的最小副本數(shù).圖1顯示了HDFS中DRM的框架.由于DRM需要塊數(shù)來(lái)計(jì)算給定可用性需求的最小副本數(shù),因此修改HDFS客戶端以將整個(gè)文件數(shù)據(jù)緩存到本地文件而不是第一塊.將整個(gè)中間文件緩存在本地文件中是合理的,其大小范圍從幾百兆字節(jié)到千兆字節(jié).這簡(jiǎn)化了在HDFS中的原型實(shí)現(xiàn),但可能不適用于大型(太字節(jié))的文件.找到將DRM有效地集成到HDFS中的最佳方式是未來(lái)工作的一個(gè)重要方向. 圖1 動(dòng)態(tài)副本管理框架Fig.1 Dynamic replication management framework 將整個(gè)數(shù)據(jù)寫入本地文件后,客戶端通過(guò)可用性設(shè)置和塊號(hào)聯(lián)系NameNode.NameNode將文件名插入到文件系統(tǒng)層次結(jié)構(gòu)中,基于式(9)計(jì)算副本因子,并利用面向用戶的策略獲得每個(gè)數(shù)據(jù)塊的DataNode的列表.NameNode使用每個(gè)塊的DataNode列表,目標(biāo)數(shù)據(jù)塊和副本因子來(lái)響應(yīng)客戶機(jī)請(qǐng)求.然后客戶端以流水線方式將每個(gè)數(shù)據(jù)塊從本地臨時(shí)文件刷新到指定的DataNode及其副本到選定的DataNode. 系統(tǒng)運(yùn)行期間,在數(shù)據(jù)節(jié)點(diǎn)不可達(dá)或者當(dāng)前副本數(shù)小于最小副本數(shù)rmin的情況下,新副本將被動(dòng)態(tài)地添加到數(shù)據(jù)節(jié)點(diǎn)以保證可用性要求. 測(cè)試平臺(tái)建立在由一個(gè)NameNode節(jié)點(diǎn)和二十個(gè)DataNode節(jié)點(diǎn)的集群上.每個(gè)節(jié)點(diǎn)都有2.8GHz的Intel Pentium 4 CPU,1GB或2GB的內(nèi)存,80GB或160GB的SATA磁盤.操作系統(tǒng)是帶有內(nèi)核2.6.20的Red Hat AS4.4.Hadoop版本為0.16.1,java版本為1.6.0. 為了評(píng)估式(9)的準(zhǔn)確性,實(shí)驗(yàn)隨時(shí)調(diào)整系統(tǒng)中存在的副本數(shù)目,并測(cè)量文件可用性. 在這個(gè)實(shí)驗(yàn)中,文件被分割成4塊.圖2比較對(duì)應(yīng)于預(yù)期可用性的副本數(shù)目.例如,假設(shè)數(shù)據(jù)節(jié)點(diǎn)失效率為0.1和用戶期望的文件可用性為0.8,基于式(9)的計(jì)算,最小副本數(shù)為2.當(dāng)系統(tǒng)將每個(gè)塊的副本數(shù)保持為2時(shí),我們測(cè)量文件的平均可用性為0.93左右.雖然模型預(yù)測(cè)在圖中的坐標(biāo)可能都不是特別準(zhǔn)確,但這驗(yàn)證了模型指向的總趨勢(shì). 為了評(píng)估DRM作為動(dòng)態(tài)算法的優(yōu)勢(shì),測(cè)量實(shí)驗(yàn)中運(yùn)行的副本數(shù)目.結(jié)果如圖3所示,將Aexcept設(shè)置為0.8,開始階段每個(gè)塊設(shè)置一個(gè)副本.從結(jié)果中可以看到,在實(shí)驗(yàn)開始時(shí)副本數(shù)目不斷增加.達(dá)到一定程度后,實(shí)驗(yàn)中副本的數(shù)目維持在一個(gè)恒定的水平.這表明如果當(dāng)前副本數(shù)目不滿足可用性需求,DRM便會(huì)動(dòng)態(tài)添加更多副本. 圖2 可用性模型的準(zhǔn)確性比較Fig.2 Accuracy comparison of availability model 圖3 數(shù)據(jù)節(jié)點(diǎn)故障率為0.1和0.2,期望值為0.8的動(dòng)態(tài)復(fù)制Fig.3 Dynamic replication with data node failure rate of 0.1 and 0.2,Aexcept=0.8 在不同的訪問(wèn)流行度和訪問(wèn)率下比較DRM和HDFS的平均訪問(wèn)延遲.HDFS靜態(tài)維護(hù)配置系統(tǒng)中的副本數(shù)目,并采用機(jī)架感知副本放置策略.當(dāng)副本因子為3時(shí),HDFS將兩個(gè)副本放置在同一機(jī)架中,將一個(gè)副本放置在不同的機(jī)架中.然而,在同一機(jī)架中的Datanode是隨機(jī)選擇的,而不考慮Datanode之間的性能和工作負(fù)載差異.假設(shè)有20個(gè)數(shù)據(jù)節(jié)點(diǎn),訪問(wèn)率為 δ(0<δ<1),設(shè)置Aexcept= 0.8,數(shù)據(jù)節(jié)點(diǎn)失效率為0.1,系統(tǒng)最初每塊保持2個(gè)副本.測(cè)試結(jié)果繪制在圖4中. 由圖4可以看出,隨著訪問(wèn)流行度的增加,DRM和HDFS的訪問(wèn)延遲都會(huì)降低.但是,當(dāng)訪問(wèn)流行度很小時(shí),DRM的性能比HDFS的性能好.這是因?yàn)镈RM可以通過(guò)增加流行塊的副本數(shù)目并根據(jù)面向業(yè)務(wù)的策略調(diào)整副本位置,在數(shù)據(jù)節(jié)點(diǎn)之間動(dòng)態(tài)分配工作負(fù)載.從實(shí)驗(yàn)結(jié)果還可以發(fā)現(xiàn),當(dāng)將訪問(wèn)率從0.2增加到0.6時(shí),DRM的性能優(yōu)于HDFS.這表明DRM利用面向業(yè)務(wù)的策略在數(shù)據(jù)節(jié)點(diǎn)集群之間分配繁重的工作負(fù)載,并利用整個(gè)集群的資源來(lái)實(shí)現(xiàn)整體性能的提高. 實(shí)驗(yàn)結(jié)果表明,DRM可以適應(yīng)環(huán)境的變化,保持一個(gè)合理數(shù)量的副本,這不僅滿足可用性,而且還提高了訪問(wèn)延遲,負(fù)載均衡,并保持整個(gè)存儲(chǔ)系統(tǒng)穩(wěn)定. 目前的分布式系統(tǒng)都是采用數(shù)據(jù)副本的方法來(lái)提高數(shù)據(jù)的可用性,但是當(dāng)前的數(shù)據(jù)副本方法大多都是靜態(tài)地提供固定個(gè)數(shù)的數(shù)據(jù)副本,無(wú)法適應(yīng)動(dòng)態(tài)變化的數(shù)據(jù)訪問(wèn)和節(jié)點(diǎn)性能,并會(huì)導(dǎo)致糟糕的性能和負(fù)載不均衡,本文提出的DRM策略充分考慮到了這些問(wèn)題,該策略能根據(jù)可用性計(jì)算得到合適的數(shù)據(jù)副本個(gè)數(shù),不僅考慮到數(shù)據(jù)可靠性還避免了不必要的數(shù)據(jù)復(fù)制,基于節(jié)點(diǎn)性能和用戶訪問(wèn)特性確定副本放置位置.實(shí)驗(yàn)結(jié)果表明DRM在成本、負(fù)載平衡和性能都優(yōu)于現(xiàn)有HDFS副本管理機(jī)制. [1] Ghemawat S,Gobioff H,Leung S T.The google file system[J].Acm Sigops Operating Systems Review,2003,37(5):29-43. [2] Weil S A,Brandt S A,Miller E L,et al.Ceph:a scalable,high-performance distributed file system[C].Symposium on Operating Systems Design and Implementation,USENIX Association,2006:307-320. [3] Konstantin Shvachko K,Hairong Kuang,Radia S,et al. The hadoop distributed file system[C].In Proc.of the 26th Mass Storage System and Technologies,2010:1-10. [4] Rahman R M,Barker K,Alhajj R.Replica placement strategies in data grid[J].Journal of Grid Computing,2008,6(1):103-123. [5] Xu Jing,Yang Shou-bao,Wang Shu-ling,et al.CDRS:an adaptive cost-driven replication strategy in cloud storage[J].Journal of the Graduate School of the Chinese Academy of Sciences,2011,28(6):759-767. [6] Amazon simple storage service website[EB/OL].http://aws.amazon.com/s3/,Jan,2017. [7] Melorose J,Perroy R,Careas S.Hadoop definitive guide[M].Hadoop:The Definitive Guide.Yahoo! Press,2015:1-4. [8] Chandy J A.A generalized replica placement strategy to optimize latency in a wide area distributed storage system[M].Proceedings of the 2008 International Workshop on Data-aware Distributed Computing (DADC′08),Boston,USA,New York NY,USA,ACM,2008:49-54. [9] Ding Y,Lu Y.Automatic data placement and replication in grids[C].High Performance Computing (HiPC),2009 International Conference on.IEEE,2009:30-39. [10] Qu Y,Xiong N.RFH:a resilient,fault-tolerant and high-efficient replication algorithm for distributed cloud storage[C].International Conference on Parallel Processing,IEEE,2012:520-529. [11] Lin Wei-wei.An improved data placement strategy for hadoop[J].Journal of South China University of Technology,2012,40(1):152-158. [12] Ibrahim I A,Wei D,Bassiouni M.Intelligent data placement mechanism for replicas distribution in cloud storage systems[C].IEEE International Conference on Smart Cloud,IEEE Computer Society,2016:134-139. [13] Wei Q,Veeravalli B,Gong B,et al.CDRM:a cost-effective dynamic replication management scheme for cloud storage cluster[C].IEEE International Conference on CLUSTER Computing.IEEE,2010:188-196. [14] Deng J L.Control problems of grey systems[J].Systems & Control Letters,1982,1(5):288-294. [15] Tao Yong-cai,Zhang Ning-ning,Shi Lei,et al.Researching on dynamic management of data replicas of cloud computing in heterogeneous environments[J].Journal of Chinese Computer Systems,2013,34(7):1487-1492. [16] Lin Chang-hang,Guo Wen-zhong,Chen Huang-ning.Node-capability-aimed data distribution strategy in heterogeneous hadoop cluster[J].Journal of Chinese Computer Systems,2015,36(1):83-88. [17] Xun Ya-ling,Zhang Ji-fu,Qin Xiao.Data placement strategy for MapReduce cluster environment[J].Journal of Software,2015,26(8):2056-2073. [18] Qu K,Meng L,Yang Y.A dynamic replica strategy based on Markov model for hadoop distributed file system (HDFS)[C].Cloud Computing and Intelligence Systems (CCIS),2016 4th International Conference on.IEEE,2016:337-342. 附中文參考文獻(xiàn): [5] 徐 婧,楊壽保,王淑玲,等.CDRS:云存儲(chǔ)中一種代價(jià)驅(qū)動(dòng)的自適應(yīng)副本策略[J].中國(guó)科學(xué)院大學(xué)學(xué)報(bào),2011,28(6):759-767. [11] 林偉偉.一種改進(jìn)的Hadoop數(shù)據(jù)放置策略[J].華南理工大學(xué)學(xué)報(bào):自然科學(xué)版,2012,40(1):152-158. [15] 陶永才,張寧寧,石 磊,等.異構(gòu)環(huán)境下云計(jì)算數(shù)據(jù)副本動(dòng)態(tài)管理研究[J].小型微型計(jì)算機(jī)系統(tǒng),2013,34(7):1487-1492. [16] 林常航,郭文忠,陳煌寧.針對(duì)Hadoop異構(gòu)集群節(jié)點(diǎn)性能的數(shù)據(jù)分配策略[J].小型微型計(jì)算機(jī)系統(tǒng),2015,36(1):83-88. [17] 荀亞玲,張繼福,秦 嘯.MapReduce集群環(huán)境下的數(shù)據(jù)放置策略[J].軟件學(xué)報(bào),2015,26(8):2056-2073.4.3 DRM控制策略
5 DRM實(shí)現(xiàn)
6 性能評(píng)估
6.1 可用性
6.2 訪問(wèn)延遲
7 結(jié) 論