許春聰,文海雄,劉 釗,鄭 強(qiáng),韓 鵬
(75837部隊(duì),廣東 廣州 510630)
分布式內(nèi)存文件系統(tǒng)的發(fā)展*
許春聰,文海雄,劉 釗,鄭 強(qiáng),韓 鵬
(75837部隊(duì),廣東 廣州 510630)
隨著動(dòng)態(tài)隨機(jī)存儲(chǔ)器集成技術(shù)的快速發(fā)展,基于內(nèi)存的數(shù)據(jù)存儲(chǔ)已經(jīng)成為緩解磁盤(pán)I/O性能瓶頸的重要方式之一。分布式內(nèi)存文件系統(tǒng)適用于非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ),具有文件語(yǔ)義,能夠兼容傳統(tǒng)應(yīng)用。從緩解磁盤(pán)I/O性能瓶頸的角度入手,介紹了單機(jī)內(nèi)存文件系統(tǒng)、并行內(nèi)存文件系統(tǒng)和分布式內(nèi)存文件系統(tǒng)的發(fā)展,提出了未來(lái)的主要研究方向。
分布式內(nèi)存文件系統(tǒng);吞吐量;訪問(wèn)延遲;負(fù)載平衡
隨著系統(tǒng)規(guī)模的擴(kuò)大和數(shù)據(jù)量的快速增長(zhǎng),隨機(jī)I/O訪問(wèn)已經(jīng)成為阻礙系統(tǒng)性能發(fā)揮的一個(gè)重要原因。Nils Nieuwejaar等人分析并行科學(xué)計(jì)算應(yīng)用的訪問(wèn)特性,發(fā)現(xiàn)在MIMD并行計(jì)算機(jī)系統(tǒng)中存在大量隨機(jī)I/O訪問(wèn)的情況[1]。Roselli等人分析多種負(fù)載的大文件訪問(wèn)類(lèi)型,發(fā)現(xiàn)其隨機(jī)訪問(wèn)的概率比以往的研究結(jié)果大得多[2]。實(shí)際上,文件系統(tǒng)元數(shù)據(jù)訪問(wèn)、Web服務(wù)、Mail服務(wù)等環(huán)境中也存在著大量的高并發(fā)隨機(jī)I/O訪問(wèn)。受磁盤(pán)I/O的限制,隨機(jī)I/O訪問(wèn)常常導(dǎo)致系統(tǒng)I/O過(guò)高,速度很慢,故障頻發(fā)。
斯坦福大學(xué)的John Outerhout分析了基于硬盤(pán)的存儲(chǔ)系統(tǒng)所面臨的各種問(wèn)題,指出磁盤(pán)I/O性能是制約系統(tǒng)的瓶頸,并提出了基于隨機(jī)訪問(wèn)存儲(chǔ)器構(gòu)建高數(shù)據(jù)吞吐量和低訪問(wèn)延遲的內(nèi)存云——RAMClouds[3]。采用分布式內(nèi)存文件系統(tǒng)構(gòu)建高數(shù)據(jù)吞吐量和低訪問(wèn)延遲的分布式計(jì)算和存儲(chǔ)系統(tǒng),是一種較好的解決方案。
分布式文件系統(tǒng)(Distributed File System)作為云計(jì)算和云存儲(chǔ)的核心技術(shù),近年來(lái),一直是分布式計(jì)算和數(shù)據(jù)存儲(chǔ)領(lǐng)域的研究熱點(diǎn)。分布式文件系統(tǒng)管理的物理存儲(chǔ)資源分布在多個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)上,以實(shí)現(xiàn)數(shù)據(jù)共享和管理共享。與傳統(tǒng)的基于磁盤(pán)的文件系統(tǒng)不同,分布式內(nèi)存文件系統(tǒng)是指以動(dòng)態(tài)隨機(jī)存儲(chǔ)器(DRAM)作為文件和元數(shù)據(jù)的存儲(chǔ)介質(zhì),管理分布式環(huán)境下數(shù)據(jù)資源的文件系統(tǒng)。隨著DRAM價(jià)格的降低,DRAM的性價(jià)比優(yōu)勢(shì)將不斷提高,未來(lái)DRAM有可能成為基本的存儲(chǔ)介質(zhì)[4]。雖然非易失性隨機(jī)存儲(chǔ)器得到了長(zhǎng)足的發(fā)展[5-8],但易失性DRAM仍在計(jì)算機(jī)系統(tǒng)中占有絕對(duì)主導(dǎo)的地位。為了使分析更具普適性,本文中所提到的內(nèi)存均指易失性DRAM。
根據(jù)系統(tǒng)結(jié)構(gòu)和工作方式的不同,傳統(tǒng)內(nèi)存文件系統(tǒng)分為單機(jī)內(nèi)存文件系統(tǒng)、并行內(nèi)存文件系統(tǒng)兩類(lèi)。單機(jī)內(nèi)存文件系統(tǒng)只能在1臺(tái)計(jì)算機(jī)上部署和運(yùn)行,提供串行的文件訪問(wèn)服務(wù)。并行內(nèi)存文件系統(tǒng)可以部署和運(yùn)行于并行計(jì)算機(jī)上,提供并行的文件訪問(wèn)服務(wù)。
單機(jī)內(nèi)存文件系統(tǒng)已經(jīng)得到比較廣泛的應(yīng)用,主要有RAM Disk、tmpfs[9]、Mfs[10]、Phoenix[11]、DMFS[12]、HeRMES[13]和Conquest[14]。根據(jù)其實(shí)現(xiàn)方式和作用,可以將單機(jī)內(nèi)存文件系統(tǒng)分為以下3種:①直接利用易失性內(nèi)存作為存儲(chǔ)介質(zhì),用于存放臨時(shí)文件;②采用后備電源的內(nèi)存作為存儲(chǔ)介質(zhì);③構(gòu)建盤(pán)/存混合的存儲(chǔ)系統(tǒng)[15]。
RAM Disk是將系統(tǒng)內(nèi)存劃出一部分空間當(dāng)作硬盤(pán)使用,在使用之前需要?jiǎng)?chuàng)建文件系統(tǒng)。它是通過(guò)驅(qū)動(dòng)程序來(lái)提供磁盤(pán)的訪問(wèn)接口,操作界面和使用方法與硬盤(pán)一樣。RAM Disk一般用于存儲(chǔ)臨時(shí)文件,以減少磁盤(pán)的訪問(wèn)次數(shù)。因?yàn)镽AM的易失特性,所以,如果系統(tǒng)掉電,其中的數(shù)據(jù)都將丟失。tmpfs和Mfs是基于虛擬內(nèi)存的文件系統(tǒng),它們能夠使用已有的內(nèi)核接口、系統(tǒng)資源和系統(tǒng)工具,能夠根據(jù)數(shù)據(jù)量的大小動(dòng)態(tài)地調(diào)整文件系統(tǒng)的占用空間,并能盡量減少對(duì)其他內(nèi)存資源的影響。tmpfs和Mfs只需要簡(jiǎn)單地掛載就能夠運(yùn)行和使用,一般僅用于存放臨時(shí)文件。
Phoenix是將SRAM組織成內(nèi)存盤(pán),并通過(guò)后備電源保證系統(tǒng)的可靠性。它維護(hù)2個(gè)帶時(shí)間戳的內(nèi)存文件系統(tǒng),通過(guò)寫(xiě)時(shí)拷貝與垃圾回收技術(shù)來(lái)實(shí)現(xiàn)系統(tǒng)的回退功能,以保證數(shù)據(jù)的安全性。
陳錫明等為了緩解服務(wù)器的I/O瓶頸,研究并設(shè)計(jì)了基于內(nèi)存的分布式文件服務(wù)器DMFS,以克服分布式文件服務(wù)器輸入輸出問(wèn)題。它將需要提供服務(wù)的文件直接放在內(nèi)存中,供分布式系統(tǒng)中的客戶訪問(wèn)。文章對(duì)DMFS的組成和結(jié)構(gòu)及其提供的服務(wù)等做了形式化描述,設(shè)計(jì)的DMFS能夠提供文件的組織、存儲(chǔ)、檢索、命名、保護(hù)、對(duì)共享信息的管理、為用戶提供透明的文件訪問(wèn)服務(wù)、目錄服務(wù)、事務(wù)服務(wù)等。HeRMES和Conquest均是利用非易失性內(nèi)存作為持久存儲(chǔ)介質(zhì),研究和構(gòu)建盤(pán)/存混合系統(tǒng)。HeRMES簡(jiǎn)化了文件系統(tǒng)元數(shù)據(jù)的結(jié)構(gòu),并將其存放在MRAM中,以提高訪問(wèn)性能。Conquest將文件系統(tǒng)元數(shù)據(jù)、小文件、可執(zhí)行文件和共享庫(kù)都放在非易失性內(nèi)存中,減少磁盤(pán)的訪問(wèn)次數(shù)。
并行內(nèi)存文件系統(tǒng)的研究有2種思路和方法:①在內(nèi)存中模擬現(xiàn)有的并行磁盤(pán)文件系統(tǒng);②重新設(shè)計(jì)和構(gòu)建并行內(nèi)存文件系統(tǒng)[15]。
Network Ram Disk(NRD)[16]將Cluster中服務(wù)器節(jié)點(diǎn)的部分虛擬內(nèi)存組成一個(gè)同構(gòu)的內(nèi)存空間??蛻舳送ㄟ^(guò)NRD驅(qū)動(dòng)程序所見(jiàn)的就是一個(gè)虛擬磁盤(pán),其性能是磁盤(pán)的4~8倍。
楊學(xué)軍等人在專(zhuān)著[15]中詳細(xì)闡述了并行內(nèi)存文件系統(tǒng)的概念、結(jié)構(gòu)、組織方式和高可用技術(shù),并設(shè)計(jì)了原型系統(tǒng)YH-MPFS。文中提出了并行內(nèi)存文件系統(tǒng)的概念,并從應(yīng)用需求、技術(shù)發(fā)展和解決途徑3個(gè)方面闡述了設(shè)計(jì)并行內(nèi)存文件系統(tǒng)的必要性。從應(yīng)用需求看,小粒度、隨機(jī)I/O訪問(wèn)模式并不少見(jiàn);從技術(shù)發(fā)展因素看,內(nèi)容的容量不斷增大,價(jià)格持續(xù)下降;從解決途徑看,磁盤(pán)文件Cache難以高效利用大量?jī)?nèi)存,移動(dòng)數(shù)據(jù)頻繁,需要維護(hù)數(shù)據(jù)一致性,可能導(dǎo)致偽共享和Cache污染問(wèn)題。因此,采用內(nèi)存文件系統(tǒng)方式來(lái)緩解I/O問(wèn)題是一種比較好的方式。
文章研究了數(shù)據(jù)的物理組織方式,分析了基于復(fù)制的分布內(nèi)存組織技術(shù)和類(lèi)RAID的分布內(nèi)存組織技術(shù),提出了冗余內(nèi)存陣列的概念。該方法是利用RAID技術(shù)將分布于各節(jié)點(diǎn)的可用內(nèi)存組成冗余內(nèi)存陣列,利用內(nèi)存的分布性來(lái)提供并行I/O訪問(wèn)。文章還針對(duì)內(nèi)容容量的異構(gòu)型,研究了多種基于冗余內(nèi)存陣列的構(gòu)建方案和物理組織方式。
文章指出將傳統(tǒng)文件系統(tǒng)邏輯組織技術(shù)直接用于并行內(nèi)存文件系統(tǒng)會(huì)存在諸多不足,所以,針對(duì)內(nèi)存特性提出了按數(shù)據(jù)對(duì)象組織的文件模型,并闡述了該文件模型的元數(shù)據(jù)組織、用戶訪問(wèn)接口和處理流程。
文章還分析了并行內(nèi)存系統(tǒng)的高可用問(wèn)題,提出了高可用技術(shù)框架,重點(diǎn)研究了基于備份/回復(fù)和基于檢查點(diǎn)/重啟的高可用技術(shù),最后簡(jiǎn)要介紹了原型系統(tǒng)YH-MPFS。
在Web 2.0飛速發(fā)展的背景下,系統(tǒng)必須能夠存儲(chǔ)海量數(shù)據(jù),并具有低延遲和高吞吐量的性能。雖然傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)功能強(qiáng)大,但其可擴(kuò)展性差;而現(xiàn)有的key-value數(shù)據(jù)庫(kù),雖然可擴(kuò)展性強(qiáng),但性能仍然不能滿足要求。這主要是由于系統(tǒng)性能受到磁盤(pán)I/O性能的制約。
分布式內(nèi)存文件系統(tǒng)部署和運(yùn)行于分布式環(huán)境中,能夠滿足高速讀寫(xiě)的訪問(wèn)服務(wù)。為了解決磁盤(pán)I/O問(wèn)題,John Outerhout提出了基于DRAM的云存儲(chǔ)——RAMClouds[3]。它將數(shù)據(jù)完全存儲(chǔ)于DRAM中,其目標(biāo)是提供優(yōu)于基于硬盤(pán)存儲(chǔ)100~1 000倍的數(shù)據(jù)吞吐量和100~1 000倍的訪問(wèn)延遲。文章認(rèn)為,以DRAM作為存儲(chǔ)介質(zhì)后,應(yīng)從根本上改進(jìn)現(xiàn)有的數(shù)據(jù)存儲(chǔ)模式,必須重新考慮以下問(wèn)題。
目前,典型的網(wǎng)絡(luò)延遲為300~500 us,網(wǎng)絡(luò)延遲將成為制約系統(tǒng)性能發(fā)揮的瓶頸。因此,需要重新設(shè)計(jì)交換機(jī),盡量減少軟件中斷和數(shù)據(jù)轉(zhuǎn)發(fā)次數(shù),并使用UDP進(jìn)行網(wǎng)絡(luò)通信。
DRAM是易失性存儲(chǔ)介質(zhì),必須重新設(shè)計(jì)副本策略來(lái)保證數(shù)據(jù)的安全性,RAMClouds提出并發(fā)寫(xiě)數(shù)據(jù)備份策略。
在實(shí)際工作中,必須重新設(shè)計(jì)基本數(shù)據(jù)模型,重新設(shè)計(jì)基本數(shù)據(jù)聚合成高級(jí)數(shù)據(jù)結(jié)構(gòu)的方法,并設(shè)定不同的數(shù)據(jù)模型如何定位和使用。
RAMClouds必須實(shí)現(xiàn)節(jié)點(diǎn)的自組織與自配置,具有高效的數(shù)據(jù)分配額算法和負(fù)載平衡技術(shù)。
因?yàn)镽AMClouds速度快,所以,沖突概率小,一致性更高。因此,可以考慮放棄比較嚴(yán)格的ACID[17]策略,以實(shí)現(xiàn)高可擴(kuò)展和高并發(fā)。
RAMClouds必須能夠?yàn)椴煌脩籼峁┎煌燃?jí)的存儲(chǔ)容量、網(wǎng)絡(luò)帶寬和優(yōu)先級(jí)服務(wù)。
在設(shè)計(jì)RAMClouds時(shí),必須劃分好客戶端和服務(wù)器各自的功能。這就需要考慮緩存、故障恢復(fù)、訪問(wèn)控制等。
RAMClouds必須能夠?qū)崿F(xiàn)自動(dòng)管理,自行監(jiān)控系統(tǒng)的運(yùn)行狀態(tài)。RAMClouds基于的集群包含了40個(gè)節(jié)點(diǎn),每一個(gè)數(shù)據(jù)節(jié)點(diǎn)均構(gòu)建于常用硬件之上,配有CPU、磁盤(pán)和24~32 GB的RAM。RAMClouds的目標(biāo)是提供一種持久化和高可用的存儲(chǔ)方案。
分布式內(nèi)存文件系統(tǒng)具有高數(shù)據(jù)吞吐量、低訪問(wèn)延遲和文件語(yǔ)義等優(yōu)勢(shì),是解決磁盤(pán)I/O問(wèn)題的可行方式之一。未來(lái),分布式內(nèi)存文件系統(tǒng)需要根據(jù)負(fù)載的類(lèi)型選擇合適的數(shù)據(jù)組織結(jié)構(gòu),需要基于空間局部性和資源利用率實(shí)現(xiàn)負(fù)載平衡,并保證系統(tǒng)和數(shù)據(jù)的可用性,以適應(yīng)不同應(yīng)用環(huán)境的性能需求。
[1]Nieuwejaar N,Kotz D,Purakayastha A,et al.File-Access Characteristics of Parallel Scientific Workloads[J].IEEE Transactions on Parallel and Distributed Systems,1996,7(10):1075-1089.
[2]Roselli D,Lorch J R,Anderson T E.A Comparison of File System Workloads[C]//Proceedings of 2000 USENIХ Annual Technical Conference.Monterey,San Diego,California,2000:18-23.
[3]Outerhout J,Agrawal P,Erickson D,et al.The Case for RAMClouds:Scalable High-Performance Storage Entirely in DRAM[J].Operating Systems Review,2009,43(4):92-105.
[4]許春聰,黃小猛,吳諾,等.分布式存儲(chǔ)系統(tǒng)性能評(píng)測(cè)與性價(jià)比分析[J].計(jì)算機(jī)學(xué)報(bào),2010,33(10):1873-1880.
[5]WANG AA,REIHER P,POPEK G J.Conquest:Better Performance Through a Disk/Persistent-RAM Hybrid File System[C]//Proceedings of 2002 USENIХ Annual Technical Conference.Monterey,2002:15-18.
[6]Daughton J.Magnetoresistive Random Access Memory(MRAM)[EB/OL].2000.http://www.nve.com/otherbiz/mram.pdf.
[7]Micron DRAM Product Information[EB/OL].2002.http://www.micron.com (under DRAM and data sheets).
[8]Kryder M H,Kim C S.After Hard Drives——What Comes Next?[J].IEEE Transactions on Magnetics, 2009,45(10):3406-3413.
[9]Snyder P.tmpfs:A virtual memory file system[C]//Proceedings of the Autumn 1990 European UNIХ Users’Group Conference.Nice,F(xiàn)rance,1990:241-248.
[10]McKusick M K,Karels M J,Bostic K.A Pageable Memory Based Filesystem[C]//Proceedings of the Summer 1990 Usenix Technical Conference.Anaheim California:UsenixAssociation,1990.
[11]Gait J.Phoenix:A Safe In-Memory File System[J].Communication of theACM,1990,33(1):81-86.
[12]陳錫明,盧顯良,宋杰.分布式內(nèi)存文件服務(wù)器(DMFS)的研究和設(shè)計(jì)[J].小型微型計(jì)算機(jī)系統(tǒng),2000,21(1):60-63.
[13]Miller E L,Brandt S A,Long D D E.HeRMES:High-Performance Reliable MRAM-Enabled Storage[G]//Proceedings of the 8th IEEE Workshop on Hot Topics in Operating Systems(HOTOS-VIII).Schloss Elmau,Germany,2001:83-87.
[14]WangAI,Reiher Peter L,Popek G J,et al.Conquest:BetterPerformance through a Disk/Persistent-RAM Hybrid File System[C]//Proceedings of the 2002 USENIХ Annual Technical Conference.Monterey,2002:15-28.
[15]楊學(xué)軍,王磊,蔣艷凰.并行內(nèi)存文件系統(tǒng)[M].長(zhǎng)沙:國(guó)防科技大學(xué)出版社,2005.
[16]Flouris M,Markatos E P.The Network RamDisk:Using remote memory on heterogeneous NOWs[J].Cluster Computing,1999,2(4):281-293.
[17]Gilbert S,Lynch N.Brewer’s conjecture and the feasibility of consistent,available, partition-tolerant Web services[J].ACM SIGACT News,2002,33(2):51-59.
許春聰(1980—),男,主要研究領(lǐng)域?yàn)樵朴?jì)算、分布式文件系統(tǒng)。文海雄(1976—),男,主要研究領(lǐng)域?yàn)閿?shù)據(jù)管理、信息服務(wù)。劉釗(1983—),男,主要研究領(lǐng)域?yàn)榉植际较到y(tǒng)、網(wǎng)絡(luò)安全。鄭強(qiáng)(1986—),男,主要研究領(lǐng)域?yàn)椴⑿蟹植际教幚?、模式識(shí)別。韓鵬(1985—),男,主要研究領(lǐng)域?yàn)閿?shù)據(jù)挖掘、算法。
〔編輯:白潔〕
TP301
A
10.15913/j.cnki.kjycx.2017.24.031
2095-6835(2017)24-0031-03
本論文受軍隊(duì)某重大科研項(xiàng)目支持