存储系统的修复方法及装置、存储介质及电子装置与流程

文档序号:37370655发布日期:2024-03-22 10:23阅读:8来源:国知局
存储系统的修复方法及装置、存储介质及电子装置与流程

本技术涉及智能监控领域,具体而言,涉及一种存储系统的修复方法及装置、存储介质及电子装置。


背景技术:

1、当前科学技术迅速发展,互联网、云计算、物联网、医学和地理科学等领域创造产生大量数据,包括中国在内的许多国家已经将发展大数据提高至国家战略高度,人类已经进入了大数据的时代。信息网络技术迅速发展,数据爆炸式增长,给存储行业带来前所未有的巨大压力。随着个人计算机性能的提升和网络技术的普及,越来越多的企业开始改用分布式存储系统。分布式存储系统是由存储技术与网络技术结合产生的技术领域,广泛应用于海量数据存储,系统中的存储节点在地理上分布在广阔的区域并通过网络连接。分布式存储系统的组成节点是价格低廉的商用个人计算机,所以这种存储系统易于扩展。但是,根据理论分析,组成系统的廉价节点数目越多系统的可靠性越差。各项研究表明,现在的大型分布式存储系统由于硬盘故障、网络故障、恶意攻击和自然灾害等原因,数据失效时常态。因此如何有效地保证系统可靠性和数据可用性是亟待解决的问题。

2、现有技术中一般通过增加冗余来提高系统稳定性,传统的复制编码方案一般通过多副本机制来实现。这种冗余方式的优点是高修复效率、低网络带宽。但这些优点是建立在牺牲大量存储开销和维护开销的基础上,因此,这种方式难以满足现在大数据时代对存储的需求。因此更多的分布式存储系统采用纠删编码存储数据,传统的纠删编码提高了存储效率,纠删编码数据修复时需要从多个节点读取数据,从而带来了更高的数据修复带宽开销。为改进纠删编码,dimakis等人提出了再生编码,以在不使用副本的情况下减少修复带宽。但再生编码的修复过程中,修复节点需要对其存储的数据进行随机线性网络编码,增加了计算开销。为了减少单节点故障时的修复开销,gopalan等人对纠删编码进行了改进,提出了一种局部性修复编码。局部性修复编码采取减少参与修复的块的数量的修复机制,降低了修复带宽开销,提升了修复性能。

3、上述再生编码和局部性修复编码都是在存储节点具有相等的存储容量,并且新生节点从每个帮助节点获取相等信息量的假设上提出的。目前实际网络中,不同节点的存储开销和修复带宽不尽相同,如内容交付网络和传感器网络。可变的节点存储容量和修复带宽可以有效降低系统的存储开销和修复带宽,节省系统的网络资源。

4、现代分布式存储系统的主流架构是基于大型企业数据存储的层次架构,在实际的数据存储中,通常采用两层网络结构,以机架为单位进行部署。2019年侯韩旭等人针对多机架模型提出了机架感知再生码的精确修复结构,可以实现最小存储冗余和最小跨机架修复带宽,但仅研究了单节点故障的情况。

5、而实际的分布式存储系统多为基于大型企业数据存储的分层架构,这导致系统在修复节点时需要使用机架间网络进行通信,然而机架间网络资源较为稀缺,跨机架修复成本比较高,修复效率和集群性能受到了制约。因此,现有技术研究存在着许多不足:现有技术仅对但节点故障进行了探讨,而多节点故障在实际系统中频发,导致在进行数据修复时,会带来较大的修复带宽,维护开销大。

6、针对相关技术中,现有的存储系统修复方案在进行数据修复时,会带来较大的修复带宽,导致维护开销大的问题,目前尚未提出有效的解决方案。

7、因此,有必要对相关技术予以改良以克服相关技术中的所述缺陷。


技术实现思路

1、本技术实施例提供了一种存储系统的修复方法及装置、存储介质及电子装置,以至少解决相关技术中,现有的存储系统修复方案在进行数据修复时,会带来较大的修复带宽,导致维护开销大的问题。

