国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于對(duì)象存儲(chǔ)文件系統(tǒng)的文件級(jí)RAID機(jī)制研究

2010-11-26 08:31熊安萍蔡毅峰
關(guān)鍵詞:分片偏移量邏輯

熊安萍, 蔡毅峰, 蔣 溢

(重慶郵電大學(xué)大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 重慶 400065)

隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的高速發(fā)展,大規(guī)模分布式集群存儲(chǔ)系統(tǒng)的應(yīng)用越來(lái)越廣泛,如超大規(guī)模的電子郵件系統(tǒng)、數(shù)字圖書(shū)館、大型在線電子商務(wù)系統(tǒng)、衛(wèi)星數(shù)字處理、視頻數(shù)字圖像處理、高性能計(jì)算等[1].分布式集群系統(tǒng)將普通的商用PC機(jī)或工作站通過(guò)高速網(wǎng)絡(luò)互聯(lián)在一起組成集群,能夠根據(jù)系統(tǒng)的需求隨時(shí)增加新的硬件,提高系統(tǒng)的可伸縮性,可以同時(shí)利用RAID技術(shù)和基于網(wǎng)絡(luò)的復(fù)制技術(shù),從而能夠在價(jià)格低廉的中低端平臺(tái)上獲得高端或者超級(jí)計(jì)算機(jī)上才能獲得的高可用性、高性能[2].

基于對(duì)象存儲(chǔ)技術(shù)是存儲(chǔ)領(lǐng)域中的新興技術(shù).它以對(duì)象作為數(shù)據(jù)存儲(chǔ)管理的基本單位,采用數(shù)據(jù)與元數(shù)據(jù)分離的存儲(chǔ)體系結(jié)構(gòu),元數(shù)據(jù)服務(wù)器負(fù)責(zé)管理元數(shù)據(jù)并為存儲(chǔ)系統(tǒng)提供全局命名空間,而數(shù)據(jù)存儲(chǔ)在具有智能管理功能的基于對(duì)象存儲(chǔ)設(shè)備上.基于對(duì)象存儲(chǔ)體系結(jié)構(gòu)的網(wǎng)絡(luò)帶寬,I/O吞吐量以及處理能力是隨著存儲(chǔ)節(jié)點(diǎn)的增加而同步線性增長(zhǎng),但是在增加存儲(chǔ)設(shè)備的同時(shí)也增大了系統(tǒng)出現(xiàn)故障的可能性,帶來(lái)了系統(tǒng)高可用、數(shù)據(jù)容錯(cuò)方面的問(wèn)題[3].文件分片技術(shù)能夠便于元數(shù)據(jù)管理器對(duì)數(shù)據(jù)的集中管理,減輕了元數(shù)據(jù)管理器的瓶頸,也能夠保證數(shù)據(jù)的高可用,也便于元數(shù)據(jù)服務(wù)器的擴(kuò)展.但是,文件分片可能出現(xiàn)不一致的概率會(huì)比普通的RAID更高,同時(shí),奇偶校驗(yàn)的更新效率上也會(huì)比同級(jí)別的RAID低.但總體來(lái)說(shuō),文件分片技術(shù)能有效地提高系統(tǒng)的讀寫(xiě)帶寬.

作者在分析基于對(duì)象存儲(chǔ)文件系統(tǒng)Lustre的分片技術(shù)的基礎(chǔ)之上, 為文件數(shù)據(jù)塊提供多個(gè)存儲(chǔ)策略,運(yùn)用物理地址和邏輯地址相互轉(zhuǎn)換的方法,實(shí)現(xiàn)了一個(gè)基于分片技術(shù)的文件存儲(chǔ)機(jī)制,實(shí)驗(yàn)結(jié)果表明,該分片存儲(chǔ)機(jī)制能夠提供靈活的文件存儲(chǔ)策略,使得用戶(hù)能夠進(jìn)行選擇使用,同時(shí)保證了系統(tǒng)的讀寫(xiě)性能.

1 Lustre文件級(jí)RAID

1.1 Lustre文件級(jí)RAID概述

Lustre文件系統(tǒng)是由Cluster File Systems, Inc(CFS)公司開(kāi)發(fā)的、一個(gè)開(kāi)源的基于Linux操作系統(tǒng)的、面向下一代存儲(chǔ)的分布式文件系統(tǒng),消除了目前很多傳統(tǒng)文件系統(tǒng)中存在的性能,可靠性以及可擴(kuò)展性上的問(wèn)題.

