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

?

支持高并發(fā)訪問的新型NVM存儲系統(tǒng)

2019-08-01 01:35:23蔡濤陳志鵬牛德姣王杰詹畢晟
計(jì)算機(jī)應(yīng)用 2019年1期
關(guān)鍵詞:存儲系統(tǒng)

蔡濤 陳志鵬 牛德姣 王杰 詹畢晟

摘 要:I/O系統(tǒng)軟件棧是影響NVM存儲系統(tǒng)性能的重要因素。針對NVM存儲系統(tǒng)的讀寫速度不均衡、寫壽命有限等問題,設(shè)計(jì)了同異步融合的訪問請求管理策略;在使用異步策略管理數(shù)據(jù)量較大的寫操作的同時,仍然使用同步策略管理讀請求和少量數(shù)據(jù)的寫請求。針對多核處理器環(huán)境下不同計(jì)算核心訪問存儲系統(tǒng)時地址轉(zhuǎn)換開銷大的問題,設(shè)計(jì)了面向多核處理器地址轉(zhuǎn)換緩存策略,減少地址轉(zhuǎn)換的時間開銷。最后實(shí)現(xiàn)了支持高并發(fā)訪問NVM存儲系統(tǒng)(CNVMS)的原型,并使用通用測試工具進(jìn)行了隨機(jī)讀寫、順序讀寫、混合讀寫和實(shí)際應(yīng)用負(fù)載的測試。實(shí)驗(yàn)結(jié)果表明,與PMBD相比,所提策略能提高1%~22%的I/O性能讀寫速度三校人員提出的問題,此處是否應(yīng)該為“讀寫速度”?若是的話,也請補(bǔ)充英文譯文?;貜?fù):中文可以寫成“讀寫速度”意思和I/O性能是相同的。和9%~15%的IOPS此處是否應(yīng)該為“訪問請求處理速度”?IOPS不是I/O性能的一個指標(biāo)嗎?這兩個指標(biāo)這樣書寫準(zhǔn)確嗎?請明確?;貜?fù):IOPS是每秒處理的訪問請求數(shù)量。一般都用英文簡寫的。,驗(yàn)證了CNVMS策略能有效提高NVM存儲系統(tǒng)的I/O性能和訪問請求處理速度。

關(guān)鍵詞:NVM;存儲系統(tǒng);I/O系統(tǒng)軟件棧

中圖分類號: TP316.4

文獻(xiàn)標(biāo)志碼:A

Abstract: I/O system software stack is an important factor that affects the efficiency of NVM (Non-Volatile Memory) storage system. For NVM storage systems with unbalanced read/write speeds and limited writing lifetimes, new synchronous and asynchronous converged access management strategy was designed. While an asynchronous write cache was implemented by DRAM for the write access to large data, synchronous management strategy was still used for the read access and the write access to small data. Addressing large time overhead of address translation for NVM storage systems by conflict among cores in a computer with multi-core processor, a new address translation cache was designed for multi-core processor to reduce time overhead of address translation. Finally, a prototype of Concurrent NVM Storage system (CNVMS) was implemented, and the universal testing tools were used to test performance of random reads writes, sequential reads writes, mixed reads/writes and with actual application workload. The experimental results show that the proposed strategy increases I/O performanceread and write speed by 1%-22% and IOPS (Input/Output operations Per Second) by 9%-15% compared with PMBD (Persistent Memory Block Driver根據(jù)文獻(xiàn)23,PMBD中的Driver,是否應(yīng)該為Device?請明確), which verifies that CNVMS strategy can provide higher I/O performance and better access request processing speed.

Key words: Non-Volatile Memory (NVM); storage system; I/O system software stack

0 引言

計(jì)算機(jī)系統(tǒng)中各部件的發(fā)展很不均衡,傳統(tǒng)存儲部件的讀寫速度遠(yuǎn)低于計(jì)算部件的處理能力,這導(dǎo)致了嚴(yán)重的存儲墻問題[1]。由于存在機(jī)械部件,傳統(tǒng)的磁盤很難有效提高讀寫速度?;贔lash的SSD(Solid State Drives)具有較高的I/O性能,但存在寫壽命短和僅支持以塊為單位的讀寫操作等問題。當(dāng)前出現(xiàn)了一系列NVM(Non-Volatile Memory)存儲器件,如PCM(Phase Change Memory)[2]、STT-RAM(Shared Transistor Technology Random Access Memory)[3]和FeRAM(Ferroelectric RAM)[4]等,具有支持以字節(jié)為單位的讀寫、較長的寫壽命、低功耗和接近DRAM(Dynamic Random Access Memory)的讀寫速度等優(yōu)勢,成為解決存儲墻問題的重要手段。雖然有部分NVM存儲器件還存在寫壽命不夠高的問題,但隨著技術(shù)的發(fā)展,NVM存儲設(shè)備和所構(gòu)建的存儲系統(tǒng)已成為當(dāng)前研究和開發(fā)的熱點(diǎn)。

NVM存儲系統(tǒng)具有較高的讀寫性能,這使得現(xiàn)有面向低速外存設(shè)備設(shè)計(jì)的I/O系統(tǒng)軟件棧成為影響存儲系統(tǒng)性能的重要因素,相關(guān)研究表明在用于NVM存儲系統(tǒng)時I/O系統(tǒng)軟件的開銷占總開銷的94%以上,因此減少I/O系統(tǒng)軟件棧的時間開銷是提高NVM存儲系統(tǒng)性能的重要手段。當(dāng)前已有一些新型的NVM文件系統(tǒng),相比傳統(tǒng)文件系統(tǒng),能適應(yīng)NVM存儲系統(tǒng)的特性,有效地提高訪問NVM存儲系統(tǒng)的效率,但NVM存儲系統(tǒng)內(nèi)部的管理機(jī)制則沒有太多的改變,仍然使用傳統(tǒng)存儲設(shè)備或基于Flash的SSD的管理方式,而這成為了影響NVM存儲系統(tǒng)性能的重要因素。