2、根据本技术实施例的一方面,提供了一种存储系统的修复方法,包括:在检测到存储系统中存在故障节点的情况下,确定目标机架的故障节点的数量f,其中,所述存储系统包括所述目标机架,故障节点为所述存储系统中出现故障的存储节点,f为正整数;根据所述f与r的第一大小关系、所述f与n的第二大小关系确定所述目标机架的修复方式,其中,r和n均为正整数,r小于n,r为预设节点数量阈值,n为所述存储系统中单个机架的存储节点的总数;按照所述修复方式从幸存节点下载编码块,根据所述编码块生成新生节点,并根据所述新生节点修复所述目标机架中的故障节点,其中,所述幸存节点为所述存储系统中未出现故障的存储节点,所述存储节点中均存储有编码块。

3、进一步地,根据所述f与r的第一大小关系、所述f与n的第二大小关系确定所述目标机架的修复方式,包括:在所述f小于或等于所述r的情况下,确定所述目标机架的修复方式为节点本地修复;在所述f大于所述r、且所述f小于所述n的情况下,确定所述目标机架的修复方式为节点合作修复;在所述f等于所述n的情况下,确定所述目标机架的修复方式为机架修复。

4、进一步地,按照所述修复方式从幸存节点下载编码块,根据所述编码块生成新生节点,并根据所述新生节点修复所述目标机架中的故障节点,包括:在所述修复方式为节点本地修复的情况下,从d个本地帮助节点的每个本地帮助节点中下载β个编码块,其中,所述本地帮助节点为所述目标机架中故障节点之外的存储节点,d,β为正整数;根据获取到的d*β个编码块生成第t个新生节点,并根据所述第t个新生节点修复所述目标机架中的第t个故障节点,其中,t为正整数,t为1,2,…f。

5、进一步地,按照所述修复方式从幸存节点下载编码块,根据所述编码块生成新生节点,并根据所述新生节点修复所述目标机架中的故障节点,包括:在所述修复方式为节点合作修复的情况下,从n-f+i个本地帮助节点的每个本地帮助节点中下载β1个编码块,并从dc个可用机架的每个可用机架中下载βc个编码块,其中,所述本地帮助节点为所述目标机架中故障节点之外的存储节点,所述可用机架为所述存储系统中所述目标机架之外的机架,所述βc个编码块为所述可用机架中跨机架帮助节点所存储编码块的线性组合,所述跨机架帮助节点为所述可用机架中的幸存节点;根据获取到的(n-f+i)*β1+dc*βc个编码块生成第i+1个新生节点,并根据所述第i+1个新生节点修复所述目标机架中的第i+1个故障节点,其中,i为整数,i为0,1,2,…f-r-1;以及,从d个本地帮助节点的每个本地帮助节点中下载β个编码块,根据获取到的d*β个编码块生成第j+1个新生节点,并根据所述第j+1个新生节点修复所述目标机架中的第j+1个故障节点,其中,j为正整数,j为f-r,f-r+1,…f-1。

6、进一步地,按照所述修复方式从幸存节点下载编码块,根据所述编码块生成新生节点,并根据所述新生节点修复所述目标机架中的故障节点,包括:在所述修复方式为机架修复的情况下,从m-1个可用机架的每个可用机架中下载βc个编码块,根据获取到的(m-1)*βc个编码块生成第一个新生节点,并根据所述第一个新生节点修复所述目标机架中的第一个故障节点,其中,m为所述存储系统的机架数量,m为正整数,所述可用机架为所述存储系统中所述目标机架之外的机架,所述βc个编码块为所述可用机架中跨机架帮助节点所存储编码块的线性组合,所述跨机架帮助节点为所述可用机架中的幸存节点;以及,从s个本地帮助节点的每个本地帮助节点中下载β1个编码块,并从dc个可用机架的每个可用机架中下载βc个编码块,根据获取到的s*β1+dc*βc个编码块生成第s+1个新生节点,并根据所述第s+1个新生节点修复所述目标机架中的第s+1个故障节点,其中,s为整数,s为1,2,…f-r-1;以及,从d个本地帮助节点的每个本地帮助节点中下载β个编码块,根据获取到的d*β个编码块生成第t+1个新生节点,并根据所述第t+1个新生节点修复所述目标机架中的第t+1个故障节点,其中,t为正整数,t为f-r。n-r+1,…f-1。