Lustre文件系統(tǒng)主要由3部分組成:客戶(hù)端(CFS, Client File System)、對(duì)象存儲(chǔ)服務(wù)器(OST, Object Storage Target)和元數(shù)據(jù)服務(wù)器(MDS, MetaData Server).Lustre是一個(gè)高度模塊化的分布式文件系統(tǒng),這3個(gè)子系統(tǒng)可以分別運(yùn)行在不同的計(jì)算機(jī)節(jié)點(diǎn)上,也可以運(yùn)行在同一節(jié)點(diǎn)上[4].

在基于對(duì)象存儲(chǔ)的Lustre文件系統(tǒng)中,文件是由一個(gè)或多個(gè)存儲(chǔ)對(duì)象組成,將組成文件的所有存儲(chǔ)對(duì)象稱(chēng)之為存儲(chǔ)對(duì)象組.傳統(tǒng)的RAID是以存儲(chǔ)對(duì)象為粒度,與soft RAID Linux MD/RAID塊設(shè)備一級(jí)實(shí)現(xiàn)不同,它是在文件一級(jí)實(shí)現(xiàn),粒度更小,更加靈活.在Linux的MD RAID中,以軟件的方法實(shí)現(xiàn)了多種數(shù)據(jù)分布模式,有線性模式、RAID0、RAID1、RAID5、RAID6等[5],文件級(jí)RAID的級(jí)別定義與傳統(tǒng)的RAID類(lèi)似. non-RAID是將文件數(shù)據(jù)僅存儲(chǔ)到一個(gè)存儲(chǔ)對(duì)象中;RAID0是將文件數(shù)據(jù)以Round-Robin算法條帶化地?zé)o冗余地分布存儲(chǔ)到N個(gè)存儲(chǔ)對(duì)象中;RAID1是將文件數(shù)據(jù)分布到N個(gè)存儲(chǔ)對(duì)象中,存儲(chǔ)對(duì)象互為鏡像.本文為這3種實(shí)現(xiàn)策略提供了統(tǒng)一的實(shí)現(xiàn)機(jī)制,并通過(guò)一個(gè)特定的接口提供給用戶(hù)使用.

1.2 基于Lustre的文件級(jí)RAID機(jī)制

1.2.1 Lustre文件級(jí)RAID基本思想 Lustre是一種基于對(duì)象存儲(chǔ)文件系統(tǒng),因而在Lustre中,文件是以一個(gè)或多個(gè)存儲(chǔ)對(duì)象組成,所有的存儲(chǔ)對(duì)象稱(chēng)之為存儲(chǔ)對(duì)象組.相對(duì)于傳統(tǒng)的RAID, Lustre中的RAID設(shè)計(jì)以存儲(chǔ)對(duì)象為粒度,在文件一級(jí)實(shí)現(xiàn),通過(guò)對(duì)文件進(jìn)行分片,以及設(shè)計(jì)相應(yīng)的分片管理策略,實(shí)現(xiàn)Lustre中的文件級(jí)RAID技術(shù)[6].

對(duì)于Lustre文件系統(tǒng),用戶(hù)在使用和處理數(shù)據(jù)的過(guò)程中,對(duì)于數(shù)據(jù)的可靠性級(jí)別,是有自己不同的需求的.然而Lustre文件系統(tǒng)卻沒(méi)有給用戶(hù)提供這種選擇的機(jī)制,因而,可以通過(guò)提供相應(yīng)的機(jī)制,讓用戶(hù)靈活根據(jù)使用non-RAID,RAID0和RAID1 3種數(shù)據(jù)策略來(lái)管理用戶(hù)數(shù)據(jù).本文通過(guò)為文件數(shù)據(jù)塊提供多個(gè)存儲(chǔ)策略,并且將這些策略作為一個(gè)通用的系統(tǒng)組件,以進(jìn)行統(tǒng)一的管理和使用.

1.2.2 文件分片訪問(wèn)接口設(shè)計(jì) Lustre的客戶(hù)端,對(duì)象存儲(chǔ)服務(wù)器都要通過(guò)統(tǒng)一的分片策略訪問(wèn)接口,調(diào)用不同的分片策略分布算法函數(shù),實(shí)現(xiàn)對(duì)數(shù)據(jù)的多策略訪問(wèn).設(shè)計(jì)函數(shù)strategy_accessing_request(),作為策略訪問(wèn)的唯一接口.同時(shí)定義以下幾個(gè)數(shù)據(jù)結(jié)構(gòu),對(duì)Lustre中的文件布局進(jìn)行相關(guān)的描述.

