一种软硬协同动态负载存储方法与流程

文档序号:16133672发布日期:2018-12-01 00:38阅读:183来源:国知局

本发明涉及一种动态负载的数据存储方法(dssh),特别是涉及一种软硬协同动态负载存储方法。

背景技术

随着互联网的普及和飞速发展,数据总量呈几何级数增长趋势,对数据进行高效率的存储、管理和使用已经成为各行各业关注的重点,对于存储系统的各方面的要求都空前提高。随着存储技术的发展,信息存储系统在高可用性、高性能、可扩展性、低成本等方面得到了显著的提高。

随着数据的爆炸性增长,存储设备的成本急剧增加,对数据的安全性要求也越来越高,如何高效益地对数据进行存储、管理和使用成为企业日益关注的问题,传统上的raid磁盘阵列存储数据面临新的挑战。

对于动态负载存储系统,李元章等人(李元章,孙志卓,马忠梅,等.s-raid5:一种适用于顺序数据访问的节能磁盘阵列[j].计算机学报,2013,36(6):1290-1302.)提出了将部分磁盘打开的s-raid5算法。孙志卓等人(sunz,zhangq,liy,etal.dppdl:adynamicpartial-paralleldatalayoutforgreenvideosurveillancestorage[j].ieeetransactionsoncircuits&systemsforvideotechnology,2016,pp(99):1-1.)提出了适用于监控系统动态负载的dppdl算法,该算法根据负载实时调整磁盘开启的并行数量。但该算法在选取条带的时候没有考虑到尽量使用已经开启的磁盘,并且该算法全部使用传统raid架构,而传统raid架构中异或计算将会消耗大量的cpu资源。



技术实现要素:

本发明的目的是根据传统的软件raid存储架构提出了一种软硬协同动态负载存储方法。该方法采用一种新型磁盘布局方式并结合硬件通过软硬件结合方式进行动态负责存储,更合理的使用已经打开的磁盘,减少磁盘转换带来的额外能耗,将地址计算部分用软件算法实现,异或计算部分用硬件实现,降低数据存储时的磁盘能耗和cpu资源,提升整个raid存储架构的性能。

本发明是通过以下技术方案实现的:

一种软硬协同动态负载存储方法,该方法的步骤是:

第一步、底层磁盘布局,计算地址空间:

1-1假设存储系统中有m个磁盘,其中有1个校验盘,m-1个数据盘,根据磁盘空间的使用情况构建冷热树;

所述冷热树至少由三层构成,第一层null为提供树结构的访问入口的空节点;第二层记录相应条带空闲状态的数据磁盘数量,具有多种节点,该层中节点种类的多少,与每个条带中空闲状态的数据磁盘个数的种类一致:第三层记录第二层每个节点所对应的地址空间及相应空闲状态的磁盘序号;

1-2已知当前已打开数据磁盘数、请求数据磁盘数、每个数据磁盘的空闲地址数、全部数据磁盘的空闲地址数,判断当前负载需要打开的数据磁盘数在冷热树第二层节点中是否存在相应的数字,如果存在则采用选择条带方式选择要使用的条带;否则跳转到步骤1-3;

所述选择条带的具体过程是:计算已打开的数据磁盘的冷盘优先级,计算完冷盘优先级后将满足情况的条带从头遍历,如果遇到冷盘优先级组合为100,则直接选择该条带,否则等全部计算完后选择优先级最高的条带;

1-3采用拆分条带方式拆分要使用的条带,拆分最大数据磁盘数的条带,得到全部数据磁盘的梯度优先级数,先把打开的数据磁盘全部选中,再把未打开的数据磁盘按磁盘梯度优先级数从高到低选择,直到满足此时需要打开的数据磁盘数量;

1-4如果冷热树中没有数据磁盘数为m-1的条带,则依次删除最原始存入的数据,回收数据磁盘空间;

第二步、搭建硬件架构,将磁盘矩阵与主机连接,主机再与fpga通过pcie总线进行双向通信,将第一步的底层布局方式嵌入在主机内,选择出需要打开的数据磁盘,然后采用fpga进行异或计算,将需要进行异或计算的数据通过主机传给fpga,计算完成后再由fpga传回主机,这样就完成负载动态存储的全过程。

本发明的有益效果是:

1)降低整个磁盘阵列的能耗。由于采用动态选择条带开启磁盘的方式,每次都选择最合适的数据磁盘,显著降低整个系统的能耗。

2)降低存储系统的冷却成本。本发明能够有效地降低存储设备的能耗,由此产生的热量也相应的降低,进而降低存储系统的冷却成本。采用这种动态负载开启数据磁盘的方法可以降低能耗和冷却成本。

3)降低磁盘的故障率。因能耗降低,磁盘产生的热量也相应地减少,因此,带来磁盘温度的有效降低,使磁盘故障率降低,延长了磁盘的使用寿命。

4)节省cpu资源,由于将异或计算部分转移到fpga上进行计算,可以大大减少cpu的使用率,节省cpu资源。

因此,本发明在数据磁盘布局中采用冷热树对磁盘条带进行记录,动态地分配条带,在满足数据传输带宽要求下,实现节能的目的,并且将原本采用cpu进行的异或计算部分采用fpga硬件算法实现,节省了cpu资源,能够有效提高存储系统的性能,非常适用于负载动态变化的大型存储系统。

附图说明

图1为不组成条带,磁盘数据存储示意图。

图2为组成条带,raid5磁盘数据存储示意图。

图3为磁盘为空时冷热树示意图。

图4为存有3负载数据后冷热树的示意图。

图5为本发明存储系统的架构图。

图6为负载变化为3,5,4时冷热树状态变化图。

图7为实施例中传输速率对比图。

图8为实施例中cpu利用率对比图。

图9为存储系统负载变化图。

图10为dssh和sraid5算法能耗对比图。

图11为dppdl和sraid5算法能耗对比图。

具体实施方式

下面结合实施例及附图进一步解释本发明,但并不以此作为对本申请保护范围的限定。相关概念介绍:

(1)条带:条带这一概念是伴随着raid技术一同提出的。条带技术是自动的将写入磁盘的连续数据分成很多小部分并把它们分别存储到不同数据磁盘上去。

比如假设有5个磁盘,如果不组成条带,只是顺序写入数据,则磁盘数据存储如图1所示。如果组成条带化(以raid5为例),则数据存储如图2所示。图1和图2中0,1,2,3…,39表示顺序写入的地址。如果不使用raid技术,如图1,则每个磁盘顺序存储,每次只有一个磁盘处于开启状态,当数据量大的时候会产生磁盘存储瓶颈。在raid5中,当有数据存储请求来临的时候所有磁盘均处于开启状态,并且为了保证磁盘存储数据正确,每个bank中选择一个磁盘作为校验盘,对同一条带磁盘进行异或计算。

(2)冷热树:冷热树是一种树形结构,用于管理在raid5条带基础上的磁盘空间。该树的目的是为了选择条带的时候寻找满足热盘(已经打开的数据磁盘),又满足冷盘(地址空间较少使用的数据磁盘)的条带。

(3)选择条带(cs)是指冷热树中有需要的条带,但是为了满足冷盘(地址空间较少使用的数据磁盘)优先的需求,计算已打开的数据磁盘(热盘)的冷盘优先级。选择冷盘优先级组合最高的条带,如果遇到最高优先级的条带就可以直接跳出。该算法适用于请求数据磁盘负载由大变小时冷热树中有需要的条带且条带数量大于1的情况。

(4)请求数据磁盘数:指当前存储系统为满足系统的存储需求而打开数据磁盘的数量。

(5)冷盘优先级:有的数据磁盘地址空间较少使用,则说明其冷盘优先级较高。地址空间使用量相同的数据磁盘说明其具有同一冷盘优先级。

(6)拆分条带(ss)是从拥有最大数据磁盘数的条带中拆分出需要的条带。

本发明软硬协同动态负载存储(dssh)方法(简称方法)的步骤是:

第一步、底层磁盘布局,计算地址空间:

1-2假设存储系统中有m个磁盘,其中有1个校验盘,m-1个数据盘,根据磁盘空间的使用情况构建冷热树;

所述冷热树至少有三层构成,第一层null为提供树结构的访问入口的空节点;第二层记录相应条带空闲状态的数据磁盘数量,具有多种节点,该层中节点种类的多少,与每个条带中空闲状态的数据磁盘个数的种类一致:第三层记录第二层每个节点所对应的地址空间及相应空闲状态的磁盘序号;

1-2已知当前已打开数据磁盘数为e、请求数据磁盘数为f、每个数据磁盘的空闲地址数、全部数据磁盘的空闲地址数,判断当前负载需要打开的数据磁盘数在冷热树第二层节点中是否存在相应的数字,如果存在则采用选择条带(简称cs)方式选择要使用的条带;否则跳转到步骤1-3;

所述选择条带的具体过程是:计算已打开的数据磁盘的冷盘优先级,计算完冷盘优先级后将满足情况的条带从头遍历,如果遇到冷盘优先级组合为100,则直接选择该条带,否则等全部计算完后选择优先级最高的条带;

首先用100除以请求数据磁盘数计算出平均优先级,如公式(1),然后根据式(2)计算出每个数据磁盘的优先级粒度,为了将来计算梯度优先级做准备;将有相同剩余地址空间的数据磁盘(剩余地址空间即为空闲地址空间)集合起来,分成若干组,按不同组的剩余地址空间不同进行从高到低排序,剩余地址空间最多的集合为第一梯度优先级数,剩余地址空间排名第n的集合称为第n梯度优先级数,此时第n梯度优先级数为已知值,判断请求数据磁盘数是否不大于第一梯度优先级数,若请求数据磁盘数不大于第一梯度优先级数,则按照公式(3)计算各梯度优先级;若请求数据磁盘数大于第一梯度优先级数,则令请求数据磁盘数等于各梯度优先级数的加和,按照公式(4)计算各梯度优先级;

平均优先级=100/请求数据磁盘数f(1)。

优先级粒度=(该数据磁盘的空闲地址/全部数据磁盘的空闲地址)*平均优先级(2)。

第一梯度优先级=平均优先级

第二梯度优先级=平均优先级-第二梯度优先级粒度(3),

第一梯度优先级=平均优先级+第一梯度优先级粒度

...

第n-1梯度优先级=平均优先级+第n-1梯度优先级粒度

第n梯度优先级=(100-(第一梯度总优先级+...+第n梯度总优先级))

/第n梯度优先级数

第n+1梯度优先级=第n梯度优先级-第n-1梯度优先级粒度

第n+2梯度优先级=第n+1梯度优先级-第n+2梯度优先级粒度

...(4)。

cs算法的具体过程示例:假设考虑有100个数据磁盘,请求负载需要45个数据磁盘(即请求数据磁盘数f=45),已经打开数据磁盘数为67个,第一梯度优先级数有12个数据磁盘(a0-a11),这些盘空闲地址数为9;第二梯度优先级数有13个盘(b0-b12),这些盘空闲地址数为7;第三梯度优先级数有22个盘(c0-c21),这些盘空闲地址数为6;第四梯度优先级数有20个盘(d0-d19),这些盘空闲地址数为5,数据磁盘总空闲地址数:431。由于请求数据磁盘数45>第一梯度优先级数12,则请求数据磁盘数=12+13+20=45

平均优先级为:100/45=2.22

第一梯度优先级:2.22+(9/431)*2.22=2.27

第二梯度优先级:2.22+(7/431)*2.22=2.26

第三梯度优先级:(100-2.27*12-2.26*13)/20=2.169

第四梯度优先级:2.169-(5/431)*2.22=2.14

优先级梯度分别为{a0-a11(2.27),b0-b12(2.26),c0-c21(2.169),d0-d19(2.14)}。

1-3采用拆分条带(简称ss)方式拆分要使用的条带,拆分最大数据磁盘数的条带,得到全部数据磁盘的梯度优先级数,先把打开的数据磁盘全部选中,再把未打开的数据磁盘按磁盘梯度优先级数从高到低选择。ss算法选择数据磁盘只需要按照磁盘梯度优先级数从第一梯度优先级数开始依次选择,直到满足此时需要打开的数据磁盘数量。

1-4如果冷热树中没有数据磁盘数为m-1的条带(最大数据磁盘数条带),则依次删除最原始存入的数据,回收数据磁盘空间。

