一种基于分布式块存储的副本数据恢复方法和系统与流程

文档序号:32305224发布日期:2022-11-23 09:45阅读:39来源:国知局
一种基于分布式块存储的副本数据恢复方法和系统与流程

1.本发明涉及分布式块存储技术领域,尤其涉及一种基于分布式块存储的副本数据恢复方法和系统。


背景技术:

2.分布式块存储,是将数据分散存储在多台独立的服务器的技术。因为传统的网络存储系统采用集中单独的存储服务器存放所有数据,所以存储服务器就成为了系统性能的瓶颈,难以满足大规模存储应用的需要。为了实现数据的大规模存储,分布式块存储系统应运而生。分布式块存储系统采用可扩展的系统架构,利用多台存储服务器分担存储负荷,利用副本管理服务进行副本分配,恢复和迁移,它不但能提高系统的可靠性、可用性和存取效率,还易于扩展。
3.通常情况下,分布式块存储提供了虚拟机卷供用户使用,用户可以通过存储协议(如iscsi等)将虚拟机卷挂载到虚拟机或者计算节点。分布式块存储系统一般将虚拟卷划分成若干个小数据块,以方便管理;每个小数据块代表一个合适的物理空间大小(比如64mb/256mb)。分布式块存储系统中通过副本管理服务维护小数据块的状态信息,并且副本管理服务和存储服务一道实现小数据块的io路由。为了实现小数据块的高效访问,分布式块存储会将小数据块的元数据信息存储到副本管理服务的内存中,因此小数据块所代表的数据空间不会太小,过小意味着需要占用大量内存。为了解决上述问题,必须采用合适的存储方式存储小数据块。
4.小数据块可以采用多种方式存储,其中一种常见的方式是多副本的存储方式。该存储方式能够避免某个副本所在的存储服务器异常(例如磁盘故障、系统瘫痪及网络失联等)而引起的副本异常,比如2个分布于不同存储服务器的副本,在丢失了1个副本的情况下还能够进行io。当小数据块的部分副本异常时,需要进行数据恢复。在该多副本的存储方式中,副本管理服务下发一个数据恢复命令给存储服务,存储服务接收到数据恢复命令后从剩余的健康副本中读取整个小数据块的信息写入到一个新的副本,当写入完成后小数据块的副本数恢复到期望副本数。
5.在小数据块的多副本的存储方式中,经常需要运维人员维护存储节点,在维护过程中可能会涉及到存储节点上存储服务的停机重启,当小数据块的副本处于以下两种情况下,副本管理服务认为副本异常,进而引发数据恢复:1.副本所在的存储节点处于维护中,由于存储节点的维护时间长(比如超过10min),导致副本管理服务认为存储节点失联,从而引发副本的数据恢复;2.有io下发到维护中的存储节点,会因为io错误而导致副本剔除,从而引发数据恢复。
6.因为小数据块的颗粒度,如果设置的太小,例如4kb/256kb等等,副本管理服务要处理的数据块数量将非常巨大,这会给副本管理服务带来很大的压力(通常是内存空间),因此实际上数据块颗粒度通常都会设置的稍微大,例如64mb/256mb,这对于计划内的存储节点的维护行为可能会带过长的数据恢复耗时:
7.1.维护时间长、而且无io的副本也下发数据恢复命令,给网络和磁盘带来额外的压力;
8.2.维护期间有io的副本,即便只在数据块内做少量更新也需要完整恢复整个小数据块,总体数据恢复时间过长,客户和运维人员需要花费很多时间去等待数据恢复,同时小数据块长期处在副本缺失的风险状态。


技术实现要素:

9.本发明提供一种基于分布式块存储的副本数据恢复方法和系统,旨在解决现有技术中维护时间长、而且无io的副本也下发数据恢复命令,给网络和磁盘带来额外的压力;维护期间有io的副本,即便只在数据块内做少量更新也需要完整恢复整个小数据块,总体数据恢复时间过长,客户和运维人员需要花费很多时间去等待数据恢复,同时小数据块长期处在副本缺失的风险状态的问题。
10.为实现上述目的,根据本发明的第一方面,本发明提出了一种基于分布式块存储的副本数据恢复方法,用于分布式块存储系统,其中,分布式块存储系统包括副本管理服务器和多个存储服务器;数据恢复方法包括:
11.副本管理服务器获取多个存储服务器的维护状态信息;
12.副本管理服务器根据维护状态信息,判断存储服务器在预定时段内是否持续处于维护模式;
13.副本管理服务器若判定存储服务器持续处于维护模式,则判断处于维护模式的存储服务器是否流入io数据;
14.副本管理服务器若判定处于维护模式的存储服务器未流入io数据,则禁止向存储服务器对应的非活跃副本下发数据恢复命令;或者,
15.副本管理服务器若判定处于维护模式的存储服务器流入io数据,则控制存储服务器记录维护期间内副本的io数据增量;
16.当存储服务器退出维护模式时,存储服务器根据io数据增量恢复副本。
17.优选的,上述副本数据恢复方法中,判断处于维护模式的存储服务器是否流入io数据的步骤包括:
18.副本管理服务器实时检测多个存储服务器流入的io数据量;
19.当存储服务器的维护期间内,副本管理服务器若未检测到任一存储服务器流入io数据量时,则判定处于维护模式的存储服务器未流入io数据;
20.副本管理服务器检测到存在存储服务器流入io数据量时,则判定处于维护模式的存储服务器流入io数据。
21.优选的,上述副本数据恢复方法中,禁止向存储服务器对应的非活跃副本下发数据恢复命令的步骤包括:
22.当存储服务器在预定时段内持续处于维护模式时,存储服务器标记对应副本为非活跃副本;
23.副本管理服务器实时扫描各个存储服务器对应副本;
24.当副本管理服务器检测到存在副本为非活跃副本、且非活跃副本对应的存储服务器处于维护模式时,副本管理服务器禁止向非活跃副本下发数据恢复命令。
25.优选的,上述副本数据恢复方法中,控制存储服务器记录维护期间内副本的io数据增量的步骤包括:
26.处于维护模式的存储服务器向副本管理服务器发送io异常信号,以使副本管理服务器标记存储服务器对应的副本为异常副本;
27.副本管理服务器计算维护期间内健康副本流入的io数据量,作为异常副本的io数据增量;
28.副本管理服务器控制存储服务器记录异常副本的数据版本。
29.优选的,上述副本数据恢复方法中,存储服务器根据io数据增量恢复副本的步骤包括:
30.当存储服务器退出维护模式时,副本管理服务器向存储服务器下发数据恢复命令;
31.存储服务器当接收到数据恢复命令时,检测异常副本的数据版本,判断检测到的数据版本与记录的数据版本是否匹配;
32.存储服务器若判定数据版本匹配,则使用健康副本流入的io数据量写入异常副本。
33.优选的,上述副本数据恢复方法中,存储服务器根据io数据增量恢复副本的步骤之前还包括:
34.副本管理服务器获取所有副本的数量;
35.当副本的数量小于或等于预设数量阈值时,副本管理服务器向处于维护模式的存储服务器下发数据恢复命令,以恢复存储服务器对应的异常副本。
36.优选的,上述副本数据恢复方法,还包括:
37.副本管理服务器实时扫描处于维护模式的存储服务器,判断存储服务器的维护时间是否超出预定时间阈值;
38.当存储服务器的维护时间超出预定时间阈值时,副本管理服务器强制存储服务器退出维护模式;
39.当存储服务器退出维护模式时,副本管理服务器向存储服务器下发数据恢复命令;
40.存储服务器根据数据恢复命令恢复副本。
41.优选的,上述副本数据恢复方法中,存储服务器根据数据恢复命令恢复副本的步骤包括:
42.存储服务器根据数据恢复命令获取小数据块的访问权限;
43.存储服务器使用访问权限访问小数据块,得到小数据块的数据内容和数据版本;
44.存储服务器使用小数据块的数据内容和数据版本恢复副本。
45.优选的,上述副本数据恢复方法还包括:
46.副本管理服务器控制多个存储服务器分别检测对应副本的数据版本;
47.副本管理服务器判断所有副本的数据版本是否一致;
48.若副本的数据版本不一致,则副本管理服务器剔除数据版本小的副本;
49.当数据版本小的副本剔除后,副本管理服务器向存储服务器下发数据恢复命令。
50.根据本发明的第二方面,本发明还提供了一种基于分布式块存储的副本数据恢复
系统,包括:
51.副本管理服务器和多个存储服务器;其中,
52.副本管理服务器,用于获取多个存储服务器的维护状态信息;
53.副本管理服务器,用于根据维护状态信息,判断存储服务器在预定时段内是否持续处于维护模式;
54.副本管理服务器,用于若判定存储服务器持续处于维护模式时,判断处于维护模式的存储服务器是否流入io数据;
55.副本管理服务器,用于若判定处于维护模式的存储服务器未流入io数据时,禁止向存储服务器对应的非活跃副本下发数据恢复命令;或者,
56.副本管理服务器,用于若判定处于维护模式的存储服务器流入io数据时,控制存储服务器记录维护期间内副本的io数据增量;
57.存储服务器还用于,当退出维护模式时根据io数据增量恢复副本。
58.综上,本发明上述技术方案提供的基于分布式块存储的副本数据恢复方案,副本管理服务器获取多个存储服务器的维护状态信息,然后使用该维护状态信息判断存储服务器在预定时段内是否持续处于维护模式,在判定存储服务器持续处于维护模式时,再禁止向该维护期间内未流入io数据的非活跃副本下发数据恢复命令,从而保持该非活跃副本的状态,避免出现无io的副本也下发数据恢复命令导致的网络和磁盘存在额外压力的问题。另外,在判定处于维护模式的存储服务器流入io数据时,控制存储服务器记录维护期间内副本的io数据增量,当存储服务器退出维护模式时,存储服务器才根据io数据增量恢复副本,这样能够在维护模式结束时统一进行副本的恢复,并且仅仅根据io数据增量恢复副本,不需要对副本进行完全的更新,从而减少数据恢复时间,同时避免小数据块长期处于副本缺失的风险中。综上,通过上述方式能够解决现有技术中存储服务器维护时间过长,无io的副本也下发数据恢复命令导致网络和磁盘压力过大;或者维护期间内有io的副本,即使只在数据块内做少量更新也需要完整恢复整个小数据块,总体数据恢复时间过长,客户和运维人员需要花费很多时间去等待数据恢复,同时小数据块长期处在副本缺失的风险状态的问题。
附图说明
59.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
60.图1是本发明实施例提供的一种分布式块存储系统的结构示意图;
61.图2是本发明实施例提供的第一种基于分布式块存储的副本数据恢复方法的流程示意图;
62.图3是图2所示实施例提供的一种io数据流入判断方法的流程示意图;
63.图4是图2所示实施例提供的一种禁止下发数据恢复命令的方法的流程示意图;
64.图5是图2所示实施例提供的一种io数据增量记录方法的流程示意图;
65.图6是图2所示实施例提供的第一种副本恢复方法的流程示意图;
66.图7是图2所示实施例提供的第二种副本恢复方法的流程示意图;
67.图8是本发明实施例提供的第二种基于分布式块存储的副本数据恢复方法的流程示意图;
68.图9是本发明实施例提供的第三种基于分布式块存储的副本数据恢复方法的流程示意图;
69.图10是本发明实施例提供的第四种基于分布式块存储的副本数据恢复方法的流程示意图;
70.图11-a是本发明实施例提供的第一种基于分布式块存储的副本数据恢复系统的结构示意图;
71.图11-b是本发明实施例提供的第二种基于分布式块存储的副本数据恢复系统的结构示意图;
72.图11-c是本发明实施例提供的第三种基于分布式块存储的副本数据恢复系统的结构示意图。
73.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
74.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
75.本发明实施例的主要解决的技术问题是:
76.在小数据块的多副本的存储方式中,经常需要运维人员维护存储节点,在维护过程中可能会涉及到存储节点上存储服务的停机重启,当小数据块的副本处于以下两种情况下,副本管理服务认为副本异常,进而引发数据恢复。通常数据块颗粒度通常都会设置的较大,这对于存储节点的维护行为可能会带过长的数据恢复耗时:1.维护时间长、而且无io的副本也下发数据恢复命令,给网络和磁盘带来额外的压力;2.维护期间有io的副本,即便只在数据块内做少量更新也需要完整恢复整个小数据块,总体数据恢复时间过长,客户和运维人员需要花费很多时间去等待数据恢复,同时小数据块长期处在副本缺失的风险状态。
77.为了解决上述问题,本发明下述实施例提供了基于分布式块存储的副本数据恢复方案,通过在存储服务器维护期间内禁止向非活跃副本下发数据恢复命令,并且对存在io数据流入的存储服务器,维护期间内对正在维护的副本暂时不做处理,等到存储服务器退出维护模式时,存储服务器再根据io数据增量恢复副本。通过上述技术方案,能够避免无用数据恢复和减少数据恢复量,从而达到加快节点中副本的数据恢复速度,降低运维成本的目的。
78.为实现上述目的,请参见图1,图1为本发明实施例提供的分布式块存储系统的结构示意图。如图1所示,该分布式块存储系统包括副本管理服务器1和多个存储服务器2;每个存储服务器2对应管理一个副本3。
79.具体地,如图1所示,副本管理服务器1负责的副本管理,具体管理方法包括小数据块的副本状态,小数据块(副本)的访问权限,副本3的数据恢复命令的生成和下发等。
80.存储服务器2,用于处理外部io,并通过副本管理服务器1完成副本的分配,和副本状态信息的获取,将外部io发往各个副本位置。当副本数少于预期的时候触发数据恢复,将副本恢复至期望副本数。
81.另外,存储服务器2需要保证小数据块的多个副本的一致性。存储服务器2向副本管理服务器1申请小数据块的访问权限,保证同一时间只有一个存储服务器2能访问特定的小数据块。每个小数据块副本有自己的数据版本,存储服务器2每下发一次写io到小数据块,小数据块的副本的数据版本递增。当所有小数据块的副本的数据版本一致时,则小数据块的多副本的数据是一致的,如果不一致则剔除数据版本小的副本。
82.对于无io的副本,副本管理服务器1需要知道该副本是否存活,这需要存储服务器2定期向副本管理服务器1上报自身存储的副本信息,副本管理服务器1感知到某个副本的维护时间超过一定时间(比如10min)没有上报状态则触发数据恢复命令,数据恢复完成后剔除该副本。在本技术实施例中,若存储服务器处于运维状态,并且该存储服务器对应的副本没有io,那么保留该副本,不对该副本做数据恢复处理。其中,上述副本管理服务器、存储服务器也能够是程序化的cpu或plc模块。
83.基于图1所示的分布式块存储系统,本发明下述实施例提供的技术方案,需要实现数据的恢复加速,以达到如下目标:
84.1.处于维护中存储服务的副本,在维护期间如果没有io流入,则不会触发恢复,避免无效数据;
85.2.处于维护中存储服务的副本,在维护期间如果有io流入,则不会触发副本剔除,而是记录维护期间的io差量,在存储服务退出维护时恢复io差量,避免恢复完整的小数据块。
86.具体参见图2,为本发明实施例提供的一种基于分布式块存储的副本数据恢复方法的流程示意图。该副本数据恢复方法用于图1所示的分布式块存储系统。具体如图2所示,该数据恢复方法包括:
87.s110:副本管理服务器获取多个存储服务器的维护状态信息。通过该维护状态信息,副本管理服务器能够确定存储服务器是否处于维护状态。具体地,当运维人员需要对某一个存储服务器进行升级等需要停机的运维操作时,存储服务主动将存储服务器在副本管理服务中标记处于维护模式。维护模式下在保证一定数据安全的情况下,通常不会剔除副本和恢复副本数据。考虑到运维场景应该尽量操作少的节点,因此优选地,副本管理服务最多只允许一定量存储服务器处在维护模式。
88.s120:副本管理服务器根据维护状态信息,判断存储服务器在预定时段内是否持续处于维护模式。通常当存储服务器处于维护模式时,存储服务器会在维护模式开始时向副本管理服务器中标记存储服务器自身处于维护模式,即发送维护状态信息,这样副本管理服务器就能够根据该维护状态信息确定该存储服务器处于维护模式。副本管理服务器需要确定存储服务器处于维护模式的时间,并且确定该预定时段内该存储服务器是否流入io数据,若该预定时段(例如10min-2h),存储服务器并无io数据流入,则标记该存储服务器对应的副本为非活跃副本,避免在维护模式下剔除该非活跃副本。
89.s130:副本管理服务器若判定存储服务器持续处于维护模式,则判断处于维护模式的存储服务器是否流入io数据。通过判断处于维护模式下的存储服务器是否流入io数据,当该存储服务器未流入io数据时,说明该存储服务器中的副本为非活跃副本,此时副本管理服务器标记该副本为非活跃副本,避免剔除该副本,同时禁止向该副本下发数据恢复命令。
90.具体地,作为一种优选的实施例,如图3所示,该判断处于维护模式的存储服务器是否流入io数据的步骤包括:
91.s131:副本管理服务器实时检测多个存储服务器流入的io数据量。
92.s132:当存储服务器的维护期间内,副本管理服务器若未检测到任一存储服务器流入io数据量时,则判定处于维护模式的存储服务器未流入io数据。
93.s133:副本管理服务器检测到存在存储服务器流入io数据量时,则判定处于维护模式的存储服务器流入io数据。
94.本技术实施例提供的技术方案中,因为该存储服务器处于维护模式中,该存储服务器可能不会接收到io数据或无法再提供io数据的收发功能,此时副本管理服务器能够通过对其他存储服务器进行监测,判断该处于维护模式中的存储服务器是否流入io数据。具体若监测到任一存储服务器流入io数据量,则判定该处于维护模式的存储服务器流入io数据;若未检测到任何一台存储服务器流入io数据,则判定该处于维护模式中的存储服务器未流入io数据。
95.s140:副本管理服务器若判定处于维护模式的存储服务器未流入io数据,则禁止向存储服务器对应的非活跃副本下发数据恢复命令。
96.作为一种优选的实施例,如图4所示,上述禁止向存储服务器对应的非活跃副本下发数据恢复命令的步骤包括:
97.s141:当存储服务器在预定时段内持续处于维护模式时,存储服务器标记对应副本为非活跃副本。
98.s142:副本管理服务器实时扫描各个存储服务器对应副本。这样副本管理服务器就能够确定哪些副本为非活跃副本。通常情况下某些并不处于维护模式的存储服务器,其对应的副本也有可能长时间未流入io数据,此时需要扫描各个副本并且确定该副本相关的存储服务器是否处于维护模式中。
99.s143:当副本管理服务器检测到存在副本为非活跃副本、且非活跃副本对应的存储服务器处于维护模式时,副本管理服务器禁止向非活跃副本下发数据恢复命令。另外,若是非维护模式下的非活跃副本,则按照正常程序进行处理。
100.具体地,存储服务器在维护模式下,需要避免剔除无io的非活跃副本:
101.1.由于处于维护模式的节点下线超过一定时间(比如10min),该节点上的副本将成为非活跃副本,并在副本管理服务器进行标记。
102.2.副本管理服务定期扫描副本的状态,发现小数据块有副本为非活跃状态,且该小数据块的非活跃副本均在维护模式的存储服务器上,则不下发数据恢复命令。
103.或者,副本管理服务器若判定维护模式中的存储服务器流入io数据,则图2所示实施例提供的数据恢复方法还包括以下步骤:
104.s150:副本管理服务器若判定处于维护模式的存储服务器流入io数据,则控制存储服务器记录维护期间内副本的io数据增量。本技术实施例中记录的io数据增量,其记录的粒度比小数据块粒度小(比如小数据块是64m/256m,则io数据增量可以为128k/256k等粒度),这样在后续恢复副本数据时,将使用该较小粒度的io数据增量恢复副本,从而提高副本恢复效率。同时为了保证数据一致性,本技术实施例还记录了异常副本io失败时的数据版本。
105.具体地,作为一种优选的实施例,如图5所示,上述副本数据恢复方法中,步骤s150:控制存储服务器记录维护期间内副本的io数据增量的步骤包括:
106.s151:处于维护模式的存储服务器向副本管理服务器发送io异常信号,以使副本管理服务器标记存储服务器对应的副本为异常副本。
107.s152:副本管理服务器计算维护期间内健康副本流入的io数据量,作为异常副本的io数据增量。
108.s153:副本管理服务器控制存储服务器记录异常副本的数据版本。
109.io异常信号能够使得副本管理服务器标记该处于维护模式中的存储服务器对应的副本为异常副本,此时副本管理服务器能够通过其他健康副本(非维护模式中存储服务器对应的有io流入的副本),通过记录该维护期间健康副本的io数据量,作为异常副本的io数据增量,从而方便在该副本的存储服务器退出维护模式时,使用该io数据增量恢复副本,这样只需要做少量更新即可,减少数据的恢复时间,并且避免小数据块长期处于副本缺失的风险状态中。
110.在记录副本的io数据增量后,图2所示实施例提供的副本数据恢复方法还包括以下步骤:
111.s160:当存储服务器退出维护模式时,存储服务器根据io数据增量恢复副本。具体地,副本管理服务器开始下发目的地为该存储服务器的数据恢复命令给拥有小数据访问权限的存储服务器。
112.作为一种优选的实施例,如图6所示,该存储服务器根据io数据增量恢复副本的步骤包括:
113.s161:当存储服务器退出维护模式时,副本管理服务器向存储服务器下发数据恢复命令。
114.s162:存储服务器当接收到数据恢复命令时,检测异常副本的数据版本,判断检测到的数据版本与记录的数据版本是否匹配。
115.s163:存储服务器若判定数据版本匹配,则使用健康副本流入的io数据量写入异常副本。
116.本技术实施例提供的技术方案中,通过副本管理服务器向存储服务器下发数据恢复命令,该数据恢复命令能够使得存储服务器具有小数据块的访问权限,这样就能够获取在维护期间内io数据增量,存储服务器检测自身的异常副本的数据版本,因为异常副本对应的存储服务器处于维护模式,则该异常副本的数据版本小于其他正常副本的数据版本,并在副本管理服务器中进行过记录,当该数据版本与记录的数据版本(该记录的数据版本可通过上述数据恢复命令下发)匹配时,说明该异常数据版本需要更新,此时使用上述健康副本流入的io数据量写入该异常副本,就能够使得该异常副本拥有与健康副本一致的数据,小数据块的副本数量将恢复成期望副本数。
117.另外,作为一种优选的实施例,如图7所示,该存储服务器根据数据恢复命令恢复副本的步骤包括:
118.s164:存储服务器根据数据恢复命令获取小数据块的访问权限。副本管理服务器可通过该数据恢复命令控制存储服务器恢复小数据块的访问权限,因此存储服务器就能够通过该访问权限获取小数据块的io数据增量和数据版本,从而使用上述数据内容和数据版
本恢复副本的数据。
119.s165:存储服务器使用访问权限访问小数据块,得到小数据块的数据内容和数据版本。
120.s166:存储服务器使用小数据块的数据内容和数据版本恢复副本。
121.本技术实施例提供的技术方案中,存储服务器根据数据恢复命令获取小数据块的访问权限,然后访问小数据块,得到小数据块匹配的io数据增量对应的数据内容和数据版本,通过该数据内容和数据版本就能够将异常副本恢复至正常副本,从而保持小数据块的期望副本数。
122.综上,本发明上述实施例提供的基于分布式块存储的副本数据恢复方法,副本管理服务器获取多个存储服务器的维护状态信息,然后使用该维护状态信息判断存储服务器在预定时段内是否持续处于维护模式,在判定存储服务器持续处于维护模式时,再禁止向该维护期间内未流入io数据的非活跃副本下发数据恢复命令,从而保持该非活跃副本的状态,避免出现无io的副本也下发数据恢复命令导致的网络和磁盘存在额外压力的问题。另外,在判定处于维护模式的存储服务器流入io数据时,控制存储服务器记录维护期间内副本的io数据增量,当存储服务器退出维护模式时,存储服务器才根据io数据增量恢复副本,这样能够在维护模式结束时统一进行副本的恢复,并且仅仅根据io数据增量恢复副本,不需要对副本进行完全的更新,从而减少数据恢复时间,同时避免小数据块长期处于副本缺失的风险中。综上,通过上述方式能够解决现有技术中存储服务器维护时间过长,无io的副本也下发数据恢复命令导致网络和磁盘压力过大;或者维护期间内有io的副本,即使只在数据块内做少量更新也需要完整恢复整个小数据块,总体数据恢复时间过长,客户和运维人员需要花费很多时间去等待数据恢复,同时小数据块长期处在副本缺失的风险状态的问题。本技术上述实施例提供的技术方案,能够提供数据恢复加速技术,避免无用数据恢复和减少数据恢复量,以加快节点维护导致的数据恢复速度,降低运维成本。
123.另外,作为一种优选的实施例,如图8所示,上述副本数据恢复方法中,在上述步骤s160:存储服务器根据io数据增量恢复副本的步骤之前,副本数据恢复方法还包括:
124.s210:副本管理服务器获取所有副本的数量。
125.s220:当副本的数量小于或等于预设数量阈值时,副本管理服务器向处于维护模式的存储服务器下发数据恢复命令,以恢复存储服务器对应的异常副本。
126.副本管理服务器在维护期间内通常不会剔除异常副本,但为了避免小数据块长期处于单副本状态,会对副本数量小于或等于预设数量阈值时,例如只有一个副本时,副本管理服务器向存储服务器下发数据恢复命令,强制恢复异常副本,从而避免小数据块长期处于单副本或少量副本的危险状态。
127.具体地,对于2个副本的小数据块,只要有一个异常副本就下发数据恢复命令;而对于3个副本的小数据块,如果只有一个异常副本,剩余副本均为健康副本则不尝试下发数据恢复命令。
128.另外,可能存在存储服务器的维护模式超时的情况,此时将使得副本长期处于无法接收io数据的异常状态。为了避免这种情况,保证数据的安全,需要维护模式支持io超时。具体地,作为一种优选的实施例,如图9所示,上述副本数据恢复方法还包括:
129.s310:副本管理服务器实时扫描处于维护模式的存储服务器,判断存储服务器的
维护时间是否超出预定时间阈值。
130.s320:当存储服务器的维护时间超出预定时间阈值时,副本管理服务器强制存储服务器退出维护模式。
131.s330:当存储服务器退出维护模式时,副本管理服务器向存储服务器下发数据恢复命令。
132.s340:存储服务器根据数据恢复命令恢复副本。
133.具体通过副本管理服务器定期扫描处于维护模式的节点;如果节点长期处于维护模式超过一定时间(比如24h)则强制节点退出维护模式。当节点退出维护模式后,副本管理服务将下发数据恢复命令,小数据块的访问权限所有者负责将副本数恢复至期望副本数。
134.本技术实施例提供的技术方案中,副本管理服务器实时扫描处于维护模式中的存储服务器,判断存储服务器的维护时间是否超出预定时间阈值,此时强制存储服务器退出维护模式,这样使用数据恢复命令恢复副本,从而避免异常副本长期无法收发io,进而无法更新;从而保证数据的安全。
135.另外,在所有存储服务器都不在维护模式时,为了保证小数据块对应的所有副本的数据一致性,作为一种优选的实施例,如图10所示,上述副本数据恢复方法还包括:
136.s410:副本管理服务器控制多个存储服务器分别检测对应副本的数据版本。
137.s420:副本管理服务器判断所有副本的数据版本是否一致。
138.s430:若副本的数据版本不一致,则副本管理服务器剔除数据版本小的副本。
139.s440:当数据版本小的副本剔除后,副本管理服务器向存储服务器下发数据恢复命令。
140.通过判断所有副本的数据版本是否一致,当副本的数据版本不一致则副本管理服务器剔除数据版本小的副本,通常情况下多数副本都会更新到最新版本,因此数据版本小的副本需要剔除,并使用数据恢复命令,从其他最新版本的副本中写入数据,从而保证小数据块对应的所有副本数据一致性。
141.基于上述方法实施例的同一构思,本发明实施例还提出了基于分布式块存储的副本数据恢复系统,用于实现本发明的上述方法,由于该系统实施例解决问题的原理与方法相似,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。
142.参见图11-a至图11-c,图11-a至图11-c为本发明实施例提供的一种基于分布式块存储的副本数据恢复系统的结构示意图。该副本数据恢复系统包括:
143.副本管理服务器1和多个存储服务器2;其中,
144.副本管理服务器1,用于获取多个存储服务器2的维护状态信息;
145.副本管理服务器1,用于根据维护状态信息,判断存储服务器2在预定时段内是否持续处于维护模式;
146.副本管理服务器1,用于若判定存储服务器2持续处于维护模式时,判断处于维护模式的存储服务器2是否流入io数据;
147.副本管理服务器1,用于若判定处于维护模式的存储服务器2未流入io数据时,禁止向存储服务器2对应的非活跃副本3下发数据恢复命令;或者,
148.副本管理服务器1,用于若判定处于维护模式的存储服务器2流入io数据时,控制存储服务器2记录维护期间内副本3的io数据增量;
149.存储服务器2还用于,当退出维护模式时根据io数据增量恢复副本3。
150.具体如图11-a可知,当存储服务器3下线进入维护模式后,其管理的副本就成为异常副本。
151.如图11-b可知,当存储服务器上线,退出维护模式时,副本管理服务器下发数据恢复命令,从其他健康副本中恢复数据至该存储服务器3,使得异常副本恢复正常。
152.如图11-c可知,异常副本恢复正常版本后,正常情况下所有存储服务器都不处于维护模式,所有副本均处于正常状态。
153.综上,本发明上述实施例提供的基于分布式块存储的副本数据恢复系统,副本管理服务器1获取多个存储服务器的维护状态信息,然后使用该维护状态信息判断存储服务器2在预定时段内是否持续处于维护模式,在判定存储服务器2持续处于维护模式时,再禁止向该维护期间内未流入io数据的非活跃副本3下发数据恢复命令,从而保持该非活跃副本3的状态,避免出现无io的副本3也下发数据恢复命令导致的网络和磁盘存在额外压力的问题。另外,在判定处于维护模式的存储服务器2流入io数据时,控制存储服务器2记录维护期间内副本的io数据增量,当存储服务器2退出维护模式时,存储服务器2才根据io数据增量恢复副本3,这样能够在维护模式结束时统一进行副本3的恢复,并且仅仅根据io数据增量恢复副本,不需要对副本进行完全的更新,从而减少数据恢复时间,同时避免小数据块长期处于副本缺失的风险中。综上,通过上述方式能够解决现有技术中存储服务器维护时间过长,无io的副本也下发数据恢复命令导致网络和磁盘压力过大;或者维护期间内有io的副本,即使只在数据块内做少量更新也需要完整恢复整个小数据块,总体数据恢复时间过长,客户和运维人员需要花费很多时间去等待数据恢复,同时小数据块长期处在副本缺失的风险状态的问题。
154.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
155.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
156.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
157.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一
个方框或多个方框中指定的功能的步骤。
158.应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
159.尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
160.显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1