strategy_request結(jié)構(gòu):通過(guò)定義數(shù)據(jù)的起始偏移量,數(shù)據(jù)塊中元素的個(gè)數(shù),總字節(jié)數(shù),以及描述基本元素類(lèi)型的結(jié)構(gòu)來(lái)描述邏輯文件的連續(xù)數(shù)據(jù)布局.

strategy_stack_req結(jié)構(gòu):通過(guò)一個(gè)指向strategy_request指針記錄數(shù)據(jù)正在被處理的情況.

strategy_request_state結(jié)構(gòu):通過(guò)使用一個(gè)堆棧跟蹤數(shù)據(jù)的每一級(jí),對(duì)于每一級(jí),則通過(guò)strategy_stack_req對(duì)數(shù)據(jù)塊的處理情況進(jìn)行描述.

strategy_file_request結(jié)構(gòu):描述數(shù)據(jù)片的服務(wù)器分布狀況以及文件的具體分片算法結(jié)構(gòu).

函數(shù)strategy_accessing_request()處理請(qǐng)求和文件分布算法.通過(guò)處理偏移量和段大小的數(shù)組,并且將上面定義的4種結(jié)構(gòu)進(jìn)行初始化,這樣就得到了所有的文件分布策略、文件分布的參數(shù)等文件分片的關(guān)鍵數(shù)據(jù).客戶(hù)端可以通過(guò)它調(diào)用具體的分布算法計(jì)算文件的邏輯偏移量和文件大小.對(duì)象存儲(chǔ)服務(wù)器則可以通過(guò)該函數(shù)計(jì)算分片文件中實(shí)際的物理偏移地址,獲取該分片文件的數(shù)據(jù).

圖1 接口函數(shù)調(diào)用流程圖

定義分布算法接口函數(shù)strategy_distribution(),函數(shù)strategy_accessing_request()通過(guò)調(diào)用該分布函數(shù)來(lái)調(diào)用具體的文件分布算法.而具體的分布算法又統(tǒng)一讓函數(shù)strategy_distribution()調(diào)用.圖1給出了接口函數(shù)的調(diào)用流程圖.

1.2.3 文件分片算法 文件分片的算法關(guān)鍵在于邏輯偏移量與物理偏移量之間的相互轉(zhuǎn)換.對(duì)于non-RAID分片策略,則文件的物理偏移量等于邏輯偏移量,相互之間不需要轉(zhuǎn)換.RAID0的分布算法則借鑒了磁盤(pán)陣列的RAID0方法實(shí)現(xiàn),將一個(gè)文件的分片文件輪換放置到數(shù)據(jù)節(jié)點(diǎn)上.RAID1的分布算法和RAID0一樣,也借鑒了磁盤(pán)陣列的RAID1方法,將數(shù)據(jù)輪換放置在一組服務(wù)器上,同時(shí)也備份到后續(xù)節(jié)點(diǎn)上,這樣在計(jì)算偏移量之前,先要判斷對(duì)應(yīng)的主服務(wù)器是否存在,如果不存在,則要判斷備份服務(wù)器是否存在.

對(duì)于分片算法,關(guān)鍵就是實(shí)現(xiàn)邏輯偏移量和物理偏移量之間的相互轉(zhuǎn)換.此外,對(duì)于給定的邏輯偏移量,也要能夠同物理文件的下一個(gè)物理偏移量相轉(zhuǎn)換.首先定義以下變量:

stripe_size:文件分片的大小.

total_stripes:文件的大小.

stripe_offset:物理文件從偏移量0開(kāi)始到total_stripes個(gè)完整stripe的物理位置.

remnant:邏輯偏移量減去total_stripes個(gè)stripes剩下的字節(jié)長(zhǎng)度.

在實(shí)現(xiàn)邏輯偏移量轉(zhuǎn)換為物理偏移量的過(guò)程中,關(guān)鍵是要對(duì)表示邏輯偏移量減去toal_stripes個(gè)分片剩下字節(jié)長(zhǎng)度與服務(wù)器號(hào)之間的關(guān)系進(jìn)行判斷.

temnant=logic_offset-total_stripes*stripe_size*sever_count