由于NVM存儲器件自身的特性限制,NVM存儲系統(tǒng)不僅在讀寫性能存在很大區(qū)別,而且也存在寫壽命較短的問題;但現(xiàn)有的存儲系統(tǒng)訪問請求管理策略僅僅使用單一的同步或異步策略管理所有訪問請求,不能區(qū)分訪問請求的不同類型以適應(yīng)NVM存儲系統(tǒng)的特性。由于NVM存儲系統(tǒng)具有接近于DRAM的讀寫速度,使得NVM存儲系統(tǒng)中邏輯和物理地址之間的轉(zhuǎn)換也成為影響I/O性能的重要因素;在多核處理器環(huán)境中,雖然私有映射能降低減少不同計(jì)算核心訪問NVM存儲系統(tǒng)空間時的沖突,但也使得多個計(jì)算核心之間無法共享地址轉(zhuǎn)換信息,從而影響了地址轉(zhuǎn)換的效率,因此如何針對NVM存儲系統(tǒng)的特性,研究具有高并發(fā)特性的新型訪問機(jī)制是提高NVM存儲系統(tǒng)性能需要解決的重要問題。

本文首先給出當(dāng)前相關(guān)的研究,接著給出支持高并發(fā)訪問NVM存儲系統(tǒng)的結(jié)構(gòu),再設(shè)計(jì)同異步融合的訪問請求管理策略和面向多核處理器的地址轉(zhuǎn)換緩存策略,并在開源的NVM存儲系統(tǒng)基礎(chǔ)上實(shí)現(xiàn)原型系統(tǒng),使用通用測試工具進(jìn)行測試與對比分析。本文的主要貢獻(xiàn)如下:

1)根據(jù)讀寫訪問請求的不同特性,融合同步和異步訪問請求管理策略,利用NVM存儲系統(tǒng)中DRAM構(gòu)建的緩存減少較大數(shù)據(jù)量寫請求的響應(yīng)時間;同時仍然使用同步策略完成讀和少量數(shù)據(jù)寫請求操作,在簡化緩存管理和同時也避免冗余寫操作對讀和少量數(shù)據(jù)寫請求性能的影響。

2)在多核處理器使用私有映射的基礎(chǔ)上,構(gòu)建了多個計(jì)算核心共享的地址轉(zhuǎn)換緩存,實(shí)現(xiàn)了不同計(jì)算核心之間地址轉(zhuǎn)換緩存項(xiàng)的共享,降低了不同計(jì)算核心進(jìn)行邏輯地址和物理地址轉(zhuǎn)換時沖突的幾率,減少了地址轉(zhuǎn)換的時間開銷,提高了NVM存儲系統(tǒng)的I/O性能。

3)實(shí)現(xiàn)了支持高并發(fā)訪問NVM存儲系統(tǒng)(Concurrent NVM Storage system, CNVMS)的原型,使用通用測試工具進(jìn)行了隨機(jī)讀寫、順序讀寫、混合讀寫和實(shí)際應(yīng)用負(fù)載的測試,驗(yàn)證了CNVMS相比現(xiàn)有NVM存儲系統(tǒng)具有更高的I/O性能和IOPS(Input/Output operations Per Second)。

1 相關(guān)研究工作

當(dāng)前為了提高NVM存儲系統(tǒng)的性能和并發(fā)性,研究者主要針對NVM存儲系統(tǒng)的特性,從如何優(yōu)化I/O系統(tǒng)軟件棧和優(yōu)化基于寫保護(hù)的地址轉(zhuǎn)換策略展開研究。

