CN108255640B - 分布式存储中冗余数据快速恢复方法及装置 - Google Patents
分布式存储中冗余数据快速恢复方法及装置 Download PDFInfo
- Publication number
- CN108255640B CN108255640B CN201711346282.0A CN201711346282A CN108255640B CN 108255640 B CN108255640 B CN 108255640B CN 201711346282 A CN201711346282 A CN 201711346282A CN 108255640 B CN108255640 B CN 108255640B
- Authority
- CN
- China
- Prior art keywords
- storage
- server
- data
- data block
- num
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1608—Error detection by comparing the output signals of redundant hardware
- G06F11/1612—Error detection by comparing the output signals of redundant hardware where the redundant component is persistent storage
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Retry When Errors Occur (AREA)
Abstract
本发明提供一种分布式存储中冗余数据快速恢复方法及装置,其中方法包括:读取配置文件,配置文件包括与存储数据服务器一一对应的存储服务器编号和存储服务器IP地址;判断存储服务器IP地址所对应的存储数据服务器是否发生异常,若是,将异常数据服务器的存储服务器IP地址存储至异常数据表中;向所有存储数据服务器发送数据块遍历消息,接收存储数据服务器发送的反馈信息,并将反馈信息存储至异常数据表中,向异常数据表中第一存储数据块所对应的存储服务器IP地址发送恢复消息,以将第一存储数据块包括的数据复制到目的数据服务器中。上述方法及装置克服了传统冗余数据块查询时间消耗,并且大大减少了计算消耗,进一步提高了数据恢复效率。
Description
技术领域
本发明涉及及计算机技术领域,尤其涉及一种分布式存储中冗余数据快速恢复方法及装置。
背景技术
分布式存储是当前大数据快速增长背景下,有效解决海量数据存储的一种思想和方法。分布式存储是把数据拆分为若干小块存储在不同的存储节点上,有效的提高了存储的并行读写效率。这种存储模式能够利用分布式计算的相关理论有效的保障数据在存储过程中的扩展性、可用性和可靠性。
但是由于数据块的分布性质,各台数据存储服务器的数据块异常都会导致整个系统不可用或服务失效。在这种情况下就需要合理的数据恢复机制和方法,以保证在一定数量服务器出现异常的情况下能够快速恢复数据,从而提供可靠的持续存储服务。
随着数据量的快速增长,如何快速恢复数据成为了当前的一个重要技术需要。目前,在分布式存储中,数据冗余副本和数据纠删码方法是数据快级别的数据恢复方法,其中,数据冗余方法主要用于对象和文件级的数据备份,为了便于管理,备份数据全部或部分存储到本地或异地服务器;而块级的冗余数据备份恢复时候,需要扫描大量的数据块,并且需要通过多个数据块之间的校验来达到数据恢复的要求,这就带来了巨大的I/O成本;而数据纠删码相对于冗余的方式,节省了存储空间,不足之处是带来了时间开销,需要通过计算修复缺失数据,恢复时间较长,因此不适合高速数据恢复的场合。
发明内容
本发明提供一种分布式存储中冗余数据快速恢复方法及装置,用以解决现有技术中对分布式存储中的数据进行恢复时查找时间长,查找效率低的技术问题。
为解决上述技术问题,本发明一方面提供一种分布式存储中冗余数据快速恢复方法,包括管理服务器和至少三个存储数据服务器,存储数据服务器与存储服务器编号一一对应,各存储服务器编号均取正整数,且各存储服务器编号呈等差数列分布;任一存储数据服务器包括的第一存储数据块在其他存储数据服务器上均有备份,第一存储数据块包括数据块描述信息,所述方法包括:
步骤101,管理服务器读取配置文件,配置文件包括与存储数据服务器一一对应的存储服务器编号和存储服务器IP地址;
步骤102,管理服务器判断存储服务器IP地址所对应的存储数据服务器是否发生异常,若是,将异常数据服务器的存储服务器IP地址存储至异常数据表中;异常数据服务器为发生异常的存储数据服务器;
步骤103,管理服务器向所有存储数据服务器发送数据块遍历消息,接收存储数据服务器发送的存储数据服务器根据第一预设规则获取的反馈信息,并将反馈信息存储至异常数据表中,其中,数据块遍历消息包括异常数据服务器的存储服务器编号,反馈信息包括用于进行数据恢复的第一存储数据块的数据块描述信息及第一存储数据块所在的存储数据服务器的存储服务器IP地址;
步骤104,管理服务器向异常数据表中第一存储数据块所对应的存储服务器IP地址发送恢复消息,以使得第一存储数据块所在的存储数据服务器根据第二预设规则将第一存储数据块包括的数据复制到目的数据服务器中,其中,恢复消息包括数据块描述信息和异常数据服务器的存储服务器编号,存储数据服务器包括目的数据服务器。
进一步的,步骤102具体包括:
管理服务器向存储数据服务器的存储服务器IP地址发送验证节点是否在线消息,若在预设时间内,未接收到存储数据服务器的用于显示状态正常的返回消息,则将存储服务器IP地址存储至异常数据表中。
进一步的,步骤102还包括,管理服务器对存储数据服务器的第一存储数据块进行稳态结构分析,若该第一存储数据块根据第三预设规则未找到备份,则将该第一存储数据块的数据块描述信息和存储服务器IP地址存储至异常数据表中。
进一步的,数据块描述信息包括IsP是否为真、所属数据库编号、第一数据块编号和移动步长,IsP为真时,表示该第一存储数据块为主块,否则为备块,主块与备块互为备份;
第三预设规则包括:
判断存储服务器编号为Numa的存储数据服务器上的第一存储数据块的IsP是否为真,若为真,判断Numa+Step>TotalServer是否成立,若成立,Numb=(Numa+Step)%TotalServer,若不成立,Numb=Numa+Step,Numb为该第一存储数据块的备份所存放的存储数据服务器的存储服务器编号;
在存储服务器编号为Numb的存储数据服务器上进行查找,若未查找到第一存储数据块的备份,则将存储服务器编号为Numb的存储数据服务器的存储服务器IP地址和该第一存储数据块的数据块描述信息存储至异常数据表中;
若IsP为假,根据Num'N=(TotalServer-Num'O)+1修改各存储数据服务器的存储服务器编号;Num'N为修改前存储服务器编号为Num'O的存储数据服务器的临时编号;
判断Num'a+Step>TotalServer是否成立,若成立,Num'b=(Num'a+Step)%TotalServer,若不成立,Num'b=Num'a+Step;Num'b为该第一存储数据块的备份所存放的存储数据服务器的临时编号;
在临时编号为Num'b的存储数据服务器上进行查找,若未查找到第一存储数据块的备份,则将临时编号为Num'b的存储数据服务器的存储服务器IP地址存储和该第一存储数据块的数据块描述信息至异常数据表中。
进一步的,第一预设规则包括:
存储服务器编号为Numi的存储数据服务器获取其所有第一存储数据块集合BlockList,其中,数据块描述信息包括IsP是否为真、所属数据库编号、第一数据块编号和移动步长,IsP为真时,表示该第一存储数据块为主块,否则为备块;存储服务器编号小于ExpNum的存储数据服务器集合并记为ServerList,其中,ServerList中第i个存储数据服务器对应的存储服务器编号为Numi,ExpNum为异常数据表中的异常数据服务器所对应的存储服务器编号;
存储服务器编号为Numi的存储数据服务器遍历BlockList中的第一存储数据块,对于第一数据块编号为Blockj的第一存储数据块,判断其IsP是否为真,若IsP为真,则计算TargetNum=Numi+Step的值,其中,Step为移动步长,TargetNum表示待计算的存储服务器编号;Blockj表示BlockList中第j个第一存储数据块对应的第一数据块编号;
若IsP为假,先对存储服务器编号通过表达式Numi'=Numi-TotalServer+1进行反序,再计算TargetNum=(Numi'+Step)%TotalServer,TotalServer表示存储数据服务器的总数量;
存储服务器编号为Numi的存储数据服务器判断TargetNum的值是否与ExpNum的值相等,若相等,将第一数据块编号为Blockj的第一存储数据块的数据块描述信息添加到其本地数据临时恢复表中。
进一步的,第一预设规则还包括:
存储服务器编号为Numm的存储数据服务器获取其所有第一存储数据块集合BlockList’,其中,第一存储数据块包括数据块描述信息,数据块描述信息包括IsP是否为真、第一数据块编号和移动步长,IsP为真时,表示该第一存储数据块为主块,否则为备块;存储服务器编号大于ExpNum的存储数据服务器集合并记为ServerList’,其中,ServerList’中第m个存储数据服务器对应的存储服务器编号为Numm;
存储服务器编号为Numm的存储数据服务器遍历BlockList’中的第一存储数据块,对于第一数据块编号为Blockn的第一存储数据块,判断其IsP是否为真,若IsP为真,则计算TargetNum’=Numm-Step的值,其中,Step为移动步长,TargetNum’表示待计算的存储服务器编号;Blockn表示BlockList’中第n个第一存储数据块对应的第一数据块编号;
若IsP为假,计算TargetNum’=(Numm+Step)%TotalServer;
存储服务器编号为Numm的存储数据服务器判断TargetNum’的值是否与ExpNum的值相等,若相等,将第一数据块编号为Blockn的第一存储数据块的数据块描述信息添加到其本地数据临时恢复表中。
进一步的,数据块描述信息包括IsP是否为真、所属数据库编号、第一数据块编号和移动步长,IsP为真时,表示该第一存储数据块为主块,否则为备块;
第二预设规则包括:
步骤a,存储服务器编号为Numcur的存储数据服务器根据恢复消息携带的所属数据库编号和第一数据块编号判断该第一存储数据块是否为本存储数据服务器上的第一存储数据块,若是,判断IsP是否为真,若IsP为真,转步骤a1执行;
步骤a1,判断Numexp的值是否大于Numcur的值,若大于,计算Distance=(Numexp-Numcur)%TotalServer,判断Distance的值是否等于恢复消息中携带的移动步长的值,若等于,转步骤b1执行;
步骤b1,判断(Numcur+1)+Step>TotalServer是否成立,若成立,P=((Numcur+1)+Step)%TotalServer,若不成立,P=((Numcur+1)+Step);其中,TotalServer表示存储数据服务器的总数量,Numcur为接收到恢复消息的存储数据服务器的存储服务器编号,Numexp为恢复消息携带的异常数据服务器的存储服务器编号,Step为恢复消息携带的移动步长的值;
步骤c1,判断P的值是否等于Numexp的值,若等于,将Step的值加1,转步骤b1执行;若不等于,将与恢复消息携带的数据块描述信息对应的第一存储数据块包括的数据复制到存储服务器编号为P的存储数据服务器上。
进一步的,第二预设规则还包括:
若IsP为假,转步骤a2执行;
步骤a2,修改存储服务器编号:
根据NumN=(TotalServer-NumO)+1修改各存储数据服务器的存储服务器编号;NumN为修改前存储服务器编号为NumO的存储数据服务器的临时编号;
步骤b2,判断Num'exp的值是否大于Num'cur的值,若大于,计算Distance=(Num'exp-Num'cur)%TotalServer,判断Distance的值是否等于恢复消息中携带的移动步长的值,若等于,转步骤b1执行;其中,Num'exp为修改前存储服务器编号为Numexp的存储数据服务器的临时编号,Num'cur为修改前存储服务器编号为Numcur的存储数据服务器的临时编号;
步骤b3,判断(Num'cur+1)+Step>TotalServer是否成立,若成立,P=((Num'cur+1)+Step)%TotalServer,若不成立,P=((Num'cur+1)+Step);
步骤b4,判断P的值是否等于Num'exp的值,若等于,将Step的值加1,转步骤b2执行;若不等于,将与恢复消息携带的数据块描述信息对应的第一存储数据块包括的数据复制到临时编号为P的存储数据服务器上。
本发明另一种分布式存储中冗余数据快速恢复装置,包括:管理服务器和至少三个存储数据服务器,存储数据服务器与存储服务器编号一一对应,各存储服务器编号均取正整数,且各存储服务器编号呈等差数列分布;任一存储数据服务器包括的第一存储数据块在其他存储数据服务器上均有备份,上述装置还包括:
管理服务器包括配置文件读取模块、异常判断模块,异常信息存储模块、遍历消息发送模块、恢复消息发送模块和反馈信息接收模块;
其中,配置文件读取模块,用于读取配置文件,配置文件包括与存储数据服务器一一对应的存储服务器编号和存储服务器IP地址;
异常判断模块,用于判断存储服务器IP地址所对应的存储数据服务器是否发生异常,若是,触发异常信息存储模块;
异常信息存储模块,用于将异常数据服务器的存储服务器IP地址存储至异常数据表中;异常数据服务器为发生异常的存储数据服务器;
遍历消息发送模块,用于向存储数据服务器发送数据块遍历消息;
反馈信息接收模块,用于接收存储数据服务器根据第一预设规则获取的反馈信息,并将反馈信息存储至异常数据表中,其中,数据块遍历消息包括异常数据服务器的存储服务器编号,反馈信息包括用于进行数据恢复的第一存储数据块的数据块描述信息及第一存储数据块所在的存储数据服务器的存储服务器IP地址;
恢复消息发送模块,用于向异常数据表中第一存储数据块所对应的存储服务器IP地址发送恢复消息,以使得第一存储数据块所在的存储数据服务器根据第二预设规则将第一存储数据块包括的数据复制到目的数据服务器中,其中,恢复消息包括数据块描述信息和异常数据服务器的存储服务器编号。
进一步的,上述装置还包括存储数据服务器,存储数据服务器包括消息接收模块、第一预设规则执行模块、反馈信息发送模块和数据恢复执行模块;
消息接收模块,用于接收管理服务器发送的数据块遍历消息和恢复消息,并分别将数据块遍历消息、恢复消息传送给第一预设规则执行模块和数据恢复执行模块;
第一预设规则执行模块,用于根据数据块遍历消息和第一预设规则对自身包括的第一存储数据块进行遍历,以判断第一存储数据块是否为为异常数据服务器进行数据恢复的第一存储数据块,若是,将该第一存储数据块的数据块描述信息存储至本地数据临时恢复表中;
反馈信息发送模块,用于根据存储在本地数据临时恢复表中的信息生成反馈信息发送给管理服务器,反馈信息包括第一存储数据块的数据块描述信息及第一存储数据块所在的存储数据服务器的存储服务器IP地址;
数据恢复执行模块,用于根据恢复消息和第二预设规则将恢复消息中数据块描述信息所对应的第一存储数据块包括的数据复制到目的数据服务器中,其中,恢复消息包括数据块描述信息和异常数据服务器的存储服务器编号。
本发明提供的分布式存储中冗余数据快速恢复方法及装置,通过管理服务器对各个存储数据服务器进行异常验证,从而获得异常数据服务器,然后对异常数据服务器上存储的第一存储数据块的备份进行查找,并将查找到的第一存储数据块的数据块描述信息存储至异常数据表中,最后根据异常数据表中存储的数据块描述信息对其备份进行恢复,整个备份恢复过程快速且计算量小。对于分条分块分布式存储的第一存储数据块的冗余存储,第一存储数据块可以分布在不同的机器上,当单台存储数据服务器上的数据丢失,可以利用其他存储数据服务器上的数据通过上述方式快速恢复,克服了传统冗余数据块查询时间消耗,并且相对于纠删码方式,大大减少了计算消耗,进一步提高了数据恢复效率。
附图说明
在下文中将基于实施例并参考附图来对本发明进行更详细的描述。其中:
图1为本发明实施例提供的分布式存储结构图示意图;
图2为本发明实施例提供的分布式存储中冗余数据快速恢复方法的流程示意图;
图3为本发明实施例提供的分布式存储结构第一存储数据块移动规则示意图;
图4为本发明实施例提供的分布式存储结构第一存储数据块的一存储结构示意图;
图5为本发明实施例提供的分布式存储结构第一存储数据块的另一存储结构示意图;
图6为本发明实施例提供的分布式存储中冗余数据快速恢复装置的一结构示意图;
图7为本发明实施例提供的分布式存储中冗余数据快速恢复装置的另一结构示意图。
在附图中,相同的部件使用相同的附图标记。附图并未按照实际的比例绘制。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例一
本实施例中的分布式存储中冗余数据快速恢复方法应用于分布式存储环境中,该分布式存储环境具体为:包括管理服务器和至少三个存储数据服务器,存储数据服务器与存储服务器编号一一对应,各存储服务器编号均取正整数,且各存储服务器编号呈等差数列分布;任一存储数据服务器包括的第一存储数据块在其他存储数据服务器上均有备份,第一存储数据块包括数据块描述信息。如图1所示,A表示管理服务器,B表示存储数据服务器。
对于存储服务器编号相邻的两台存储数据服务器而言,分别用Sm和Sn表示这两台存储数据服务器的存储服务器编号:
其中,q为常数,也定义为本实施例中规则的最大移动距离(即下文中Step的最大取值)。
图2为本发明实施例提供的分布式存储中冗余数据快速恢复方法的一流程示意图,如图2所示,本实施例提供一种分布式存储中冗余数据快速恢复方法,包括以下步骤101-步骤104。
其中,步骤101,管理服务器读取配置文件,配置文件包括与存储数据服务器一一对应的存储服务器编号和存储服务器IP地址。
具体的,配置文件中包括存储数据服务器、存储服务器编号和存储服务器IP地址,对于任意一个存储数据服务器,均对应有唯一的存储服务器编号和存储服务器IP地址。
步骤102,管理服务器判断存储服务器IP地址所对应的存储数据服务器是否发生异常,若是,执行步骤102’。
步骤102’,将异常数据服务器的存储服务器IP地址存储至异常数据表中;异常数据服务器为发生异常的存储数据服务器。
管理服务器通过读取配置文件,依次对存储服务器IP地址所对应的存储数据服务器发送验证节点是否在线消息,以判断存储数据服务器是否发生异常,若有异常(该异常使得该存储数据服务器上存储的所有第一存储数据块均不可用),则将该存储服务器IP地址存储至异常数据表中,异常数据表位于管理服务器上。
进一步的,为了验证存储数据服务器上存储的第一存储数据块是否有异常,还需要对所有存储数据服务器自身包括的所有第一存储数据块进行验证。即对配置文件中的存储数据服务器依次验证其包括的第一存储数据块是否有异常,若有异常,该异常为在其他存储数据服务器上找不到其备份,则将该第一存储数据块的数据块描述信息和第一存储数据块所在的存储数据服务器的存储服务器IP地址存储至异常数据表中。
步骤103,管理服务器向所有存储数据服务器发送数据块遍历消息,接收存储数据服务器发送的存储数据服务器根据第一预设规则获取的反馈信息,并将反馈信息存储至异常数据表中,其中,数据块遍历消息包括异常数据服务器的存储服务器编号,反馈信息包括用于为异常数据服务器进行数据恢复的第一存储数据块的数据块描述信息及第一存储数据块所在的存储数据服务器的存储服务器IP地址。
本步骤用于为异常数据表中的异常数据服务器上存储的第一存储数据块查找备份。各存储数据服务器接收到管理服务器发送的数据块遍历消息后,各自对自身包括的第一存储数据块进行遍历。第一预设规则与存储服务器编号有关。存储数据服务器根据自身的存储服务器编号和数据块遍历消息中携带的存储服务器编号根据第一预设规则进行查找,以确认自身存储的第一存储数据块是否为异常数据服务器上存储的第一存储数据块的备份,若是,将查找到的该第一存储数据块的数据块描述信息添加到第一存储数据块所在的存储数据服务器的本地数据临时恢复表中,并且,存储服务器将将本地数据临时恢复表中的第一存储数据块的数据块描述信息和存储服务器IP地址组成反馈信息,并将反馈发送给管理服务器,以存储在异常数据表中。
步骤104,管理服务器向异常数据表中第一存储数据块所对应的存储服务器IP地址发送恢复消息,以使得第一存储数据块所在的存储数据服务器根据第二预设规则将第一存储数据块包括的数据复制到目的数据服务器中,其中,恢复消息包括数据块描述信息和异常数据服务器的存储服务器编号,存储数据服务器包括目的数据服务器。
异常数据表中存储的数据块描述信息所对应的第一存储数据块,均可用于恢复其备份。管理服务器向异常数据表中第一存储数据块所对应的存储服务器IP地址发送恢复消息,收到恢复消息的存储数据服务器首先对恢复消息中携带的数据块描述信息进行核对,以验证该数据块描述信息所对应的第一存储数据块是否属于其包括的第一存储数据块,若验证未通过,则不做处理。若验证通过,存储数据服务器根据第二预设规定将第一存储数据块包括的数据复制到目的数据服务器中,第二预设规则与存储服务器编号有关。
本实施例中的分布式存储中冗余数据快速恢复方法,通过管理服务器对各个存储数据服务器进行异常验证,从而获得异常数据服务器,然后对异常数据服务器上存储的第一存储数据块的备份进行查找,并将查找到的第一存储数据块的数据块描述信息存储至异常数据表中,最后根据异常数据表中存储的数据块描述信息对其备份进行恢复,整个备份恢复过程快速且计算量小。对于分条分块分布式存储的第一存储数据块的冗余存储,第一存储数据块可以分布在不同的机器上,当单台存储数据服务器上的数据丢失,可以利用其他存储数据服务器上的数据通过上述方式快速恢复,克服了传统冗余数据块查询时间消耗,并且相对于纠删码方式,大大减少了计算消耗,进一步提高了数据恢复效率。
在本发明另一个具体实施例中,步骤102具体包括:管理服务器向存储数据服务器的存储服务器IP地址发送验证节点是否在线消息,若在预设时间内,未接收到存储数据服务器的用于显示状态正常的返回消息,则将存储服务器IP地址存储至异常数据表中。
具体的,管理服务器和存储数据服务器中均运行有数据恢复线程,当分布式存储系统需要进行数据恢复操作时,由管理服务器中的数据恢复线程向通过配置文件读取到的存储服务器IP地址,依次向相应的存储数据服务器的数据恢复线程发送验证节点是否在线消息,若在预设时间T内收到存储数据服务器的返回消息,且消息的MD5摘要、校验位、魔数都合法和状态位正常,则认为该存储数据服务器为健康状态,否则认为该存储数据服务器存在异常,在管理服务器的异常数据表中记录异常数据服务器的存储服务器IP地址,进一步的,还可将端口号一并记录。通过异常数据表中记录的存储服务器IP地址和端口号与配置文件中记录的存储服务器IP地址IP和存储服务器编号的对应关系,可确定异常数据服务器的存储服务器编号。
在本发明另一个具体实施例中,步骤102还包括,管理服务器对存储数据服务器的第一存储数据块进行稳态结构分析,若该第一存储数据块根据第三预设规则未找到备份,则将该第一存储数据块的数据块描述信息和存储服务器IP地址存储至异常数据表中。
具体的,数据块描述信息包括IsP是否为真、所属数据库编号、第一数据块编号和移动步长,当IsP为真时,表示该第一存储数据块为主块,否则为备块,主块与备块互为备份。第三预设规则包括:
步骤201,判断存储服务器编号为Numa的存储数据服务器上的第一存储数据块的IsP是否为真,若为真,判断Numa+Step>TotalServer是否成立,若成立,Numb=(Numa+Step)%TotalServer,若不成立,Numb=Numa+Step,Numb为该第一存储数据块的备份所存放的存储数据服务器的存储服务器编号。
步骤202,在存储服务器编号为Numb的存储数据服务器上进行查找,若未查找到第一存储数据块的备份,则将存储服务器编号为Numb的存储数据服务器的存储服务器IP地址和该第一存储数据块的数据块描述信息存储至异常数据表中。
步骤201’,若IsP为假,根据Num'N=(TotalServer-Num'O)+1修改各存储数据服务器的存储服务器编号;Num'N为修改前存储服务器编号为Num'O的存储数据服务器的临时编号。
步骤202’,判断Num'a+Step>TotalServer是否成立,若成立,Num'b=(Num'a+Step)%TotalServer,若不成立,Num'b=Num'a+Step;Num'b为该第一存储数据块的备份所存放的存储数据服务器的临时编号;
步骤203’,在临时编号为Num'b的存储数据服务器上进行查找,若未查找到第一存储数据块的备份,则将临时编号为Num'b的存储数据服务器的存储服务器IP地址存储和该第一存储数据块的数据块描述信息至异常数据表中。
第三预设规则用于检测数据稳态结构是否被破坏,具备稳态结构的分布式冗余块结构如图3所示,数据块D1,D2,…,D12在四台数据存储服务器DS1-DS4节点上的均衡分布,其中,D1-D4具有“移一”规则(即Step为1),D5-D8具有“移二”规则,并约定移动方向从左到右。为了更方便看出数据在不同存储数据服务器之间的移动,画出了逻辑层数,如图4中C所示,图中具有相同形状的第一存储数据块互为备份。其中主块用于标识原始数据,移动规则的起始点,即数据从哪里开始移动,例如第一层的D1为主块,第二层的D1为备块,移动方向规定:从左到右只能由主块复制到备块,从右到左只能由备块移动到主块。由上述规则可知,通过第一存储数据块和当前存储数据服务器的存储服务编号,就可以通过其移动规则找到相应的主块或者备块数据,如果按照上述规则未能找到相应主块或者备块,说明第一存储数据块存在异常。
本方法应用的分布式存储环境中存储数据服务器上第一存储数据块的存储规则与上述第三存储规则基本一致,区别在于:根据第一存储数据块确定出备份所应存储的数据存储服务器之后,需要将第一存储数据块的备份存储至该存储数据服务器上。各存储数据服务器上的第一存储数据块根据此种方式进行存储,后续在对存储数据服务器上的第一存储数据块进行遍历,以验证第一存储数据块的备份是否有异常时,采用上述第三预设规则进行验证。
在本发明一个具体实施例中,第一预设规则包括步骤301-步骤304。步骤301-步骤304用于在存储服务器编号小于异常数据服务器的存储服务器编号中进行查找,以查找异常数据服务器丢失的第一存储数据块。
其中,步骤301,存储服务器编号为Numi的存储数据服务器获取其所有第一存储数据块集合BlockList,其中,数据块描述信息包括IsP是否为真、所属数据库编号、第一数据块编号和移动步长,IsP为真时,表示该第一存储数据块为主块,否则为备块;存储服务器编号小于ExpNum的存储数据服务器集合并记为ServerList,其中,ServerList中第i个存储数据服务器对应的存储服务器编号为Numi,ExpNum为异常数据表中的异常数据服务器所对应的存储服务器编号。
步骤302,存储服务器编号为Numi的存储数据服务器遍历BlockList中的第一存储数据块,对于第一数据块编号为Blockj的第一存储数据块,判断其IsP是否为真,若IsP为真,则计算TargetNum=Numi+Step的值,其中,Step为移动步长,TargetNum表示待计算的存储服务器编号;Blockj表示BlockList中第j个第一存储数据块对应的第一数据块编号;
步骤303,若IsP为假,先对存储服务器编号通过表达式Numi'=Numi-TotalServer+1进行反序,再计算TargetNum=(Numi'+Step)%TotalServer,TotalServer表示存储数据服务器的总数量;
步骤304,存储服务器编号为Numi的存储数据服务器判断TargetNum的值是否与ExpNum的值相等,若相等,将第一数据块编号为Blockj的第一存储数据块的数据块描述信息添加到其本地数据临时恢复表中。然后存储数据服务器将本地数据临时恢复表中的第一存储数据块的数据块描述信息和其自身的存储服务器IP地址形成反馈信息发送给管理服务器。
进一步的,上述第一预设规则还包括步骤301’-步骤304’。第一预设规则包括步骤301’-步骤304’。步骤301’-步骤304’用于在存储服务器编号大于异常数据服务器的存储服务器编号中进行查找,以查找异常数据服务器丢失的第一存储数据块。
步骤301’,存储服务器编号为Numm的存储数据服务器获取其所有第一存储数据块集合BlockList’,其中,第一存储数据块包括数据块描述信息,数据块描述信息包括IsP是否为真、第一数据块编号和移动步长,IsP为真时,表示该第一存储数据块为主块,否则为备块;存储服务器编号大于ExpNum的存储数据服务器集合并记为ServerList’,其中,ServerList’中第m个存储数据服务器对应的存储服务器编号为Numm;
步骤302’存储服务器编号为Numm的存储数据服务器遍历BlockList’中的第一存储数据块,对于第一数据块编号为Blockn的第一存储数据块,判断其IsP是否为真,若IsP为真,则计算TargetNum’=Numm-Step的值,其中,Step为移动步长,TargetNum’表示待计算的存储服务器编号;Blockn表示BlockList’中第n个第一存储数据块对应的第一数据块编号;
步骤303’若IsP为假,计算TargetNum’=(Numm+Step)%TotalServer;
步骤304’存储服务器编号为Numm的存储数据服务器判断TargetNum’的值是否与ExpNum的值相等,若相等,将第一数据块编号为Blockn的第一存储数据块的数据块描述信息添加到其本地数据临时恢复表中。然后存储数据服务器将本地数据临时恢复表中的第一存储数据块的数据块描述信息和其自身的存储服务器IP地址形成反馈信息发送给管理服务器。
在本发明又一个具体实施例中,数据块描述信息包括IsP是否为真、所属数据库编号、第一数据块编号和移动步长,IsP为真时,表示该第一存储数据块为主块,否则为备块。第二预设规则包括:
步骤a,存储服务器编号为Numcur的存储数据服务器根据恢复消息携带的所属数据库编号和第一数据块编号判断该第一存储数据块是否为本存储数据服务器上的第一存储数据块,若是,判断IsP是否为真,若IsP为真,转步骤a1执行;
步骤a1,判断Numexp的值是否大于Numcur的值,若大于,计算Distance=(Numexp-Numcur)%TotalServer,判断Distance的值是否等于恢复消息中携带的移动步长的值,若等于,转步骤b1执行;
步骤b1,判断(Numcur+1)+Step>TotalServer是否成立,若成立,P=((Numcur+1)+Step)%TotalServer,若不成立,P=((Numcur+1)+Step);其中,TotalServer表示存储数据服务器的总数量,Numcur为接收到恢复消息的存储数据服务器的存储服务器编号,Numexp为恢复消息携带的异常数据服务器的存储服务器编号,Step为恢复消息携带的移动步长的值;
步骤c1,判断P的值是否等于Numexp的值,若等于,将Step的值加1,转步骤b1执行;若不等于,将与恢复消息携带的数据块描述信息对应的第一存储数据块包括的数据复制到存储服务器编号为P的存储数据服务器上。
具体的,若P与Numexp的值相等,则说明计算后的备块和主块在同一服务器上,此时需要调整移动规则,令Step=Step+1,重新执行上述步骤b1计算P值。
进一步的,上述第二预设规则还包括:
若IsP为假,转步骤a2执行;
步骤a2,修改存储服务器编号:
根据NumN=(TotalServer-NumO)+1修改各存储数据服务器的存储服务器编号;NumN为修改前存储服务器编号为NumO的存储数据服务器的临时编号;
步骤b2,判断Num'exp的值是否大于Num'cur的值,若大于,计算Distance=(Num'exp-Num'cur)%TotalServer,判断Distance的值是否等于恢复消息中携带的移动步长的值,若等于,转步骤b1执行;其中,Num'exp为修改前存储服务器编号为Numexp的存储数据服务器的临时编号,Num'cur为修改前存储服务器编号为Numcur的存储数据服务器的临时编号;
步骤b3,判断(Num'cur+1)+Step>TotalServer是否成立,若成立,P=((Num'cur+1)+Step)%TotalServer,若不成立,P=((Num'cur+1)+Step);
步骤b4,判断P的值是否等于Num'exp的值,若等于,将Step的值加1,转步骤b2执行;若不等于,将与恢复消息携带的数据块描述信息对应的第一存储数据块包括的数据复制到临时编号为P的存储数据服务器上。
具体的,若P与Num'exp的值相等,则说明计算后的备块和主块在同一服务器上,此时需要调整移动规则,令Step=Step+1,重新执行上述步骤b2计算P值。
以下列举具体实施例以对上述实施例进行详细说明。
如图4所示,图4中包括一个具有4台存储数据服务器的基于存储规则(上文有提到)移动的冗余块数据存储分布示例,4台数据存储服务器依次编号为1#,2#,3#,4#;图4中3#为发生异常的服务器或存在第一数据异常服务器;图中有涂黑框的为主块,没有涂黑框的为备块;为了便于说明移动恢复的方法,省略其他信息,使用了<数据块编号,移动步骤>表示每一块,图4中共10个数据块,在数据存储服务器3#没有出现异常时,处于数据冗余稳态状态,该状态满足如下几个条件:1)任何第一存储数据块都有冗余副本数据,在本实施例中,冗余副本的数量设为1,即任何第一存储数据块都有一个副本;2)任何备块数据与主块数据都不保存在同一数据存储服务器上;3)数据存储服务器的存储服务器编号之差为等差数列,且单次移动距离为存储服务器编号的公差,在本实施例中单次移动距离为1。
存储服务器编号为3#的数据存储服务器上的第一存储数据块丢失后,通过其他数据存储服务器上的第一存储数据块可以知道<D8#,2>和<D9#,1>的主块丢失,<D4#,1>,<D1#,6>,<D7#,9>的备块丢失。恢复数据的过程分别为:
对于<D9#,1>,从4#服务器恢复主块,计算2=((4+1)+1)%4,可知主块位置应该在2#服务器上;对于<D8#,2>,计算0=((1+2)+1)%4,编号不存在,继续计算,2=((1+(2+1))+1)%4,可知主块位置应该在2#服务器上;对于<D4#,1>,由于4=((2+1)+1),可知副本数据存放在4#服务器上;<D7#,1>与<D4#,1>类似;对于<D1#,2>,4=((1+1)+2),可知副本应该存放在4#服务器上;该步骤可简化为如下移动方法:
<D8#,2>:从1#服务器上可知<D8#,2>的主块丢失,由于是备块,因此按照移动反向的反方向移动2步,就可以恢复主块;但由于3#服务器失效,因此恢复的主块数据应该存放到2#服务器上,才能满足移动规则;
<D9#,1>:从4#服务器上可知<D9#,1>的主块丢失,由于是备块,因此按照移动反向的反方向移动1步,就可以恢复主块;但由于3#服务器失效,因此恢复的主块数据应该存放到2#服务器上,才能满足移动规则;
<D4#,1>:从2#服务器上数据可知备块丢失,由于是主块,因此按照顺时针方向移动1步,就可以恢复备块;但由于3#服务器失效,因此恢复的备块数据应该存放到4#上,才能满足移动规则;
<D1#,2>:从1#服务器上数据可知备块丢失,由于是主块,因此按照顺时针方向移动2步,就可以恢复备块;但由于3#服务器失效,因此恢复的备块数据应该存放到4#上,才能满足移动规则;
<D7#,1>:从2#服务器上数据可知备块丢失,由于是主块,因此按照顺时针方向移动1步,就可以恢复备块;但由于3#服务器失效,因此恢复的备块数据应该存放到4#上。
恢复后的数据如图5所示,形成了新的稳态数据布局。
实施例二
本实施例是与上述方法实施例对应的装置实施例,用于执行实施例一中的方法。
如图6所示,本实施例提供一种分布式存储中冗余数据快速恢复装置,包括:管理服务器和至少三个存储数据服务器,存储数据服务器与存储服务器编号一一对应,各存储服务器编号均取正整数,且各存储服务器编号呈等差数列分布;任一存储数据服务器包括的第一存储数据块在其他存储数据服务器上均有备份,还包括:管理服务器包括配置文件读取模块601、异常判断模块602,异常信息存储模块603、遍历消息发送模块604、恢复消息发送模块605和反馈信息接收模块606。
其中,配置文件读取模块601,用于读取配置文件,配置文件包括与存储数据服务器一一对应的存储服务器编号和存储服务器IP地址;
异常判断模块602,用于判断存储服务器IP地址所对应的存储数据服务器是否发生异常,若是,触发异常信息存储模块;
异常信息存储模块603,用于将异常数据服务器的存储服务器IP地址存储至异常数据表中;异常数据服务器为发生异常的存储数据服务器;
遍历消息发送模块604,用于向存储数据服务器发送数据块遍历消息;
恢复消息发送模块605,用于向异常数据表中第一存储数据块所对应的存储服务器IP地址发送恢复消息,以使得第一存储数据块所在的存储数据服务器根据第二预设规则将第一存储数据块包括的数据复制到目的数据服务器中,其中,恢复消息包括数据块描述信息和异常数据服务器的存储服务器编号。
反馈信息接收模块606,用于接收存储数据服务器根据第一预设规则获取的反馈信息,并将反馈信息存储至异常数据表中,其中,数据块遍历消息包括异常数据服务器的存储服务器编号,反馈信息包括用于进行数据恢复的第一存储数据块的数据块描述信息及第一存储数据块所在的存储数据服务器的存储服务器IP地址;
由于本实施例为上述实施例的装置实施例,具体可参见实施例一中的记载,在此不再赘述。
进一步的,如图7所示,上述装置的存储数据服务器包括消息接收模块701、第一预设规则执行模块702、反馈信息发送模块703和数据恢复执行模块704。
消息接收模块701,用于接收管理服务器发送的数据块遍历消息和恢复消息,并分别将数据块遍历消息、恢复消息传送给第一预设规则执行模块702和数据恢复执行模块704;
第一预设规则执行模块702,用于根据数据块遍历消息和第一预设规则对自身包括的第一存储数据块进行遍历,以判断第一存储数据块是否为为异常数据服务器进行数据恢复的第一存储数据块,若是,将该第一存储数据块的数据块描述信息存储至本地数据临时恢复表中;
反馈信息发送模块703,用于根据存储在本地数据临时恢复表中的信息生成反馈信息发送给管理服务器,反馈信息包括第一存储数据块的数据块描述信息及第一存储数据块所在的存储数据服务器的存储服务器IP地址;
数据恢复执行模块704,用于根据恢复消息和第二预设规则将恢复消息中数据块描述信息所对应的第一存储数据块包括的数据复制到目的数据服务器中,其中,恢复消息包括数据块描述信息和异常数据服务器的存储服务器编号。
应该理解的是,本发明所公开的实施例不限于这里所公开的特定结构、处理步骤或材料,而应当延伸到相关领域的普通技术人员所理解的这些特征的等同替代。还应当理解的是,在此使用的术语仅用于描述特定实施例的目的,而并不意味着限制。说明书中提到的“一个实施例”或“实施例”意指结合实施例描述的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,说明书通篇各个地方出现的短语“一个实施例”或“实施例”并不一定均指同一个实施例。
此外,所描述的特征、结构或特性可以任何其他合适的方式结合到一个或多个实施例中。在上面的描述中,提供一些具体的细节,例如材料等,以提供对本发明的实施例的全面理解。然而,相关领域的技术人员将明白,本发明无需上述一个或多个具体的细节便可实现,或者也可采用其它方法、组件、材料等实现。在其它示例中,周知的结构、材料或操作并未详细示出或描述以免模糊本发明的各个方面。
虽然上述示例用于说明本发明在一个或多个应用中的原理,但对于本领域的技术人员来说,在不背离本发明的原理和思想的情况下,明显可以在形式上、用法及实施的细节上作各种修改而不用付出创造性劳动。因此,本发明由所附的权利要求书来限定。
Claims (9)
1.一种分布式存储中冗余数据快速恢复方法,其特征在于,包括管理服务器和至少三个存储数据服务器,所述存储数据服务器与存储服务器编号一一对应,各所述存储服务器编号均取正整数,且各所述存储服务器编号呈等差数列分布;任一所述存储数据服务器包括的第一存储数据块在其他所述存储数据服务器上均有备份,第一存储数据块包括数据块描述信息,所述方法包括:
步骤101,管理服务器读取配置文件,所述配置文件包括与存储数据服务器一一对应的存储服务器编号和存储服务器IP地址;
步骤102,管理服务器判断所述存储服务器IP地址所对应的存储数据服务器是否发生异常,若是,将异常数据服务器的存储服务器IP地址存储至异常数据表中;所述异常数据服务器为发生异常的存储数据服务器;
步骤103,管理服务器向所有存储数据服务器发送数据块遍历消息,接收所述存储数据服务器发送的所述存储数据服务器根据第一预设规则获取的反馈信息,并将所述反馈信息存储至异常数据表中,其中,所述数据块遍历消息包括所述异常数据服务器的存储服务器编号,所述反馈信息包括用于进行数据恢复的第一存储数据块的数据块描述信息及第一存储数据块所在的存储数据服务器的存储服务器IP地址;
步骤104,管理服务器向异常数据表中第一存储数据块所对应的存储服务器IP地址发送恢复消息,以使得第一存储数据块所在的存储数据服务器根据第二预设规则将第一存储数据块包括的数据复制到目的数据服务器中,其中,所述恢复消息包括数据块描述信息和所述异常数据服务器的存储服务器编号,存储数据服务器包括目的数据服务器;
所述第一预设规则包括:
存储服务器编号为Numi的存储数据服务器获取其所有第一存储数据块集合BlockList,其中,所述数据块描述信息包括IsP是否为真、所属数据库编号、第一数据块编号和移动步长,IsP为真时,表示该第一存储数据块为主块,否则为备块;存储服务器编号小于ExpNum的存储数据服务器集合并记为ServerList,其中,ServerList中第i个存储数据服务器对应的存储服务器编号为Numi,ExpNum为异常数据表中的异常数据服务器所对应的存储服务器编号;
存储服务器编号为Numi的存储数据服务器遍历BlockList中的第一存储数据块,对于第一数据块编号为Blockj的第一存储数据块,判断其IsP是否为真;若IsP为真,则计算TargetNum=Numi+Step的值;
若IsP为假,先对存储服务器编号通过表达式Num′i=Numi-TotalSever+1进行反序,再计算TargetNum=(Num′i+Step)%TotalSever,TotalSever表示存储数据服务器的总数量;其中,Step为移动步长,TargetNum表示待计算的存储服务器编号;Blockj表示BlockList中第j个第一存储数据块对应的第一数据块编号;
随后存储服务器编号为Numi的存储数据服务器判断TargetNum的值是否与ExpNum的值相等,若相等,将第一数据块编号为Blockj的第一存储数据块的数据块描述信息添加到其本地数据临时恢复表中。
2.根据权利要求1所述的方法,其特征在于,步骤102具体包括:
管理服务器向所述存储数据服务器的存储服务器IP地址发送验证节点是否在线消息,若在预设时间内,未接收到所述存储数据服务器的用于显示状态正常的返回消息,则将存储服务器IP地址存储至异常数据表中。
3.根据权利要求2所述的方法,其特征在于,步骤102还包括,管理服务器对所述存储数据服务器的第一存储数据块进行稳态结构分析,若该第一存储数据块根据第三预设规则未找到备份,则将该第一存储数据块的数据块描述信息和存储服务器IP地址存储至异常数据表中。
4.根据权利要求3所述的方法,其特征在于,所述数据块描述信息包括IsP是否为真、所属数据库编号、第一数据块编号和移动步长,IsP为真时,表示该第一存储数据块为主块,否则为备块,主块与备块互为备份;
所述第三预设规则包括:判断存储服务器编号为Numa的存储数据服务器上的第一存储数据块的IsP是否为真,若为真,判断Numa+Step>TotalSever是否成立,若成立,Numb=(Numa+Step)%TotalSever;
若不成立,Numb=Numa+Step,Numb为该第一存储数据块的备份所存放的存储数据服务器的存储服务器编号;
在存储服务器编号为Numb的存储数据服务器上进行查找,若未查找到第一存储数据块的备份,则将存储服务器编号Numb的存储数据服务器的存储服务器IP地址和该第一存储数据块的数据块描述信息存储至异常数据表中;
若IsP为假,根据Num′N=(TotalSever-Num′O)+1修改各存储数据服务器的存储服务器编号;Num′N为修改前存储服务器编号为Num′O的存储数据服务器的临时编号;
判断Num′a+Step>TotalSever是否成立,成立,Num′b=(Numa+Step)%TotalSever,若不成立,Num′b=Num′a+Step;Num′b为该第一存储数据块的备份所存放的存储数据服务器的临时编号;
在临时编号为Num′b的存储数据服务器上进行查找,若未查找到第一存储数据块的备份,则将临时编号为Num′b的存储数据服务器的存储服务器IP地址存储和该第一存储数据块的数据块描述信息至异常数据表中。
5.根据权利要求1所述的方法,其特征在于,所述第一预设规则还包括:存储服务器编号为Numm的存储数据服务器获取其所有第一存储数据块集合BlockList′,其中,第一存储数据块包括数据块描述信息,所述数据块描述信息包括IsP是否为真、第一数据块编号和移动步长,IsP为真时,表示该第一存储数据块为主块,否则为备块;存储服务器编号大于ExpNum的存储数据服务器集合并记为SeverList′,其中,SeverList′中第m个存储数据服务器对应的存储服务器编号为Numm;
存储服务器编号为Numm的存储数据服务器遍历BlockList′中的第一存储数据块,对于第一数据块编号为Blockn的第一存储数据块,判断其IsP是否为真,若IsP为真,则计算TargetNum′=Numm-Step的值,其中,Step为移动步长,TargetNum′表示待计算的存储服务器编号;Blockn表示BlockList′中第n个第一存储数据块对应的第一数据块编号;
若IsP为假,计算TargetNum′=(Numm+Step)%TotalSever;
存储服务器编号为Numm的存储数据服务器判断TargetNum′的值是否与ExpNum的值相等,若相等,将第一数据块编号为Blockn的第一存储数据块的数据块描述信息添加到其本地数据临时恢复表中。
6.根据权利要求1所述的方法,其特征在于,所述数据块描述信息包括IsP是否为真、所属数据库编号、第一数据块编号和移动步长,IsP为真时,表示该第一存储数据块为主块,否则为备块;
所述第二预设规则包括:
步骤a,存储服务器编号为Numcur的存储数据服务器根据所述恢复消息携带的所属数据库编号和第一数据块编号判断该第一存储数据块是否为本存储数据服务器上的第一存储数据块,若是,判断IsP是否为真,若IsP为真,转步骤a1执行;
步骤a1,判断Numexp的值是否大于Numcur的值,若大于,计算Distance=(Numexp-Numcur)%TotalSever,判断Distance的值是否等于所述恢复消息中携带的移动步长的值,若等于,转步骤b1执行;
步骤b1,判断(Numcur+1)+Step>TotalSever是否成立,若成立,P=((Numcur+1)+Step)%TotalSever,若不成立,P=((Numcur+1)+Step);其中,TotalSever表示存储数据服务器的总数量,Numcur为接收到所述恢复消息的存储数据服务器的存储服务器编号,Numexp为所述恢复消息携带的异常数据服务器的存储服务器编号,Step为所述恢复消息携带的移动步长的值;
步骤c1,判断P的值是否等于Numexp的值,若等于,将Step的值加1,转步骤b1执行;若不等于,将与所述恢复消息携带的所述数据块描述信息对应的第一存储数据块包括的数据复制到存储服务器编号为P的存储数据服务器上。
7.根据权利要求6所述的方法,其特征在于,
所述第二预设规则还包括:
若IsP为假,转步骤a2执行;
步骤a2,修改存储服务器编号:根据Numm=(TotalSever-Numo)+1修改各存储数据服务器的存储服务器编号;Numm为修改前存储服务器编号为;Numo的存储数据服务器的临时编号;
步骤b2,判断Num′exp的值是否大于Num′cur的值,若大于,计算Distance=(Num′exp-Num′cur)%TotalSever,判断Distance的值是否等于所述恢复消息中携带的移动步长的值,若等于,转步骤b1执行;其中,Num′exp为修改前存储服务器编号为Numexp的存储数据服务器的临时编号,Num′cur为修改前存储服务器编号为Numcur的存储数据服务器的临时编号;
步骤b3,判断(Num′cur+1)+Step>TotalSever是否成立,若成立,P=((Num′cur+1)+Step)%TotalSever,若不成立,P=((Num′cur+1)+Step);
步骤b4,判断P的值是否等于Num′exp的值,若等于,将Step的值加1,转步骤b2执行;若不等于,将与所述恢复消息携带的所述数据块描述信息对应的第一存储数据块包括的数据复制到临时编号为P的存储数据服务器上。
8.一种分布式存储中冗余数据快速恢复装置,其特征在于,包括:管理服务器和至少三个存储数据服务器,所述存储数据服务器与存储服务器编号一一对应,各所述存储服务器编号均取正整数,且各所述存储服务器编号呈等差数列分布;任一所述存储数据服务器包括的第一存储数据块在其他所述存储数据服务器上均有备份,所述装置包括:
管理服务器包括配置文件读取模块、异常判断模块,异常信息存储模块、遍历消息发送模块、恢复消息发送模块和反馈信息接收模块;其中,配置文件读取模块,用于读取配置文件,所述配置文件包括与存储数据服务器一一对应的存储服务器编号和存储服务器IP地址;
异常判断模块,用于判断所述存储服务器IP地址所对应的存储数据服务器是否发生异常,若是,触发异常信息存储模块;
异常信息存储模块,用于将异常数据服务器的存储服务器IP地址存储至异常数据表中;所述异常数据服务器为发生异常的存储数据服务器;
遍历消息发送模块,用于向存储数据服务器发送数据块遍历消息;
反馈信息接收模块,用于接收存储数据服务器根据第一预设规则获取的反馈信息,并将所述反馈信息存储至异常数据表中,其中,所述数据块遍历消息包括所述异常数据服务器的存储服务器编号,所述反馈信息包括用于进行数据恢复的第一存储数据块的数据块描述信息及第一存储数据块所在的存储数据服务器的存储服务器IP地址;
所述第一预设规则包括:
存储服务器编号为Numi的存储数据服务器获取其所有第一存储数据块集合BlockList,其中,所述数据块描述信息包括IsP是否为真、所属数据库编号、第一数据块编号和移动步长,IsP为真时,表示该第一存储数据块为主块,否则为备块;存储服务器编号小于ExpNum的存储数据服务器集合并记为ServerList,其中,ServerList中第i个存储数据服务器对应的存储服务器编号为Numi,ExpNum为异常数据表中的异常数据服务器所对应的存储服务器编号;
存储服务器编号为Numi的存储数据服务器遍历BlockList中的第一存储数据块,对于第一数据块编号为Blockj的第一存储数据块,判断其IsP是否为真;若IsP为真,则计算TargetNum=Numi+Step的值;
若IsP为假,先对存储服务器编号通过表达式Num′i=Numi-TotalSever+1进行反序,再计算TargetNum=(Num′i+Step)%TotalSever,TotalSever表示存储数据服务器的总数量;其中,Step为移动步长,TargetNum表示待计算的存储服务器编号;Blockj表示BlockList中第j个第一存储数据块对应的第一数据块编号;
随后存储服务器编号为Numi的存储数据服务器判断TargetNum的值是否与ExpNum的值相等,若相等,将第一数据块编号为Blockj的第一存储数据块的数据块描述信息添加到其本地数据临时恢复表中;
恢复消息发送模块,用于向异常数据表中第一存储数据块所对应的存储服务器IP地址发送恢复消息,以使得第一存储数据块所在的存储数据服务器根据第二预设规则将第一存储数据块包括的数据复制到目的数据服务器中,其中,所述恢复消息包括数据块描述信息和所述异常数据服务器的存储服务器编号。
9.根据权利要求8所述的装置,其特征在于,还包括:存储数据服务器包括消息接收模块、第一预设规则执行模块、反馈信息发送模块和数据恢复执行模块;
消息接收模块,用于接收管理服务器发送的数据块遍历消息和恢复消息,并分别将所述数据块遍历消息、恢复消息传送给第一预设规则执行模块和数据恢复执行模块;
第一预设规则执行模块,用于根据所述数据块遍历消息和第一预设规则对自身包括的第一存储数据块进行遍历,以判断所述第一存储数据块是否为为异常数据服务器进行数据
恢复的第一存储数据块,若是,将该所述第一存储数据块的数据块描述信息存储至本地数据临时恢复表中;
反馈信息发送模块,用于根据存储在本地数据临时恢复表中的信息生成反馈信息发送给管理服务器,反馈信息包括所述第一存储数据块的数据块描述信息及第一存储数据块所在的存储数据服务器的存储服务器IP地址;
数据恢复执行模块,用于根据所述恢复消息和第二预设规则将恢复消息中数据块描述信息所对应的第一存储数据块包括的数据复制到目的数据服务器中,其中,所述恢复消息包括数据块描述信息和所述异常数据服务器的存储服务器编号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711346282.0A CN108255640B (zh) | 2017-12-15 | 2017-12-15 | 分布式存储中冗余数据快速恢复方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711346282.0A CN108255640B (zh) | 2017-12-15 | 2017-12-15 | 分布式存储中冗余数据快速恢复方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108255640A CN108255640A (zh) | 2018-07-06 |
CN108255640B true CN108255640B (zh) | 2021-11-02 |
Family
ID=62722947
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711346282.0A Active CN108255640B (zh) | 2017-12-15 | 2017-12-15 | 分布式存储中冗余数据快速恢复方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108255640B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6430701B1 (en) * | 1998-01-27 | 2002-08-06 | Aiwa Co., Ltd. | Data recording and reproducing method and apparatus using plurality of data recording and reproducing units, and computer-readable recording medium |
CN101329691A (zh) * | 2008-07-30 | 2008-12-24 | 中兴通讯股份有限公司 | 一种冗余磁盘阵列共享文件系统及其读写方法 |
CN102301367A (zh) * | 2008-10-24 | 2011-12-28 | Ilt创新公司 | 分布式数据存储 |
EP1419457B1 (en) * | 2001-08-20 | 2012-07-25 | Symantec Corporation | File backup system and method |
CN103944981A (zh) * | 2014-04-14 | 2014-07-23 | 中国科学院计算技术研究所 | 一种基于纠删码技术改进的云存储系统及实现方法 |
CN106406754A (zh) * | 2016-08-31 | 2017-02-15 | 北京小米移动软件有限公司 | 数据迁移方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4491330B2 (ja) * | 2004-11-08 | 2010-06-30 | 富士通株式会社 | ディスクアレイ装置とそのデータのリカバリ方法およびデータリカバリプログラム |
-
2017
- 2017-12-15 CN CN201711346282.0A patent/CN108255640B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6430701B1 (en) * | 1998-01-27 | 2002-08-06 | Aiwa Co., Ltd. | Data recording and reproducing method and apparatus using plurality of data recording and reproducing units, and computer-readable recording medium |
EP1419457B1 (en) * | 2001-08-20 | 2012-07-25 | Symantec Corporation | File backup system and method |
CN101329691A (zh) * | 2008-07-30 | 2008-12-24 | 中兴通讯股份有限公司 | 一种冗余磁盘阵列共享文件系统及其读写方法 |
CN102301367A (zh) * | 2008-10-24 | 2011-12-28 | Ilt创新公司 | 分布式数据存储 |
CN103944981A (zh) * | 2014-04-14 | 2014-07-23 | 中国科学院计算技术研究所 | 一种基于纠删码技术改进的云存储系统及实现方法 |
CN106406754A (zh) * | 2016-08-31 | 2017-02-15 | 北京小米移动软件有限公司 | 数据迁移方法及装置 |
Non-Patent Citations (2)
Title |
---|
RSA: RAID system with self-healing and active data migration;Jiguang Wan等;《2010 IEEE International Conference on Intelligent Computing and Intelligent Systems》;20101031;第582-586页 * |
一种分布式冗余的实时数据存储检索机制;李德文等;《上海交通大学学报》;20140728;第48卷(第7期);第948-958页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108255640A (zh) | 2018-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9195543B2 (en) | Method and device for detecting data reliability | |
CN109074297B (zh) | 在同步复制的数据集中启用数据完整性检查和更快的应用恢复 | |
CN106201338B (zh) | 数据存储方法及装置 | |
JP6884128B2 (ja) | データ重複排除装置、データ重複排除方法、及びデータ重複排除プログラム | |
US9928248B2 (en) | Self-healing by hash-based deduplication | |
RU2449358C1 (ru) | Распределенная файловая система и способ управления согласованностью блоков данных в такой системе | |
CN106776130B (zh) | 一种日志恢复方法、存储装置和存储节点 | |
JP4805660B2 (ja) | ディスクライト抜け検出装置 | |
CN110572287B (zh) | 数据容灾方法、装置、计算机设备和存储介质 | |
US7793166B2 (en) | Methods and systems for recovering meta-data in a cache memory after a corruption event | |
WO2016082156A1 (zh) | 元数据的恢复方法及装置 | |
CN109690493A (zh) | 用于修复去重存储装置中的映像的系统和方法 | |
CN110545203B (zh) | 云平台创建初始资源备份池和云平台自愈修复的方法 | |
CN109492049B (zh) | 用于区块链网络的数据处理、区块生成及同步方法 | |
CN106059791A (zh) | 一种存储系统中业务的链路切换方法和存储设备 | |
US7849355B2 (en) | Distributed object sharing system and method thereof | |
CN112506710A (zh) | 分布式文件系统数据修复方法、装置、设备及存储介质 | |
CN105138280A (zh) | 数据写入方法、装置及系统 | |
CN105550230B (zh) | 分布式存储系统节点故障的侦测方法和装置 | |
CN114816266A (zh) | 一种元数据修复方法、系统、存储介质及设备 | |
CN108255640B (zh) | 分布式存储中冗余数据快速恢复方法及装置 | |
CN114003662A (zh) | 基于缓存策略的区块链性能优化机制 | |
CN111404737B (zh) | 一种容灾处理方法以及相关装置 | |
CN112306753A (zh) | 一种数据修复方法、装置及系统 | |
CN111752755A (zh) | 一种继电保护关键数据冗余存储及可靠性恢复系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |