一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

SSA中利用SSD控制器计算资源的分布式数据重建方法

2022-06-29 17:46:52 来源:中国专利 TAG:

ssa中利用ssd控制器计算资源的分布式数据重建方法
技术领域
1.本发明涉及闪存固态盘冗余阵列技术领域,利用ssa中嵌入式ssd控制器的计算能力,以分布式方式将数据重建任务分流至ssd控制器中,加速数据重建过程,保障了系统的高效性;本发明基于应用负载及ssd控制器计算资源管理模型,控制数据重建任务与io负载任务在ssa raid控制器与ssd控制器之间的分工与协作。


背景技术:

2.本部分的陈述仅仅是提供了与本发明相关的背景技术,并不必然构成现有技术。
3.以云计算、高性能计算中心等为代表的大数据应用环境已经成为新一代信息技术的重要创新推动力。这些大数据应用无一例外的需要高可靠、大容量、高性能的存储系统。为了满足各种大数据应用(例如虚拟化、数据分析、图计算等)不断增长的低延时和高吞吐量的存储需求,闪存固态盘冗余阵列(flash-based ssd raid array,ssa)正越来越多地被应用于数据中心等企业级存储环境中。据估计ssa市场将从2015年的27亿美元增长到2020年的96.7亿美元,约占整个存储阵列市场的50%。
4.ssa包含多个固态盘(ssd),采用数据分块技术在多个ssd中交叉存储数据,使多盘可并行操作。ssa raid控制器负责数据与任务在ssd群组中的分配。在ssd中,嵌入式ssd控制器主要负责闪存存储单元的分配与管理。与hdd冗余阵列相比,ssa具有高io性能、高存储容量、低能耗、低冷却和低机架空间花销等优势。然而,ssa同时也带来了与hdd冗余阵列不同特性的新挑战。
5.当ssa中某些ssd发生故障损毁时,需要对故障盘中的数据进行恢复重建。ssa的数据重建过程需要消耗大量的计算与io资源,因此故障磁盘的数据重建不但需要大量重建时间,还会影响其他正常io请求的性能,降低系统的高效性。虽然当ssa存储系统处于空闲或轻量级io负载状态时,利用ibm等提出的分布式raid等技术可以大大缩短其数据重建时间。但是当系统处于繁重负载时,由于raid控制器被io任务完全占用,无法有效处理其他任务,数据重建仍花费较长时间(例如,恢复4tb的故障磁盘需要10多个小时),因而影响系统的高效性。
6.面向ssa存储系统的优化研究是近年来的一个新的研究方向。数据重建机制对保障ssa的可靠性与高效性至关重要。为了优化ssa系统中的数据重建,hpe、华为、及ibm等多家公司从系统的角度,提出了闪存虚拟池的概念,通过提高数据重建过程中io并行度的方式减少数据重建时间。david h.c.du教授团队提出一种自适应预测数据块缓存机制,通过减少数据块的读放大来加速数据重建。yong xu教授团队通过预测固态盘故障模型提前完成数据迁移,从而保障系统的性能。这些优化方案当ssa系统处于较轻负载时,可以有效地加速数据重建过程。然而,当系统处于繁重负载时,数据重建仍需较长时间。


技术实现要素:

7.为了解决现有技术的不足,本发明提供了一种ssa中利用ssd控制器计算资源的分
布式数据重建方法,利用ssa中嵌入式ssd控制器的计算能力,以分布式方式将数据重建任务分流至ssd控制器中,加速数据重建过程,保障了系统的高效性;本发明基于应用负载及ssd控制器计算资源管理模型,控制数据重建任务与io负载任务在ssa raid控制器与ssd控制器之间的分工与协作。
8.为了达到上述目的,本发明采用如下技术方案:
9.本发明第一方面提供了一种ssa中利用ssd控制器计算资源的分布式数据重建方法。
10.一种ssa中利用ssd控制器计算资源的分布式数据重建方法,包括以下过程:
11.将数据重建任务分解成多个独立子任务,每个子任务用来恢复某一固态盘中的数据块,通过raid控制器对这些子任务进行调度,分别至不同ssd控制器中执行;
12.当系统中io调度队列中存在多个顺序执行的io任务时,根据io调度队列的长度和数据重建子任务的特征,确定子任务调度策略。
13.本发明所述子任务调度策略需要使得数据重建任务不会降低系统本来的正常io任务的执行效率;由于数据重建子任务是分配到各个ssd控制器上执行,io调度队列越长,则可以认为系统运行的工作负载越繁重,此时应该减少数据重建子任务,避免造成io阻塞;另外,根据数据重建子任务的特征,可以选取此时空闲或者io负载较小的ssd控制器完成数据重建子任务。
14.作为可选的一种具体实现方式,基于ssd编程/擦除周期的ssa故障模型,得到将要发生故障的ssd,提前将要发生故障的ssd中存储的数据与数据重建任务结合进行数据转移。
15.作为可选的一种具体实现方式,数据重建任务通过并行方式完成,包括:
16.数据块a1、a2、a3和ap组成一个数据条带,当存储数据块a1的第一ssd发生故障时,在并行方式中,ssd控制器协同第二ssd、第三ssd以及第四ssd将数据块a2、a3和ap并行传输给第五ssd,然后利用第五ssd的控制器完成数据块a1的恢复;
17.其中,ap为a1、a2和a3的奇偶校验信息,完整的数据a被分为a1、a2和a3,ap用于数据重建,ap,a1,a2和a3被存在不同的ssd上。
18.作为可选的一种具体实现方式,数据重建任务通过串行方式完成,包括:
19.在串行方式中,在每个ssd中利用控制器独立执行奇偶计算,然后将结果传输到下一个ssd中。
20.作为可选的一种具体实现方式,将数据重建任务调度至空闲或负载小于预设值的ssd中。
21.作为可选的一种具体实现方式,通过二分图将数据重建任务映射到系统中不同的ssd中。
22.作为可选的一种具体实现方式,二分图中,每条边代表将数据重建任务分配至某个ssd上的调度方案,边的权重代表此调度方案的计算消耗。
23.作为可选的一种具体实现方式,进行数据重建任务时,从多个工作量不同且动态变化的ssd中读取数据。
24.本发明第二方面提供了一种ssa中利用ssd控制器计算资源的分布式数据重建系统。
25.一种ssa中利用ssd控制器计算资源的分布式数据重建系统,至少包括:ssd控制器和raid控制器:
26.数据重建任务被分解成多个独立子任务,每个子任务用来恢复某一固态盘中的数据块,通过raid控制器对这些子任务进行调度,分别至不同ssd控制器中执行;
27.当系统中io调度队列中存在多个顺序执行的io任务时,raid控制器根据io调度队列的长度和数据重建子任务的特征,确定子任务调度策略。
28.作为可选的一种具体实现方式,基于ssd编程/擦除周期的ssa故障模型,得到将要发生故障的ssd,提前将要发生故障的ssd中存储的数据与数据重建任务结合进行数据转移。
29.与现有技术相比,本发明的有益效果是:
30.1、本发明所述的ssa中利用ssd控制器计算资源的分布式数据重建方法,利用ssa中嵌入式ssd控制器的计算能力,以分布式方式将数据重建任务分流至ssd控制器中,加速了数据重建过程,保障了系统的高效性。
31.2、本发明所述的ssa中利用ssd控制器计算资源的分布式数据重建方法,基于应用负载及ssd控制器计算资源管理模型,控制数据重建任务与io负载任务在ssa raid控制器与ssd控制器之间的分工与协作,进一步提高了系统的高效性。
32.3、本发明所述的ssa中利用ssd控制器计算资源的分布式数据重建方法,利用基于ssd编程/擦除周期的ssa故障模型,设计主动数据重建策略,在主动数据重建策略中,主动判断将要发生故障ssd,并提前将其存储的数据与数据重建任务结合进行数据转移,进一步的提高了系统的安全性。
附图说明
33.构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
34.图1为本发明实施例1提供的传统raid的数据重建过程示意图。
35.图2为本发明实施例1提供的改进的raid方法的数据重建过程示意图。
36.图3为本发明实施例1提供的数据重建的不同策略对比示意图。
37.图4为本发明实施例1提供的二分图匹配算法示意图。
具体实施方式
38.下面结合附图与实施例对本发明作进一步说明。
39.应该指出,以下详细说明都是例示性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
40.需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
41.在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
42.实施例1:
43.如图1和图2所示,本发明实施例1提供了一种ssa中利用ssd控制器计算资源的分布式数据重建方法,包括以下过程:
44.将数据重建任务分解成多个独立子任务,每个子任务用来恢复某一固态盘中的数据块,通过raid控制器对这些子任务进行调度,分别至不同ssd控制器中执行;
45.当系统中io调度队列中存在多个顺序执行的io任务时,根据io调度队列的长度和数据重建子任务的特征,确定子任务调度策略。
46.具体的,包括以下内容:
47.s1:降低raid控制器计算消耗的数据重建任务调度策略
48.将数据重建子任务分流至ssd控制器中可以减轻raid控制器的计算负载。然而,这些数据重建子任务需要被智能地调度,否则,可能会导致任务阻塞并降低正常io的性能。
49.本实施例需要解决的一个基本问题是如何在最小化io开销的同时在规定的时间内完成所有的数据重建任务。为了解决此问题,本实施例设计特定的调度策略来决定在正常io任务与数据重建子任务的调度时机,根据目前io负载情况和数据重建任务动态的调整调度方案。
50.当系统中io调度队列中有很多顺序执行的io任务时,由于系统可以有效的处理顺序任务,调整调度方案让系统进行更多的数据重建任务,在制定调度方案时,综合考虑io调度队列的长度和数据重建子任务的特征。
51.本实施例中,利用基于ssd编程/擦除周期的ssa故障模型,设计主动数据重建策略,在主动数据重建策略中,主动判断将要发生故障ssd,并提前将其存储的数据与数据重建任务结合进行数据转移。
52.s2:降低通信开销的数据重建任务的高效执行机制
53.将数据重建任务分解为子任务集,并且每个子任务仅恢复故障固态盘中的部分数据。为了进行数据恢复,其所在条带中的其他数据都需要被读出,并利用奇偶校验算法计算出故障数据。
54.假设数据块a1、a2、a3和ap组成一个数据条带,当存储数据块a1的ssd1发生故障时,需要通过计算对a1进行重建。
55.与传统重建方法不同,在本实施例的方案中,一个数据重建任务可以通过“并行”和“串行”两种方式完成,如图3所示。
56.在“并行”方式中,raid控制器可以协同ssd2、ssd3和ssd4将数据块a2、a3和ap并行传输给ssd5,然后利用ssd5的控制器完成数据块a1的恢复。
57.在“串行”方式中,将在每个ssd中利用控制器独立执行奇偶计算,然后将结果传输到下一个ssd中。
58.与“串行”方式相比,“并行”方式不需要对ssd控制器进行调度,且如果ssd5处于空闲状态,数据重建速度也更快。然而,“并行”方式也会触发更多突发性的通信流量,超过ssd5的接受能力。
59.s3:高效利用ssd控制器计算能力的数据重建任务调度分配机制
60.将数据重建任务分流至ssd后,某些ssd需要同时执行数据重建任务和正常io任务,导致ssd过载。另一方面,ssa由多个ssd组成,系统在处理密集io任务的同时会存在一些
空闲或负载较轻的ssd。
61.因此,本实施例中,需要将数据重建任务调度至这些空闲或负载较轻(即负载小于预设值)的ssd中,从而减轻其他ssd控制器的计算开销。
62.为了更好的将数据重建任务映射到系统中不同的ssd中,构建一个二分图,如图4所示,在此二分图中,每条边代表将数据重建任务分配至某个ssd上的调度方案,边的权重代表此调度方案的计算消耗,通过综合通信、io负载和其他因素,可以以最小的代价获得最优的调度方案。
63.具体的,在数据重建任务调度的二分图匹配算法中,节点集合分别为数据重建任务集合x={x1,x2,

,xm}与ssd控制器集合y={y1,y2,

,yn},所有x集合的顶点到所有y集合的顶点均有边,量化通信以及ssd控制器工作负载两个因素作为二分图中连线的权重{w
i,j
,i={1,2,

,m},j={1,2,

,n}},得到一种最佳匹配使w
i,j
之和的值最大。
64.权重w
i,j
定义为:w
i,j
=a*c_value b*s_value。其中,c_value为将该数据重建任务需要的数据传输到ssd控制器的延时经过取倒数并标准化到0-100之间所得到的值,所需的延时越短,c_value越大;s_value为当前ssd控制器剩余的计算资源的百分比乘100得到的值,剩余计算资源越多,s_value越大;a、b为比例,取值为0-1之间的小数,相加为1;a、b的值随当前系统环境调整,当系统通信较差时,a的比例相对减少;当系统工作负载较大时,b的比例相对减少。
65.本实施例中,为了完成数据重建任务,需要从多个工作量不同且动态变化的ssd中读取数据。
66.实施例2:
67.本发明实施例2提供了一种ssa中利用ssd控制器计算资源的分布式数据重建系统。
68.一种ssa中利用ssd控制器计算资源的分布式数据重建系统,至少包括:ssd控制器和raid控制器:
69.数据重建任务被分解成多个独立子任务,每个子任务用来恢复某一固态盘中的数据块,通过raid控制器对这些子任务进行调度,分别至不同ssd控制器中执行;
70.当系统中io调度队列中存在多个顺序执行的io任务时,raid控制器根据io调度队列的长度和数据重建子任务的特征,确定子任务调度策略。
71.具体的工作方法与实施例1中提供的分布式数据重建方法相同,这里不再赘述。
72.以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献