優(yōu)化I/O系統(tǒng)軟件棧方面:文獻(xiàn)[5]在訪問PCM存儲設(shè)備時,使用輪詢方式的效率優(yōu)于中斷方式,同時存儲軟件棧中使用同步I/O機(jī)制的效率高于異步I/O機(jī)制。與傳統(tǒng)的異步I/O相比,同步I/O可以減少I/O請求所需的CPU時鐘周期,這種減少主要來自縮短的內(nèi)核路徑和中斷處理的去除。異步I/O在處理具有較大傳輸大小數(shù)據(jù)量的I/O請求或處理導(dǎo)致較長等待時間的硬件延遲時會更好;而同步I/O適合較小傳輸大小數(shù)據(jù)量這兩處的“大小”,是否應(yīng)該改為“數(shù)據(jù)量”更為恰當(dāng)些?請明確的I/O請求;同時針對高速的NVM存儲設(shè)備,當(dāng)存在大規(guī)模數(shù)據(jù)讀寫以及一定的硬件延遲時,異步I/O訪問依然是高效的。文獻(xiàn)[6]針對PCM讀性能高的特性,對PCIe口的NVM存儲設(shè)備,采用輪詢的方法,消除PCI Express的封包和上下文切換,提高讀性能。文獻(xiàn)[7]設(shè)計(jì)了新型文件系統(tǒng)PMFS(Persistent Memory File System),使用存儲級NVM作內(nèi)存,直接通過load/store訪問NVM,簡化I/O系統(tǒng)軟件棧,繞過頁緩存,從而避免了雙倍拷貝開銷。研究者Ou等[8]設(shè)計(jì)了針對NVM主存的寫緩存機(jī)制以及DRAM中索引與緩存行中位圖相結(jié)合的讀一致性機(jī)制,并構(gòu)建了緩存貢獻(xiàn)模型挑選NVM主存的寫操作,實(shí)現(xiàn)了面向NVM主存的文件系統(tǒng)HINFS(High-Performance Non-Volatile File System請補(bǔ)充HINFS的英文全稱)。Lu等[9]針對非易失內(nèi)存設(shè)計(jì)了模糊持久性的事務(wù)機(jī)制,這模糊了易失持久性的邊界來減少事務(wù)支撐的開銷,并在多種負(fù)載的測試下提升了56.3%到143.7%的性能,而事務(wù)的開銷主要包括日志的執(zhí)行和易失檢查點(diǎn)的批量持久化。文獻(xiàn)[10]中針對PCM設(shè)計(jì)了基于頁的高效管理方式,適應(yīng)上層應(yīng)用的訪問方式,首先使用雙向鏈表管理PCM中的頁,再使用DRAM構(gòu)建了PCM頁的緩存并設(shè)計(jì)了基于進(jìn)入時間的淘汰算法,最后綜合頁遷移和交換信息優(yōu)化了PCM中頁的分配。文獻(xiàn)[11]修改了虛擬文件系統(tǒng),并設(shè)計(jì)了非阻塞的寫機(jī)制,消除了填充頁緩存造成的阻塞,能快速釋放寫請求。Benchmark的測試結(jié)果顯示吞吐量相比磁盤平均提高了7倍,相比SSD平均提高了4.2倍。文獻(xiàn)[12-13]利用基于硬件的文件系統(tǒng)訪問控制,分離元數(shù)據(jù)和數(shù)據(jù)的訪問路徑,使用用戶空間與存儲設(shè)備之間的直接I/O,避免修改元數(shù)據(jù),減少了文件系統(tǒng)訪問控制、數(shù)據(jù)訪問等操作中存儲軟件棧的開銷。文獻(xiàn)[14]中針對SSD設(shè)計(jì)了Slacker,使用松耦合重排機(jī)制調(diào)整SSD內(nèi)部的子訪問請求,對寫密集、讀密集和讀寫均衡的應(yīng)用分別能縮短12%、6.5%和8.5%的響應(yīng)時間。文獻(xiàn)[15-16]中針對SCM提出了一個靈活的文件接口Aerie,以運(yùn)行時庫的形式將SCM暴露給用戶程序,使得在讀寫文件時無需與內(nèi)核交互;并實(shí)現(xiàn)了一個POSIX(Portable Operating System Interface of UNIX)標(biāo)準(zhǔn)的文件系統(tǒng)PXFS(ProXy File System),獲得了優(yōu)于Ramdisk上的Ext4和接近于Ramfs的性能;還實(shí)現(xiàn)了一個用于存儲key-value的文件系統(tǒng)FlatFS,相比現(xiàn)有的內(nèi)核文件系統(tǒng)Ramfs和Ramdisk的上Ext4能提高20%~109%的性能。文獻(xiàn)[10]中針對PCM設(shè)計(jì)了基于頁的高效管理方式,適應(yīng)上層應(yīng)用的訪問方式,首先使用雙向鏈表管理PCM中的頁,再使用DRAM構(gòu)建了PCM頁的緩存并設(shè)計(jì)了基于進(jìn)入時間的淘汰算法,最后綜合頁遷移和交換信息優(yōu)化了PCM中頁的分配。文獻(xiàn)[17]使用較小容量的DRAM和PCM混合構(gòu)建內(nèi)存系統(tǒng),利用DRAM緩存PCM的部分?jǐn)?shù)據(jù),提高了混合內(nèi)存系統(tǒng)讀寫速度,減少了PCM的寫次數(shù)。

優(yōu)化基于寫保護(hù)的地址轉(zhuǎn)換策略方面:NVM存儲設(shè)備可以使用與DRAM相同的方式接入計(jì)算機(jī),并作為存儲器提供給操作系統(tǒng),現(xiàn)有針對DRAM的基于頁表保護(hù)機(jī)制無法解決內(nèi)核代碼野指針等給NVM存儲系統(tǒng)中數(shù)據(jù)造成永久損壞的問題,同時在多核處理器中不同計(jì)算核心之間在地址轉(zhuǎn)換時存在大量沖突嚴(yán)重影響了I/O性能。NOVA(Non-Volatile Memory Accelerated)[18]和PMFS[7]選擇在掛載期間將整個NVM映射為只讀狀態(tài)。通過禁用處理器的寫保護(hù)控制(CR0.WP)來打開一個寫入窗口(NVM代碼段)[19]。當(dāng)CR0.WP清除時,在0其上這個表述對嗎?是數(shù)字0嗎?請明確運(yùn)行的內(nèi)核軟件可以寫入內(nèi)核地址空間中標(biāo)記為只讀的頁面。NVM寫入完成后,系統(tǒng)會復(fù)位CR0.WP并關(guān)閉寫入窗口。CR0.WP不會跨中斷保存,所以本地中斷會被寫入窗口中并被禁用。文獻(xiàn)[20]中提出了面向NVM的事務(wù)接口NVTM(Non-Volatile Transaction MemoriesNVTM的英文全稱是“non-volatile memories”嗎?請明確),將非易失存儲器直接映射到應(yīng)用程序的地址空間,允許易失和非易失數(shù)據(jù)結(jié)構(gòu)在程序中的無縫交互,從而在讀寫操作中避免操作系統(tǒng)的介入,提高了數(shù)據(jù)訪問性能。文獻(xiàn)[21]在虛擬內(nèi)存空間設(shè)計(jì)了新型文件系統(tǒng)SCMFS(Storage Class Memory File System),使用MMU(Memory Management Unit)和TLB(Translation Lookaside Buffer)實(shí)現(xiàn)虛擬地址和物理地址的轉(zhuǎn)換,簡化了文件操作,減少了CPU開銷。HSCC(Hardware/Software Cooperative Caching請補(bǔ)充HSCC的英文全稱)[22]通過軟硬件協(xié)同管理的DRAM/NVM層次化異構(gòu)內(nèi)存系統(tǒng);通過Utility-based數(shù)據(jù)緩存機(jī)制僅緩存NVM熱頁緩存,提高了DRAM利用率;同時在頁表和TLB中建立虛擬頁到DRAM緩存頁的映射,并與Utility-based數(shù)據(jù)緩存機(jī)制一起在軟件層次實(shí)現(xiàn),降低了系統(tǒng)的硬件復(fù)雜度和存儲開銷。PMBD(Persistent Memory Block Driver)[23]將NVM映射到內(nèi)核虛擬地址空間,不同計(jì)算核心在訪問時使用對應(yīng)的私有映射,減少了TLB刷新和頁表項(xiàng)修改,避免了大容量NVM存儲設(shè)備對應(yīng)的大頁表所消耗的大量存儲器空間和管理時間開銷。

