数据存储方法及系统与流程

文档序号:11949890阅读:291来源:国知局
数据存储方法及系统与流程
本发明涉及计算机网络领域,尤其涉及一种数据存储方法及系统。
背景技术
:分布式存储系统,是将数据按照一定规则切分并打散存储在多台独立通用存储存储模块上。传统的网络存储系统采用集中的存储存储模块存放所有数据,存储存储模块成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要,而分布式存储系统采用可扩展的系统结构,利用多台存储存储模块分担存储负荷,利用位置存储模块定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。存储集群的成千上万台存储模块可以将数据充分冗余,从而可以显著提高数据的安全性。在存储领域,通常使用年故障率(AFR)来表征磁盘的可靠性,现在市场上通用的磁盘的AFR一般是4%左右,即如果一个集群中有365块磁盘,那么一年中有磁盘损害的概率为pow(0.96,365)=0.9999996619351175,即一年中几乎肯定有磁盘失效。而对于分布式存储集群,实际上磁盘个数通常都达到了上千块,因此应对磁盘损坏成为了每一个存储系统都要解决的问题。现有技术中,通过数据冗余来处理磁盘失效的问题,通常是每一份数据都可以存储于三块甚至更多块磁盘上,当某块磁盘失效时,可以依靠剩下的两个副本做数据恢复,防止在磁盘损坏或者存储模块宕机时数据丢失。但实际上,数据恢复策略必须要得到完善的设计,否则还是会遇到数据丢失的问题。企业在搭建存储集群时,通常都会同批次购买很多的存储存储模块和磁盘,同批次的磁盘往往具备类似的硬件规格和驱动固件,即可能出现同时失效的情况,在这种情况下,某一块磁盘开始失效之时,存储于此块磁盘上的数据都处于降级的状态,更坏的是,与之同批次的其他磁盘也随之失效的概率就会提高,如果此时另外一块磁盘也失效,则一部分数据将仅剩下一个存活的副本,并且降级程度进一步恶化,如果数据不能尽快修复,降级的数据可能会因最后一个副本所在的磁盘的失效而完全丢失。传统的数据恢复机制缺乏对磁盘中对象的统一管理,当三个副本中有两个副本损坏时,在插入替换坏盘的新盘之后,因为数据都是打散存储的,所以两块新盘都需要向集群中的多块磁盘发起读请求,要求这些磁盘向其发送数据,这样会带来两个问题,首先是这种基于拉数据的方式会带来同一份数据的两次独立的读请求,比如损坏的磁盘d0和d1都向磁盘d2拉数据,因为d0和d1拉数据时,并不存在彼此之间的协调,也就是说它们进行数据迁移的进度并不一致,这就意味着它们是独立拉数据时,磁盘d2需要分别应对两次读请求,并两次从磁盘中读取数据并发送给磁盘d0和磁盘d1,这样无疑会减慢数据迁移的速度,从而威胁数据安全;其次是,这种基于拉数据的方式不利于数据迁移进度和数据降级程度的管理和查询,即我们并不能够准确的获知每个文件的降级程度,比如文件file1,可能已经被磁盘d0或者磁盘d1之一拉过去,或者已经被两者拉过去了,或者一个来拉的也没有,即降级程度存在3种可能。综合上述内容,亟需设计出一种当进行数据恢复时能够提高数据迁移效率,并且便于管理和查询数据迁移进度和数据降级程度的数据存储方法。技术实现要素:本发明实施例提供一种数据存储方法及系统,用以解决现有技术中当存在多块磁盘损坏并进行数据恢复时面临的多次读取问题,和解决数据迁移进度和数据降级程度不方便管理的问题。本发明实施例提供一种数据存储方法,包括:将每组数据组均存储到集群中的N个存储装置上,以形成数据组对应存储阵列的映射列表和集群中的可用存储装置列表;监控各存储阵列的工作状态;当一个存储阵列存在失效存储装置时,基于该存储阵列所对应的数据组生成数据迁移序列;确定数据迁移序列中的各数据组的降级程度,所述各数据组的降级程度与承载各数据组的失效存储装置的数量成正比;当所述失效存储装置包括多个先后失效的存储装置时,从所述可用存储装置列表中按先后顺序依次选择可用存储装置以替换所述多个失效存储装置;按照替换完成的先后顺序,利用所述存储阵列中剩余的存活存储装置向替换后的可用存储装置按照数据迁移序列迁移数据组。本发明实施例提供一种数据存储系统,包括:映射模块,将每组数据组均存储到集群中的N个存储装置上,以形成数据组对应存储阵列的映射列表和集群中的可用存储装置列表;监控模块,监控各存储阵列的工作状态;迁移序列生成模块,当一个存储阵列存在失效存储装置时,基于该存储阵列所对应的数据组生成数据迁移序列;降级程度确定模块,用于确定数据迁移序列中的各数据组的降级程度,所述各数据组的降级程度与承载各数据组的失效存储装置的数量成正比;存储修复模块,当所述失效存储装置包括多个先后失效的存储装置时,从所述可用存储装置列表中按先后顺序依次选择可用存储装置以替换所述多个失效存储装置;数据迁移模块,按照替换完成的先后顺序,利用所述存储阵列中剩余的存活存储装置向替换后的可用存储装置按照数据迁移序列迁移数据组。本发明实施例提供的数据存储方法及系统,当系统中存在多个存储装置失效并进行数据迁移时,按照数据迁移序列向替换后的可用存储装置迁移数据组,避免同一数据组的多次读取问题,便于统一管理数据迁移进度和数据降级程度,从而显著提高数据安全性和可用性。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本公开数据存储方法的流程图;图2为本公开的数据存储方法的一个实施例的流程图;图3为本公开的数据存储方法的另一个实施例的流程图;图4为本公开数据存储系统的结构示意图;图5为本公开实施例的一种数据存储系统的结构示意图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。根据本发明提供的一种数据存储方法,如图1所示,包括:将每组数据组均存储到集群中的N个存储装置上,以形成数据组对应存储阵列的映射列表和集群中的可用存储装置列表;监控各存储阵列的工作状态;当一个存储阵列存在失效存储装置时,基于该存储阵列所对应的数据组生成数据迁移序列;确定数据迁移序列中的各数据组的降级程度,所述各数据组的降级程度与承载各数据组的失效存储装置的数量成正比;当所述失效存储装置包括多个先后失效的存储装置时,从所述可用存储装置列表中按先后顺序依次选择可用存储装置以替换所述多个失效存储装置;按照替换完成的先后顺序,利用所述存储阵列中剩余的存活存储装置向替换后的可用存储装置按照数据迁移序列迁移数据组。对于具有N个副本的各数据组而言:当各数据组所对应的存储阵列中没有存储装置失效,则各数据组的降级程度为0,此时数据是安全的;当各数据组所对应的存储阵列中有一个存储装置失效,则降级程度为-1,此时数据组丢失的概率较低;当各数据组所对应的存储阵列中有两个存储装置失效,则降级程度为-2,此时数据组仅剩下(N-2)个副本,需要优先向新磁盘进行迁移;当各数据组所对应的存储阵列中有N个存储装置失效,则降级程度为-N,此时数据组已经丢失。在一些可选的实施例中,存储阵列中存储装置的位置是有顺序的,一方面,在存储阵列中位置靠前的存储装置负责接收写入的数据组,并转发给其所在存储阵列中剩余的存储装置,另一方面,当存在失效存储装置时,利用位置靠前的存储装置向新的存储装置进行数据组迁移。在一些可选的实施例中,存储装置可以是各式存储器,如RAM、ROM等,也可以是磁盘或软盘等其他能够存储数据的存储介质。在一些可选的实施例中,在每个存储装置上承载至少一组数据组,以便提高存储装置的利用率,降低存储成本。在一些可选的实施例中,可用存储装置列表中既包括已经使用但还有足够的空间去承载其他数据组的存储装置,又包括没有被使用的存储装置。在一些可选的实施例中,监控各存储阵列的工作状态为监控各存储阵列中的各存储装置是否失效,如可以通过不断地对磁盘进行读写操作来监控其是否失效,也可以通过每隔20s对磁盘进行一次读写操作,还可以利用现有技术中的监控工具如smartmontools来监控磁盘是否失效。在一些可选的实施例中,如图2所示,所述失效存储装置包括第一失效存储装置和第二失效存储装置,并且第一失效存储装置的失效时间先于第二失效存储装置的失效时间,按照替换完成的先后顺序,利用所述存储阵列中剩余的存活存储装置向替换后的可用存储装置按照数据迁移序列迁移数据组包括:当利用第一可用存储装置对第一失效存储装置替换完成时,利用所述存储阵列中剩余的存活存储装置向替换后的第一可用存储装置按照数据迁移序列迁移数据组,随着数据组的迁移,基于所述数据迁移序列生成逐渐减少的第一迁移队列;当利用第二可用存储装置对第二失效存储装置替换完成时,若此时第一迁移队列不为空且第一迁移队列中的各数据组的降级程度相同,则利用所述存储阵列中剩余的存活存储装置同时向第一可用存储装置和第二可用存储装置按照第一迁移队列迁移数据组;当按照第一迁移队列完成数据组迁移后,基于所述数据迁移序列和所述第一迁移队列生成用于向所述第二可用存储装置迁移的第二迁移队列;利用所述存储阵列中剩余的存活存储装置向第二可用存储装置按照第二迁移队列迁移数据组。下面以如表1和表2所示的一个实施例说明本发明提供的数据存储方法。将每组数据组均存储到集群中的3个磁盘上,以形成数据组对应存储阵列的映射列表和集群中的可用磁盘列表,所述映射列表中的部分列表如下表1所示,所述可用磁盘列表中的部分列表如下表2所示,表1:数据组存储阵列dg1、dg2、dg3、dg4、dg5(d4,d666,d77)表2:可用磁盘列表d110d20d77在本实施例中,“dg+常数”用于标记不同的数据组,“d+常数”用于标记不同的磁盘,本公开在此方面没有限制。以数据组dg1为例说明数据组的降级程度:当存储阵列(d4,d666,d77)中没有磁盘失效,则数据组dg1的降级程度为0,此时数据是安全的;当磁盘d4失效时,则降级程度为-1,此时数据组丢失的概率较低;当磁盘d4和磁盘d666失效时,则降级程度为-2,此时数据组仅剩下1个副本;当磁盘d4、磁盘d666和磁盘d77都失效时,则降级程度为-3,此时数据组dg1已经丢失。当存储阵列(d4,d666,d77)中磁盘d4失效时,基于该存储阵列所对应的数据组生成数据迁移序列Q0={dg1、dg2、dg3、dg4、dg5},此时各数据组的降级程度分别为-1;从可用磁盘列表中选择可用磁盘d110替换磁盘d4;利用存储阵列中剩余的存活磁盘d666向替换后的可用磁盘d110按照数据迁移序列Q0迁移数据组,随着数据组的迁移,基于数据迁移序列Q0生成逐渐减少的第一迁移队列Q1,即将迁移完成的数据组从数据迁移序列Q0中删除,剩余的待迁移的数据组组成第一迁移队列Q1;利用存储阵列中剩余的存活磁盘d666向替换后的可用磁盘d110按照数据迁移序列Q0迁移数据组期间,磁盘d77也失效了,此时数据组dg1和数据组dg2已经迁移到磁盘d110中,则第一迁移队列Q1={dg3、dg4、dg5},此时各数据租的降级程度分别为-2。从可用磁盘列表中选择可用磁盘d20替换磁盘d77;利用存储阵列中剩余的存活磁盘d666同时向磁盘d110和磁盘d20按照第一迁移队列Q1迁移数据组;当按照第一迁移队列Q1完成数据组迁移后,基于数据迁移序列Q0和第一迁移队列Q1生成用于向磁盘d20迁移的第二迁移队列Q2,,Q2,={dg1、dg2},各数据组的降级程度为-1;利用存储阵列中剩余的存活磁盘d666向磁盘d20按照第二迁移队列Q2迁移数据组。在上述实施例中,一方面,数据组dg3、数据组dg4和数据组dg5只进行了一次读取操作,有利于提高数据迁移效率;另一方面,第一迁移队列Q1中的各数据组的降级程度为-2,第二迁移队列Q2中的各数据组的降级程度为-1,优先迁移第一迁移队列Q1中的各数据组降低了数据丢失的概率,有利于保障数据的安全。而且,当用户需要查询某一组数据组的降级程度时,如果该数据组在第一迁移队列Q1中,则该数据组的降级程度为-2,如果该数据组在第二迁移队列Q2中,则该数据组的降级程度为-1,如果该数据组不在任何一个队列中,则该数据组降级程度为0,说明该数据组已经完成迁移。在一些可选的实施例中,如图3所示,所述失效存储装置包括第一失效存储装置和第二失效存储装置,所述第一失效存储装置的失效时间先于第二失效存储装置的失效时间,按照替换完成的先后顺序,利用所述存储阵列中剩余的存活存储装置向替换后的可用存储装置按照数据迁移序列迁移数据组包括:当利用第一可用存储装置对第一失效存储装置替换完成时,利用所述存储阵列中剩余的存活存储装置向替换后的第一可用存储装置按照数据迁移序列迁移数据组,随着数据组的迁移,基于所述数据迁移序列生成逐渐减少的第一迁移队列;当利用第二可用存储装置对第二失效存储装置替换完成时,若此时第一迁移队列不为空且第一迁移队列中的各数据组的降级程度不同,则按照降级程度的高低生成第二迁移队列和第三迁移队列,第二迁移队列中的数据组的降低程度高于第三迁移队列中的数据组的降级程度,利用所述存储阵列中剩余的存活存储装置同时向第一可用存储装置和第二可用存储装置按照第二迁移队列迁移数据组;当按照第三迁移队列完成数据组迁移后,利用所述存储阵列中剩余的存活存储装置向第一可用存储装置按照第三迁移队列迁移数据组。下面以如表3和表4所示的另一个实施例说明本发明提供的数据存储方法。将每组数据组均存储到集群中的3个磁盘上,以形成数据组对应存储阵列的映射列表和集群中的可用磁盘列表,所述映射列表中的部分列表如下表3所示,所述可用磁盘列表中的部分列表如下表4所示,表3:数据组存储阵列dg1、dg2、dg3、dg4、dg5(d4,d666,d77)dg6、dg7、dg8(d4,d55,d13)表4:可用磁盘列表d110d20d77d8在本实施例中,“dg+常数”用于标记不同的数据组,“d+常数”用于标记不同的磁盘,本公开在此方面没有限制。当磁盘d4失效时,基于存储阵列(d4,d666,d77)和(d4,d55,d666)所对应的数据组生成数据迁移序列Q0={dg1、dg2、dg3、dg4、dg5、dg6、dg7、dg8},此时各数据组的降级程度分别为-1;从可用磁盘列表中选择可用磁盘d110替换磁盘d4;利用磁盘d666和磁盘d55向替换后的可用磁盘d110按照数据迁移序列Q0迁移数据组,随着数据组的迁移,基于数据迁移序列Q0生成逐渐减少的第一迁移队列Q1,即将迁移完成的数据组从数据迁移序列Q0中删除,剩余的待迁移的数据组组成第一迁移队列Q1;利用磁盘d666向替换后的可用磁盘d110按照数据迁移序列Q0迁移数据组期间,磁盘d13也失效了,此时数据组dg1和数据组dg2已经迁移到磁盘d110中,则第一迁移队列Q1={dg3、dg4、dg5、dg6、dg7、dg8},此时,数据组dg3、数据组dg4和数据组dg5的降级程度分别为-1,数据组dg6、数据组dg7和数据组dg8的降级程度分别为-2,生成第二迁移队列Q2={dg6、dg7、dg8},生成第三迁移队列Q3={dg3、dg4、dg5}。从可用磁盘列表中选择可用磁盘d20替换磁盘d13;利用磁盘d55同时向磁盘d110和磁盘d20按照第二迁移队列Q2迁移数据组;当按照第二迁移队列Q2完成数据组迁移后,利用磁盘d666向磁盘d110按照第三迁移队列Q3迁移数据组。根据本发明实施例提供的一种数据存储系统,如图4所示,包括:映射模块100,将每组数据组均存储到集群中的N个存储装置上,以形成数据组对应存储阵列的映射列表和集群中的可用存储装置列表;监控模块200,监控各存储阵列的工作状态;迁移序列生成模块300,当一个存储阵列存在失效存储装置时,基于该存储阵列所对应的数据组生成数据迁移序列;降级程度确定模块400,用于确定数据迁移序列中的各数据组的降级程度,所述各数据组的降级程度与承载各数据组的失效存储装置的数量成正比;存储修复模块500,当所述失效存储装置包括多个先后失效的存储装置时,从所述可用存储装置列表中按先后顺序依次选择可用存储装置以替换所述多个失效存储装置;数据迁移模块600,按照替换完成的先后顺序,利用所述存储阵列中剩余的存活存储装置向替换后的可用存储装置按照数据迁移序列迁移数据组。该数据存储系统用于执行上述数据存储方法,并能达到与数据存储方法相同的技术效果。图5为本申请实施例提供的又一种数据存储系统1200的结构示意图,本申请具体实施例并不对用户设备1200的具体实现做限定。如图5所示,该用户设备1200可以包括:处理器(processor)1210、通信接口(CommunicationsInterface)1220、存储器(memory)1230、以及通信总线1240。其中:处理器1210、通信接口1220、以及存储器1230通过通信总线1240完成相互间的通信。通信接口1220,用于与比如客户端等的网元通信。处理器1210,用于执行程序1232,具体可以执行上述方法实施例中的相关步骤。具体地,程序1232可以包括程序代码,所述程序代码包括计算机操作指令。处理器1210可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecificIntegratedCircuit),或者是被配置成实施本申请实施例的一个或多个集成电路。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,存储模块,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1