7、进一步地,所述方法还包括:在接收到数据重构请求的情况下,通过数据收集器获取所述存储系统的m个机架中的k个机架所存储的编码块,其中,所述数据重构请求用于重构所述存储系统存储的原始数据对象,所述存储节点存储的编码块基于所述原始数据对象生成,其中,m为所述存储系统中的机架数量,m,k为正整数,k小于或等于m;根据所述数据收集器获取到的编码块重构所述原始数据对象,并对所述原始数据对象进行编码,将得到的多个编码块重新存储到多个所述存储节点中。

8、进一步地,根据所述新生节点修复所述目标机架中的故障节点之后,所述方法还包括:根据所述修复方式构建所述存储系统的信息流图,其中,所述信息流图的类别为有向无环图,所述信息流图包括m*n组内顶点和外顶点,每一组内顶点和外顶点通过有向边连接,所述每一组内顶点和外顶点与所述存储节点一一对应,所述有向边的权重用于指示所述存储节点的存储容量,其中,m为所述存储系统中的机架数量;根据最小割约束条件确定出所述信息流图的最小割,并根据最大流最小割定理确定出所述存储系统的最大流,其中,所述最大流用于指示所述存储系统所存储的原始数据对象的最大大小;根据所述最大流确定约束条件,并根据所述约束条件计算目标函数的最小值,其中,目标函数用于对所述存储系统的存储开销和修复带宽进行加权求和,其中,所述所述最小值用于指示所述存储开销和所述修复带宽的最佳折衷值,所述约束条件包括以下之一:

9、

10、b≤min{(m-1)βc,α}+(n-r-1)min{dcβc,α}+(k-1)nα。

11、进一步地,所述目标函数包括:其中,minimize[cs(α)+λcγ(βi,βc,β)]为所述目标函数,b为所述原始数据对象的大小,λ为权重值,系数向量x包括所述x1,x2,x3,所述系数向量满足约束:dβ为节点本地修复对应的修复带宽,为节点合作修复对应的修复带宽,为机架修复对应的修复带宽。

12、根据本技术实施例的另一方面,还提供了一种存储系统的修复装置,包括:第一确定模块,用于在检测到存储系统中存在故障节点的情况下,确定目标机架的故障节点的数量f,其中,所述存储系统包括所述目标机架,故障节点为所述存储系统中出现故障的存储节点,f为正整数;第二确定模块,用于根据所述f与r的第一大小关系、所述f与n的第二大小关系确定所述目标机架的修复方式,其中,r和n均为正整数,r小于n,r为预设节点数量阈值,n为所述存储系统中单个机架的存储节点的总数;修复模块,用于按照所述修复方式从幸存节点下载编码块,根据所述编码块生成新生节点,并根据所述新生节点修复所述目标机架中的故障节点,其中,所述幸存节点为所述存储系统中未出现故障的存储节点,所述存储节点中均存储有编码块。

13、根据本技术实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述存储系统的修复方法。

14、根据本技术实施例的又一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述存储系统的修复方法。

15、通过本技术,在检测到存储系统中存在故障节点时,统计存储系统中目标机架的故障节点的数量f,故障节点为存储系统中出现故障的存储节点,f是正整数;根据f与r的第一大小关系、f和n的第二大小关系确定修复该目标机架的修复方式,r和n都是正整数,r是预设节点数量阈值,n是单个机架的存储节点的总数;然后按照确定出的修复方式从幸存节点中下载编码块,根据下载到的编码块生成新生节点,从而利用新生节点来修复目标机架中的故障节点,其中,幸存节点为存储系统中未出现故障的存储节点;采用上述方案,在机架内故障节点的数量不同时,采用不同的修复方式,以减小修复机架时的修复带宽;从而解决了相关技术中,现有的存储系统修复方案在进行数据修复时,会带来较大的修复带宽,导致维护开销大的问题。

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