綜上所述,目前在針對NVM構(gòu)建存儲系統(tǒng)方面,主要考慮的是如何減少I/O系統(tǒng)軟件棧的時間開銷,發(fā)揮NVM設(shè)備高速讀寫特性,因此針對NVM設(shè)備的特性,有效地混合異步和同步I/O是提高NVM存儲系統(tǒng)I/O性能的有效途徑;同時多核環(huán)境中,內(nèi)核的私有映射可以確保NVM中數(shù)據(jù)免受意外的永久性破壞,但NVM存儲系統(tǒng)容量較大時,TLB的命中率會受到較大影響,所以如何在確保解決多處理器映射沖突的情況下提高映射效率、降低軟件開銷值得本文作進(jìn)一步的研究。

2 支持高并發(fā)訪問NVM存儲系統(tǒng)的結(jié)構(gòu)

NVM存儲器件的讀性能接近DRAM,但其寫速度與DRAM相比還有數(shù)量級的差距;同時另外NVM存儲器件還存在寫壽命的問題,因此當(dāng)前的NVM存儲系統(tǒng)中仍然包含一定容量的DRAM,但現(xiàn)有的存儲系統(tǒng)使用單一的同步或異步策略管理所有訪問請求,難以適應(yīng)NVM存儲系統(tǒng)中讀寫性能差異和寫壽命的限制;同時NVM存儲系統(tǒng)的高I/O性能,使得處理器在訪問NVM存儲系統(tǒng)時完成邏輯和物理地址轉(zhuǎn)換的時間開銷也成為影響I/O性能的重要因素,特別是在多核處理器環(huán)境中,在使用沖突較少的私有映射時多個計(jì)算核心之間無法共享地址轉(zhuǎn)換信息,影響了地址轉(zhuǎn)換的效率,因此本文設(shè)計(jì)支持高并發(fā)訪問的NVM存儲系統(tǒng),其結(jié)構(gòu)如圖1所示。

支持高并發(fā)的NVM存儲系統(tǒng)中,主要包含同異步融合訪問請求管理模塊、寫緩存和地址轉(zhuǎn)換緩存。其中:同異步融合訪問請求管理模塊主要負(fù)責(zé)管理訪問NVM存儲系統(tǒng)的讀寫操作,根據(jù)NVM存儲系統(tǒng)的特性和訪問請求的特點(diǎn),提高訪問NVM存儲系統(tǒng)的I/O性能,減少訪問請求的響應(yīng)時間;寫緩存用于保存部分寫操作需要寫入NVM存儲系統(tǒng)的數(shù)據(jù);地址轉(zhuǎn)換緩存保存部分NVM存儲系統(tǒng)中邏輯地址和物理地址的轉(zhuǎn)換表,用于在多核環(huán)境中提高查找NVM存儲系統(tǒng)物理地址的速度。

3 同異步融合的訪問請求管理策略

由于NVM存儲器件的特性,使得NVM存儲系統(tǒng)的讀寫性能存在很大差異,這給如何管理NVM存儲系統(tǒng)中的訪問請求帶來了很大困難。本文設(shè)計(jì)了同異步融合的訪問請求管理策略。

首先使用DRAM構(gòu)建寫數(shù)據(jù)緩沖區(qū)、并用WBuffer表示,定義α表示判斷寫訪問請求的閾值,其處理訪問請求主要步驟的偽代碼如下。

此外使用LRU(Least Recently Used)策略管理寫數(shù)據(jù)緩沖區(qū),并使用一個獨(dú)立的線程定期將WBuffer中的數(shù)據(jù)寫入到NVM存儲系統(tǒng)中。

由此將NVM存儲系統(tǒng)的讀寫請求進(jìn)行了分離,使用同步機(jī)制完成讀操作,能利用NVM存儲系統(tǒng)讀速度接近DRAM的特性。同樣使用同步機(jī)制完成少量數(shù)據(jù)的寫請求,避免使用寫緩存存在的兩次寫操作;對數(shù)據(jù)量較大的寫請求,則運(yùn)用異步機(jī)制,使用DRAM構(gòu)建寫數(shù)據(jù)緩存,利用相比NVM存儲器件寫速度更高的DRAM快速完成數(shù)據(jù)寫操作,從而提高NVM存儲系統(tǒng)的寫性能;同時使用異步寫機(jī)制還能增強(qiáng)NVM存儲系統(tǒng)處理寫操作的并行性,提高寫操作的吞吐率。

4 面向多核處理器的地址轉(zhuǎn)換緩存策略

