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

?

構(gòu)建世界更快的內(nèi)存文件系統(tǒng)

2018-09-12 05:40沙行勉
電子產(chǎn)品世界 2018年8期

沙行勉

摘要:新一代非易失性存儲(chǔ)器,如PCM、MRAM等,將使內(nèi)存具備數(shù)據(jù)存儲(chǔ)的能力,并顯示出低功耗和優(yōu)秀的數(shù)據(jù)訪問性能等優(yōu)越性。把非易失性存儲(chǔ)級(jí)內(nèi)存納入內(nèi)存管理空間將成為解決傳統(tǒng)計(jì)算機(jī)系統(tǒng)數(shù)據(jù)l/O瓶頸的有效解決途徑。然而,現(xiàn)有文件系統(tǒng)的設(shè)計(jì)架構(gòu)使其無法充分利用非易失性內(nèi)存的特性并發(fā)揮其優(yōu)勢(shì),因此,我們需要重新審視現(xiàn)有文件系統(tǒng)的架構(gòu)。從全新的角度思考面向非易失性內(nèi)存的新型內(nèi)存文件系統(tǒng)設(shè)計(jì)框架。我們提出了一個(gè)全新的概念“文件虛擬地址空間”,并在此基礎(chǔ)之上,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)新型的持久化內(nèi)存文件系統(tǒng)SIMFS。

關(guān)鍵詞:持久化內(nèi)存;虛擬地址空間;內(nèi)存文件系統(tǒng)

DOI: 10.3969/i.issn.1005-5517.2018.7.006

0 引言

大數(shù)據(jù)時(shí)代的到來使得人們對(duì)數(shù)據(jù)處理效率的要求日益高漲,推動(dòng)研究界和工業(yè)界發(fā)展可以克服傳統(tǒng)內(nèi)存、外存之間性能鴻溝的內(nèi)存計(jì)算解決方案。相比基于傳統(tǒng)外存的解決方案,內(nèi)存計(jì)算有突破性的性能優(yōu)勢(shì),這一點(diǎn)從Spark和Hadoop的對(duì)比中得到體現(xiàn)。Spark是一種新型內(nèi)存集群計(jì)算框架,而HadOOp是基于傳統(tǒng)外存的集群計(jì)算框架MapReduce的經(jīng)典實(shí)現(xiàn)。相比之下,Spark可以比HadOOp快100倍。在計(jì)算機(jī)系統(tǒng)中,文件系統(tǒng)是數(shù)據(jù)存儲(chǔ)的最根本的基礎(chǔ)設(shè)施,對(duì)上層應(yīng)用提供存儲(chǔ)數(shù)據(jù)、訪問數(shù)據(jù)的基本服務(wù)。因此,如果能夠提供文件系統(tǒng)的內(nèi)存計(jì)算方案,就能加速所有在其上運(yùn)行的、需要處理數(shù)據(jù)的應(yīng)用,從而提升整個(gè)系統(tǒng)的性能及用戶體驗(yàn)。

新興的非易失性內(nèi)存(Non-Volatile Memory,簡(jiǎn)稱NVM)提供了實(shí)現(xiàn)內(nèi)存文件系統(tǒng)的機(jī)遇。一方面,NVM可以通過DIMM插槽直接連接到內(nèi)存總線,提供字節(jié)尋址的高速數(shù)據(jù)訪問;另一方面,NVM存儲(chǔ)密度大、數(shù)據(jù)掉電不丟失,和磁盤、固態(tài)硬盤一樣提供大容量的持久性數(shù)據(jù)存儲(chǔ)。在采用新型非易失性內(nèi)存的系統(tǒng)結(jié)構(gòu)中,文件系統(tǒng)可以在NVM內(nèi)存上存儲(chǔ)并通過片上高速總線讀寫。

但是現(xiàn)有系統(tǒng)軟件沒有充分發(fā)揮非易失性內(nèi)存物理特性和優(yōu)勢(shì),如現(xiàn)有內(nèi)存文件系統(tǒng)的元數(shù)據(jù)結(jié)構(gòu)仍然以塊設(shè)備上的傳統(tǒng)文件系統(tǒng)的元數(shù)據(jù)結(jié)構(gòu)為模板,要用軟件查找元數(shù)據(jù)結(jié)構(gòu)以獲得文件數(shù)據(jù)塊的物理位置,造成極大性能開銷。為此,我們需要思考如何將文件數(shù)據(jù)結(jié)構(gòu)與當(dāng)前計(jì)算機(jī)體系中的內(nèi)存管理機(jī)制相結(jié)合,并充分利用CPU中現(xiàn)有虛擬地址轉(zhuǎn)換硬件的處理能力構(gòu)建高效的內(nèi)存文件系統(tǒng)。

1 對(duì)持久化內(nèi)存文件系統(tǒng)設(shè)計(jì)的思考

對(duì)于在非易失性內(nèi)存上建立文件系統(tǒng)上有一個(gè)常見誤解,認(rèn)為可以利用Ramdisk-類的工具在非易失性內(nèi)存上建立一個(gè)模擬磁盤,然后把現(xiàn)有塊設(shè)備文件系統(tǒng)部署到模擬磁盤。這種誤解沒有考慮到傳統(tǒng)I/O軟件棧和塊設(shè)備文件系統(tǒng)產(chǎn)生的系統(tǒng)開銷,不能發(fā)揮非易失性內(nèi)存文件系統(tǒng)的卓越性能。塊設(shè)備文件系統(tǒng)(如EXT4)需要經(jīng)過諸多針對(duì)塊設(shè)備的軟件層次,例如I/O調(diào)度層、通用塊層和塊設(shè)備驅(qū)動(dòng)層,如圖1所示。諸多軟件層次會(huì)造成數(shù)據(jù)在各級(jí)緩沖區(qū)中的多次拷貝。即使是管理模擬成磁盤的內(nèi)存,對(duì)于傳統(tǒng)I/O軟件棧和塊設(shè)備文件系統(tǒng),其多個(gè)軟件層次仍會(huì)造成數(shù)據(jù)讀寫之外的大量系統(tǒng)負(fù)載及性能損失。所以,為充分發(fā)掘非易失性內(nèi)存的性能優(yōu)勢(shì),系統(tǒng)設(shè)計(jì)者需要突破原有的設(shè)計(jì)思想,從新研究和設(shè)計(jì)面向新型非易失性的內(nèi)存文件系統(tǒng)。

當(dāng)前內(nèi)存文件系統(tǒng)可以分為兩類。一類是臨時(shí)性的內(nèi)存文件系統(tǒng),如RAMFS和TMPFS。從系統(tǒng)設(shè)計(jì)的角度來看,這類文件系統(tǒng)借用了內(nèi)核中的虛擬文件系統(tǒng)(VFS)所定義的通用文件組織結(jié)構(gòu),把所有的元數(shù)據(jù)(例如超級(jí)塊和索引節(jié)點(diǎn))和數(shù)據(jù)都存放于內(nèi)存。但是,每次加載的元數(shù)據(jù)結(jié)構(gòu)在內(nèi)存中的位置不確定,物理內(nèi)存也會(huì)隨系統(tǒng)關(guān)閉而回收。因此,即便把臨時(shí)內(nèi)存文件系統(tǒng)部署在NVM上,系統(tǒng)重啟后也無法找回文件。

另一類是持久化的內(nèi)存文件系統(tǒng),例如BPFS,PRAMFS和PMFS。與臨時(shí)內(nèi)存文件系統(tǒng)不同,持久化內(nèi)存文件系統(tǒng)的元數(shù)據(jù)結(jié)構(gòu)獨(dú)立于內(nèi)核的內(nèi)存管理系統(tǒng),并且固定存放在非易失性內(nèi)存的已知位置中。在系統(tǒng)重啟后,持久化內(nèi)存文件系統(tǒng)可以在非易失性內(nèi)存的確定位置找到其特有的元數(shù)據(jù)結(jié)構(gòu)?,F(xiàn)有的內(nèi)存文件系統(tǒng)通過軟件搜索元數(shù)據(jù)結(jié)構(gòu),或者建立額外的映射表,將文件映射到虛擬地址空間。這些方法都不能充分利用處理器中的地址轉(zhuǎn)換硬件MMU。

當(dāng)前持久化內(nèi)存文件系統(tǒng)的設(shè)計(jì)有兩大缺點(diǎn):