若remnant>=server_number*stripe_size 且 remnant< (server_number+1)*stripe_size,則說(shuō)明該物理偏移量在服務(wù)器server_number的total_stripe個(gè)完整分片的下一個(gè)分片上.

若remnant>=server_number*stripe_size 且 remnant>=(server_number+1)*stripe_size,則說(shuō)明該物理偏移量在服務(wù)器server_number的total_stripes個(gè)完整分片的下一個(gè)分片上起始位置就是我們要找的物理偏移量, 即physical_offset = stripe_offset + stripe_size.

若remnant

邏輯偏移量轉(zhuǎn)換為物理偏移量的流程如圖2所示.

同理,給定物理偏移量獲取邏輯文件的邏輯偏移量,給出的條件是:stripe大小,服務(wù)器號(hào),服務(wù)器總數(shù),邏輯文件的服務(wù)器號(hào),關(guān)鍵是對(duì)當(dāng)前物理偏移量所在的分片的偏移量長(zhǎng)度進(jìn)行判斷,變量定義如下:

stripe_number:物理文件中完整的分片數(shù).

stripe_off_length:當(dāng)前物理偏移量所在分片的偏移量長(zhǎng)度.

temp:臨時(shí)中間變量.

具體的算法描述如下:

stripe_number = physical_offset / stripr_size

stripe_off_length = physical_offset % stripe_size

temp = (stripe_number-1) * stripe_size * server_count

if stripe_off_length>0

then temp += stripe_size * server_count

temp += stripe_size * server_number

temp += stripe_off_length

else temp += stripe_szie * (server_number+1)

logical_offset = temp

物理偏移量轉(zhuǎn)換為邏輯偏移量的流程如圖3所示:

圖2 邏輯偏移量轉(zhuǎn)換為物理偏移量流程 圖3 物理偏移量轉(zhuǎn)換為邏輯偏移量流程

RAID1的文件分片算法和RAID0的原理一樣,也是進(jìn)行邏輯偏移量和物理偏移量之間的相互轉(zhuǎn)換,只不過(guò)在進(jìn)行偏移量計(jì)算之前,先要判斷分片對(duì)應(yīng)的主服務(wù)器是否存在,如果主服務(wù)器不存在,要判斷備份服務(wù)器是否存在.

2 測(cè)試及分析

測(cè)試使用的服務(wù)器配置為Intel(R) Pentium(R) Dual 1.60GHz處理器;2GB內(nèi)存;Realtek Ethernet NIC 100/1000M網(wǎng)卡;操作系統(tǒng)安裝的是RedHat Enterprise Linux 5,使用的Lustre文件系統(tǒng)是1.4.7版,并使用iozone作為帶寬測(cè)試工具.

在對(duì)non-RAID,RAID0,RAID1的讀寫(xiě)性能測(cè)試中,條帶化對(duì)象存儲(chǔ)服務(wù)器的數(shù)量為2個(gè),條帶的大小為1M.所得的讀寫(xiě)性能如圖4所示.

圖4 RAID讀性能

從測(cè)試結(jié)果可知,RAID1模式的讀性能要好于non-RAID,但要低于理論的2倍值.而RAID1的讀性能也低于RAID0的讀性能.與non-RAID相比較,RAID0由于實(shí)現(xiàn)了帶區(qū)組,數(shù)據(jù)并不是保存在一個(gè)OST,而是分成數(shù)據(jù)塊保存在不同的OST,所以數(shù)據(jù)的吞吐量大大提高,從而提高了讀性能.同時(shí),RAID0也提高了數(shù)據(jù)傳輸速率,比如所需讀取的文件分布在2個(gè)OST,這2個(gè)OST可以同時(shí)讀取.那么原來(lái)讀取同樣文件的時(shí)間被縮短為1/2,所以RAID0的讀性能是3種模式里最好的.RAID1的性能沒(méi)有RAID0那樣好,但其數(shù)據(jù)讀取較單一OST來(lái)得快,因?yàn)閿?shù)據(jù)會(huì)從2塊OST中較快的一塊中讀出.

圖5 RAID寫(xiě)性能