處理器在訪問NVM存儲系統(tǒng)時,需要進(jìn)行NVM存儲空間邏輯地址和物理地址的轉(zhuǎn)換。由于NVM存儲系統(tǒng)的讀寫速度已經(jīng)接近于DRAM,使得NVM存儲系統(tǒng)中地址轉(zhuǎn)換所需時間開銷對其I/O性能的影響很大,特別是在使用多核處理器時,為了保證NVM存儲系統(tǒng)上數(shù)據(jù)的一致性,多個計(jì)算核心在訪問NVM存儲系統(tǒng)時需要進(jìn)行加鎖,這嚴(yán)重影響了NVM存儲系統(tǒng)的I/O性能。NVM存儲系統(tǒng)空間私有映射為每個計(jì)算核心建立一個獨(dú)立的地址映射表,能降低不同計(jì)算核心訪問NVM存儲系統(tǒng)空間時的沖突,是當(dāng)前提高NVM存儲系統(tǒng)地址轉(zhuǎn)換效率的有效方式,但會造成NVM存儲系統(tǒng)所對應(yīng)邏輯地址空間的急劇膨脹,也使得多個計(jì)算核心之間無法共享地址轉(zhuǎn)換信息,從而影響了地址轉(zhuǎn)換的效率。

使用私有映射時,多核處理器中不同核心所對應(yīng)NVM存儲系統(tǒng)的邏輯地址各不相同,但其與NVM存儲系統(tǒng)空間大小存在關(guān)聯(lián);NVM存儲系統(tǒng)中同一物理地址所對應(yīng)不同計(jì)算核心的邏輯地址之間互相可轉(zhuǎn)換,這為共享NVM存儲系統(tǒng)中地址轉(zhuǎn)換信息提供了可能。本文設(shè)計(jì)面向多核處理器的地址轉(zhuǎn)換緩存策略,利用NVM存儲系統(tǒng)的邏輯與物理地址轉(zhuǎn)換信息可共享特性,構(gòu)建面向多核處理器的可共享地址轉(zhuǎn)換緩存。使用Nsize表示NVM存儲系統(tǒng)的存儲空間大小,Lbegin表示某個計(jì)算核心邏輯地址空間的起始地址,Laddress表示NVM存儲系統(tǒng)內(nèi)部的邏輯地址,Paddress表示NVM存儲系統(tǒng)中內(nèi)部的物理地址,Lid表示多核處理器中某個計(jì)算核心的標(biāo)識,Tcache表示面向多核處理器的地址轉(zhuǎn)換緩存。

面向多核處理器的地址轉(zhuǎn)換緩存使用鍵值對形式保存Laddress和Paddress之間的對應(yīng),并使用LRU策略進(jìn)行管理。在將地址轉(zhuǎn)換信息調(diào)入Tcache前,使用式(1)計(jì)算其邏輯地址logical_address所對應(yīng)的Laddress:

使用面向多核處理器地址轉(zhuǎn)換緩存策略后,處理器訪問NVM存儲系統(tǒng)時地址轉(zhuǎn)換的主要過程如下所示。

使用面向多核處理器地址轉(zhuǎn)換緩存策略,能避免在進(jìn)行私有映射后,多核處理器中不同計(jì)算核心之間無法共享NVM存儲系統(tǒng)邏輯地址的問題,通過共享邏輯地址和物理地址之間的轉(zhuǎn)換信息,實(shí)現(xiàn)多個計(jì)算核心之間在獲得物理地址信息時的共享:一方面避免每個計(jì)算核心均需處理物理地址相同的地址轉(zhuǎn)換;另一方面通過可共享的面向多核處理器地址轉(zhuǎn)換緩存進(jìn)一步減少了訪問NVM存儲系統(tǒng)時多個計(jì)算核心之間的沖突,從而能有效提高NVM存儲系統(tǒng)處理訪問請求的并行性,提高I/O性能,縮短響應(yīng)訪問請求的時間。相比TLB,本文所設(shè)計(jì)的面向多核處理器地址轉(zhuǎn)換緩存中地址轉(zhuǎn)換緩存鍵值對能被不同的計(jì)算核心所共享,在通過不同計(jì)算核心的簡單計(jì)算即可獲得對應(yīng)的邏輯地址,從而避免TLB中多個計(jì)算核心無法共享緩存項(xiàng)的問題。

5 原型系統(tǒng)的實(shí)現(xiàn)

本文在64位的Linux平臺上構(gòu)建支持高并發(fā)訪問NVM存儲系統(tǒng)的原型,實(shí)現(xiàn)同異步融合訪問請求管理策略和面向多核處理器地址轉(zhuǎn)換緩存策略,并使用存儲系統(tǒng)通用測試工具Fio和能模擬應(yīng)用訪問特性的Filebench進(jìn)行測試,并與現(xiàn)有NVM存儲系統(tǒng)進(jìn)行比較。

當(dāng)前沒有商用的NVM存儲設(shè)備,在文獻(xiàn)[21]所實(shí)現(xiàn)的虛擬NVM存儲設(shè)備PMBD基礎(chǔ)上實(shí)現(xiàn)CNVMS的原型。其中的PMBD采用缺省配置,并關(guān)閉DRAM上的數(shù)據(jù)緩存,同時設(shè)置cache為write through模式,并在每次寫操作后插入一個寫屏障指令,保證NVM存儲系統(tǒng)中數(shù)據(jù)的強(qiáng)一致性,同時額外增加85ns的讀延遲和500ns的寫延遲模擬NVM的讀寫性能;使用多核處理器中每個計(jì)算核心私有映射的方式實(shí)現(xiàn)PMBD中邏輯地址與物理地址的映射,并在讀寫PMBD時采用使用邏輯塊號直接讀寫裸設(shè)備的方式縮短I/O系統(tǒng)軟件棧。此外修改Linux內(nèi)核,在內(nèi)核地址尾部預(yù)留20GB的內(nèi)核空間并掛載PMBD來模擬NVM存儲設(shè)備。

