許春聰,文海雄,劉 釗,鄭 強(qiáng),韓 鵬
(75837部隊(duì),廣東 廣州 510630)
分布式內(nèi)存文件系統(tǒng)的發(fā)展*
許春聰,文海雄,劉 釗,鄭 強(qiáng),韓 鵬
(75837部隊(duì),廣東 廣州 510630)
隨著動態(tài)隨機(jī)存儲器集成技術(shù)的快速發(fā)展,基于內(nèi)存的數(shù)據(jù)存儲已經(jīng)成為緩解磁盤I/O性能瓶頸的重要方式之一。分布式內(nèi)存文件系統(tǒng)適用于非結(jié)構(gòu)化數(shù)據(jù)存儲,具有文件語義,能夠兼容傳統(tǒng)應(yīng)用。從緩解磁盤I/O性能瓶頸的角度入手,介紹了單機(jī)內(nèi)存文件系統(tǒng)、并行內(nèi)存文件系統(tǒng)和分布式內(nèi)存文件系統(tǒng)的發(fā)展,提出了未來的主要研究方向。
分布式內(nèi)存文件系統(tǒng);吞吐量;訪問延遲;負(fù)載平衡
隨著系統(tǒng)規(guī)模的擴(kuò)大和數(shù)據(jù)量的快速增長,隨機(jī)I/O訪問已經(jīng)成為阻礙系統(tǒng)性能發(fā)揮的一個重要原因。Nils Nieuwejaar等人分析并行科學(xué)計算應(yīng)用的訪問特性,發(fā)現(xiàn)在MIMD并行計算機(jī)系統(tǒng)中存在大量隨機(jī)I/O訪問的情況[1]。Roselli等人分析多種負(fù)載的大文件訪問類型,發(fā)現(xiàn)其隨機(jī)訪問的概率比以往的研究結(jié)果大得多[2]。實(shí)際上,文件系統(tǒng)元數(shù)據(jù)訪問、Web服務(wù)、Mail服務(wù)等環(huán)境中也存在著大量的高并發(fā)隨機(jī)I/O訪問。受磁盤I/O的限制,隨機(jī)I/O訪問常常導(dǎo)致系統(tǒng)I/O過高,速度很慢,故障頻發(fā)。
斯坦福大學(xué)的John Outerhout分析了基于硬盤的存儲系統(tǒng)所面臨的各種問題,指出磁盤I/O性能是制約系統(tǒng)的瓶頸,并提出了基于隨機(jī)訪問存儲器構(gòu)建高數(shù)據(jù)吞吐量和低訪問延遲的內(nèi)存云——RAMClouds[3]。采用分布式內(nèi)存文件系統(tǒng)構(gòu)建高數(shù)據(jù)吞吐量和低訪問延遲的分布式計算和存儲系統(tǒng),是一種較好的解決方案。
分布式文件系統(tǒng)(Distributed File System)作為云計算和云存儲的核心技術(shù),近年來,一直是分布式計算和數(shù)據(jù)存儲領(lǐng)域的研究熱點(diǎn)。分布式文件系統(tǒng)管理的物理存儲資源分布在多個網(wǎng)絡(luò)節(jié)點(diǎn)上,以實(shí)現(xiàn)數(shù)據(jù)共享和管理共享。與傳統(tǒng)的基于磁盤的文件系統(tǒng)不同,分布式內(nèi)存文件系統(tǒng)是指以動態(tài)隨機(jī)存儲器(DRAM)作為文件和元數(shù)據(jù)的存儲介質(zhì),管理分布式環(huán)境下數(shù)據(jù)資源的文件系統(tǒng)。隨著DRAM價格的降低,DRAM的性價比優(yōu)勢將不斷提高,未來DRAM有可能成為基本的存儲介質(zhì)[4]。雖然非易失性隨機(jī)存儲器得到了長足的發(fā)展[5-8],但易失性DRAM仍在計算機(jī)系統(tǒng)中占有絕對主導(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)兩類。單機(jī)內(nèi)存文件系統(tǒng)只能在1臺計算機(jī)上部署和運(yùn)行,提供串行的文件訪問服務(wù)。并行內(nèi)存文件系統(tǒng)可以部署和運(yùn)行于并行計算機(jī)上,提供并行的文件訪問服務(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)存作為存儲介質(zhì),用于存放臨時文件;②采用后備電源的內(nèi)存作為存儲介質(zhì);③構(gòu)建盤/存混合的存儲系統(tǒng)[15]。
RAM Disk是將系統(tǒng)內(nèi)存劃出一部分空間當(dāng)作硬盤使用,在使用之前需要創(chuàng)建文件系統(tǒng)。它是通過驅(qū)動程序來提供磁盤的訪問接口,操作界面和使用方法與硬盤一樣。RAM Disk一般用于存儲臨時文件,以減少磁盤的訪問次數(shù)。因?yàn)镽AM的易失特性,所以,如果系統(tǒng)掉電,其中的數(shù)據(jù)都將丟失。tmpfs和Mfs是基于虛擬內(nèi)存的文件系統(tǒng),它們能夠使用已有的內(nèi)核接口、系統(tǒng)資源和系統(tǒng)工具,能夠根據(jù)數(shù)據(jù)量的大小動態(tài)地調(diào)整文件系統(tǒng)的占用空間,并能盡量減少對其他內(nèi)存資源的影響。tmpfs和Mfs只需要簡單地掛載就能夠運(yùn)行和使用,一般僅用于存放臨時文件。
Phoenix是將SRAM組織成內(nèi)存盤,并通過后備電源保證系統(tǒng)的可靠性。它維護(hù)2個帶時間戳的內(nèi)存文件系統(tǒng),通過寫時拷貝與垃圾回收技術(shù)來實(shí)現(xiàn)系統(tǒng)的回退功能,以保證數(shù)據(jù)的安全性。
陳錫明等為了緩解服務(wù)器的I/O瓶頸,研究并設(shè)計了基于內(nèi)存的分布式文件服務(wù)器DMFS,以克服分布式文件服務(wù)器輸入輸出問題。它將需要提供服務(wù)的文件直接放在內(nèi)存中,供分布式系統(tǒng)中的客戶訪問。文章對DMFS的組成和結(jié)構(gòu)及其提供的服務(wù)等做了形式化描述,設(shè)計的DMFS能夠提供文件的組織、存儲、檢索、命名、保護(hù)、對共享信息的管理、為用戶提供透明的文件訪問服務(wù)、目錄服務(wù)、事務(wù)服務(wù)等。HeRMES和Conquest均是利用非易失性內(nèi)存作為持久存儲介質(zhì),研究和構(gòu)建盤/存混合系統(tǒng)。HeRMES簡化了文件系統(tǒng)元數(shù)據(jù)的結(jié)構(gòu),并將其存放在MRAM中,以提高訪問性能。Conquest將文件系統(tǒng)元數(shù)據(jù)、小文件、可執(zhí)行文件和共享庫都放在非易失性內(nèi)存中,減少磁盤的訪問次數(shù)。
并行內(nèi)存文件系統(tǒng)的研究有2種思路和方法:①在內(nèi)存中模擬現(xiàn)有的并行磁盤文件系統(tǒng);②重新設(shè)計和構(gòu)建并行內(nèi)存文件系統(tǒng)[15]。
Network Ram Disk(NRD)[16]將Cluster中服務(wù)器節(jié)點(diǎn)的部分虛擬內(nèi)存組成一個同構(gòu)的內(nèi)存空間??蛻舳送ㄟ^NRD驅(qū)動程序所見的就是一個虛擬磁盤,其性能是磁盤的4~8倍。
楊學(xué)軍等人在專著[15]中詳細(xì)闡述了并行內(nèi)存文件系統(tǒng)的概念、結(jié)構(gòu)、組織方式和高可用技術(shù),并設(shè)計了原型系統(tǒng)YH-MPFS。文中提出了并行內(nèi)存文件系統(tǒng)的概念,并從應(yīng)用需求、技術(shù)發(fā)展和解決途徑3個方面闡述了設(shè)計并行內(nèi)存文件系統(tǒng)的必要性。從應(yīng)用需求看,小粒度、隨機(jī)I/O訪問模式并不少見;從技術(shù)發(fā)展因素看,內(nèi)容的容量不斷增大,價格持續(xù)下降;從解決途徑看,磁盤文件Cache難以高效利用大量內(nèi)存,移動數(shù)據(jù)頻繁,需要維護(hù)數(shù)據(jù)一致性,可能導(dǎo)致偽共享和Cache污染問題。因此,采用內(nèi)存文件系統(tǒng)方式來緩解I/O問題是一種比較好的方式。
文章研究了數(shù)據(jù)的物理組織方式,分析了基于復(fù)制的分布內(nèi)存組織技術(shù)和類RAID的分布內(nèi)存組織技術(shù),提出了冗余內(nèi)存陣列的概念。該方法是利用RAID技術(shù)將分布于各節(jié)點(diǎn)的可用內(nèi)存組成冗余內(nèi)存陣列,利用內(nèi)存的分布性來提供并行I/O訪問。文章還針對內(nèi)容容量的異構(gòu)型,研究了多種基于冗余內(nèi)存陣列的構(gòu)建方案和物理組織方式。
文章指出將傳統(tǒng)文件系統(tǒng)邏輯組織技術(shù)直接用于并行內(nèi)存文件系統(tǒng)會存在諸多不足,所以,針對內(nèi)存特性提出了按數(shù)據(jù)對象組織的文件模型,并闡述了該文件模型的元數(shù)據(jù)組織、用戶訪問接口和處理流程。
文章還分析了并行內(nèi)存系統(tǒng)的高可用問題,提出了高可用技術(shù)框架,重點(diǎn)研究了基于備份/回復(fù)和基于檢查點(diǎn)/重啟的高可用技術(shù),最后簡要介紹了原型系統(tǒng)YH-MPFS。
在Web 2.0飛速發(fā)展的背景下,系統(tǒng)必須能夠存儲海量數(shù)據(jù),并具有低延遲和高吞吐量的性能。雖然傳統(tǒng)的關(guān)系型數(shù)據(jù)庫功能強(qiáng)大,但其可擴(kuò)展性差;而現(xiàn)有的key-value數(shù)據(jù)庫,雖然可擴(kuò)展性強(qiáng),但性能仍然不能滿足要求。這主要是由于系統(tǒng)性能受到磁盤I/O性能的制約。
分布式內(nèi)存文件系統(tǒng)部署和運(yùn)行于分布式環(huán)境中,能夠滿足高速讀寫的訪問服務(wù)。為了解決磁盤I/O問題,John Outerhout提出了基于DRAM的云存儲——RAMClouds[3]。它將數(shù)據(jù)完全存儲于DRAM中,其目標(biāo)是提供優(yōu)于基于硬盤存儲100~1 000倍的數(shù)據(jù)吞吐量和100~1 000倍的訪問延遲。文章認(rèn)為,以DRAM作為存儲介質(zhì)后,應(yīng)從根本上改進(jìn)現(xiàn)有的數(shù)據(jù)存儲模式,必須重新考慮以下問題。
目前,典型的網(wǎng)絡(luò)延遲為300~500 us,網(wǎng)絡(luò)延遲將成為制約系統(tǒng)性能發(fā)揮的瓶頸。因此,需要重新設(shè)計交換機(jī),盡量減少軟件中斷和數(shù)據(jù)轉(zhuǎn)發(fā)次數(shù),并使用UDP進(jìn)行網(wǎng)絡(luò)通信。
DRAM是易失性存儲介質(zhì),必須重新設(shè)計副本策略來保證數(shù)據(jù)的安全性,RAMClouds提出并發(fā)寫數(shù)據(jù)備份策略。
在實(shí)際工作中,必須重新設(shè)計基本數(shù)據(jù)模型,重新設(shè)計基本數(shù)據(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)椴煌脩籼峁┎煌燃壍拇鎯θ萘?、網(wǎng)絡(luò)帶寬和優(yōu)先級服務(wù)。
在設(shè)計RAMClouds時,必須劃分好客戶端和服務(wù)器各自的功能。這就需要考慮緩存、故障恢復(fù)、訪問控制等。
RAMClouds必須能夠?qū)崿F(xiàn)自動管理,自行監(jiān)控系統(tǒng)的運(yùn)行狀態(tài)。RAMClouds基于的集群包含了40個節(jié)點(diǎn),每一個數(shù)據(jù)節(jié)點(diǎn)均構(gòu)建于常用硬件之上,配有CPU、磁盤和24~32 GB的RAM。RAMClouds的目標(biāo)是提供一種持久化和高可用的存儲方案。
分布式內(nèi)存文件系統(tǒng)具有高數(shù)據(jù)吞吐量、低訪問延遲和文件語義等優(yōu)勢,是解決磁盤I/O問題的可行方式之一。未來,分布式內(nèi)存文件系統(tǒng)需要根據(jù)負(fù)載的類型選擇合適的數(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]許春聰,黃小猛,吳諾,等.分布式存儲系統(tǒng)性能評測與性價比分析[J].計算機(jī)學(xué)報,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ī)系統(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].長沙:國防科技大學(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)樵朴嬎?、分布式文件系統(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)椴⑿蟹植际教幚?、模式識別。韓鵬(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)目支持