岳 珊,于 炯,+,魯 亮,王躍飛,蒲勇霖
(1.新疆大學 軟件學院,新疆 烏魯木齊 830008;2.新疆大學 信息科學與工程學院,新疆 烏魯木齊 830046)
內存云(RAMCloud)在任何時候所有信息都存儲在動態隨機訪問存儲器(dynamic random access memory,DRAM)中,但隨著大數據時代的到來,基于DRAM器件的內存本身已面臨工藝尺寸縮小所帶來的系統穩定性、數據可靠性等問題[1]。同時DRAM的使用使得內存能耗問題變得尤為突出。
現階段針對內存云的研究大致可分為:①文件的存儲優化;②索引技術優化研究;③磁盤選擇策略;④數據遷移策略等方面。由于DRAM自身的缺陷,內存云很可能會使用DRAM以外的其它技術來進行數據備份[2]。
相變內存(phase-change memory,PCM)作為近年來出現的新型非易失性隨機存儲介質之一,憑借其工藝制程小、非易失性、非破壞性讀、讀完無須回寫、寫操作無需先擦除、存儲密度高等特性,逐漸成為大規模內存系統中頗具潛力的DRAM替代品[3]。PCM器件與DRAM器件相比存儲密度高,讀能耗、活動能耗等低,但DRAM器件與PCM器件相比速度更快,寫能耗更小且可進行無限次寫。
基于以上考慮本文構建DRAM和PCM同級混合內存云,通過固定系統能耗確定不同內存器件分配比,并使用數據讀寫傾向性算法對數據對象的讀寫傾向性進行預測,隨后構建二室模型,確定數據對象遷移和備份速率,從而保證混合內存云架構的穩定性和可靠性。
內存云架構中的協調器和存儲器相互協作保證了架構的持久性和一致性。每一個存儲服務器由兩個不同的組件構成:主服務器管理內存云對象,處理來自客戶端的讀寫請求。備份服務器使用本地磁盤或閃存存儲主服務器的備份,數據寫入備份服務器后并無需處理一般的讀寫請求,僅當主服務器失敗恢復或斷電后恢復數據時使用。
主服務器和備份服務器均由協調器統籌管理,協調器主要協調服務器集群和管理主服務器中數據的分配。需要特別說明協調器并不參與一般的讀寫問題,內存云的客戶端均維護了一個數據存放位置的本地緩存,從而可直接與主服務器連接快速得到反饋結果,僅僅在本地緩存丟失重要數據或者緩存落后的情況下客戶端才會連接協調器獲取最新映射情況,此種機制有效減少了協調器的負載并增加了協調器的可擴展性。
由于保存在內存云中的數據掉電易失,為了保證數據的可靠性,每一臺主服務器中的信息需要隨時備份到若干備份服務器的磁盤中,此種方法使得存儲器成本增加,且大幅度增加系統能耗[4-7]。
內存云的基本結構如圖1所示。
圖1 內存云基本結構
內存云使用DRAM和磁盤進行備份,每個對象的單個副本存儲在主服務器的DRAM中,且其它備份存放在備份服務器的磁盤中,每一個服務器既是主服務器又是備份服務器。為了利用全部的磁盤帶寬,至少兩份備份日志被批量異步地傳送至磁盤中。具體過程如圖2所示。
圖2 內存云備份過程
由于DRAM內存的誤碼率相對較高,外圍邏輯錯誤、對內存進行復雜寫入的軟件錯誤、與DRAM相關的軟硬件錯誤都可能導致DRAM發生損壞[8]。本混合存儲架構將內存器件DRAM和PCM按照4.847∶1的比例進行分配,具體分配比率計算將在下節進行詳細解釋證明,構成PCM與DRAM的同級混合內存云,如圖3所示。
圖3 混合內存云存儲架構
混合內存云架構同樣使用鍵-值存儲,保證低延遲的基礎上支持各類應用。將數據分為多個表,表中包含高達64 KB的可變長度密鑰用于唯一標識此表,高達1 MB的可變長度值和一個64位的版本號。
最大存儲數據對象不超過1 MB,數據對象可被分配到一個或多個表中,表可跨越集群中的一個或多個服務器,存儲在單個服務器上表的子集稱為tablet??蛻舳送ㄟ^協調器將表分配到一個或多個內存服務器中,每個表被64位唯一標識符命名(tableId),客戶端通過指定的
表1 客戶端管理混合內存云數據對象操作
由于PCM器件本身可對單比特和單字節的數據進行存儲[9,10],因此上級層面的數據分配、檢索等完全可以按照原內存云架構進行設計,但由于更換了內存器件,原有的內存云底層架構是發生了變化,且不同內存器件自身存在優缺點,因此需要結合其特點進行混合內存云架構的底層設計。
第一步需要確定混合內存云中不同內存器件的分配,由于PCM器件的寫能耗高,讀寫次數有限,考慮減少PCM寫次數和寫入數據量。為了保證混合內存云架構的高存儲性、耐久性和可靠性,將讀傾向性不高的數據最終全部存儲在DRAM中。
定義1 內存分配比模型。構建混合內存云實際上就是將部分DRAM器件更換成為PCM器件,從而來補足原系統存在的不足,但由于兩種器件本身存在原生缺陷,通過構建系統存儲效用最大化模型確定最優分配比。
根據表2可得到兩種器件在不同狀態下的能耗,本文在保證總能耗不變的情況下構造存儲最優方案從而確定內存器件的分配比。
表2 DRAM和PCM能耗比較
假設DRAM內存的單位總能耗為ED,PCM內存單位總能耗為EP,本混合內存云總能耗為E。當使用數量分別為x1,x2數量的DRAM和PCM器件時,為系統帶來的效用是可度量的,且它是關于x1和x2的函數,記作u(x1,x2),可構造出兩個函數
ED·x1+EP·x2=E
(1)
u(x1,x2)
(2)
要想求出最大化的效用,就是在式(1)條件下確定x1和x2的使得效用函數最大。
有學者已證明出效用函數具有單調減、下凸、互不相交的性質,從幾何意義上可快速求出效用函數的切線斜率,從而快速求出效用函數,引入拉格朗日乘子構造函數
L(x1,x2,λ)=u(x1,x2)+λ(E-ED×x1-EP×x2)
(3)
(4)
構造效用函數:已知本架構中增加偏愛參數P1和P2,兩種器件的使用是成反比的,因此效用函數可表示為
(5)
算法:內存分配算法
輸入:DRAM和PCM內存器件單位總能耗和不偏愛參數。
輸出:DRAM和PCM內存分配比率。
(1)x1←DRAM.capacity;/*DRAM的數量為x1*/
(2)x2←PCM.capacity;/*PCM的數量為x2*/
(3)ifED=DRAM.energy,EP=PCM.energy;
(4)thenE=ED·x1 +EP·x2;/*系統總能耗為E*/
(5)endif;
(6)u(x1,x2)←(DRAM(x1),PCM(x2));/*構造數量關系函數*/
(7)L(x1,x2,λ)←u(x1,x2)+λ(E-EDx1-EPx2);/*構造數學關系效用函數*/
(8)if?L/?x1=0,?L/?x2=0
(10)endif;
(12)x1/x2=P1EP/P2ED;/*確定不同存儲器件的比率關系*/
定義2 數據預分類模型。使用Seok等提出的讀寫傾向性方法來計算數據對象讀寫傾向性[11]。計算數據對象的權值,數據對象權值的大小代表其讀寫傾向性,通過式(6)進行權值計算
Trw←αTprew+(1-α)RT
(6)
其中,α∈[0,1],RT(read or write)代表數據對象訪問類型,RT為1表示數據對象的請求類型是寫,RT為-1表示數據對象的請求類型是讀。通過權值計算篩選出讀傾向性高的數據對象存入PCM中,將其它所有數據全部存入DRAM中。數據對象的預分類和預存儲基本算法如下:
算法:數據預分類算法
輸入:數據文件{F1,F2,…,Fn}。
輸出:數據存儲入不同內存介質情況。
(1){F1,F2,… ,Fn}←getUpDatafile();/*獲得
用戶上傳數據文件*/
(2)n←Datafiles.length();/*數據文件個數*/
(3)StackColumufile←I/O[n];/*數據文件通過I/O讀寫內存*/
(4)fori=0 ton-1 do
(5)DatafileInfo={F1,F2… ,Fn}.get(file[i]);/*獲得數據文件i的信息*/
(6)Trw←αTprew+(1-α)RT; /*確定數據文件讀傾向性閾值Trw*/
(7)ifTrw←DatafileInfo[i];/*如果數據文件i的權值大于閾值*/
(8)PCM←DatafileInfo[i];/*數據文件存儲于PCM中*/
(9)else
(10)DRAM←DatafileInfo[i]; /*數據文件存儲于DRAM中*/
(11)end if
(12)end for
定義3 數據對象遷移和備份速率。由于本混合內存架構中的內存器件有兩種,借鑒藥物動力學研究動態過程的房室模型,構建二室模型,用于管理數據的遷移和備份速率,建立關于數據對象的微分方程,描述數據對象在不同內存器件的動態特性,現就本模型做如下假設:
(1)DRAM器件和PCM器件的內存大小是固定不變的;
(2)數據對象從PCM遷移到DRAM的速率與PCM中的數據對象個數成正比;
(3)遷移和備份的數據對象個數與內存中進入的數據對象成正比;
(4)不同器件中的數據對象大小基本相同;
(5)數據對象僅是單向的從PCM遷移到DRAM中,并不會從DRAM中遷移至PCM。
根據上述假設可確定本混合內存云的二室模型如圖4所示。
圖4 數據對象遷移和備份模型
圖中:
VD表示DRAM的容量,VP表示PCM的容量;
BDD和MPD分別表示數據對象遷移和備份的速率;
STD(t)和STP(t)分別表示t時刻數據對象進入DRAM和PCM內存的速率;
SD(t)和DD(t)分別表示t時刻DRAM中的數據對象大小和數據對象個數,同時可知SP(t)和DP(t)分別表示t時刻PCM中的數據對象大小和數據對象個數。
可得到公式
(7)
已知Si(t)與Di(t)和Vi之間的關系式為
Di(t)=Vi/Si(t)
(8)
將式(8)帶入式(7)可得:
可計算出
MPD=(DP(t)-STP(t))×SP/VP
(9)
BDD=(DP(t)-DD(t))×SD/VD
(10)
前期已計算出PCM和DRAM內存器件的分配比,根據此二室模型的計算就可最終確定混合內存云中數據對象的遷移速率和備份速率。
定義4 數據對象淘汰模型。當混合內存云內中可空間低于閾值時,系統自動刪除混合內存云中被認為將來最長時間不再使用的數據。
使用成本效益分析法確定數據對象的重要性,首先確定數據對象(S)的大小、距離最后一次被訪問所經歷的時間(ΔT)、此數據被訪問的次數(N),通過使用式(11)來計算數據對象的有用性
USErate=(S×ΔT)/N
(11)
參數說明:
(1)數據大小S:定義請參見文獻[12]。
(2)最后一次訪問距離現在訪問的時間ΔT:數據距離上一次被訪問的時間越小,說明該數據的重要性越強。
(3)數據被訪問次數N:數據被訪問的次數越少說明數據的重要性越差,就不宜放在高性能的內存中。
通過數據對象淘汰模型,可將長期不防問、總訪問次數較少的數據從內存中刪除,從而提高混合內存云的存儲效率。
為了驗證混合內存云架構較傳統內存云架構的優點,設置6組實驗數據集,每組數據集包括5個數據塊對象,且這5個數據塊對象的大小基本相同,實驗數據集按照從小到大的順序排序。表3為6組實驗數據集。
表3 實驗數據集
由于PCM技術研究還處于起步階段,其應用場景和價值尚未完全開發實現;且市面上的主流存儲器仍然不是PCM,適合于當前存儲環境的大容量、高性能的PAM物理芯片稀貴,這些都導致當前系統級的研究幾乎全部都是基于軟件模擬器進行的[13]。實驗使用PCRAMsim模擬器進行混合內存云集群模擬實驗。創建13個節點,其中一個節點為協調器,其余12個節點為主服務器,9個節點使用大小為16 GB的DRAM內存器件,3個節點使用大小為8 GB的PCM內存器件。備份服務器緩沖區大小為64 MB。主服務器內段默認8 MB,混合內存云中備份數量為3,設定某一DRAM器件同時也作為其它主服務器的備份服務器。
實驗1:斷電恢復時間對比為模擬混合內存云中的數據斷電快速恢復,在本實驗中將16 GB的DRAM中的1280個段作為數據存儲和訪問,空間占據10 GB;768個段作為服務器的備份空間,空間占據6 GB。8 GB的PCM中1024個段全部用于數據存儲和訪問。
如圖5所示為6組數據對象恢復階段協調器的時間概況,原內存云恢復過程中協調器節點首先等待從磁盤中返回的數據,隨后將數據按原日志的順序重新拼接,兩部分的總時間加上不確定因素時間即為恢復數據總時間?;旌蟽却嬖戚^原內存云的不同在于增加了部分非易失性存儲介質,讀傾向性高的數據大部分存放于PCM器件中,斷電恢復器件不再需要從備份磁盤中再掃描數據,可直接將數據反饋給協調器,從而降低了斷電恢復時間。
圖5 斷電恢復時間對比
從圖5中不難發現,隨著實驗數據對象的不斷增大,混合內存云架構中數據對象恢復時間減少效果也越來越明顯,在數據對象為850 KB時效果最佳,當數據對象較少和較多的存儲在PCM器件中時,此內存器件并不能最優地發揮其性能優勢,因此在數據讀寫傾向性計算過程中閾值的設定需要特別注意。
實驗2:存取時間對比
同樣使用實驗1中不同內存器件的大小設定,將6組實驗對象經過5次實驗后取得平均值,從圖6可以看出編號為1-6的數據集平均每兆在原內存云架構中的寫入時間分別為18.2 μs、18 μs、18.1 μs、17.8 μs、18.2 μs、17.9 μs,在混合內存云架構中的寫入時間分別為19 μs、19.1 μs、19.1 μs、18.7 μs、18.8 μs、19.2 μs。原內存云架構中讀取時間分別為6 μs、7 μs、6.5 μs、7 μs、6.9 μs、7.1 μs,混合內存云架構中讀取時間分別為5 μs、6.5 μs、6 μs、6.1 μs、6 μs、6.5 μs。
圖6 不同內存云架構讀寫時間對比
由圖6可直觀地看出混合內存云架構每兆數據的寫入時間較原內存云寫入時間增加了大約0.95 μs,但比較讀取數據時間,混合內存云的讀取時間每兆可大約減少0.73 μs。
本文研究混合內存云架構的數據對象管理策略,將傳統內存云中的主存儲器中的部分DRAM器件替換成非易失性內存器件PCM,通過計算內存分配比率和存儲、備份速率確?;旌蟽却嬖萍軜嫷姆€定性和可靠性的同時增加了內存云的存儲能力,減少了斷電恢復時間。通過對6個數據集的模擬實驗,根據斷電恢復和數據對象讀寫時間3個標準進行驗證,本文的算法和模型可以有效提高內存云存儲容量,有效減少了內存云斷電恢復時間。
下一步工作將會把著眼點和著力點放在混合內存云架構降低能耗和減少PCM內存器件磨損均衡上。本文提出的分配比、速率能夠確?;旌蟽却嬖萍軜嫷姆€定性,混合內存云架構的工作模型還需要進一步的研究和探討,內存利用率仍可以進行改善。
[1]MAO Wei,LIU Jingning,TONG Wei,et al.A review of storage technology research based on phase change memory[J].Chinese Journal of Computers,2015,38(5):944-960(in Chinese).[冒偉,劉景寧,童薇,等.基于相變存儲器的存儲技術研究綜述[J].計算機學報,2015,38(5):944-960.]
[2]RUMBLE S.Memory and object management in RAMCloud[D].Stanford:Stanford University,2014:17-50.
[3]PAN Wei,LI Zhanhuai,DU Hongtao,et al.State-of-the-art survey of transaction processing in non-volatile memory environments[J].Journal of Software,2017,28(1):59-83(in Chinese).[潘巍,李戰懷,杜洪濤,等.新型非易失存儲環境下事物型數據管理技術研究[J].軟件學報,2017,28(1):59-83.]
[4]RUMBLE SM,KEJRIWAL A,OUSTERHOUT J.Log-structured memory for DRAM-based storage[C]//Procee-dings of the 12th USENIX Conference on File and Storage Technologies.Berkeley:USENIX Association,2014:1-6.
[5]YING Changtian,YU Jiong,LU Liang,et al.Optimal storing strategy based on small files in RAMCloud[J].Journal of Computer Applications,2014,34(11):3104-3108(in Chinese).[英昌甜,于炯,魯亮,等.基于小文件的內存云存儲優化策略[J].計算機應用,2014,34(11):3014-3108.]
[6]STUTSMAN R.Durability and crash recovery in distributed in-memory storage systems[D].Stanford:Stanford University,2013:49-53.
[7]LIU Jiankuang,YU Jiong,YING Changtian,et al.Bandwidth load balancing algorithm in RAMCloud[J].Computer Engineering and Design,2015,36(11):2886-2891(in Chinese).[劉建礦,于炯,英昌甜,等.基于內存云架構的帶寬負載均衡算法[J].計算機工程與設計,2015,36(11):2886-2891.]
[8]Ousterhout J,Gopalan A,Gupta A,et al.The RAMCloud storage system[J].ACM Transaction on Computer Systems,2015,33(3):7.
[9]Mladenov R.An efficient non-volatile main memory using phase change memory[C]//Proceedings of the 13th International Conference on Computer Systems and Technologies.New York:ACM,2012: 45-51.
[10]WU Zhangling,JIN Peiquan,YUE Lihua,et al.A survey on PCM-based big data storage and management[J].Journal of Computer Research and Development,2015,52(2):343-361(in Chinese).[吳章玲,金培權,岳麗華,等.基于PCM的大數據存儲與管理研究綜述[J].計算機研究與發展,2015,52(2):343-361.]
[11]Seok H,Park Y,Park KH.Migration based page caching algorithm for a hybrid main memory of DRAM and PRAM[C]//Proc of the 26th Annual ACM Symp on Applied Computing.New York:ACM,2011:595-599.
[12]GUO Gang,YU Jiong,LU Liang,et al.Data migration model based on RAMCloud hierarchical storage architecture[J].Journal of Computer Applications,2015,35(12):3392-3397(in Chinese).[郭剛,于炯,魯亮,等.內存云分級存儲架構下的數據遷移模型[J].計算機應用,2015,35(12):3392-3397.]
[13]Dong X,Jouppi NP,Xie Y.PCRAMsim:System-level performance,energy,and area modeling for phase-change RAM[C]//IEEE/ACM International Conference on Computer-Aided Design Digest of Technical Papers.Piscataway:IEEE,2009:269-275.