在此基礎(chǔ)上,修改PBMD的源代碼,增加同異步融合訪問請求管理模塊、寫緩存和地址轉(zhuǎn)換緩存構(gòu)建CNVMS,設(shè)置α的值為4KB,實(shí)現(xiàn)訪問NVM存儲系統(tǒng)讀寫訪問請求的分類管理,利用寫緩存縮短較大寫操作的完成時間開銷,利用地址轉(zhuǎn)換緩存進(jìn)一步壓縮I/O系統(tǒng)軟件棧的時間開銷,從而提高CNMVS的I/O性能和處理訪問請求的效率。

6 測試與分析

使用1臺服務(wù)器構(gòu)建了CNVMS的測試環(huán)境,其配置為: CPU為Four Intel Xeon E7-4830V2 2.2GHz,Memory為256GB,Disk為600GB SAS Disk+120GB SAS SSD,OS為Red Hat Enterprise 6.5。首先使用文件系統(tǒng)性能的通用測試工具Fio進(jìn)行測試,再使用能模擬不同應(yīng)用訪問特性的通用測試工具Filebench進(jìn)行測試,并將CNVMS的讀寫速度和IOPS與PMBD進(jìn)行比較。

6.1 順序讀寫時的測試與分析

將Fio設(shè)置為直接覆蓋式讀寫方式,設(shè)置線程數(shù)為8,訪問塊大小為4KB,使用同步(sync)和異步(libaio)兩種引擎,異步讀寫時I/O隊(duì)列深度分別設(shè)置為1和32,讀寫文件數(shù)分別為5000、10000、20000和30000,讀寫文件的大小分別為1KB、4KB和256KB。

首先測試順序?qū)憰r的I/O性能,測試結(jié)果如圖2(a)所示。從中可以發(fā)現(xiàn),CNVMS的順序?qū)懰俣仁冀K高于相同情況下的PMBD。在同步順序?qū)憰r,CNVMS相比PMBD能提高2%左右的I/O性能;在異步順序?qū)憰r,CNVMS能提高11%~22%的寫性能。相比同步順序?qū)?,異步順序?qū)懩芨玫匕l(fā)揮CNVMS的性能,這是因?yàn)橥綄憰rPMBD本身的I/O性能就較低,同步機(jī)制制約了CNVMS的完成寫操作的效率,影響了寫緩存作用的發(fā)揮,同時多個計(jì)算核心轉(zhuǎn)換地址時的沖突也很少。在異步模式下,順序?qū)?KB文件、I/O隊(duì)列深度為32時,CNVMS相比PMBD所提高的寫性能最高,達(dá)到了22%,這表明CNVMS相比PMBD能提高完成大量并發(fā)順序?qū)懙乃俣?,但相比I/O隊(duì)列深度為1時,CNVMS和PMBD在I/O隊(duì)列深度為32時的順序?qū)懶阅苁冀K較低,這說明在處理順序?qū)懭蝿?wù)時現(xiàn)有NVM存儲系統(tǒng)中并發(fā)性還有待提高。

使用相同的配置,測試PMBD和CNVMS的順序讀速度,結(jié)果如圖32(b)所示。從中可以發(fā)現(xiàn),與順序?qū)懙臏y試結(jié)果類似,CNVMS相比PMBD始終具有更高的順序讀速度。同步順序讀的速度,CNVMS相比PMBD能提高2%~7%;異步順序讀的速度,CNVMS能提高10%~17%。這表明CNVMS相比PMBD具有順序讀性能的優(yōu)勢。

使用相同的配置,測試PMBD和CNVMS的順序混合讀寫速度,讀寫混合比例是各50%,結(jié)果如圖42(c)所示。從中可以發(fā)現(xiàn),其結(jié)果基本與順序?qū)懟蜃x類似,但在使用異步模式時CNMVS相比PMBD所提高的I/O性能比例有所下降;而在使用同步模式時CNMVS相比PMBD所提高的I/O性能比例則有所提高。

6.2 隨機(jī)讀寫時的測試與分析

采用與6.1節(jié)中相同的配置,測試PMBD和CNVMS隨機(jī)寫性能,結(jié)果如圖53(a)所示。從中可以發(fā)現(xiàn),CNVMS相比PMBD能有效地提高隨機(jī)寫性能。在使用異步隨機(jī)寫模式時,CNVMS相比PMBD提高了6%~17%;使用同步隨機(jī)寫模式時,CNVMS相比PMBD提高了1%~4%。相比順序?qū)懶阅艿奶岣弑壤S機(jī)寫性能的提高略低,這與一般采用緩存機(jī)制所取得的效果一致。

采用相同的配置,測試PMBD和CNVMS隨機(jī)讀性能,結(jié)果如圖63(b)所示。從中可以發(fā)現(xiàn),CNVMS相比PMBD能有效地提高隨機(jī)讀性能。在使用異步隨機(jī)讀模式時,CNVMS相比PMBD提高了5%~16%;使用同步隨機(jī)讀模式時,CNVMS相比PMBD提高了1%~18%。同樣相比順序讀性能的提高比例,隨機(jī)讀性能的提高略低。

使用相同的配置,測試PMBD和CNVMS的隨機(jī)混合讀寫速度,讀寫混合比例各50%,結(jié)果如圖73(c)所示。從中可以發(fā)現(xiàn),其結(jié)果基本與隨機(jī)寫或讀類似,但在使用異步模式時CNMVS相比PMBD所提高的I/O性能比例有所下降;在使用同步模式時CNMVS相比PMBD所提高的I/O性能比例則有所提高,這也與順序混合讀寫模式時的測試結(jié)果趨勢類似。

