蔡濤 陳志鵬 牛德姣 王杰 詹畢晟
摘 要:I/O系統軟件棧是影響NVM存儲系統性能的重要因素。針對NVM存儲系統的讀寫速度不均衡、寫壽命有限等問題,設計了同異步融合的訪問請求管理策略;在使用異步策略管理數據量較大的寫操作的同時,仍然使用同步策略管理讀請求和少量數據的寫請求。針對多核處理器環(huán)境下不同計算核心訪問存儲系統時地址轉換開銷大的問題,設計了面向多核處理器地址轉換緩存策略,減少地址轉換的時間開銷。最后實現了支持高并發(fā)訪問NVM存儲系統(CNVMS)的原型,并使用通用測試工具進行了隨機讀寫、順序讀寫、混合讀寫和實際應用負載的測試。實驗結果表明,與PMBD相比,所提策略能提高1%~22%的I/O性能讀寫速度三校人員提出的問題,此處是否應該為“讀寫速度”?若是的話,也請補充英文譯文。回復:中文可以寫成“讀寫速度”意思和I/O性能是相同的。和9%~15%的IOPS此處是否應該為“訪問請求處理速度”?IOPS不是I/O性能的一個指標嗎?這兩個指標這樣書寫準確嗎?請明確。回復:IOPS是每秒處理的訪問請求數量。一般都用英文簡寫的。,驗證了CNVMS策略能有效提高NVM存儲系統的I/O性能和訪問請求處理速度。
關鍵詞:NVM;存儲系統;I/O系統軟件棧
中圖分類號: TP316.4
文獻標志碼: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根據文獻23,PMBD中的Driver,是否應該為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 引言
計算機系統中各部件的發(fā)展很不均衡,傳統存儲部件的讀寫速度遠低于計算部件的處理能力,這導致了嚴重的存儲墻問題[1]。由于存在機械部件,傳統的磁盤很難有效提高讀寫速度?;贔lash的SSD(Solid State Drives)具有較高的I/O性能,但存在寫壽命短和僅支持以塊為單位的讀寫操作等問題。當前出現了一系列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存儲器件還存在寫壽命不夠高的問題,但隨著技術的發(fā)展,NVM存儲設備和所構建的存儲系統已成為當前研究和開發(fā)的熱點。
NVM存儲系統具有較高的讀寫性能,這使得現有面向低速外存設備設計的I/O系統軟件棧成為影響存儲系統性能的重要因素,相關研究表明在用于NVM存儲系統時I/O系統軟件的開銷占總開銷的94%以上,因此減少I/O系統軟件棧的時間開銷是提高NVM存儲系統性能的重要手段。當前已有一些新型的NVM文件系統,相比傳統文件系統,能適應NVM存儲系統的特性,有效地提高訪問NVM存儲系統的效率,但NVM存儲系統內部的管理機制則沒有太多的改變,仍然使用傳統存儲設備或基于Flash的SSD的管理方式,而這成為了影響NVM存儲系統性能的重要因素。
由于NVM存儲器件自身的特性限制,NVM存儲系統不僅在讀寫性能存在很大區(qū)別,而且也存在寫壽命較短的問題;但現有的存儲系統訪問請求管理策略僅僅使用單一的同步或異步策略管理所有訪問請求,不能區(qū)分訪問請求的不同類型以適應NVM存儲系統的特性。由于NVM存儲系統具有接近于DRAM的讀寫速度,使得NVM存儲系統中邏輯和物理地址之間的轉換也成為影響I/O性能的重要因素;在多核處理器環(huán)境中,雖然私有映射能降低減少不同計算核心訪問NVM存儲系統空間時的沖突,但也使得多個計算核心之間無法共享地址轉換信息,從而影響了地址轉換的效率,因此如何針對NVM存儲系統的特性,研究具有高并發(fā)特性的新型訪問機制是提高NVM存儲系統性能需要解決的重要問題。
本文首先給出當前相關的研究,接著給出支持高并發(fā)訪問NVM存儲系統的結構,再設計同異步融合的訪問請求管理策略和面向多核處理器的地址轉換緩存策略,并在開源的NVM存儲系統基礎上實現原型系統,使用通用測試工具進行測試與對比分析。本文的主要貢獻如下:
1)根據讀寫訪問請求的不同特性,融合同步和異步訪問請求管理策略,利用NVM存儲系統中DRAM構建的緩存減少較大數據量寫請求的響應時間;同時仍然使用同步策略完成讀和少量數據寫請求操作,在簡化緩存管理和同時也避免冗余寫操作對讀和少量數據寫請求性能的影響。
2)在多核處理器使用私有映射的基礎上,構建了多個計算核心共享的地址轉換緩存,實現了不同計算核心之間地址轉換緩存項的共享,降低了不同計算核心進行邏輯地址和物理地址轉換時沖突的幾率,減少了地址轉換的時間開銷,提高了NVM存儲系統的I/O性能。
3)實現了支持高并發(fā)訪問NVM存儲系統(Concurrent NVM Storage system, CNVMS)的原型,使用通用測試工具進行了隨機讀寫、順序讀寫、混合讀寫和實際應用負載的測試,驗證了CNVMS相比現有NVM存儲系統具有更高的I/O性能和IOPS(Input/Output operations Per Second)。
1 相關研究工作
當前為了提高NVM存儲系統的性能和并發(fā)性,研究者主要針對NVM存儲系統的特性,從如何優(yōu)化I/O系統軟件棧和優(yōu)化基于寫保護的地址轉換策略展開研究。
優(yōu)化I/O系統軟件棧方面:文獻[5]在訪問PCM存儲設備時,使用輪詢方式的效率優(yōu)于中斷方式,同時存儲軟件棧中使用同步I/O機制的效率高于異步I/O機制。與傳統的異步I/O相比,同步I/O可以減少I/O請求所需的CPU時鐘周期,這種減少主要來自縮短的內核路徑和中斷處理的去除。異步I/O在處理具有較大傳輸大小數據量的I/O請求或處理導致較長等待時間的硬件延遲時會更好;而同步I/O適合較小傳輸大小數據量這兩處的“大小”,是否應該改為“數據量”更為恰當些?請明確的I/O請求;同時針對高速的NVM存儲設備,當存在大規(guī)模數據讀寫以及一定的硬件延遲時,異步I/O訪問依然是高效的。文獻[6]針對PCM讀性能高的特性,對PCIe口的NVM存儲設備,采用輪詢的方法,消除PCI Express的封包和上下文切換,提高讀性能。文獻[7]設計了新型文件系統PMFS(Persistent Memory File System),使用存儲級NVM作內存,直接通過load/store訪問NVM,簡化I/O系統軟件棧,繞過頁緩存,從而避免了雙倍拷貝開銷。研究者Ou等[8]設計了針對NVM主存的寫緩存機制以及DRAM中索引與緩存行中位圖相結合的讀一致性機制,并構建了緩存貢獻模型挑選NVM主存的寫操作,實現了面向NVM主存的文件系統HINFS(High-Performance Non-Volatile File System請補充HINFS的英文全稱)。Lu等[9]針對非易失內存設計了模糊持久性的事務機制,這模糊了易失持久性的邊界來減少事務支撐的開銷,并在多種負載的測試下提升了56.3%到143.7%的性能,而事務的開銷主要包括日志的執(zhí)行和易失檢查點的批量持久化。文獻[10]中針對PCM設計了基于頁的高效管理方式,適應上層應用的訪問方式,首先使用雙向鏈表管理PCM中的頁,再使用DRAM構建了PCM頁的緩存并設計了基于進入時間的淘汰算法,最后綜合頁遷移和交換信息優(yōu)化了PCM中頁的分配。文獻[11]修改了虛擬文件系統,并設計了非阻塞的寫機制,消除了填充頁緩存造成的阻塞,能快速釋放寫請求。Benchmark的測試結果顯示吞吐量相比磁盤平均提高了7倍,相比SSD平均提高了4.2倍。文獻[12-13]利用基于硬件的文件系統訪問控制,分離元數據和數據的訪問路徑,使用用戶空間與存儲設備之間的直接I/O,避免修改元數據,減少了文件系統訪問控制、數據訪問等操作中存儲軟件棧的開銷。文獻[14]中針對SSD設計了Slacker,使用松耦合重排機制調整SSD內部的子訪問請求,對寫密集、讀密集和讀寫均衡的應用分別能縮短12%、6.5%和8.5%的響應時間。文獻[15-16]中針對SCM提出了一個靈活的文件接口Aerie,以運行時庫的形式將SCM暴露給用戶程序,使得在讀寫文件時無需與內核交互;并實現了一個POSIX(Portable Operating System Interface of UNIX)標準的文件系統PXFS(ProXy File System),獲得了優(yōu)于Ramdisk上的Ext4和接近于Ramfs的性能;還實現了一個用于存儲key-value的文件系統FlatFS,相比現有的內核文件系統Ramfs和Ramdisk的上Ext4能提高20%~109%的性能。文獻[10]中針對PCM設計了基于頁的高效管理方式,適應上層應用的訪問方式,首先使用雙向鏈表管理PCM中的頁,再使用DRAM構建了PCM頁的緩存并設計了基于進入時間的淘汰算法,最后綜合頁遷移和交換信息優(yōu)化了PCM中頁的分配。文獻[17]使用較小容量的DRAM和PCM混合構建內存系統,利用DRAM緩存PCM的部分數據,提高了混合內存系統讀寫速度,減少了PCM的寫次數。
優(yōu)化基于寫保護的地址轉換策略方面:NVM存儲設備可以使用與DRAM相同的方式接入計算機,并作為存儲器提供給操作系統,現有針對DRAM的基于頁表保護機制無法解決內核代碼野指針等給NVM存儲系統中數據造成永久損壞的問題,同時在多核處理器中不同計算核心之間在地址轉換時存在大量沖突嚴重影響了I/O性能。NOVA(Non-Volatile Memory Accelerated)[18]和PMFS[7]選擇在掛載期間將整個NVM映射為只讀狀態(tài)。通過禁用處理器的寫保護控制(CR0.WP)來打開一個寫入窗口(NVM代碼段)[19]。當CR0.WP清除時,在0其上這個表述對嗎?是數字0嗎?請明確運行的內核軟件可以寫入內核地址空間中標記為只讀的頁面。NVM寫入完成后,系統會復位CR0.WP并關閉寫入窗口。CR0.WP不會跨中斷保存,所以本地中斷會被寫入窗口中并被禁用。文獻[20]中提出了面向NVM的事務接口NVTM(Non-Volatile Transaction MemoriesNVTM的英文全稱是“non-volatile memories”嗎?請明確),將非易失存儲器直接映射到應用程序的地址空間,允許易失和非易失數據結構在程序中的無縫交互,從而在讀寫操作中避免操作系統的介入,提高了數據訪問性能。文獻[21]在虛擬內存空間設計了新型文件系統SCMFS(Storage Class Memory File System),使用MMU(Memory Management Unit)和TLB(Translation Lookaside Buffer)實現虛擬地址和物理地址的轉換,簡化了文件操作,減少了CPU開銷。HSCC(Hardware/Software Cooperative Caching請補充HSCC的英文全稱)[22]通過軟硬件協同管理的DRAM/NVM層次化異構內存系統;通過Utility-based數據緩存機制僅緩存NVM熱頁緩存,提高了DRAM利用率;同時在頁表和TLB中建立虛擬頁到DRAM緩存頁的映射,并與Utility-based數據緩存機制一起在軟件層次實現,降低了系統的硬件復雜度和存儲開銷。PMBD(Persistent Memory Block Driver)[23]將NVM映射到內核虛擬地址空間,不同計算核心在訪問時使用對應的私有映射,減少了TLB刷新和頁表項修改,避免了大容量NVM存儲設備對應的大頁表所消耗的大量存儲器空間和管理時間開銷。
綜上所述,目前在針對NVM構建存儲系統方面,主要考慮的是如何減少I/O系統軟件棧的時間開銷,發(fā)揮NVM設備高速讀寫特性,因此針對NVM設備的特性,有效地混合異步和同步I/O是提高NVM存儲系統I/O性能的有效途徑;同時多核環(huán)境中,內核的私有映射可以確保NVM中數據免受意外的永久性破壞,但NVM存儲系統容量較大時,TLB的命中率會受到較大影響,所以如何在確保解決多處理器映射沖突的情況下提高映射效率、降低軟件開銷值得本文作進一步的研究。
2 支持高并發(fā)訪問NVM存儲系統的結構
NVM存儲器件的讀性能接近DRAM,但其寫速度與DRAM相比還有數量級的差距;同時另外NVM存儲器件還存在寫壽命的問題,因此當前的NVM存儲系統中仍然包含一定容量的DRAM,但現有的存儲系統使用單一的同步或異步策略管理所有訪問請求,難以適應NVM存儲系統中讀寫性能差異和寫壽命的限制;同時NVM存儲系統的高I/O性能,使得處理器在訪問NVM存儲系統時完成邏輯和物理地址轉換的時間開銷也成為影響I/O性能的重要因素,特別是在多核處理器環(huán)境中,在使用沖突較少的私有映射時多個計算核心之間無法共享地址轉換信息,影響了地址轉換的效率,因此本文設計支持高并發(fā)訪問的NVM存儲系統,其結構如圖1所示。
支持高并發(fā)的NVM存儲系統中,主要包含同異步融合訪問請求管理模塊、寫緩存和地址轉換緩存。其中:同異步融合訪問請求管理模塊主要負責管理訪問NVM存儲系統的讀寫操作,根據NVM存儲系統的特性和訪問請求的特點,提高訪問NVM存儲系統的I/O性能,減少訪問請求的響應時間;寫緩存用于保存部分寫操作需要寫入NVM存儲系統的數據;地址轉換緩存保存部分NVM存儲系統中邏輯地址和物理地址的轉換表,用于在多核環(huán)境中提高查找NVM存儲系統物理地址的速度。
3 同異步融合的訪問請求管理策略
由于NVM存儲器件的特性,使得NVM存儲系統的讀寫性能存在很大差異,這給如何管理NVM存儲系統中的訪問請求帶來了很大困難。本文設計了同異步融合的訪問請求管理策略。
首先使用DRAM構建寫數據緩沖區(qū)、并用WBuffer表示,定義α表示判斷寫訪問請求的閾值,其處理訪問請求主要步驟的偽代碼如下。
此外使用LRU(Least Recently Used)策略管理寫數據緩沖區(qū),并使用一個獨立的線程定期將WBuffer中的數據寫入到NVM存儲系統中。
由此將NVM存儲系統的讀寫請求進行了分離,使用同步機制完成讀操作,能利用NVM存儲系統讀速度接近DRAM的特性。同樣使用同步機制完成少量數據的寫請求,避免使用寫緩存存在的兩次寫操作;對數據量較大的寫請求,則運用異步機制,使用DRAM構建寫數據緩存,利用相比NVM存儲器件寫速度更高的DRAM快速完成數據寫操作,從而提高NVM存儲系統的寫性能;同時使用異步寫機制還能增強NVM存儲系統處理寫操作的并行性,提高寫操作的吞吐率。
4 面向多核處理器的地址轉換緩存策略
處理器在訪問NVM存儲系統時,需要進行NVM存儲空間邏輯地址和物理地址的轉換。由于NVM存儲系統的讀寫速度已經接近于DRAM,使得NVM存儲系統中地址轉換所需時間開銷對其I/O性能的影響很大,特別是在使用多核處理器時,為了保證NVM存儲系統上數據的一致性,多個計算核心在訪問NVM存儲系統時需要進行加鎖,這嚴重影響了NVM存儲系統的I/O性能。NVM存儲系統空間私有映射為每個計算核心建立一個獨立的地址映射表,能降低不同計算核心訪問NVM存儲系統空間時的沖突,是當前提高NVM存儲系統地址轉換效率的有效方式,但會造成NVM存儲系統所對應邏輯地址空間的急劇膨脹,也使得多個計算核心之間無法共享地址轉換信息,從而影響了地址轉換的效率。
使用私有映射時,多核處理器中不同核心所對應NVM存儲系統的邏輯地址各不相同,但其與NVM存儲系統空間大小存在關聯;NVM存儲系統中同一物理地址所對應不同計算核心的邏輯地址之間互相可轉換,這為共享NVM存儲系統中地址轉換信息提供了可能。本文設計面向多核處理器的地址轉換緩存策略,利用NVM存儲系統的邏輯與物理地址轉換信息可共享特性,構建面向多核處理器的可共享地址轉換緩存。使用Nsize表示NVM存儲系統的存儲空間大小,Lbegin表示某個計算核心邏輯地址空間的起始地址,Laddress表示NVM存儲系統內部的邏輯地址,Paddress表示NVM存儲系統中內部的物理地址,Lid表示多核處理器中某個計算核心的標識,Tcache表示面向多核處理器的地址轉換緩存。
面向多核處理器的地址轉換緩存使用鍵值對形式保存Laddress和Paddress之間的對應,并使用LRU策略進行管理。在將地址轉換信息調入Tcache前,使用式(1)計算其邏輯地址logical_address所對應的Laddress:
使用面向多核處理器地址轉換緩存策略后,處理器訪問NVM存儲系統時地址轉換的主要過程如下所示。
使用面向多核處理器地址轉換緩存策略,能避免在進行私有映射后,多核處理器中不同計算核心之間無法共享NVM存儲系統邏輯地址的問題,通過共享邏輯地址和物理地址之間的轉換信息,實現多個計算核心之間在獲得物理地址信息時的共享:一方面避免每個計算核心均需處理物理地址相同的地址轉換;另一方面通過可共享的面向多核處理器地址轉換緩存進一步減少了訪問NVM存儲系統時多個計算核心之間的沖突,從而能有效提高NVM存儲系統處理訪問請求的并行性,提高I/O性能,縮短響應訪問請求的時間。相比TLB,本文所設計的面向多核處理器地址轉換緩存中地址轉換緩存鍵值對能被不同的計算核心所共享,在通過不同計算核心的簡單計算即可獲得對應的邏輯地址,從而避免TLB中多個計算核心無法共享緩存項的問題。
5 原型系統的實現
本文在64位的Linux平臺上構建支持高并發(fā)訪問NVM存儲系統的原型,實現同異步融合訪問請求管理策略和面向多核處理器地址轉換緩存策略,并使用存儲系統通用測試工具Fio和能模擬應用訪問特性的Filebench進行測試,并與現有NVM存儲系統進行比較。
當前沒有商用的NVM存儲設備,在文獻[21]所實現的虛擬NVM存儲設備PMBD基礎上實現CNVMS的原型。其中的PMBD采用缺省配置,并關閉DRAM上的數據緩存,同時設置cache為write through模式,并在每次寫操作后插入一個寫屏障指令,保證NVM存儲系統中數據的強一致性,同時額外增加85ns的讀延遲和500ns的寫延遲模擬NVM的讀寫性能;使用多核處理器中每個計算核心私有映射的方式實現PMBD中邏輯地址與物理地址的映射,并在讀寫PMBD時采用使用邏輯塊號直接讀寫裸設備的方式縮短I/O系統軟件棧。此外修改Linux內核,在內核地址尾部預留20GB的內核空間并掛載PMBD來模擬NVM存儲設備。
在此基礎上,修改PBMD的源代碼,增加同異步融合訪問請求管理模塊、寫緩存和地址轉換緩存構建CNVMS,設置α的值為4KB,實現訪問NVM存儲系統讀寫訪問請求的分類管理,利用寫緩存縮短較大寫操作的完成時間開銷,利用地址轉換緩存進一步壓縮I/O系統軟件棧的時間開銷,從而提高CNMVS的I/O性能和處理訪問請求的效率。
6 測試與分析
使用1臺服務器構建了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。首先使用文件系統性能的通用測試工具Fio進行測試,再使用能模擬不同應用訪問特性的通用測試工具Filebench進行測試,并將CNVMS的讀寫速度和IOPS與PMBD進行比較。
6.1 順序讀寫時的測試與分析
將Fio設置為直接覆蓋式讀寫方式,設置線程數為8,訪問塊大小為4KB,使用同步(sync)和異步(libaio)兩種引擎,異步讀寫時I/O隊列深度分別設置為1和32,讀寫文件數分別為5000、10000、20000和30000,讀寫文件的大小分別為1KB、4KB和256KB。
首先測試順序寫時的I/O性能,測試結果如圖2(a)所示。從中可以發(fā)現,CNVMS的順序寫速度始終高于相同情況下的PMBD。在同步順序寫時,CNVMS相比PMBD能提高2%左右的I/O性能;在異步順序寫時,CNVMS能提高11%~22%的寫性能。相比同步順序寫,異步順序寫能更好地發(fā)揮CNVMS的性能,這是因為同步寫時PMBD本身的I/O性能就較低,同步機制制約了CNVMS的完成寫操作的效率,影響了寫緩存作用的發(fā)揮,同時多個計算核心轉換地址時的沖突也很少。在異步模式下,順序寫4KB文件、I/O隊列深度為32時,CNVMS相比PMBD所提高的寫性能最高,達到了22%,這表明CNVMS相比PMBD能提高完成大量并發(fā)順序寫的速度,但相比I/O隊列深度為1時,CNVMS和PMBD在I/O隊列深度為32時的順序寫性能始終較低,這說明在處理順序寫任務時現有NVM存儲系統中并發(fā)性還有待提高。
使用相同的配置,測試PMBD和CNVMS的順序讀速度,結果如圖32(b)所示。從中可以發(fā)現,與順序寫的測試結果類似,CNVMS相比PMBD始終具有更高的順序讀速度。同步順序讀的速度,CNVMS相比PMBD能提高2%~7%;異步順序讀的速度,CNVMS能提高10%~17%。這表明CNVMS相比PMBD具有順序讀性能的優(yōu)勢。
使用相同的配置,測試PMBD和CNVMS的順序混合讀寫速度,讀寫混合比例是各50%,結果如圖42(c)所示。從中可以發(fā)現,其結果基本與順序寫或讀類似,但在使用異步模式時CNMVS相比PMBD所提高的I/O性能比例有所下降;而在使用同步模式時CNMVS相比PMBD所提高的I/O性能比例則有所提高。
6.2 隨機讀寫時的測試與分析
采用與6.1節(jié)中相同的配置,測試PMBD和CNVMS隨機寫性能,結果如圖53(a)所示。從中可以發(fā)現,CNVMS相比PMBD能有效地提高隨機寫性能。在使用異步隨機寫模式時,CNVMS相比PMBD提高了6%~17%;使用同步隨機寫模式時,CNVMS相比PMBD提高了1%~4%。相比順序寫性能的提高比例,隨機寫性能的提高略低,這與一般采用緩存機制所取得的效果一致。
采用相同的配置,測試PMBD和CNVMS隨機讀性能,結果如圖63(b)所示。從中可以發(fā)現,CNVMS相比PMBD能有效地提高隨機讀性能。在使用異步隨機讀模式時,CNVMS相比PMBD提高了5%~16%;使用同步隨機讀模式時,CNVMS相比PMBD提高了1%~18%。同樣相比順序讀性能的提高比例,隨機讀性能的提高略低。
使用相同的配置,測試PMBD和CNVMS的隨機混合讀寫速度,讀寫混合比例各50%,結果如圖73(c)所示。從中可以發(fā)現,其結果基本與隨機寫或讀類似,但在使用異步模式時CNMVS相比PMBD所提高的I/O性能比例有所下降;在使用同步模式時CNMVS相比PMBD所提高的I/O性能比例則有所提高,這也與順序混合讀寫模式時的測試結果趨勢類似。
6.3 使用應用負載時的測試與分析
應用Filebench來模擬應用對NVM存儲系統的訪問。首先使用Fileserver負載,模擬文件服務器中文件的共享、讀寫操作等情況,設置讀寫文件數為50000,目錄寬度為20,讀寫的線程數為50;同時為了更好地進行比較與分析,將文件的大小分別設置為1KB、2KB、4KB和128KB,所有測試結果均是測試三次的平均值而得,降低測試過程中可能存在的誤差,測試結果如圖84所示。從中可以發(fā)現,CNVMS的IOPS始終高于PMBD,提高了13%~15%,這是由于Fileserver負載中包含了較多的寫操作,從而使得CNVMS能較好地發(fā)揮寫緩存和地址轉換緩存的作用,有效提高處理訪問請求的速度。
再使用Filebench中的Webserver負載,用戶訪問Web服務器的情況;設置讀寫文件數為50000,目錄寬度為20,讀寫的線程數為100;同時為了更好地進行比較與分析,將文件的大小分別設置為1KB、2KB、4KB和128KB,所有測試結果均是測試三次的平均值而得,降低測試過程中可能存在的誤差,測試結果如圖95所示。從中可以發(fā)現,CNVMS相比PMBD同樣具有IOPS較高的優(yōu)勢,能提高9%~11%的IOPS,這表明CNVMS能利用寫緩存和地址轉換緩存有效提高存儲系統處理訪問請求的速度,但相比Fileserver負載所提高IOPS的比例有所下降,這是由于Webserver負載主要模擬的Web文件的讀操作,寫操作的比例較少,降低了CNVMS中寫緩存的作用。
7 結語
NVM存儲系統具有較高的讀寫性能,這使得現有面向低速外存設備設計的I/O系統軟件棧成為影響存儲系統的重要瓶頸。針對NVM存儲系統存在的讀寫速度不均衡、寫壽命受限等問題,本文設計了同異步融合的訪問請求管理策略,在不影響讀和少量寫請求性能的同時,使用DRAM構建寫緩存提高數據量較大寫請求的執(zhí)行速度;設計了面向多核處理器地址轉換緩存策略,減少多核處理器環(huán)境下不同計算核心訪問NVM存儲系統時地址轉換的時間開銷,提高NVM存儲系統的I/O性能。最后實現了支持高并發(fā)訪問NVM存儲系統(CNVMS)的原型,使用Fio和Filebench進行了隨機讀寫、順序讀寫、混合讀寫和實際應用負載的測試,相比PMBD能提高1%~22%的I/O性能和9%~15%的IOPS,驗證了算法的有效性。
當前在管理寫緩存和地址轉換緩存時,還是使用通用的LRU算法,下一步擬根據NVM存儲系統的特性,優(yōu)化寫緩存和地址轉換緩存的管理算法。
參考文獻 (References)
[1] 陳祥,肖儂,劉芳.新型非易失存儲I/O棧綜述[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.