第二步、搭建硬件架构,将磁盘矩阵与主机连接,主机再与fpga通过pcie总线进行双向通信,将第一步的底层布局方式嵌入在主机内,选择出需要打开的数据磁盘,然后采用fpga进行异或计算,将需要进行异或计算的数据通过主机传给fpga,计算完成后再由fpga传回主机,这样就完成负载动态存储的全过程。

图1为不组成条带,磁盘数据存储示意图。图中有5个磁盘,分别是disk1,disk2,disk3,disk4,disk5。这5个磁盘都是数据磁盘,且不组成条带,只是将数据依次顺序写入每个磁盘中,则数据存储地址按1,2,3……依次排序。

图2为组成条带,raid5磁盘数据存储示意图。图中有6个磁盘,分别是disk1,disk2,disk3,disk4,disk5,disk6。将数据存储地址按0,1,2,3……依次排序,但存储地址在每个数据磁盘中地址并不连续。图中条带0的地址为0,1,2,3,4,条带1的地址为5,6,7,8,9,~共有8个条带。但disk1的地址为0,5,10,15……,将4个条带组成一个bank,条带0~3为bank0,条带4~7为bank1。bank发生变化时,校验盘也发生变化,在同一个bank中只有一个磁盘为校验盘,其余为数据磁盘。图中bank0的校验盘为disk6,bank1的校验盘为disk5;当再有多个条带时,则bank2的校验盘变为disk4,以此类推。

图3为磁盘系统为空时冷热树示意图。冷热树为三层结构:第一层null是一个空节点,用来提供树结构的访问入口;第二层记录条带大小(相应条带空闲状态的数据磁盘数量,该层中节点种类的多少,与每个条带中空闲状态的数据磁盘个数的种类一致),图中的数字5表示存在5个数据磁盘在某地址均为空闲的状态,在该地址可以5个数据磁盘同时进行读写操作。例如图中5个数据磁盘在0地址处均可进行写操作;第三层记录相应条带空闲状态的数据磁盘的始末地址,并记录具体哪个数据磁盘为空闲状态,图中addr:0-end表示数据磁盘数量为5的条带的地址是从0地址到末尾地址。disks:all表示组成该条带的数据磁盘是由所有数据磁盘组成的。

图4为存有3负载数据后冷热树的示意图。假设一开始冷热树状态是数据磁盘空间为空的图3,这时有3负载的数据需要存入,并且最终选用0地址的d0,d1,d2三个数据磁盘存储数据。此时将冷热树第二层的5节点的地址空间从0-end改为1-end,并且因为5-3=2,所以冷热树第二层新增节点2,0地址的空闲状态的数据磁盘的数量为2,并且地址空间记为0-0,disks为3,4,表示此时数据磁盘为空闲状态的磁盘为d3和d4,形成图4。

图5为本发明存储系统的架构图。传统的raid架构中raid模块的磁盘布局部分和磁盘数据异或计算部分全部由软件算法实现。本发明存储系统将磁盘布局部分用软件算法实现,数据磁盘的异或计算部分用fpga的硬件实现。m个磁盘形成磁盘矩阵均插接在pc机上,在pc机内部加载本申请中的底层磁盘布局方式,pc机通过pcie总线与fpga进行数据的双向通信,fpga对数据磁盘进行异或计算。

图6为负载变化为3,5,4时冷热树状态变化图。假设原来有3个数据磁盘(d0、d1、d2)在0地址存有数据,后来请求负载从需要3个数据磁盘同时开启,5个数据磁盘同时开启,4个数据磁盘同时开启,此时冷热树和磁盘空间变化如图6所示。

请求负载3表示此时需要有3个数据磁盘同时打开才能满足当前时间存储数据的需求。冷盘优先级:{3,4},{0,1,2}表示此时数据磁盘d3和数据磁盘d4优先级相同且处于第一梯度优先级数,数据磁盘d0、数据磁盘d1、数据磁盘d2优先级相同并且处于第二梯度优先级数。图中ss算法表示此时采用ss算法拆分条带。

由于原来有3个数据磁盘在0地址存有数据,所以d0、d1、d2磁盘和d5磁盘是处于开启状态的。这时候有请求负载为需要3个数据磁盘同时打开,由于冷热树中第二层节点只有2和5,所以采用ss算法拆分条带,此时d3,d4磁盘空闲地址相同并且比其他磁盘多,所以d3和d4磁盘处于第一梯度优先级。d0、d1、d2处于第二梯度优先级。此时发现d0、d1、d2磁盘处于开启状态(热盘)并且恰好满足此时请求负载为3的数据存储,所以依旧选择d0,d1,d2磁盘存储数据。冷热树结构中第三层由于拆分了5节点的地址,所以将该节点的地址变为2-end。增加了2节点的地址,所以该节点的地址变为0-1。请求负载为5和4的变化以此类推。

实验测试:

大规模存储系统通常都是由成百上千块磁盘组成,为了测试本申请方法的性能和节能效果,在linux4.40内核下的md(multipledevicedriver)模块下建立一个dssh原型系统,该dssh原型系统的磁盘矩阵中数据磁盘有5个,校验磁盘有1个。表1为服务器参数,表2为机械硬盘参数,表3为fpga参数。

表1服务器参数

表2磁盘参数

表3fpga参数

写优化性能测试

本系统使用常用的nilfs(newimplementationofalog-structuredfilesystem)文件系统是一种基于日志格式的文件系统,该系统采用顺序写的方式写入数据时始终写在磁盘头部直到逻辑存储空间写满才回收已经删除的数据。这种文件系统适用于视频监控,归档备份等连续存储系统。

iometer是使用最广泛的测试io子系统的工具,实验在90%连续数据和10%随机数据的负载下,使用iometer对dssh系统进行写性能测试。作为对比,同时建立相同配置的s-raid5,dppdl,三种存储系统进行测试。

传输速率测试:

图7为三种算法进行传输速率对比图,图中横坐标为请求负载大小,纵坐标为传输速率,由图7可知当负载较小的时候由于sraid5开启2块磁盘,并且地址映射算法简单,其传输速率最好。随着负载增大,dppdl算法和dssh算法传输速率逐步上升,很快超越sraid算法。

当请求负载为16kb到512kb时,sraid5传输速率比dppdl和dssh快这是因为sraid5始终打开两块数据磁盘,当请求长度较小时,dppdl和dssh只需要打开一块磁盘即可,故sraid5传输速率大于dppdl和dssh传输速率。当请求长度大于1024kb后,由于dssh和dppdl算法由于负载变大开启磁盘较多,所以传输速率大于sraid5算法,而sraid5由于始终打开两块磁盘,所以其传输速率保持不变。

cpu利用率测试:

图8中横坐标为请求负载大小,纵坐标为cpu利用率,由于dssh方法将最消耗cpu资源的异或计算部分转移到fpga中,本申请方法的cpu使用率最低,dppdl方法的cpu使用率最高,并且随着条带长度的增加很快上升,之后保持稳定。

能耗测试:

现实生活中的负载是动态变化的,为此模拟负载随时间变化图如图9所示,图中横坐标为时间,一共24个小时,纵坐标为不同时间的负载,即该时刻需要传输的数据量。

图10为dssh和sraid5算法能耗对比图,图中横坐标为运行时间,纵坐标为消耗的能量。在图9的系统负载下,sraid5算法由于选取条带策略简单,并且其开启数据磁盘数固定,所以其能耗稳定。而dssh方法合理的考虑了利用已经打开的数据磁盘,所以数据磁盘开启数量和系统负载呈正比例关系。

图11为dppdl和sraid5算法能耗对比图,图中横坐标为运行时间,纵坐标为消耗的能量。在图9的系统负载下,dppdl算法由于选取条带时比较随意,没有考虑尽量利用已打开的数据磁盘这一特点,所以造成在某些负载较为均衡的情况下,会出现突然增加能耗的情况。

综上可知,sraid5算法由于选取条带策略简单,并且其开启磁盘数固定,所以其能耗稳定。dppdl算法由于选取条带时比较随意,没有考虑尽量利用已打开的磁盘这一特点,所以造成在某些负载较为均衡的情况下,会出现突然增加能耗的情况。而本发明dssh方法合理的考虑了利用已经打开的磁盘,相比dppdl算法,其能耗随着负载的变化稳定的发生变化。

本发明仅限于以下实施例,凡利用本发明的设计思路,做一些简单的变化的设计都应进入本发明的保护范围之内。

本发明未述及之处适用于现有技术。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1