6.3 使用應(yīng)用負(fù)載時的測試與分析

應(yīng)用Filebench來模擬應(yīng)用對NVM存儲系統(tǒng)的訪問。首先使用Fileserver負(fù)載,模擬文件服務(wù)器中文件的共享、讀寫操作等情況,設(shè)置讀寫文件數(shù)為50000,目錄寬度為20,讀寫的線程數(shù)為50;同時為了更好地進(jìn)行比較與分析,將文件的大小分別設(shè)置為1KB、2KB、4KB和128KB,所有測試結(jié)果均是測試三次的平均值而得,降低測試過程中可能存在的誤差,測試結(jié)果如圖84所示。從中可以發(fā)現(xiàn),CNVMS的IOPS始終高于PMBD,提高了13%~15%,這是由于Fileserver負(fù)載中包含了較多的寫操作,從而使得CNVMS能較好地發(fā)揮寫緩存和地址轉(zhuǎn)換緩存的作用,有效提高處理訪問請求的速度。

再使用Filebench中的Webserver負(fù)載,用戶訪問Web服務(wù)器的情況;設(shè)置讀寫文件數(shù)為50000,目錄寬度為20,讀寫的線程數(shù)為100;同時為了更好地進(jìn)行比較與分析,將文件的大小分別設(shè)置為1KB、2KB、4KB和128KB,所有測試結(jié)果均是測試三次的平均值而得,降低測試過程中可能存在的誤差,測試結(jié)果如圖95所示。從中可以發(fā)現(xiàn),CNVMS相比PMBD同樣具有IOPS較高的優(yōu)勢,能提高9%~11%的IOPS,這表明CNVMS能利用寫緩存和地址轉(zhuǎn)換緩存有效提高存儲系統(tǒng)處理訪問請求的速度,但相比Fileserver負(fù)載所提高IOPS的比例有所下降,這是由于Webserver負(fù)載主要模擬的Web文件的讀操作,寫操作的比例較少,降低了CNVMS中寫緩存的作用。

7 結(jié)語

NVM存儲系統(tǒng)具有較高的讀寫性能,這使得現(xiàn)有面向低速外存設(shè)備設(shè)計(jì)的I/O系統(tǒng)軟件棧成為影響存儲系統(tǒng)的重要瓶頸。針對NVM存儲系統(tǒng)存在的讀寫速度不均衡、寫壽命受限等問題,本文設(shè)計(jì)了同異步融合的訪問請求管理策略,在不影響讀和少量寫請求性能的同時,使用DRAM構(gòu)建寫緩存提高數(shù)據(jù)量較大寫請求的執(zhí)行速度;設(shè)計(jì)了面向多核處理器地址轉(zhuǎn)換緩存策略,減少多核處理器環(huán)境下不同計(jì)算核心訪問NVM存儲系統(tǒng)時地址轉(zhuǎn)換的時間開銷,提高NVM存儲系統(tǒng)的I/O性能。最后實(shí)現(xiàn)了支持高并發(fā)訪問NVM存儲系統(tǒng)(CNVMS)的原型,使用Fio和Filebench進(jìn)行了隨機(jī)讀寫、順序讀寫、混合讀寫和實(shí)際應(yīng)用負(fù)載的測試,相比PMBD能提高1%~22%的I/O性能和9%~15%的IOPS,驗(yàn)證了算法的有效性。

當(dāng)前在管理寫緩存和地址轉(zhuǎn)換緩存時,還是使用通用的LRU算法,下一步擬根據(jù)NVM存儲系統(tǒng)的特性,優(yōu)化寫緩存和地址轉(zhuǎn)換緩存的管理算法。

參考文獻(xiàn) (References)

[1] 陳祥,肖儂,劉芳.新型非易失存儲I/O棧綜述[J].計(jì)算機(jī)研究與發(fā)展,2014,51(S1):18-24.(CHEN X, XIAO N, LIU F. Survey on I/O stack for new non-volatile memory [J]. Journal of Computer Research and Development, 2014,51(S1):18-24.)

CARVALHO C. The gap between processor and memory speeds[C]// Proceedings of the 2002 IEEE International Conference on Control and Automation. Piscataway, NJ: IEEE, 2002: 51-58.

[2] Micron. Mobile LPDDR2-PCM. [EB/OL]. [2018-01-08]. http://www.micron.com/products/multichip-packages/pcm-based-mcp.

[3] CAULFIELD A M, COBURN J, MOLLOV T, et al. Understanding the impact of emerging non-volatile memories on high-performance, IO-intensive computing[C]// SC10: Proceedings of the 2010 ACM/IEEE High Performance Computing, Networking, Storage and Analysis. Piscataway, NJ: IEEE, 2010: 1-11.

[4] JO S H, KUMAR T, NARAYANAN S, et al. 3D-stackable crossbar resistive memory based on Field Assisted Superlinear Threshold (FAST) selector[C]// Proceedings of the 2014 International Electron Devices Meeting. Piscataway, NJ: IEEE, 2014:6.7.1-6.7.4.

[5] YANG J, MINTURN D B, HADY F. When poll is better than interrupt[C]// Proceedings of the 2010 USENIX Conference on File and Storage Technologies. Berkeley: USENIX Association, 2012:3-3.

[6] DEJAN V, WANG Q B, CYRIL G, et al. DC express: shortest latency protocol for reading phase change memory over PCI express[C]// Proceedings of the 2014 USENIX Conference on File and Storage Technologies. Berkeley: USENIX Association, 2014: 17-20.

[7] DULLOOR S R, KUMAR S, KESHAVAMURTHY A, et al. System software for persistent memory[C]// EuroSys 2015: Proceedings of the 10th European Conference on Computer Systems. New York: ACM, 2014: Article No. 15.

