CN102025758B - 分布式系统中数据副本的恢复方法、装置和系统 - Google Patents

分布式系统中数据副本的恢复方法、装置和系统 Download PDF

Info

Publication number
CN102025758B
CN102025758B CN200910174392.2A CN200910174392A CN102025758B CN 102025758 B CN102025758 B CN 102025758B CN 200910174392 A CN200910174392 A CN 200910174392A CN 102025758 B CN102025758 B CN 102025758B
Authority
CN
China
Prior art keywords
data
server
cell
normal
data server
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
Application number
CN200910174392.2A
Other languages
English (en)
Other versions
CN102025758A (zh
Inventor
陈浩
程菊生
叶茂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Huawei Technology Co Ltd
Original Assignee
Huawei Symantec Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Symantec Technologies Co Ltd filed Critical Huawei Symantec Technologies Co Ltd
Priority to CN200910174392.2A priority Critical patent/CN102025758B/zh
Publication of CN102025758A publication Critical patent/CN102025758A/zh
Application granted granted Critical
Publication of CN102025758B publication Critical patent/CN102025758B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明实施例公开了一种分布式系统中数据副本的恢复方法、装置和系统。本发明实施例技术方案采用在检测到数据所在的第一数据服务器不可访问时,不立即启动全拷贝以恢复数据副本,而是等待一段预置的时间,如果在该预置的时间内,第一数据服务器恢复了正常,则直接将数据副本恢复到第一数据服务器上,否则,如果第一数据服务器不能恢复正常,才分配新的数据服务器,即第二数据服务器,然后启动全拷贝以将数据副本全拷贝到第二数据服务器上,这样,可以避免某些短时间内可恢复的偶然故障因素所引起的全拷贝对系统性能所造成的不必要影响,从而提高了分布式系统的可靠性。

Description

分布式系统中数据副本的恢复方法、装置和系统
技术领域
本发明实施例涉及通信技术领域,具体涉及分布式系统中数据副本的恢复方法、装置和系统。
背景技术
近年来,基于存储和控制相分离理念的分步式系统(即分布式文件系统)在云存储系统中得到了广泛应用。
在分布式系统中,文件的元数据和数据分别存储在元数据服务器(MDS,Metadata Server)和数据服务器(DS,Data Server)上,应用程序通过客户端代理(CA,Client Agent)访问分布式系统。整个系统包含有若干数量的MDS和DS。系统通常采用将用户数据的多份副本分别保存在不同的DS的方式来保证数据可靠性,然而这同时也带来一个问题,如果这些DS中的某些DS发生故障,则这些分布在不同的DS上的数据副本有可能会出现丢失或者不一致的情况。
针对这个问题,现有技术提出了一种分布式系统中数据副本的恢复方法,以维护多个数据副本的一致性。该方法分为两部分:对本地DS操作的执行以及对异地DS操作的执行。前者的执行流程为:系统对本地DS的数据副本执行全拷贝操作,并修改本地的状态向量,然后将本地DS的状态向量作为操作的时间戳,附着在全拷贝操作上,广播给所有其它DS,以保证各个DS之间全拷贝操作的一致性,从而保证各个DS中所保存的数据副本的一致性。后者的执行流程为:系统收到异地DS传输过来的全拷贝操作,当全拷贝操作满足执行条件时,根据全拷贝操作附着的时间戳,回溯本地数据副本的地址空间到其产生时刻。在现有技术中,以上所说的这些数据副本的恢复操作一般会在DS出现异常时立即启动,即,在DS出现异常时立即对数据副本进行全拷贝,以保证在该出现异常的DS上所保存的数据副本与其他DS所保存的数据副本的一致性,当然,这种立即启动全拷贝的方式在对象的数据量较大时,会对系统的性能造成较大的影响,使得系统的运行速度变慢。
在对现有技术的研究和实践过程中,发明人发现,在网络闪断(即短时间内退出服务后很快又恢复正常),或者DS掉电重启等情况下,虽然此时没有数据丢失,并且DS在短时间内可恢复正常,但DS还是会启动全拷贝以恢复数据副本,从而对系统的性能造成了不必要的影响,即降低了系统的运行速度。
发明内容
本发明实施例提供分布式系统中数据副本的恢复方法、装置和系统,可以在网络闪断或者服务器掉电重启等情况下,保证分布式系统的性能。
一种分布式系统中数据副本的恢复方法,包括:
检测到数据所在的第一数据服务器不可访问时,确定在预置的时间内第一数据服务器是否恢复正常;
若是,则将数据副本恢复到第一数据服务器上;
若否,则分配第二数据服务器,将数据副本全拷贝到第二数据服务器上,并更新数据分布信息。
一种分布式系统中数据副本的恢复方法,包括:
检测到数据所在的第一数据服务器不可访问时,分配第二数据服务器,并在更新数据分布信息;
在第二数据服务器上分配一个与第一数据单元相同属性的第二数据单元,所述第一数据单元为第一数据服务器的正常数据单元;
当客户端在正常数据服务器上写入新的数据并更新数据位图时,将所述新的数据写入第二数据单元并更新第二数据单元的数据位图;
确定在预置的时间内第一数据服务器是否恢复正常,若是,则根据第二数据单元的数据位图将新的数据推送恢复到第一数据单元上;若否,则根据第二数据单元的数据位图从数据分布信息中指示出的正常数据服务器上获取剩余的数据,并将该获取到的剩余的数据恢复到第二数据单元上。
一种元数据服务器,包括:
诊断单元,用于检测到数据所在的第一数据服务器不可访问时,确定在预置的时间内第一数据服务器是否恢复正常;
恢复单元,用于当诊断单元确定在预置的时间内第一数据服务器恢复正常时,将数据副本恢复到第一数据服务器上;
分配单元,用于当诊断单元确定在预置的时间内第一数据服务器没有恢复正常时,分配第二数据服务器;
异地全拷贝单元,用于当诊断单元确定在预置的时间内第一数据服务器没有恢复正常时,将数据副本全拷贝到分配单元分配到的第二数据服务器上,并更新数据分布信息。
一种元数据服务器,包括:
服务器分配单元,用于当检测到数据所在的第一数据服务器不可访问时,分配第二数据服务器,并更新自身的数据分布信息;
对象分配单元,用于在服务器分配单元分配的第二数据服务器上分配一个与第一数据单元相同属性的第二数据单元,所述第一数据单元为第一数据服务器的正常数据单元;
写入单元,用于当客户端在正常数据服务器上写入新的数据并更新数据位图时,将所述新的数据写入对象分配单元分配的第二数据单元并更新第二数据单元的数据位图;
处理单元,用于确定在预置的时间内第一数据服务器是否恢复正常,若是,则根据对象分配单元分配的第二数据单元的数据位图将新的数据推送恢复到第一数据单元上;若否,则根据对象分配单元分配的第二数据单元的数据位图从数据分布信息中指示出的正常数据服务器上获取剩余的数据,并将该获取到的剩余的数据恢复到第二数据单元上。
一种通信系统,包括本发明实施例所提供的任意一种元数据服务器。
本发明实施例采用在检测到数据所在的第一数据服务器不可访问时,不立即启动全拷贝以恢复数据副本,而是等待一段预置的时间,如果在该预置的时间内,第一数据服务器恢复了正常,则直接将数据副本恢复到第一数据服务器上,否则,如果第一数据服务器不能恢复正常,才分配新的数据服务器,即第二数据服务器,然后启动全拷贝以将数据副本全拷贝到第二数据服务器上,这样,可以避免某些短时间内可恢复的偶然故障因素所引起的全拷贝对系统性能所造成的不必要影响,从而提高了分布式系统的可靠性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一所提供的方法的方法流程图;
图2是本发明实施例四所提供的方法的方法流程图;
图3是本发明实施例所提供的控制器的结构示意图;
图4是本发明实施例所提供的控制器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种分布式系统中数据副本的恢复方法、装置和系统。以下分别进行详细说明。
实施例一、
本实施例将从MDS的角度进行描述。
一种分布式系统中数据副本的恢复方法,包括:检测到数据所在的第一DS不可访问时,确定在预置的时间内第一DS是否恢复正常,若是,则将数据副本恢复到第一DS上,若否,则分配新的DS,即第二DS,将数据副本全拷贝到第二DS上,并更新自身的数据分布信息。需说明的是,为了描述方便,在本发明实施例中,假设原DS为第一DS,新分配的DS为第二DS。如图1所示,具体流程可以如下:
101、检测到数据所在的第一DS不可访问时,比如网络故障或第一DS故障等情况所导致的第一DS不可访问时,确定在预置的时间内第一DS是否恢复正常;若是,则执行步骤102;若否,则执行步骤103;
其中,预置的时间可以通过设定定时器来进行预置,例如,在检测到第一DS不可访问时则立即启动定时器,如果在时间到达之前,如果第一DS可以恢复正常,则执行步骤102,否则,如果在时间到达之后,第一DS还不可访问,则执行步骤103;
102、将数据副本恢复到第一DS上;
具体可以从数据分布信息中指示出的正常DS上将数据副本恢复到第一DS上;例如,可以通过查找自身的(MDS)数据分布信息,从而获知保存有该数据的数据副本的其他正常的DS,然后从这些正常的DS中任意选择一个,并将该选择的DS中保存的数据副本恢复到第一DS上;其中,本发明实施例所说的正常的DS指的是可以访问且可以提供正常和正确的业务服务的DS。
或者,也可以根据数据分布信息中指示出的正常DS的日志将数据副本恢复到第一DS上;例如,可以通过查找自身的(MDS)数据分布信息,从而获知保存有该数据的数据副本的其他正常的DS,然后从这些正常的DS中任意选择一个,并将该选择的DS中保存的数据副本恢复到第一DS上;当然,实现时需要一个前提,即:每一个DS都需要在本地记录数据操作的日志。
需说明的是,虽然这里所说的恢复也是一种拷贝操作,但是该拷贝操作有别于步骤103中所说的全拷贝,这里的拷贝只是一种更新,比如,假设在第一DS不可访问直至恢复正常的该段时间内,元数据服务器上有新的数据写入,则在第一DS恢复正常后,只需将该新写入的数据副本写入第一DS即可。
103、分配新的DS,即第二DS,将数据副本全拷贝到第二DS上,并更新自身的(MDS)数据分布信息。
例如,可以从数据分布信息中指示出的正常DS上将数据副本全拷贝到第二DS上,即通过查找自身的(MDS)数据分布信息,从而获知保存有该数据的数据副本的其他正常的DS,然后从这些正常的DS中任意选择一个,并将该选择的DS中保存的数据副本全拷贝至第二DS。
另外,需说明的是,若检测到数据异常但数据所在的第一DS尚可访问时,则可以采用如下方法:
方法一:分配第二DS,将数据副本全拷贝到第二DS上,并更新自身的(MDS)数据分布信息;其中,将数据副本全拷贝到第二DS上的具体实施可参见步骤103;
或者,
方法二:判断第一DS上是否存在空闲空间,若是,则将第一DS上的数据副本全拷贝到该空闲空间上,并更新自身的(MDS)数据分布信息,若否,则分配新的DS,即第二DS,然后将数据副本全拷贝到第二DS上,并更新自身的(MDS)数据分布信息;其中,将数据副本全拷贝到第二DS上的具体实施可参见步骤103。
由上可知,本发明实施例采用在检测到数据所在的第一DS不可访问时,不立即启动全拷贝以恢复数据副本,而是等待一段预置的时间,如果在该预置的时间内,第一DS恢复了正常,则直接将数据副本恢复到第一DS上,否则,如果第一DS不能恢复正常,才分配新的DS,即第二DS,然后启动全拷贝以将数据副本全拷贝到第二DS上,这样,可以避免某些短时间内可恢复的偶然故障因素所引起的全拷贝对系统性能所造成的不必要影响,从而提高了分布式系统的可靠性,例如,在网络闪断或者DS掉电重启等情况下,由于该故障可以在短时间内恢复正常,所以系统并不会因此而启动全拷贝以恢复数据副本,而是在系统恢复正常后,直接在本地的恢复数据副本。
实施例二、
根据实施例所描述的方法,下面将举例作详细说明。
导致系统内数据不可用的情况有多种,主要分为数据自身问题导致不可用的情况和非数据自身问题导致不可用的情况;在前一种情况下,数据所在设备,即数据所在的第一DS仍可访问,而在后一种情况下,数据所在设备,即数据所在的第一DS不可访问。以下将分别进行说明。
(1)数据自身问题导致不可用,此时数据所在的第一DS仍可访问。
当系统检测到数据所在的数据服务器仍可访问时,可以采用两种方案以进行数据副本的恢复。
方法一,如下:
系统分配新的DS,即第二DS,并且立即将数据副本拷贝恢复到该第二DS上,并且在MDS上更新数据的分布信息。
例如,MDS可以从数据分布信息中指示出的正常DS上将数据副本全拷贝到第二DS上,即通过查找自身的(MDS)数据分布信息,从而获知保存有该数据的数据副本的其他正常的DS,然后从这些正常的DS中任意选择一个,并将该选择的DS中保存的数据副本全拷贝至第二DS。
或者,也可以采用方法二,如下:
系统判断第一DS上是否存在空闲空间,若是,则将第一DS上的数据副本全拷贝到该空闲空间上,并更新MDS上的数据分布信息,若否,则分配新的DS,即第二DS,然后将数据副本全拷贝到第二DS上,并更新MDS上的数据分布信息;
例如,MDS可以从数据分布信息中指示出的正常DS上将数据副本全拷贝到第二DS上,即通过查找自身的(MDS)数据分布信息,从而获知保存有该数据的数据副本的其他正常的DS,然后从这些正常的DS中任意选择一个,并将该选择的DS中保存的数据副本全拷贝至第二DS。
(2)非数据自身问题导致不可用,此时数据所在的第一DS不可访问。
当系统检测到数据所在的数据服务器不可访问时,可采取两种方案以进行数据副本的恢复。
方法一,如下:
系统分配新的DS,即第二DS,然后立即将数据副本全拷贝到第二DS上,并在MDS上更新的数据分布信息;
例如,MDS可以从数据分布信息中指示出的正常DS上将数据副本全拷贝到第二DS上,即通过查找自身的(MDS)数据分布信息,从而获知保存有该数据的数据副本的其他正常的DS,然后从这些正常的DS中任意选择一个,并将该选择的DS中保存的数据副本全拷贝至第二DS。
或者,可以采用方法二,如下:
设定定时器,等待无法访问(即退出服务)的第一DS恢复正常,若在定时器超时之前第一DS恢复正常,数据副本从正常的DS拷贝恢复到该第一DS;否则,若在定时器超时时第一DS还没有恢复正常,则系统分配新的DS,即第二DS,将数据副本全拷贝到第二DS上,并更新自身的(MDS)数据分布信息。
例如,MDS可以在检测到第一DS无法访问时,启动定时器,若在定时器超时之前第一DS恢复正常,则MDS可以通过查找自身的(MDS)数据分布信息,以获知保存有该数据的数据副本的其他正常的DS,然后从这些正常的DS中任意选择一个,并将该选择的DS中保存的数据副本恢复到第一DS上;否则,若在定时器超时之前第一DS不能恢复正常,则MDS分配第二DS,并通过查找自身的(MDS)数据分布信息,以获知保存有该数据的数据副本的其他正常的DS,然后从这些正常的DS中任意选择一个,将该选择的DS中保存的数据副本全拷贝至第二DS。
由上可知,本发明实施例采用在检测到数据所在的第一DS不可访问时,不立即启动全拷贝以恢复数据副本,而是等待一段预置的时间,如果在该预置的时间内,第一DS恢复了正常,则直接将数据副本恢复到第一DS上,否则,如果第一DS不能恢复正常,才分配新的DS,即第二DS,然后启动全拷贝以将数据副本全拷贝到第二DS上,这样,可以避免某些短时间内可恢复的偶然故障因素所引起的全拷贝对系统性能所造成的不必要影响,从而提高了分布式系统的可靠性。其中,数据副本的恢复还可以通过多种方式来实现,可供用户根据自身的策略需求灵活选择。
实施例三、
与实施例二不同的是,本实施例需要利用日志来配合完成数据副本的恢复操作,因此,该实施例的实施前提是:每一个DS都需要在本地记录数据操作日志。以下将举例作详细说明。
导致系统内数据不可用的情况有多种,主要分为数据自身问题导致不可用的情况和非数据自身问题导致不可用的情况;在前一种情况下,数据所在设备,即数据所在的第一DS仍可访问,而在后一种情况下,数据所在设备,即数据所在的第一DS不可访问。以下将分别进行说明。
(1)数据自身问题导致不可用,此时数据所在的第一DS仍可访问。
当系统检测到数据所在的数据服务器仍可访问时,可以采用两种方案以进行数据副本的恢复。
方法一,如下:
系统分配新的DS,即第二DS,并且立即将数据副本拷贝恢复到该第二DS上,并且在MDS上更新数据的分布信息。
例如,MDS可以从数据分布信息中指示出的正常DS上将数据副本全拷贝到第二DS上,即通过查找自身的(MDS)数据分布信息,从而获知保存有该数据的数据副本的其他正常的DS,然后从这些正常的DS中任意选择一个,并将该选择的DS中保存的数据副本全拷贝至第二DS。
或者,也刻意采用方法二,如下:
系统判断第一DS上是否存在空闲空间,若是,则将第一DS上的数据副本全拷贝到该空闲空间上,并更新MDS上的数据分布信息,若否,则分配新的DS,即第二DS,然后将数据副本全拷贝到第二DS上,并更新MDS上的数据分布信息;
例如,MDS可以从数据分布信息中指示出的正常DS上将数据副本全拷贝到第二DS上,即通过查找自身的(MDS)数据分布信息,从而获知保存有该数据的数据副本的其他正常的DS,然后从这些正常的DS中任意选择一个,并将该选择的DS中保存的数据副本全拷贝至第二DS。
(2)非数据自身问题导致不可用,此时数据所在的第一DS不可访问。
当系统检测到数据副本所在的数据服务器不可访问时,可采取如下方案以进行数据副本的恢复。
设定定时器,等待无法访问(即退出服务)的第一DS恢复正常,若在定时器超时之前第一DS恢复正常,数据副本从正常的DS拷贝恢复到该第一DS;否则,若在定时器超时时第一DS还没有恢复正常,则系统分配新的DS,即第二DS,将数据副本全拷贝到第二DS上,并更新自身的(MDS)数据分布信息。
例如,MDS可以在检测到第一DS无法访问时,启动定时器,若在定时器超时之前第一DS恢复正常,则MDS可以通过查找自身的(MDS)数据分布信息,以获知保存有该数据的数据副本的其他正常的DS,然后从这些正常的DS中任意选择一个,并根据该选择的DS的日志将该选择的DS中保存的数据副本恢复到第一DS上;否则,若在定时器超时之前第一DS不能恢复正常,则MDS分配第二DS,并通过查找自身的(MDS)数据分布信息,以获知保存有该数据的数据副本的其他正常的DS,然后从这些正常的DS中任意选择一个,将该选择的DS中保存的数据副本全拷贝至第二DS。
元数据服务器设置定时器等待退出服务的数据服务器恢复正常,若在定时器超时前数据服务器恢复正常,系统将根据数据布局信息中正常的数据服务器的日志将数据恢复到故障数据服务器;
若定时器超时,系统分配新的数据服务器,并且从正常的数据服务器直接拷贝恢复到该数据服务器,在元数据服务器上更新数据的分布信息。
由上可知,本发明实施例采用在检测到数据所在的第一DS不可访问时,不立即启动全拷贝以恢复数据副本,而是等待一段预置的时间,如果在该预置的时间内,第一DS恢复了正常,则直接将数据副本恢复到第一DS上,否则,如果第一DS不能恢复正常,才分配新的DS,即第二DS,然后启动全拷贝以将数据副本全拷贝到第二DS上,这样,可以避免某些短时间内可恢复的偶然故障因素所引起的全拷贝对系统性能所造成的不必要影响,从而提高了分布式系统的可靠性,而且,由于采用了日志来配合完成数据副本的恢复操作,因此相对于实施例二所提供的技术方案而言,本实施例所提供的方案还可以减少恢复数据的数量以及减少恢复数据副本的操作。
实施例四、
本实施例将从MDS的角度进行描述。
基于同一个构思,本发明实施例还提供另一种分布式系统中数据副本的恢复方法,包括:检测到数据所在的第一DS不可访问时,分配第二DS,并更新自身的(MDS)数据分布信息;在第二DS上分配一个与第一数据单元相同属性的第二数据单元,当客户端在正常DS上写入新的数据并更新数据位图(bitmap)时,将所述新的数据写入第二数据单元并更新第二数据单元的数据位图;确定在预置的时间内第一DS是否恢复正常,若是,则根据第二数据单元的数据位图将新的数据,即增量数据推送恢复到第一数据单元上;若否,则根据第二数据单元的数据位图从数据分布信息中指示出的正常DS上获取剩余的数据,并将该获取到的剩余的数据恢复到第二数据单元上。
如图2所示,具体流程可以如下:
201、检测到数据所在的第一DS不可访问时,比如网络故障或第一DS故障等情况所导致的第一DS不可访问时,分配分配一个新的DS,即第二DS,并更新自身的(MDS)数据分布信息;
202、在第二DS上分配一个与第一数据单元相同属性的第二数据单元,其中,第一数据单元为第一DS的正常数据单元;
需说明的是,为了描述方便,在本发明实施例中,将正常数据单元称为第一数据单元,将在第二DS上分配的新的数据单元称为第二数据单元。所谓正常数据单元,指的是可以满足业务需求,且能保证数据一致性的数据单元。
203、当客户端在正常DS上写入新的数据并更新数据位图时,将这些新的数据写入第二数据单元,并更新第二数据单元的数据位图;
204、确定在预置的时间内第一DS是否恢复正常,若是,则执行步骤205;若否,则执行步骤206;
其中,预置的时间可以通过设定定时器来进行预置,例如,在检测到第一DS不可访问时则立即启动定时器,如果在时间到达之前,如果第一DS可以恢复正常,则执行步骤205,否则,如果在时间到达之后,第一DS还不可访问,则执行步骤206;
205、根据第二数据单元的数据位图将新的数据,即增量数据推送(PUSH)恢复到第一数据单元上;
206、根据第二数据单元的数据位图从数据分布信息中指示出的正常DS上获取剩余的数据,并将该获取到的剩余的数据恢复到第二数据单元上,例如,可以通过查找自身的(MDS)数据分布信息,从而获知保存有该数据的数据副本的其他正常的DS,然后从这些正常的DS中任意选择一个,从该选择的DS中获取剩余的数据,将该获取到的剩余的数据恢复到第二数据单元上。
其中,本发明实施例中所说的新的数据(即增量数据)指的是在检测到第一DS不可访问时到第一DS恢复正常的这段时间内,客户端所更新的数据,即客户端写入第二数据单元的数据;而剩余的数据指的是在检测到第一DS不可访问之前,客户端写入其他正常DS的数据。
另外,需说明的是,若检测到数据异常但数据所在的第一DS尚可访问时,则可以采用如下方法:
方法一:分配第二DS,将数据副本全拷贝到第二DS上,并更新自身的(MDS)数据分布信息;其中,将数据副本全拷贝到第二DS上的具体实施可参见步骤103;
或者,
方法二:判断第一DS上是否存在空闲空间,若是,则将第一DS上的数据副本全拷贝到该空闲空间上,并更新自身的(MDS)数据分布信息,若否,则分配新的DS,即第二DS,然后将数据副本全拷贝到第二DS上,并更新自身的(MDS)数据分布信息;其中,将数据副本全拷贝到第二DS上的具体实施可参见步骤103。
由上可知,本发明实施例采用在检测到数据所在的第一DS不可访问时,不立即启动全拷贝以恢复数据副本,而是分配一个新的DS,即第二DS,并在第二DS上分配新的数据单元,以供客户端写入新的数据,若在预置的时间内第一DS可以恢复正常,则根据第二数据单元的数据位图将新的数据(即增量数据)PUSH恢复到第一数据单元上,否则,根据第二数据单元的数据位图从正常DS上获取剩余的数据并恢复到第二数据单元上,这样,可以避免某些短时间内可恢复的偶然故障因素所引起的全拷贝对系统性能所造成的不必要影响,从而提高了分布式系统的可靠性,例如,在网络闪断或者DS掉电重启等情况下,由于该故障可以在短时间内恢复正常,所以系统并不会因此而启动全拷贝以恢复数据副本,而是在系统恢复正常后,直接在本地的恢复数据副本,即PUSH增量数据。
实施例五、
根据实施例四所描述的方法,下面将举例作详细说明。
首先,每一份数据都需要设置相应的一份数据位图,这份数据位图与数据一起保存在DS上,数据位图中每一位代表一定大小的数据块,例如,常规可以采用系统页面的4K大小,即是说系统将以这个数据块为单位以访问时拷贝(COA,Copy onAccess)的方式在数据副本之间进行同步更新。
导致系统内数据不可用的情况有多种,主要分为数据自身问题导致不可用的情况和非数据自身问题导致不可用的情况;在前一种情况下,数据所在设备,即数据所在的第一DS仍可访问,而在后一种情况下,数据所在设备,即数据所在的第一DS不可访问。以下将分别进行说明。
(1)数据自身问题导致不可用,此时数据所在的第一DS仍可访问。
当系统检测到数据所在的数据服务器仍可访问时,可以采用两种方案以进行数据副本的恢复。
方法一,如下:
系统分配新的DS,即第二DS,并且立即将数据副本拷贝恢复到该第二DS上,并且在MDS上更新数据的分布信息。
例如,MDS可以从数据分布信息中指示出的正常DS上将数据副本全拷贝到第二DS上,即通过查找自身的(MDS)数据分布信息,从而获知保存有该数据的数据副本的其他正常的DS,然后从这些正常的DS中任意选择一个,并将该选择的DS中保存的数据副本全拷贝至第二DS。
或者,也刻意采用方法二,如下:
系统判断第一DS上是否存在空闲空间,若是,则将第一DS上的数据副本全拷贝到该空闲空间上,并更新MDS上的数据分布信息,若否,则分配新的DS,即第二DS,然后将数据副本全拷贝到第二DS上,并更新MDS上的数据分布信息;
例如,MDS可以从数据分布信息中指示出的正常DS上将数据副本全拷贝到第二DS上,即通过查找自身的(MDS)数据分布信息,从而获知保存有该数据的数据副本的其他正常的DS,然后从这些正常的DS中任意选择一个,并将该选择的DS中保存的数据副本全拷贝至第二DS。
(2)非数据自身问题导致不可用,此时数据所在的第一DS不可访问。
当系统检测到数据所在的DS不可访问时,可采取以下方案以进行数据副本的恢复。
步骤1、MDS分配一个新的DS(即第二DS),比如DS-N,并更新自身的(MDS)数据分布信息;
步骤2、MDS在DS-N上分配一个与正常数据单元相同属性的对象M;其中,这里所说的正常数据单元可以是第一DS的正常数据单元;
步骤3、MDS设置定时器等待退出服务的第一DS恢复正常;此时,存在步骤5和步骤6两种情况;
步骤4、如果在等待的这段时间内,客户端需要写入数据,则客户端修改或追加的数据在写入到正常DS上并且更新位图时,也需同时写入到DS-N上的对象M并更新位图;
步骤5、若在定时器超时前第一DS恢复正常,DS-N根据对象M的数据位图将新的数据PUSH恢复到第一DS的对象;
步骤6、若定时器超时,第一DS没有恢复正常,DS-N将根据对象M的数据位图从数据分布信息中的正常DS上获取剩余的数据恢复到本地对象M。例如:MDS通过查找自身的(MDS)数据分布信息,以获知保存有该数据的数据副本的其他正常的DS,然后从这些正常的DS中任意选择一个,从该选择的DS中获取剩余的数据,将获取到的剩余的数据保存的数据恢复到本地对象M上。
需说明的是,在这样的系统中,所有的数据副本都可以对外提供访问,此时数据副本之间通过COA的方式进行增量数据的同步,直至所有数据副本重新实现数据一致。
由上可知,本发明实施例采用在检测到数据所在的第一DS不可访问时,不立即启动全拷贝以恢复数据副本,而是分配一个新的DS,即第二DS,并在第二DS上分配新的数据单元,以供客户端写入新的数据,若在预置的时间内第一DS可以恢复正常,则根据第二数据单元的数据位图将新的数据(即增量数据)PUSH恢复到第一数据单元上,否则,根据第二数据单元的数据位图从正常DS上获取剩余的数据并恢复到第二数据单元上,这样,可以避免某些短时间内可恢复的偶然故障因素所引起的全拷贝对系统性能所造成的不必要影响,从而提高了分布式系统的可靠性。
实施例六、
为了更好地实施实施一至三所提供的方法,本发明实施例还相应地提供一种元数据服务器MDS,如图3所示,该MDS包括诊断单元301、恢复单元302、分配单元303和异地全拷贝单元304;
诊断单元301,用于检测到数据所在的第一DS不可访问时,确定在预置的时间内第一DS是否恢复正常;
恢复单元302,用于当诊断单元301确定在预置的时间内第一DS恢复正常时,将数据副本恢复到第一DS上;
分配单元303,用于当诊断单元301确定在预置的时间内第一DS没有恢复正常时,分配第二DS;
异地全拷贝单元304,用于当诊断单元301确定在预置的时间内第一DS没有恢复正常时,将数据副本全拷贝到分配单元分配303到的第二DS上,并更新自身的(MDS)数据分布信息。
其中,预置的时间可以通过设定定时器来进行预置,例如,在检测到第一DS不可访问时则立即启动定时器,等待第一DS恢复正常。
其中,所述分配单元303,还用于在诊断单元301检测到数据异常但数据所在的第一DS尚可访问时,分配第二DS;
所述异地全拷贝单元304,还用于在诊断单元301检测到数据异常但数据所在的第一DS尚可访问时,将数据副本全拷贝到所述分配单元分配的第二DS上,并更新自身的(MDS)数据分布信息。
该MDS还可以包括判断单元305和本地全拷贝单元306;
判断单元305,用于在诊断单元301检测到数据异常但数据所在的第一DS尚可访问时,判断第一DS上是否存在空闲空间;
本地全拷贝单元306,用于在判断单元305确定存在空闲空间时,将第一DS上的数据副本全拷贝到所述空闲空间,并更新自身的(MDS)数据分布信息;
所述分配单元303,还用于在判断单元305确定不存在空闲空间时,分配第二DS;
所述异地全拷贝单元304,还用于在判断单元305确定不存在空闲空间时,将数据副本全拷贝到分配单元分配的第二DS上,并更新自身的(MDS)数据分布信息。
以上各个单元的具体实施可参见实施例一至三,在此不再赘述。
由上可知,本发明实施例采用在检测到数据所在的第一DS不可访问时,不立即启动全拷贝以恢复数据副本,而是等待一段预置的时间,如果在该预置的时间内,第一DS恢复了正常,则直接将数据副本恢复到第一DS上,否则,如果第一DS不能恢复正常,才分配新的DS,即第二DS,然后启动全拷贝以将数据副本全拷贝到第二DS上,这样,可以避免某些短时间内可恢复的偶然故障因素所引起的全拷贝对系统性能所造成的不必要影响,从而提高了分布式系统的可靠性,例如,在网络闪断或者DS掉电重启等情况下,由于该故障可以在短时间内恢复正常,所以系统并不会因此而启动全拷贝以恢复数据副本,而是在系统恢复正常后,直接在本地的恢复数据副本。
实施例七、
为了更好地实施实施例四和五所提供的方法,本发明实施例还相应地提供一种元数据服务器MDS,如图4所示,该MDS包括服务器分配单元401、对象分配单元402、写入单元403和处理单元404;
服务器分配单元401,用于当检测到数据所在的第一DS不可访问时,分配第二DS,并更新自身的(MDS)数据分布信息;
对象分配单元402,用于在服务器分配单元401分配的第二DS上分配一个与第一数据单元相同属性的第二数据单元,所述第一数据单元为第一DS的正常数据单元;
写入单元403,用于当客户端在正常DS上写入新的数据并更新数据位图时,将所述新的数据写入对象分配单元402分配的第二数据单元并更新第二数据单元的数据位图;
处理单元404,用于确定在预置的时间内第一DS是否恢复正常,若是,则根据对象分配单元402分配的第二数据单元的数据位图将新的数据推送恢复到第一数据单元上;若否,则根据对象分配单元402分配的第二数据单元的数据位图从数据分布信息中指示出的正常DS上获取剩余的数据,并将该获取到的剩余的数据恢复到第二数据单元上;其中,预置的时间可以通过设定定时器来进行预置,例如,在检测到第一DS不可访问时则立即启动定时器,等待第一DS恢复正常。
该MDS还可以包括异地全拷贝单元;
所述服务器分配单元401,还用于在检测到数据异常但数据所在的第一DS尚可访问时,分配第二DS;
异地全拷贝单元,还用于在检测到数据异常但数据所在的第一DS尚可访问时,将数据副本全拷贝到服务器分配单元401分配的第二DS上,并更新自身的(MDS)数据分布信息。
该MDS还可以包括判断单元和本地全拷贝单元;
判断单元,用于在检测到数据异常但数据所在的第一DS尚可访问时,判断第一DS上是否存在空闲空间;
本地全拷贝单元,用于在判断单元确定存在空闲空间时,将第一DS上的数据副本全拷贝到所述空闲空间,并更新自身的(MDS)数据分布信息;
所述服务器分配单元,还用于在判断单元确定不存在空闲空间时,分配第二DS;
所述异地全拷贝单元,还用于在判断单元确定不存在空闲空间时,将数据副本全拷贝到分配单元分配的第二DS上,并更新自身的(MDS)数据分布信息。
以上各个单元的具体实施可参见实施例一至三,在此不再赘述。
由上可知,本发明实施例采用在检测到数据所在的第一DS不可访问时,不立即启动全拷贝以恢复数据副本,而是分配一个新的DS,即第二DS,并在第二DS上分配新的数据单元,以供客户端写入新的数据,若在预置的时间内第一DS可以恢复正常,则根据第二数据单元的数据位图将新的数据(即增量数据)PUSH恢复到第一数据单元上,否则,根据第二数据单元的数据位图从正常DS上获取剩余的数据并恢复到第二数据单元上,这样,可以避免某些短时间内可恢复的偶然故障因素所引起的全拷贝对系统性能所造成的不必要影响,从而提高了分布式系统的可靠性,例如,在网络闪断或者DS掉电重启等情况下,由于该故障可以在短时间内恢复正常,所以系统并不会因此而启动全拷贝以恢复数据副本,而是在系统恢复正常后,直接在本地的恢复数据副本,即PUSH增量数据。
本发明实施例还相应地提供一种通信系统,包括了本发明实施例提供的任一种MDS,具体可参见前面的实施例,在此不再赘述。
另外,需说明的是,本发明实施例中的系统均指分布式系统。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
以上对本发明实施例所提供的分布式系统中数据副本的恢复方法、装置和系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (6)

1.一种分布式系统中数据副本的恢复方法,其特征在于,包括:
检测到数据所在的第一数据服务器不可访问时,分配第二数据服务器,并更新数据分布信息;
在第二数据服务器上生成与第一数据单元相同属性的第二数据单元,所述第一数据单元为第一数据服务器的正常数据单元;
当客户端在正常数据服务器上写入新的数据并更新数据位图时,将所述新的数据写入第二数据单元并更新第二数据单元的数据位图;
确定在预置的时间内第一数据服务器是否恢复正常,若是,则根据第二数据单元的数据位图将所述新的数据推送恢复到第一数据单元上;若否,则根据第二数据单元的数据位图从数据分布信息中指示出的正常数据服务器上获取剩余的数据,并将所述获取到的剩余的数据恢复到第二数据单元上;
其中,第一数据服务器为原数据服务器,第二数据服务器为新分配的数据服务器,正常数据服务器为能够访问且能够提供正常和正确的业务服务的数据服务器。
2.根据权利要求1所述的方法,其特征在于,还包括:
检测到数据异常但数据所在的第一数据服务器尚可访问时,分配第二数据服务器,将数据副本全拷贝到第二数据服务器上,并更新数据分布信息。
3.根据权利要求1所述的方法,其特征在于,还包括:
检测到数据异常但数据所在的第一数据服务器尚可访问时,判断第一数据服务器上是否存在空闲空间;
若是,则将第一数据服务器上的数据副本全拷贝到所述空闲空间,并更新数据分布信息;
若否,则分配第二数据服务器,将数据副本全拷贝到第二数据服务器上,并更新数据分布信息。
4.一种元数据服务器,其特征在于,包括:
服务器分配单元,用于当检测到数据所在的第一数据服务器不可访问时,分配第二数据服务器,并更新数据分布信息;
对象分配单元,用于在服务器分配单元分配的第二数据服务器上分配一个与第一数据单元相同属性的第二数据单元,所述第一数据单元为第一数据服务器的正常数据单元;
写入单元,用于当客户端在正常数据服务器上写入新的数据并更新数据位图时,将所述新的数据写入对象分配单元分配的第二数据单元并更新第二数据单元的数据位图;
处理单元,用于确定在预置的时间内第一数据服务器是否恢复正常,若是,则根据对象分配单元分配的第二数据单元的数据位图将新的数据推送恢复到第一数据单元上;若否,则根据对象分配单元分配的第二数据单元的数据位图从数据分布信息中指示出的正常数据服务器上获取剩余的数据,并将该获取到的剩余的数据恢复到第二数据单元上;
其中,第一数据服务器为原数据服务器,第二数据服务器为新分配的数据服务器,正常数据服务器为能够访问且能够提供正常和正确的业务服务的数据服务器。
5.根据权利要求4所述的元数据服务器,其特征在于,还包括异地全拷贝单元;
所述服务器分配单元,还用于在检测到数据异常但数据所在的第一数据服务器尚可访问时,分配第二数据服务器;
异地全拷贝单元,用于在检测到数据异常但数据所在的第一数据服务器尚可访问时,将数据副本全拷贝到服务器分配单元分配的第二数据服务器上,并更新数据分布信息。
6.一种通信系统,其特征在于,包括权利要求4或5任意一种元数据服务器。
CN200910174392.2A 2009-09-18 2009-09-18 分布式系统中数据副本的恢复方法、装置和系统 Active CN102025758B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910174392.2A CN102025758B (zh) 2009-09-18 2009-09-18 分布式系统中数据副本的恢复方法、装置和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910174392.2A CN102025758B (zh) 2009-09-18 2009-09-18 分布式系统中数据副本的恢复方法、装置和系统

Publications (2)

Publication Number Publication Date
CN102025758A CN102025758A (zh) 2011-04-20
CN102025758B true CN102025758B (zh) 2014-06-04

Family

ID=43866612

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910174392.2A Active CN102025758B (zh) 2009-09-18 2009-09-18 分布式系统中数据副本的恢复方法、装置和系统

Country Status (1)

Country Link
CN (1) CN102025758B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103095767B (zh) * 2011-11-03 2019-04-23 中兴通讯股份有限公司 分布式缓存系统及基于分布式缓存系统的数据重构方法
CN103235754B (zh) * 2013-04-24 2016-10-05 曙光信息产业(北京)有限公司 分布式文件系统中请求的处理方法和装置
CN104144127A (zh) * 2013-05-08 2014-11-12 华为软件技术有限公司 负载均衡方法和负载均衡器
US9176833B2 (en) * 2013-07-11 2015-11-03 Globalfoundries U.S. 2 Llc Tolerating failures using concurrency in a cluster
CN104580324B (zh) * 2013-10-28 2018-06-26 华为技术有限公司 一种数据存储方法及装置
CN108647118B (zh) * 2018-05-15 2021-05-07 新华三技术有限公司成都分公司 基于存储集群的副本异常恢复方法、装置及计算机设备
WO2021189312A1 (en) * 2020-03-25 2021-09-30 Beijing Didi Infinity Technology And Development Co., Ltd. Meta server crash recovery in object storage system using enhanced meta structure

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101022396A (zh) * 2007-03-15 2007-08-22 上海交通大学 网格数据副本管理系统
CN101060391A (zh) * 2007-05-16 2007-10-24 华为技术有限公司 主备服务器切换方法及系统及主用服务器、备用服务器
CN101421715A (zh) * 2006-04-17 2009-04-29 微软公司 创建虚拟机的主机级应用程序一致的备份
CN101488924A (zh) * 2009-02-16 2009-07-22 成都市华为赛门铁克科技有限公司 一种元数据的修改方法和元数据服务器
CN101515296A (zh) * 2009-03-06 2009-08-26 成都市华为赛门铁克科技有限公司 数据更新方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101421715A (zh) * 2006-04-17 2009-04-29 微软公司 创建虚拟机的主机级应用程序一致的备份
CN101022396A (zh) * 2007-03-15 2007-08-22 上海交通大学 网格数据副本管理系统
CN101060391A (zh) * 2007-05-16 2007-10-24 华为技术有限公司 主备服务器切换方法及系统及主用服务器、备用服务器
CN101488924A (zh) * 2009-02-16 2009-07-22 成都市华为赛门铁克科技有限公司 一种元数据的修改方法和元数据服务器
CN101515296A (zh) * 2009-03-06 2009-08-26 成都市华为赛门铁克科技有限公司 数据更新方法和装置

Also Published As

Publication number Publication date
CN102025758A (zh) 2011-04-20

Similar Documents

Publication Publication Date Title
CN102025758B (zh) 分布式系统中数据副本的恢复方法、装置和系统
CN100458699C (zh) 一种实现固件更新的方法和系统
CN102360317B (zh) 分离和存留控制应用的静态和动态部分的方法
CN102411523B (zh) 文件备份存储方法、装置及其文件系统备份方法
CN102981931A (zh) 虚拟机备份方法及装置
CN107562578B (zh) 一种存储数据的快照创建方法、装置、设备及存储介质
CN105786405A (zh) 一种在线升级方法、装置及系统
CN108958643B (zh) 数据存储装置及其操作方法
CN103412822A (zh) 操作非易失性内存和数据操作的方法和相关装置
CN104216796A (zh) 一种数据备份、恢复方法及电子设备
CN106357703B (zh) 集群切换方法与设备
CN109522154A (zh) 数据恢复方法及相关设备与系统
CN106104515A (zh) 利用非易失性存储器的文件系统设计和故障恢复方法
CN104021089A (zh) 快闪存储器控制芯片与存储装置以及快闪存储器控制方法
CN109558335A (zh) 一种基于Nor Flash存储器的嵌入式系统的文件存储格式
CN111324290A (zh) 一种存储器
US8499133B2 (en) Cache management for increasing performance of high-availability multi-core systems
CN113190241B (zh) 数据分区的容量扩充方法、装置、电子设备、存储介质
CN104268097A (zh) 一种元数据处理方法及系统
CN107391312B (zh) 数据云备份方法及系统
CN104133742A (zh) 一种数据保护的方法及装置
CN104765631B (zh) 一种移动终端的应用程序恢复方法及装置
CN104866388A (zh) 数据处理方法及装置
CN107148612A (zh) 一种扩展用户分区的方法和装置
CN109992527B (zh) 一种全闪存储系统的位图管理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: 611731 Chengdu high tech Zone, Sichuan, West Park, Qingshui River

Applicant after: HUAWEI DIGITAL TECHNOLOGIES (CHENG DU) Co.,Ltd.

Address before: 611731 Chengdu high tech Zone, Sichuan, West Park, Qingshui River

Applicant before: CHENGDU HUAWEI SYMANTEC TECHNOLOGIES Co.,Ltd.

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: CHENGDU HUAWEI SYMANTEC TECHNOLOGIES CO., LTD. TO: HUAWEI DIGITAL TECHNOLOGY (CHENGDU) CO., LTD.

C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20220907

Address after: No. 1899 Xiyuan Avenue, high tech Zone (West District), Chengdu, Sichuan 610041

Patentee after: Chengdu Huawei Technologies Co.,Ltd.

Address before: 611731 Qingshui River District, Chengdu hi tech Zone, Sichuan, China

Patentee before: HUAWEI DIGITAL TECHNOLOGIES (CHENG DU) Co.,Ltd.

TR01 Transfer of patent right