第一,沒有考慮到傳統(tǒng)I/O軟件棧和塊設(shè)備文件系統(tǒng)(如EXT4)需要經(jīng)過諸多針對(duì)塊設(shè)備的軟件層次,造成大量額外的系統(tǒng)管理開銷及性能損失。 第二,元數(shù)據(jù)搜索由軟件完成,具有較大的開銷。文件系統(tǒng)通常管理兩類數(shù)據(jù):描述文件屬性的元數(shù)據(jù)和文件數(shù)據(jù)。其中,元數(shù)據(jù)包含指向文件數(shù)據(jù)的物理存放地址的索引結(jié)構(gòu)。例如,EXT4文件系統(tǒng)的索引節(jié)點(diǎn)(mnode)中使用直接索引和間接索引記錄文件數(shù)據(jù)的塊在磁盤中的物理地址。以圖2 (a)為例,如果要訪問某文件的k個(gè)頁面,該文件系統(tǒng)需要不斷重復(fù)執(zhí)行以下步驟:1)文件系統(tǒng)搜索元數(shù)據(jù),查找請(qǐng)求的數(shù)據(jù)頁的物理位置:2)文件系統(tǒng)調(diào)用數(shù)據(jù)傳輸函數(shù)訪問當(dāng)前頁面的數(shù)據(jù)。

因此,我們需要為內(nèi)存文件系統(tǒng)的文件創(chuàng)建一個(gè)連續(xù)的虛擬地址空間,這樣就可以利用文件的虛擬地址空間和硬件MMU迅速定位到文件數(shù)據(jù)的物理位置,避免軟件方式搜素元數(shù)據(jù)結(jié)構(gòu)產(chǎn)生的開銷。如圖2(b)所示,文件系統(tǒng)只要1次數(shù)據(jù)拷貝操作就可以讀完k個(gè)頁面,并不需要用軟件流程逐層搜索文件的元數(shù)據(jù)結(jié)構(gòu)。所以,連續(xù)虛擬地址空間中的文件訪問開銷遠(yuǎn)低于現(xiàn)有文件系統(tǒng)。

2 持久化內(nèi)存文件系統(tǒng)設(shè)計(jì)的基本架構(gòu)

在以上的思考基礎(chǔ)上,我們提出了“文件虛擬地址空間”的全新設(shè)計(jì)框架,并在此設(shè)計(jì)框架下設(shè)計(jì)實(shí)現(xiàn)了持久化內(nèi)存文件系統(tǒng)(Sustainable In-Memory File System, SIMFS),打破了傳統(tǒng)文件系統(tǒng)的設(shè)計(jì)思路。

在該框架下,每個(gè)文件都有一個(gè)獨(dú)立且連續(xù)的虛擬地址空間。為了充分利用地址轉(zhuǎn)換硬件并迅速地建立文件的虛擬地址空間,我們提出一個(gè)新的元數(shù)據(jù)結(jié)構(gòu)“文件頁表(File Page Table)”。文件頁表將存放文件數(shù)據(jù)的物理頁組織起來,保存文件的每個(gè)數(shù)據(jù)頁的地址映射信,如圖3所示。

在文件虛擬地址空間的框架下,每個(gè)文件都有一個(gè)文件頁表。在創(chuàng)建文件時(shí),系統(tǒng)給該文件建立一個(gè)基本的文件頁表,例如三級(jí)頁表,每級(jí)各有一個(gè)物理頁。

在這個(gè)新框架下,文件頁表用于為對(duì)應(yīng)的文件建立虛擬地址空間。在打開文件時(shí),系統(tǒng)將文件頁表頂層的數(shù)個(gè)指針寫入進(jìn)程頁表對(duì)應(yīng)的位置,這樣,文件的數(shù)據(jù)頁就可以用虛擬地扯和loa d/sto re指令直接訪問。這種建立虛擬地址空間的方式的耗時(shí)與文件大小無關(guān),系統(tǒng)可以在常數(shù)時(shí)間內(nèi)為文件建立起進(jìn)程中的虛擬地址空間。基于這種結(jié)構(gòu),文件可以獲得連續(xù)的虛擬地址空間,而真正的文件數(shù)據(jù)卻可以分散存儲(chǔ)在物理內(nèi)存中,每一個(gè)文件所擁有的物理內(nèi)存都由一個(gè)專有的層次化的“文件頁表”組織起來。

這個(gè)全新的文件虛擬地址空間的優(yōu)點(diǎn)在于:

1)文件系統(tǒng)讀文件數(shù)據(jù)不需要軟件搜索元數(shù)據(jù)結(jié)構(gòu)。此外,由于文件的虛擬地址空間已經(jīng)嵌入到進(jìn)程的虛擬地址空間,讀文件數(shù)據(jù)不會(huì)引起缺頁中斷;

2)當(dāng)文件擁有連續(xù)虛擬地址空間后,文件訪問操作僅需調(diào)用一次數(shù)據(jù)傳輸操作。文件的虛擬地址到物理地址的轉(zhuǎn)換由CPU中的硬件MMU完成,不需要軟件搜索元數(shù)據(jù),查找文件數(shù)據(jù)的效率極高。

3 結(jié)論

本文介紹了基于文件虛擬地址空間的概念而設(shè)計(jì),并在Linux內(nèi)核中實(shí)現(xiàn)的一個(gè)功能完整的持久化內(nèi)存文件系統(tǒng)SIMFS。首次提出“文件虛擬地址空間”的設(shè)計(jì)框架。提出了在文件虛擬地址空間組織文件數(shù)據(jù)的組織結(jié)構(gòu)“文件頁表”。這種設(shè)計(jì)架構(gòu)能夠充分利用硬件MMU實(shí)現(xiàn)高速文件數(shù)據(jù)訪問。我們?cè)贚inux內(nèi)核中設(shè)計(jì)實(shí)現(xiàn)一個(gè)功能完整的持久化內(nèi)存文件系統(tǒng)SIMFS。支持所有POSIX標(biāo)準(zhǔn)文件系統(tǒng)接口,支持基于Linux系統(tǒng)的應(yīng)用程序。

用標(biāo)準(zhǔn)測(cè)試工具驗(yàn)證文件系統(tǒng)的性能。與華為公司合作測(cè)試的結(jié)果表明,SIMFS的文件讀寫帶寬可以達(dá)到性能理論上限(即內(nèi)存總線帶寬)的89%,超過其他已知的內(nèi)存文件系統(tǒng),是目前世界上文件讀寫速度最快的內(nèi)存文件系統(tǒng)。

參考文獻(xiàn):

[1]Ousterhout J K, Agrawal P, Erickson D, et al. The Case for RAMClouds: Scalable High-Performance Storage Entirely in DRAM[J]. Operating Systems Review, 2010, 43(4):92-105.

[2]Zaharia M, Chowdhury M, Franklin M J, et al. Spark: Cluster Computing with Working Sets[C],in Proceedings of the Usenix Conference on Hot Topics in Cloud Computing (HotCloud '10),2010, 15:1-7.

[3]Hadoop[Z] http://hadoop.apache.org/.

[4]Dean J, Ghemawat S. Simplified Data Processing on Large Clusters[C], in Proceedings ofthe Proceedings of Operating Systems Design and Implementation {OSDI '04), 2004:107-113.

[5]Freitas R F, Wilcke W W. Storage-Class Memory: The Next Storage System Technology[J].IBM Journal of Research & Development, 2008, 52(4.5):439-447.

[6lCondit J, Nightingale E B, Frost C, et al. Better l/0 through Byte-Addressable, PersistentMemory[C], in Proceedings of the ACM SIGOPS Symposium on Operating Systems Principles(SOSP '09), 2009 :133-146.

[7]Longerbeam S, Locke M A, Morgan K D. Protected and Persistent RAM Filesystem[P], 2003.

[8lDulloor S R, Kumar S, Keshavamurthy A, et al. System Software for Persistent Memory[Cl,inProceedings of the European Conference on Computer Systems (EuroSys '14), 2014:1-15.

正宁县| 分宜县| 黄平县| 青海省| 六盘水市| 山阳县| 芦山县| 恩施市| 沽源县| 兴仁县| 远安县| 太仆寺旗| 广东省| 怀来县| 衡东县| 阳原县| 闵行区| 灵石县| 阿鲁科尔沁旗| 桑日县| 城固县| 敦煌市| 天全县| 浏阳市| 马尔康县| 贞丰县| 咸阳市| 兴仁县| 潍坊市| 辽阳市| 吴忠市| 大姚县| 五河县| 临洮县| 安吉县| 清涧县| 濉溪县| 策勒县| 墨江| 容城县| 锡林郭勒盟|