[8] OU J X, SHU J W, LU Y Y. A high performance file system for non-volatile main memory[C]// EuroSys 2016: Proceedings of the 11th European Conference on Computer Systems. New York: ACM, 2016: 18-21.

[9] LU Y Y, SHU J W, SUN L. Blurred persistence in transactional persistent memory[C]// Proceedings of the 2015 Mass Storage Systems and Technologies. Piscataway, NJ: IEEE, 2015: 1-13.

[10] JIN P Q, WU Z L, WANG X L, et al. A page-based storage framework for phase change memory[C]// Proceedings of the 2017 International Conference on Massive Storage Systems and Technology. Piscataway, NJ: IEEE, 2017: 152-164.

[11] CAMPELLO D, LOPEZ H, USECHE L, et al. Non-blocking writes to files[C]// Proceedings of the 2015 USENIX Conference on File and Storage Technologies. Berkeley: USENIX Association, 2015: 151-165.

[12] CAULFIELD A, MOLLOV T, EISNER L, et al. Providing safe, user space access to fast, solid state disks[J]. ACM SIGARCH Computer Architecture News, 2012, 40(1): 387-400.

[13] EISNER L A, MOLLOV T, SWANSON S J. Quill: exploiting fast non-volatile memory by transparently bypassing the file system: #CS2013-0991 [R]. San Diego: University of California, 2013: 127-134.

[14] NIMA E, MOHAMMAD A, ANAND S, et al. Exploiting intra-request slack to improve SSD performance[C]// Proceedings of the 2017 International Conference on Architectural Support for Programming Languages and Operating Systems. New York: ACM, 2017: 375-388.

[15] HARIS V, SANKARALINGAM P, SANKETH N, et al. Storage-class memory needs flexible interfaces[C]// Proceedings of the 4th Asia-Pacific Workshop on Systems. New York: ACM, 2013: Article No. 11.

[16] HARIS V, SANKETH N, SANKARLINGAM P, et al. Aerie: flexible file-system interfaces to storage-class memory[C]// Proceedings of the 2014 European Conference on Computer Systems. New York: ACM, 2014: Article No. 14.

[17] QURESHI M K, SRINIVASAN V, RIVERS J A. Scalable high performance main memory system using phase-change memory technology[J]. ACM SIGARCH Computer Architecture News, 2009, 37(3): 24-33.

[18] XU J, SWANSON S. NOVA: a log-structured file system for hybrid volatile/non-volatile main memories[C]// Proceedings of the 2016 USENIX Conference on File and Storage Technologies. Berkeley: USENIX Association, 2016: 22-25.

[19] Intel. Intel 64 and IA-32 architectures software developers manual [EB/OL]. [2018-01-11]. https://software.intel.com/en-us/articles/intel-sdm.

[20] COBURN J, CAULFIELD A, GRUPP L, et al. NVTM: a transactional interface for next-generation non-volatile memories[R]. San Diego: University of California, 2009.

[21] WU X, REDDY A L N. SCMFS: a file system for storage class memory[C]// Proceedings of the 2011 International Conference for High Performance Computing, Networking, Storage and Analysis. New York: ACM, 2011: 12-18.

[22] LIU H, CHEN Y, LIAO X, et al. Hardware/software cooperative caching for hybrid DRAM/NVM memory architectures[C]// Proceedings of the 2017 International Conference on High Performance Computing, Networking, Storage and Analysis. New York: ACM, 2017: Article No. 26.

[23] CHEN F, MESNIER M P, HAHN S. A protected block device for persistent memory[C]// Proceedings of the 2014 Mass Storage Systems and Technologies. Piscataway, NJ: IEEE, 2014: 1-12.

猜你喜歡
存儲系統(tǒng)
分層式大數(shù)據(jù)存儲系統(tǒng)緩存調(diào)度策略與性能優(yōu)化
分布式存儲系統(tǒng)在企業(yè)檔案管理中的應(yīng)用
哈爾濱軸承(2020年2期)2020-11-06 09:22:36
天河超算存儲系統(tǒng)在美創(chuàng)佳績
天河超算存儲系統(tǒng)在美創(chuàng)佳績
網(wǎng)絡(luò)計(jì)算機(jī)模型下海量大數(shù)據(jù)存儲系統(tǒng)設(shè)計(jì)
基于Hadoop 的海量醫(yī)藥電商數(shù)據(jù)存儲系統(tǒng)設(shè)計(jì)與開發(fā)
電子制作(2017年19期)2017-02-02 07:08:40
分布式存儲系統(tǒng)在液晶面板制造數(shù)據(jù)倉庫中的設(shè)計(jì)
電子制作(2016年15期)2017-01-15 13:39:15
存儲系統(tǒng)是HPC運(yùn)轉(zhuǎn)的基礎(chǔ)
華為震撼發(fā)布新一代OceanStor 18000 V3系列高端存儲系統(tǒng)
一種基于STM32的具有斷電保護(hù)機(jī)制的采集存儲系統(tǒng)設(shè)計(jì)
乌兰县| 浦江县| 乐平市| 宽甸| 科技| 吴江市| 利辛县| 康平县| 同仁县| 长沙市| 汉阴县| 山西省| 普宁市| 阿克| 逊克县| 吉首市| 江永县| 冷水江市| 西安市| 芒康县| 油尖旺区| 广宗县| 斗六市| 博客| 贵定县| 兴山县| 瑞金市| 依兰县| 宾川县| 枣强县| 万源市| 镇赉县| 沅陵县| 宁夏| 宁明县| 浦北县| 南部县| 那曲县| 赤水市| 湘潭县| 吴川市|