APP下载

混合内存云架构的数据对象管理策略

2018-03-16王跃飞蒲勇霖

计算机工程与设计 2018年2期
关键词:备份器件内存

岳 珊,于 炯,+,鲁 亮,王跃飞,蒲勇霖

(1.新疆大学 软件学院,新疆 乌鲁木齐 830008;2.新疆大学 信息科学与工程学院,新疆 乌鲁木齐 830046)

0 引 言

内存云(RAMCloud)在任何时候所有信息都存储在动态随机访问存储器(dynamic random access memory,DRAM)中,但随着大数据时代的到来,基于DRAM器件的内存本身已面临工艺尺寸缩小所带来的系统稳定性、数据可靠性等问题[1]。同时DRAM的使用使得内存能耗问题变得尤为突出。

现阶段针对内存云的研究大致可分为:①文件的存储优化;②索引技术优化研究;③磁盘选择策略;④数据迁移策略等方面。由于DRAM自身的缺陷,内存云很可能会使用DRAM以外的其它技术来进行数据备份[2]。

相变内存(phase-change memory,PCM)作为近年来出现的新型非易失性随机存储介质之一,凭借其工艺制程小、非易失性、非破坏性读、读完无须回写、写操作无需先擦除、存储密度高等特性,逐渐成为大规模内存系统中颇具潜力的DRAM替代品[3]。PCM器件与DRAM器件相比存储密度高,读能耗、活动能耗等低,但DRAM器件与PCM器件相比速度更快,写能耗更小且可进行无限次写。

基于以上考虑本文构建DRAM和PCM同级混合内存云,通过固定系统能耗确定不同内存器件分配比,并使用数据读写倾向性算法对数据对象的读写倾向性进行预测,随后构建二室模型,确定数据对象迁移和备份速率,从而保证混合内存云架构的稳定性和可靠性。

1 内存云系统架构研究

内存云架构中的协调器和存储器相互协作保证了架构的持久性和一致性。每一个存储服务器由两个不同的组件构成:主服务器管理内存云对象,处理来自客户端的读写请求。备份服务器使用本地磁盘或闪存存储主服务器的备份,数据写入备份服务器后并无需处理一般的读写请求,仅当主服务器失败恢复或断电后恢复数据时使用。

主服务器和备份服务器均由协调器统筹管理,协调器主要协调服务器集群和管理主服务器中数据的分配。需要特别说明协调器并不参与一般的读写问题,内存云的客户端均维护了一个数据存放位置的本地缓存,从而可直接与主服务器连接快速得到反馈结果,仅仅在本地缓存丢失重要数据或者缓存落后的情况下客户端才会连接协调器获取最新映射情况,此种机制有效减少了协调器的负载并增加了协调器的可扩展性。

由于保存在内存云中的数据掉电易失,为了保证数据的可靠性,每一台主服务器中的信息需要随时备份到若干备份服务器的磁盘中,此种方法使得存储器成本增加,且大幅度增加系统能耗[4-7]。

内存云的基本结构如图1所示。

图1 内存云基本结构

内存云使用DRAM和磁盘进行备份,每个对象的单个副本存储在主服务器的DRAM中,且其它备份存放在备份服务器的磁盘中,每一个服务器既是主服务器又是备份服务器。为了利用全部的磁盘带宽,至少两份备份日志被批量异步地传送至磁盘中。具体过程如图2所示。

图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为客户端数据对象的所有操作管理。

表1 客户端管理混合内存云数据对象操作

3 混合内存云数据对象管理策略

由于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:数据被访问的次数越少说明数据的重要性越差,就不宜放在高性能的内存中。

通过数据对象淘汰模型,可将长期不防问、总访问次数较少的数据从内存中删除,从而提高混合内存云的存储效率。

4 实验评估与分析

4.1 实验数据集

为了验证混合内存云架构较传统内存云架构的优点,设置6组实验数据集,每组数据集包括5个数据块对象,且这5个数据块对象的大小基本相同,实验数据集按照从小到大的顺序排序。表3为6组实验数据集。

表3 实验数据集

4.2 实验环境

由于PCM技术研究还处于起步阶段,其应用场景和价值尚未完全开发实现;且市面上的主流存储器仍然不是PCM,适合于当前存储环境的大容量、高性能的PAM物理芯片稀贵,这些都导致当前系统级的研究几乎全部都是基于软件模拟器进行的[13]。实验使用PCRAMsim模拟器进行混合内存云集群模拟实验。创建13个节点,其中一个节点为协调器,其余12个节点为主服务器,9个节点使用大小为16 GB的DRAM内存器件,3个节点使用大小为8 GB的PCM内存器件。备份服务器缓冲区大小为64 MB。主服务器内段默认8 MB,混合内存云中备份数量为3,设定某一DRAM器件同时也作为其它主服务器的备份服务器。

4.3 结果分析

实验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。

5 结束语

本文研究混合内存云架构的数据对象管理策略,将传统内存云中的主存储器中的部分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.

猜你喜欢

备份器件内存
VSAT卫星通信备份技术研究
创建vSphere 备份任务
笔记本内存已经在涨价了,但幅度不大,升级扩容无须等待
“春夏秋冬”的内存
旧瓶装新酒天宫二号从备份变实验室
旋涂-蒸镀工艺制备红光量子点器件
内存搭配DDR4、DDR3L还是DDR3?
基于 OLED 显示单元的红外上转换器件研究进展
一种加载集总器件的可调三维周期结构
高分辨率遥感相机CCD器件精密热控制