從圖5的塊寫(xiě)性能比較中,可以看出RAID0的寫(xiě)性能是最好的,RAID1的寫(xiě)性能雖然最差,但是由于讀寫(xiě)操作是并行的,因而與non-RAID也相差不大.對(duì)于使用這種RAID1結(jié)構(gòu)的設(shè)備來(lái)說(shuō),RAID1必須能夠同時(shí)對(duì)2個(gè)鏡像客戶(hù)端進(jìn)行寫(xiě)操作.RAID1的寫(xiě)入速度通常較慢,因?yàn)閿?shù)據(jù)要分別寫(xiě)入2個(gè)客戶(hù)端中并做比較.和RAID0的讀性能分析類(lèi)似,RAID0的寫(xiě)性能最好的原因也是由于文件的不同數(shù)據(jù)塊能夠在多個(gè)OST并行同時(shí)寫(xiě)入.

從以上測(cè)試結(jié)果也能看出,文中實(shí)現(xiàn)了靈活的機(jī)制,使得用戶(hù)能夠選擇靈活的存儲(chǔ)策略,從而令系統(tǒng)更加方便易用,同時(shí),保證了文件系統(tǒng)高效的讀寫(xiě)帶寬.

3 結(jié)語(yǔ)

基于對(duì)象存儲(chǔ)文件系統(tǒng)Lustre給出了一種文件分片機(jī)制.該機(jī)制不僅能夠有效保證系統(tǒng)的文件讀寫(xiě)帶寬,而且還能通過(guò)多種不同存儲(chǔ)策略的選擇,適應(yīng)于不同的應(yīng)用.相比于傳統(tǒng)的對(duì)象文件存儲(chǔ)系統(tǒng)的文件存儲(chǔ)機(jī)制,不僅提高了系統(tǒng)的性能,同時(shí)也提高了系統(tǒng)的靈活性.測(cè)試結(jié)果表明,所設(shè)計(jì)的分片機(jī)制能夠在增強(qiáng)系統(tǒng)靈活性的同時(shí)有效地保持系統(tǒng)的高效讀寫(xiě)性能.

參考文獻(xiàn):

[1] 何興高,張鳳荔,黃遠(yuǎn)軍,等.分布式個(gè)人文件系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電子科技大學(xué)學(xué)報(bào),2005,34(4):521-524.

[2] 王一夫,陳松喬,范國(guó)闖.基于網(wǎng)格計(jì)算中的安全問(wèn)題研究[J].湖南師范大學(xué)自然科學(xué)學(xué)報(bào),2005,3,28(1):24-27.

[3] DANIEL DUFFY, NICKO ACKS, VAUGHN NOGA,etal. Beyond the storage area networking: data intensive computing in a distributed environment. The 22nd IEEE/13th NASA Goddard Conference on Mass Storage System Technologies MSST2005[C]. American: IEEE Computer Society. 2005,232-236.

[4] MESNIER M, GANGER G R, RIEDEL E. Object-based storage: pushing more functionality into storage[J]. Potentials IEEE, 2005,24(2): 31-34.

[5] MESNIER M, GANGER G R, RIEDEL E. Object-based storage[J]. Communications Magazine, IEEE, 2003,41(8): 84-90.

[6] GILBSON G A, METER R V. Network attached storage architecture[J]. Communications of the ACM,2000,43(11): 37-45.

猜你喜歡
分片偏移量邏輯
上下分片與詞的時(shí)空佈局
刑事印證證明準(zhǔn)確達(dá)成的邏輯反思
基于格網(wǎng)坐標(biāo)轉(zhuǎn)換法的矢量數(shù)據(jù)脫密方法研究
邏輯
創(chuàng)新的邏輯
分片光滑邊值問(wèn)題的再生核方法
CDN存量MP4視頻播放優(yōu)化方法
基于模糊二分查找的幀分片算法設(shè)計(jì)與實(shí)現(xiàn)
攪拌針不同偏移量對(duì)6082-T6鋁合金接頭勞性能的影響
基于最小二乘平差的全極化SAR配準(zhǔn)偏移量估計(jì)方法
郸城县| 旺苍县| 巧家县| 双桥区| 宁城县| 班戈县| 九江县| 江城| 长海县| 汕头市| 广河县| 仪征市| 阳谷县| 新化县| 西贡区| 西平县| 阳西县| 永仁县| 介休市| 东辽县| 军事| 柯坪县| 喜德县| 名山县| 桂林市| 汤原县| 廊坊市| 兴文县| 云霄县| 文水县| 息烽县| 崇明县| 毕节市| 卓资县| 隆德县| 南陵县| 封开县| 错那县| 黔西县| 南部县| 清远市|