CN112395263B - 一种osd的数据恢复方法及装置 - Google Patents

一种osd的数据恢复方法及装置 Download PDF

Info

Publication number
CN112395263B
CN112395263B CN202011350807.XA CN202011350807A CN112395263B CN 112395263 B CN112395263 B CN 112395263B CN 202011350807 A CN202011350807 A CN 202011350807A CN 112395263 B CN112395263 B CN 112395263B
Authority
CN
China
Prior art keywords
osd
version number
target
interval
mapping
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
CN202011350807.XA
Other languages
English (en)
Other versions
CN112395263A (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.)
New H3C Big Data Technologies Co Ltd
Original Assignee
New H3C Big Data 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 New H3C Big Data Technologies Co Ltd filed Critical New H3C Big Data Technologies Co Ltd
Priority to CN202011350807.XA priority Critical patent/CN112395263B/zh
Publication of CN112395263A publication Critical patent/CN112395263A/zh
Application granted granted Critical
Publication of CN112395263B publication Critical patent/CN112395263B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1873Versioning file systems, temporal file systems, e.g. file system supporting different historic versions of files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供了一种OSD的数据恢复方法及装置,获取监控节点MON中存储的各版本的osdmap,MON存储起始于目标版本号的osdmap,目标版本号是各OSD向MON上报的各个PG的LEC版本号中的最小版本号,根据起始于目标版本号的osdmap,确定起始于目标版本号的目标PG的OSD映射区间以及OSD映射列表;标记起始于目标版本号的第一个OSD映射区间为可能写入数据区间;根据所确定的第一个OSD映射区间之后的其他OSD映射区间的OSD映射列表,确定至少一个权威OSD,并根据权威OSD中的数据对目标OSD进行数据恢复。实现在保障OSD正常恢复数据的前提下,减少MON保存的osdmap数目。

Description

一种OSD的数据恢复方法及装置
技术领域
本发明涉及数据存储技术领域,特别是涉及一种OSD的数据恢复方法及装置。
背景技术
ceph是一种分布式文件系统,对于ceph,放置策略组(placement group,PG)是虚拟的数据存储逻辑单元,PG的载体可以是一种实体的硬件存储单元,例如对象存储设备(object storage device,OSD)。每个PG都有多个副本数据,分别存放在不同的OSD上,同时,每个OSD上也可以放置不同PG的副本数据。
ceph集群通过PG的peering过程来实现副本间数据一致性。
peering过程需要根据监控节点(monitor,MON)保存的一定数量的osdmap来判断数据是否可恢复,每张osdmap都包含版本号,以及该版本号时集群中所有OSD的down/up情况,其中,当检测到OSD出故障不可用时,标记该OSD状态为down,当检测到OSD重新恢复正常可用时,标记该OSD状态为up。
在PG的peering过程中,根据osdmap计算该PG在不同osdmap版本号时的OSD映射区间,并判断OSD映射区间在当时是否可能有数据写入。如果判断出某OSD映射区间在当时有可能有数据写入,而该OSD映射区间对应的所有OSD在当前时刻均处于down状态,则将PG标记为不可恢复状态,从而避免数据丢失。
为了避免PG在peering过程中丢失数据,MON侧需要尽可能保存集群当前需要保存的N张osdmap。然而,若N过大,会导致监控节点系统盘占用过大,影响集群的正常运行。此外,如果某OSD转为down状态后较长时间再转为up状态后,需要遍历MON保存的这些osdmap,如果N过大,会导致该OSD上PG peering较长时间,可能会导致用户业务归零。
可见MON上osdmap的裁剪规则至关重要,既要避免数据丢失,又要减少其对集群以及用户业务的影响。
现有方案中,当集群中有OSD在osdmap版本号为P时变为down状态,过了很长时间,集群中osdmap已经更新到Q版本,此时该OSD变为up状态,则按照现有osdmap裁剪规则,MON将保存从P版本开始,一直到当前最新的Q版本之间的所有的osdmap,若Q-P很大,就会导致MON上保存的osdmap数目过多,导致系统盘占用过大,影响集群正常使用,甚至会导致用户业务归零。
发明内容
本发明实施例的目的在于提供一种OSD的数据恢复方法及装置,以实现在保障正确恢复OSD数据的前提下,减少MON保存的osdmap数目。具体技术方案如下:
为实现上述目的,本发明实施例提供了一种OSD的数据恢复方法,应用于目标放置策略组PG的目标对象存储设备OSD,所述方法包括:
获取监控节点MON中存储的各版本的osdmap,其中,MON存储起始于目标版本号的osdmap,所述目标版本号是各OSD向所述MON上报的各个PG的LEC版本号中的最小版本号,其中LEC版本号表示PG最近一次转入清洁状态时的osdmap的版本号;
根据所述起始于目标版本号的osdmap,确定起始于目标版本号的目标PG的OSD映射区间,以及每个OSD映射区间的OSD映射列表;
标记起始于目标版本号的第一个OSD映射区间为可能写入数据区间;
以起始于目标版本号的第一个OSD映射区间为可能写入数据区间为基础,根据所确定的所述第一个OSD映射区间之后的其他OSD映射区间的OSD映射列表,确定至少一个权威OSD,所述权威OSD保存有所述目标PG的全部写入数据,并根据所述权威OSD中的数据对目标OSD进行数据恢复。
可选的,所述方法还包括:
确定所述可能写入数据区间的OSD映射列表中各OSD的当前存活状态;
若所述可能写入数据区间的OSD映射列表中所有OSD在当前均处于非存活状态,则标记所述目标PG为不可恢复状态。
可选的,若所述可能写入数据区间的OSD映射列表中至少一个OSD在当前处于存活状态,则判断下一OSD映射区间是否为可能写入数据区间。
可选的,所述判断下一OSD映射区间是否为可能写入数据区间,包括:
判断下一OSD映射区间的起始版本号是否小于或等于预先存储的所述下一OSD映射区间中OSD的alive版本号;
若是,则将所述下一OSD映射区间确定为可能写入数据区间;
若否,则将所述下一OSD映射区间确定为不可能写入数据区间。
可选的,所述方法还包括:
接收当前处于存活状态且处于所述目标PG的LES映射列表中的OSD发送的重新peering信息,所述重新peering信息中包含所述目标PG的LES版本号;
清除所述目标PG的不可恢复状态,并从所述LES版本号开始重新进行peering。
为实现上述目的,本发明实施例还提供了一种osdmap的裁剪优化方法,应用于监控节点MON,所述方法包括:
获取ceph集群中各对象存储设备OSD上报的该OSD中各个放置策略组PG的LEC版本号,并从中确定最小的LEC版本号,作为目标版本号,所述LEC版本号表示所述PG最近一次转入清洁状态时的osdmap的版本号;
删除版本号小于所述目标版本号的osdmap;
当接收到目标OSD发起的osdmap获取请求,向所述目标OSD发送起始于目标版本号的osdmap,以使所述目标OSD根据所述起始于目标版本号的osdmap,确定起始于目标版本号的目标PG的OSD映射区间,以及每个OSD映射区间的OSD映射列表;标记起始于目标版本号的第一个OSD映射区间为可能写入数据区间;以起始于目标版本号的第一个OSD映射区间为可能写入数据区间为基础,根据所确定的所述第一个OSD映射区间之后的其他OSD映射区间的OSD映射列表,确定至少一个权威OSD,所述权威OSD保存有所述目标PG的全部写入数据,并根据所述权威OSD中的数据对目标OSD进行数据恢复。
为实现上述目的,本发明实施例还提供了一种OSD的数据恢复装置,应用于目标放置策略组PG的目标对象存储设备OSD,所述装置包括:
第一获取模块,用于获取监控节点MON中存储的各版本的osdmap,其中,MON存储起始于目标版本号的osdmap,所述目标版本号是各OSD向所述MON上报的各个PG的LEC版本号中的最小版本号,其中LEC版本号表示PG最近一次转入清洁状态时的osdmap的版本号;
第一确定模块,用于根据所述起始于目标版本号的osdmap,确定起始于目标版本号的目标PG的OSD映射区间,以及每个OSD映射区间的OSD映射列表;
标记模块,用于标记起始于目标版本号的第一个OSD映射区间为可能写入数据区间;
恢复模块,用于以起始于目标版本号的第一个OSD映射区间为可能写入数据区间为基础,根据所确定的所述第一个OSD映射区间之后的其他OSD映射区间的OSD映射列表,确定至少一个权威OSD,所述权威OSD保存有所述目标PG的全部写入数据,并根据所述权威OSD中的数据对目标OSD进行数据恢复。
可选的,所述装置还包括:第二确定模块,
所述第二确定模块,用于确定所述可能写入数据区间的OSD映射列表中各OSD的当前存活状态;若所述可能写入数据区间的OSD映射列表中所有OSD在当前均处于非存活状态,则标记所述目标PG为不可恢复状态。
可选的,所述装置还包括:判断模块,
所述判断模块,用于若所述可能写入数据区间的OSD映射列表中至少一个OSD在当前处于存活状态,则判断下一OSD映射区间是否为可能写入数据区间。
可选的,所述判断模块,具体用于判断下一OSD映射区间的起始版本号是否小于或等于预先存储的所述下一OSD映射区间中OSD的alive版本号;
若是,则将所述下一OSD映射区间确定为可能写入数据区间;
若否,则将所述下一OSD映射区间确定为不可能写入数据区间。
可选的,所述装置还包括:清除模块,
所述清除模块,用于接收当前处于存活状态且处于所述目标PG的LES映射列表中的OSD发送的重新peering信息,所述重新peering信息中包含所述目标PG的LES版本号;清除所述目标PG的不可恢复状态,并从所述LES版本号开始重新进行peering。
为实现上述目的,本发明实施例还提供了一种osdmap的裁剪优化装置,应用于监控节点MON,所述装置包括:
第二获取模块,用于获取ceph集群中各对象存储设备OSD上报的该OSD中各个放置策略组PG的LEC版本号,并从中确定最小的LEC版本号,作为目标版本号,所述LEC版本号表示所述PG最近一次转入清洁状态时的osdmap的版本号;
删除模块,用于删除版本号小于所述目标版本号的osdmap;
应答模块,用于当接收到目标OSD发起的osdmap获取请求,向所述目标OSD发送起始于目标版本号的osdmap,以使所述目标OSD根据所述起始于目标版本号的osdmap,确定起始于目标版本号的目标PG的OSD映射区间,以及每个OSD映射区间的OSD映射列表;标记起始于目标版本号的第一个OSD映射区间为可能写入数据区间;以起始于目标版本号的第一个OSD映射区间为可能写入数据区间为基础,根据所确定的所述第一个OSD映射区间之后的其他OSD映射区间的OSD映射列表,确定至少一个权威OSD,所述权威OSD保存有所述目标PG的全部写入数据,并根据所述权威OSD中的数据对目标OSD进行数据恢复。
为实现上述目的,本发明实施例还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一方法步骤。
为实现上述目的,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一方法步骤。
本发明实施例有益效果:
应用本发明实施例提供的OSD的数据恢复方法及装置,优化了MON侧的osdmap裁剪策略,仅保存起始于目标版本号的osdmap,目标版本号是各OSD向MON上报的各个PG的LEC版本号中的最小版本号,其中LEC版本号表示PG最近一次转入清洁状态时的osdmap的版本号,从而大大减少了MON需要保存的osdmap数目;同时修改OSD侧逻辑,将起始于目标版本号的第一个OSD映射区间直接标记为可能写入数据区间,在不同场景下都能够保证数据一致性,不会导致数据丢失等问题,能够实现目标OSD正常恢复数据。可见,实现在保障OSD正常恢复数据的前提下,减少MON保存的osdmap数目,并加速PG的peering过程。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为本发明实施例提供的OSD的数据恢复方法的一种流程示意图;
图2为本发明实施例提供的ceph集群中PG的OSD映射区间的一种示意图;
图3为本发明实施例提供的ceph集群中PG的OSD映射区间的另一种示意图;
图4为本发明实施例提供的ceph集群中PG的OSD映射区间的又一种示意图;
图5为本发明实施例提供的osdmap的裁剪优化方法的一种流程示意图;
图6为本发明实施例提供的OSD的数据恢复装置的一种结构示意图;
图7为本发明实施例提供的osdmap的裁剪优化装置的一种结构示意图;
图8为本发明实施例提供的电子设备的一种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决现有的osdmap裁剪规则下MON中保存的osdmap版本较多,导致监控节点系统盘占用过大影响集群正常使用的技术问题,本发明实施例提供了一种OSD的数据恢复方法及装置。
参见图1,方法可以包括以下步骤:
S101:获取监控节点MON中存储的各版本的osdmap,其中,MON存储起始于目标版本号的osdmap,目标版本号是各OSD向MON上报的各个PG的LEC版本号中的最小版本号,其中LEC版本号表示PG最近一次转入清洁状态时的osdmap的版本号。
本发明实施例中,当某个PG的OSD发生变化时,例如其中一个OSD故障后重新上线,需要对PG进行peering,以实现同步该PG的当前各OSD的数据,即恢复故障后重新上线的OSD的数据。
本发明实施例中,将恢复故障后重新上线的OSD标记为目标OSD,即目标OSD可以采用本发明实施例提供的OSD的数据恢复方法进行数据恢复。
由于一个OSD中可能存储多个PG的副本数据,因此目标OSD重新上线后,需要恢复与该目标OSD相关的各个PG的数据,本发明实施例是针对其中的某一PG的,为了便于说明,标记为目标PG,即采用本发明实施例提供的OSD的数据恢复方法,恢复目标OSD针对目标PG的数据。
容易理解的,针对目标OSD相关的其他PG,同样可以采用本发明实施例提供的OSD的数据恢复方法进行数据恢复。
本发明实施例提供的OSD的数据恢复方法即可应用于目标PG的目标OSD,本领域技术人员可以理解,ceph中备份策略可以包括副本备份和纠删码备份。为了便于理解,默认备份策略是副本备份。可以理解,本发明实施例提供的OSD的数据恢复方法也同样适用于备份策略时纠删码备份的情况。
本发明实施例中,peering过程中需要根据MON保存的一定数量的osdmap来判断数据是否可恢复,每张osdmap都包含版本号,以及该版本下集群中所有OSD的存活状态,其中存活状态可以为down状态或up状态,通常当检测到OSD出故障不可用时,标记该OSD状态为down,当检测到OSD正常可用时,标记该OSD状态为up。
本发明实施例中,区别于现有技术,仅保存了起始于目标版本号的osdmap,其中目标版本号是各OSD向MON上报的各个PG的LEC版本号中的最小版本号,其中LEC是Last_epoch_clean的缩写,LEC版本号表示PG最近一次转入clean状态,即清洁状态时的osdmap的版本号,PG转入clean状态表示PG中各个OSD的数据已经完成同步。
具体的,OSD可以定时给MON上报其上所有PG的LEC版本号中的最小版本号。举例来讲,若当前OSD.M中有3个PG,分别为PG1、PG2和PG3,若PG1当前的LEC版本号为epoch13,PG2当前的LEC版本号为epoch14,PG3当前的LEC版本号为epoch15,则OSD.M中所有PG的LEC版本号中最小的版本号为epoch13,则OSD.M向MON上报的版本号即为epoch13。
本发明实施例中,MON可以从集群中各个OSD上报的版本号中选取最小的版本号,作为目标版本号,表示为MIN_LEC。MON可以根据目标版本号对osdmap进行裁剪,具体的,MON删除目标版本号之前的osdmap,只保留起始于目标版本号的osdmap。
相应的,在开始peering时,目标PG的目标OSD获取MON中存储的起始于上述目标版本号的osdmap。
S102:根据起始于目标版本号的osdmap,确定起始于目标版本号的目标PG的OSD映射区间,以及每个OSD映射区间的OSD映射列表。
具体的,本发明实施例中,可以将不同版本号的osdmap代入CRUSH计算出目标PG在该osdmap版本号时的OSD映射列表,并将相邻且相同的OSD映射列表的版本号区间进行组合得到OSD映射区间,进而可以得到起始于目标版本号的目标PG的OSD映射区间,每个OSD映射区间对应一个OSD映射列表。
其中,所确定的起始于目标版本号的目标PG的OSD映射区间可能为一个,也可能为多个。如果起始于目标版本号,且终止于当前版本号的目标PG的OSD映射列表没有发生变化,则所确定的OSD映射区间即为起始于目标版本号,且终止于当前版本号的一个OSD映射区间;反之,则可能确定多个OSD映射区间。
其中,CRUSH是ceph中的可控的、可扩展的、分布式的副本数据放置算法。
作为一个示例,参见图2,图2为本发明实施例提供的ceph集群中PG的OSD映射区间的一种示意图,图2示出了某PG在不同osdmap版本号的OSD映射列表,在[epoch11,epoch13)期间,该PG映射到A、B两个OSD,即[epoch11,epoch13)是一个OSD映射区间,该OSD映射区间的OSD映射列表表示为[A,B];图2所示实施例中,epoch13时OSD.B变为down状态,在随后的OSD映射区间[epoch13,epoch16)中,OSD映射列表为[A];epoch16时CRUSH算法选择了OSD.C作为替代,在随后的OSD映射区间[epoch16,epoch20)中,OSD映射列表为[A,C];epoch20时OSD.B变为up状态。
图2中MIN_LEC表示各OSD向MON上报的该OSD中各个PG的最小LEC版本号中的最小版本号,也就是上文中的目标版本号。图2中LES表示Last_epoch_started的缩写,表示该PG最后一次完成peering时的osdmap版本号;图2中LEC表示Last_epoch_clean的缩写,表示PG最近一次转入clean状态,即清洁状态时的osdmap的版本号。如图2所示,MIN_LEC版本号为epoch17;LES版本号为epoch18;LEC版本号为epoch20。
本发明实施例中,由于根据目标版本号MIN_LEC对osdmap进行裁剪,因此MON只保留了起始于epoch17的osdmap。因此,对于在epoch13变为down状态,并在epoch20变为up状态的OSD.B,[epoch13,epoch17)记为该OSD.B的osdmap gap,即OSD.B无法得知[epoch13,epoch17)期间PG的映射列表。
因此,图2实施例中,在本步骤可以获取起始于目标版本号的目标PG的OSD映射区间[epoch17,epoch20),并确定该映射区间的OSD映射列表为[A,C]。
S103:标记起始于目标版本号的第一个OSD映射区间为可能写入数据区间。
本发明实施例中,在PG的peering过程中,可以用参数maybe_rw来表示OSD映射区间中是否可能有数据写入,当参数maybe_rw设置为true时,表示该OSD映射区间为可能写入数据区间,也就是说,在该OSD映射区间的时间段内,可能有数据写入目标PG。
现有技术中,对参数maybe_rw的设置逻辑是:OSD会在其包含的每个PG刚开始进行peering时向MON发送alive消息,该alive消息用于告知MON该OSD处于存活状态,MON存储的osdmap中便会记录每个OSD的alive的版本号。在peering过程中,判断PG的每个映射区间的起始版本号是否小于等于上述alive版本号,若是,则证明在该映射区间内此OSD处于存活状态,因此可能有数据写入,则将参数maybe_rw设置为true。
由于目标PG在epoch16映射列表发生了变化,目标PG在epoch16会发起peering,并在epoch16时向MON发送了alive消息,而OSD映射列表[A,C]的实际起始版本号为epoch16,等于alive的版本号,因此该OSD映射列表[A,C]的参数maybe_rw实际应设置为true。
本发明实施例中,由于目标版本号之前的osdmap都被裁剪了,因此只获取到起始于目标版本号,即epoch17的OSD映射区间,OSD.B无法感知epoch16的osdmap。OSD.B会认为OSD映射列表[A,C]的起始版本号为epoch17,大于上述的alive版本号epoch16,因此如果按照与现有技术相同的判定准则,会把OSD映射列表[A,C]的参数maybe_rw设置为false,这样就会出错进而可能导致数据丢失。
因此本发明实施例中,区别于现有技术,针对起始于目标版本号的第一个OSD映射区间,无需判断该第一个OSD映射区间的起始版本号与alive版本号的大小关系,而是直接将第一个OSD映射区间的参数maybe_rw设置为true,即将起始于目标版本号的第一个OSD映射区间标记为可能写入数据区间。
S104:以起始于目标版本号的第一个OSD映射区间为可能写入数据区间为基础,根据所确定的第一个OSD映射区间之后的其他OSD映射区间的OSD映射列表,确定至少一个权威OSD,权威OSD保存有目标PG的全部写入数据,并根据权威OSD中的数据对目标OSD进行数据恢复。
在标记起始于目标版本号的第一个OSD映射区间为可能写入数据区间之后,后续的peering过程可以与现有技术完全相同。具体的,图2所示实施例中,判断OSD映射区间[epoch17,epoch20)为可能写入数据区间,即该区间内可能有数据写入位于OSD.A和OSD.C的目标PG,而epoch20时OSD.A和OSD.C都是存活的,因此无需将PG标记为不可恢复状态。
进而可以以起始于目标版本号的第一个OSD映射区间为可能写入数据区间为基础,根据所确定的第一个OSD映射区间之后的其他OSD映射区间的OSD映射列表,确定至少一个权威OSD,权威OSD保存有目标PG的全部写入数据,并根据权威OSD中的数据对目标OSD进行数据恢复。在图2所示实施例中,由于起始于目标版本号的第一个OSD映射区间已经到达OSD.B转为up状态的epoch20,即没有其他OSD映射区间,可以直接认定OSD.A和OSD.C均为权威OSD,即OSD.A和OSD.C均保存有目标PG的全部写入数据,后续只需将OSD.A或OSD.C的数据同步到OSD.B中,即可完成此次针对目标PG的peering,实现OSD.B的数据恢复。
而采用现有的osdmap的裁剪机制,MON会保存OSD上报给MON的版本号中最小的版本号,图2所示实施例中,需要保存起始于epoch13的osdmap。可见,相较于现有技术,本发明实施例提供的OSD的数据恢复方法能够减少MON需要保存的osdmap数目,且同样能够实现OSD的数据恢复。
此外,值得说明的是,本发明实施例提供的OSD的数据恢复方法,在不同场景下都能够保证数据一致性,不会导致数据丢失,具体分析可以参见下文。
应用本发明实施例提供的OSD的数据恢复方法,优化了MON侧的osdmap裁剪策略,仅保存起始于目标版本号的osdmap,目标版本号是各OSD向MON上报的各个PG的LEC版本号中的最小版本号,其中LEC版本号表示PG最近一次转入清洁状态时的osdmap的版本号,从而大大减少了MON需要保存的osdmap数目;同时修改OSD侧逻辑,将起始于目标版本号的第一个OSD映射区间直接标记为可能写入数据区间,在不同场景下都能够保证数据一致性,不会导致数据丢失等问题,能够实现目标OSD正常恢复数据。可见,实现在保障OSD正常恢复数据的前提下,减少MON保存的osdmap数目,并加速PG的peering过程。
下面结合不同场景的例子对本发明实施例提供的OSD的数据恢复方法进行进一步说明,以验证本发明实施例提供的OSD的数据恢复方法能够在不同场景下都能保证数据一致性,不会导致数据丢失。
参见图3,图3为本发明实施例提供的ceph集群中PG的OSD映射区间的另一种示意图,图3示出了某PG在不同osdmap版本号的OSD映射列表,在[epoch12,epoch13)期间,该PG映射到A、B两个OSD,即OSD映射区间[epoch12,epoch13)的OSD映射列表表示为[A,B];epoch13时OSD.B变为down状态,在随后的OSD映射区间[epoch13,epoch15)中,OSD映射列表为[A];epoch15时CRUSH算法选择了OSD.C作为替代,在随后的OSD映射区间[epoch15,epoch18)中,OSD映射列表为[A,C];epoch18时OSD.B变为up状态。
图3中LEC恰好是所有PG的LEC中最小的那个,即LEC=MIN_LEC。如图3所示,MIN_LEC版本号和LEC版本号为epoch17;LES版本号为epoch16。
采用本发明实施例提供的OSD的数据恢复方法,会默认起始于epoch17的第一个OSD映射区间[epoch17,epoch18)的maybe_rw为true。由于LEC落在此映射列表[A,C]所在的映射区间[epoch15,epoch18)中,且LES与LEC必然落在一个映射区间,因此LES也必然落在映射区间[epoch15,epoch18)中,所以针对OSD映射区间[epoch17,epoch18)的maybe_rw为true并没有误设,实际情况maybe_rw确定为true。
可见,图3所示场景中,同样不会导致数据丢失,且也使得MON少保存了图3所示的osdmap gap范围内的osdmap。
在本发明的一种实施例中,在标记起始于目标版本号的第一个OSD映射区间为可能写入数据区间之后,可以确定可能写入数据区间的OSD映射列表中各OSD的当前存活状态;
若可能写入数据区间的OSD映射列表中所有OSD在当前均处于非存活状态,则标记目标PG为不可恢复状态。
举例来讲,参见图4,图4为本发明实施例提供的ceph集群中PG的OSD映射区间的又一种示意图,图4示出了某PG在不同osdmap版本号的OSD映射列表。
在[epoch11,epoch13)期间,该PG映射到A、B两个OSD,即OSD映射区间[epoch11,epoch13)的OSD映射列表表示为[A,B];epoch13时OSD.B变为down状态,在随后的OSD映射区间[epoch13,epoch16)中,OSD映射列表为[A];epoch16时CRUSH算法选择了OSD.C作为替代,在随后的OSD映射区间[epoch16,epoch20)中,OSD映射列表为[A,C];epoch20时OSD.A变为down状态且OSD.B变为up状态。
图4所示实施例中LEC=MIN_LEC版本号为epoch15,LES版本号为epoch18,LEC版本号为epoch19。
本发明实施例中,默认起始于MIN_LEC版本号,即epoch15的第一个OSD映射区间[epoch15,epoch16)为可能写入数据区间。也就是说,在[epoch15,epoch16)区间内可能有数据写入OSD.A,而在epoch20进行的peering中,当前OSD.A处于down状态,即可能写入数据区间的OSD映射列表中所有OSD在当前均处于非存活状态,因此标记目标PG为不可恢复状态。
此外,当ceph中备份策略是纠删码备份时,若可能写入数据区间的OSD映射列表中所有OSD在当前处于非存活状态的个数大于纠删码校验片个数,则标记PG为不可恢复状态。
在本发明的一种实施例中,当ceph中备份策略是副本备份时,若可能写入数据区间的OSD映射列表中至少一个OSD在当前处于存活状态,则认为数据是可恢复的,进而判断下一OSD映射区间是否为可能写入数据区间。
在本发明的一种实施例中,判断下一OSD映射区间是否为可能写入数据区间的步骤,可以包括:
判断下一OSD映射区间的起始版本号是否小于或等于预先存储的下一OSD映射区间中OSD的alive版本号;
若是,则将下一OSD映射区间确定为可能写入数据区间;
若否,则将下一OSD映射区间确定为不可能写入数据区间。
具体的,如上文,OSD会在其包含的每个PG刚开始进行peering时向MON发送alive消息,该alive消息用于告知MON该OSD处于存活状态,MON存储的osdmap中便会记录每个OSD的alive的版本号。在peering过程中,判断PG的每个映射区间的起始版本号是否小于等于上述alive版本号,若是,则证明在该映射区间内此OSD处于存活状态,因此可能有数据写入,则将OSD映射区间确定为可能写入数据区间,反之则将OSD映射区间确定为不可能写入数据区间。
在本发明的一种实施例中,在将PG标记为不可恢复状态的情况下,如果处于目标PG的LES映射列表中的OSD中当前状态为存活状态,则可以主动发送重新peering信息,该重新peering信息可以是pginfo信息,其中包含目标PG的LES版本号。
在这种情况下,尽管可能写入数据区间的OSD映射列表中所有OSD在当前均处于非存活状态,但目标PG实际上已完成了数据同步,因此可以清除目标PG的不可恢复状态,并从LES版本号重新进行peering。
举例来讲,参见图4,尽管当前OSD.A处于down状态,但在[epoch16,epoch20)的OSD映射区间内,实际上已经将OSD.A的数据同步到了OSD.C,因此即使当前OSD.A处于down状态,目标PG也被标记为不可恢复状态。但OSD.C可以主动发送重新peering信息,该重新peering信息中包含LES版本号epoch18。在这种情况下,可以清除PG的不可恢复状态,并从epoch18开始重新进行peering。
下面说明在图4所示实施例中,采用本发明实施例提供的OSD的数据恢复方法,同样能够保证数据一致性,不会导致数据丢失。
在图4所示实施例中,默认起始于MIN_LEC版本号,即epoch15的第一个OSD映射区间[epoch15,epoch16)为可能写入数据区间。这很可能是一次误设置,因为LES并不在此映射区间,且由于epoch13、epoch14已经被MON裁剪,对于对于OSD.A来说已经无法感知。
但正如上文,当epoch20时,OSD.A转为down状态,OSD.B转为up状态,此时OSD.B发起peering,由于[epoch15,epoch16)映射区间的OSD.A当前是down状态,因此将PG标记为不可恢复状态。但此时OSD.C可以主动发送重新peering信息,该重新peering信息中包含LES版本号epoch18。在这种情况下,可以清除PG的不可恢复状态,并从epoch18开始重新进行peering,所以不会因为[epoch15,epoch16)映射区间设置为可能写入数据区间而导致数据不可恢复。
综上,图4所示场景下,采用本发明实施例提供的OSD的数据恢复方法也不会导致数据丢失,同样也能使MON少保存图4中所示的osdmap gap范围的这些osdmap。
可见,应用本发明实施例提供的OSD的数据恢复方法,在保障正确peering,且正常完成目标OSD的数据恢复前提下,减少了各种场景下MON需要保存的osdmap数目,在实际应用中,osdmap gap远远比上述图2-图4所示场景的数目要多,可达几千甚至几万张osdmap,可见本发明实施例提供的OSD的数据恢复方法能够大大减少保存的osdmap的数目。
相应于本发明实施例提供的OSD的数据恢复方法,本发明实施例还提供了一种osdmap的裁剪优化方法,方法可以应用于MON,参见图5,方法可以包括以下步骤:
S501:获取ceph集群中各对象存储设备OSD上报的该OSD中各个放置策略组PG的LEC版本号,并从中确定最小的LEC版本号,作为目标版本号,LEC版本号表示PG最近一次转入清洁状态时的osdmap的版本号。
S502:删除版本号小于目标版本号的osdmap。
S503:当接收到目标OSD发起的osdmap获取请求,向目标OSD发送起始于目标版本号的osdmap,以使目标OSD根据起始于目标版本号的osdmap,确定起始于目标版本号的目标PG的OSD映射区间,以及每个OSD映射区间的OSD映射列表;标记起始于目标版本号的第一个OSD映射区间为可能写入数据区间;以起始于目标版本号的第一个OSD映射区间为可能写入数据区间为基础,根据所确定的第一个OSD映射区间之后的其他OSD映射区间的OSD映射列表,确定至少一个权威OSD,权威OSD保存有目标PG的全部写入数据,并根据权威OSD中的数据对目标OSD进行数据恢复。
本发明实施例中,OSD可以定时给MON上报其上所有PG的LEC版本号中的最小版本号。MON可以从集群中各个OSD上报的版本号中选取最小的版本号,作为目标版本号,并根据目标版本号对osdmap进行裁剪,具体的,MON删除目标版本号之前的osdmap,只保留起始于目标版本号的osdmap。
当接收到目标OSD发起的osdmap获取请求,向目标OSD发送起始于目标版本号的osdmap,以使目标OSD根据起始于目标版本号的osdmap,确定起始于目标版本号的目标PG的OSD映射区间,以及每个OSD映射区间的OSD映射列表;标记起始于目标版本号的第一个OSD映射区间为可能写入数据区间;以起始于目标版本号的第一个OSD映射区间为可能写入数据区间为基础,根据所确定的第一个OSD映射区间之后的其他OSD映射区间的OSD映射列表,确定至少一个权威OSD,权威OSD保存有目标PG的全部写入数据,并根据权威OSD中的数据对目标OSD进行数据恢复。
应用本发明实施例提供的osdmap的裁剪优化方法,优化了MON侧的osdmap裁剪策略,实现在保障正确恢复OSD数据的前提下,减少MON保存的osdmap数目,并加速PG的peering过程。
相应于本发明实施例提供的OSD的数据恢复方法实施例,本发明实施例还提供了一种OSD的数据恢复装置,参见图6,装置可以包括以下模块:
第一获取模块601,用于获取监控节点MON中存储的各版本的osdmap,其中,MON存储起始于目标版本号的osdmap,所述目标版本号是各OSD向所述MON上报的各个PG的LEC版本号中的最小版本号,其中LEC版本号表示PG最近一次转入清洁状态时的osdmap的版本号;
第一确定模块602,用于根据所述起始于目标版本号的osdmap,确定起始于目标版本号的目标PG的OSD映射区间,以及每个OSD映射区间的OSD映射列表;
标记模块603,用于标记起始于目标版本号的第一个OSD映射区间为可能写入数据区间;
恢复模块604,用于以起始于目标版本号的第一个OSD映射区间为可能写入数据区间为基础,根据所确定的所述第一个OSD映射区间之后的其他OSD映射区间的OSD映射列表,确定至少一个权威OSD,所述权威OSD保存有所述目标PG的全部写入数据,并根据所述权威OSD中的数据对目标OSD进行数据恢复。
应用本发明实施例提供的OSD的数据恢复装置,优化了MON侧的osdmap裁剪策略,仅保存起始于目标版本号的osdmap,目标版本号是各OSD向MON上报的各个PG的LEC版本号中的最小版本号,其中LEC版本号表示PG最近一次转入清洁状态时的osdmap的版本号,从而大大减少了MON需要保存的osdmap数目;同时修改OSD侧逻辑,将起始于目标版本号的第一个OSD映射区间直接标记为可能写入数据区间,在不同场景下都能够保证数据一致性,不会导致数据丢失等问题,能够实现目标OSD正常恢复数据。可见,实现在保障OSD正常恢复数据的前提下,减少MON保存的osdmap数目,并加速PG的peering过程。
在本发明的一种实施例中,在图6所示装置基础上,还可以包括第二确定模块,第二确定模块,用于确定所述可能写入数据区间的OSD映射列表中各OSD的当前存活状态;若所述可能写入数据区间的OSD映射列表中所有OSD在当前均处于非存活状态,则标记所述目标PG为不可恢复状态。
在本发明的一种实施例中,在图6所示装置基础上,还可以包括判断模块,
判断模块,用于若所述可能写入数据区间的OSD映射列表中至少一个OSD在当前处于存活状态,则判断下一OSD映射区间是否为可能写入数据区间。
在本发明的一种实施例中,判断模块,具体用于判断下一OSD映射区间的起始版本号是否小于或等于预先存储的所述下一OSD映射区间中OSD的alive版本号;若是,则将所述下一OSD映射区间确定为可能写入数据区间;若否,则将所述下一OSD映射区间确定为不可能写入数据区间。
在本发明的一种实施例中,在图6所示装置基础上,还可以包括清除模块,
清除模块,用于接收当前处于存活状态且处于所述目标PG的LES映射列表中的OSD发送的重新peering信息,所述重新peering信息中包含所述目标PG的LES版本号;清除所述目标PG的不可恢复状态,并从所述LES版本号开始重新进行peering。
相应于本发明实施例提供的osdmap的裁剪优化方法实施例,本发明实施例还提供了一种osdmap的裁剪优化装置,参见图7,装置可以包括以下模块:
第二获取模块701,用于获取ceph集群中各对象存储设备OSD上报的该OSD中各个放置策略组PG的LEC版本号,并从中确定最小的LEC版本号,作为目标版本号,所述LEC版本号表示所述PG最近一次转入清洁状态时的osdmap的版本号;
删除模块702,用于删除版本号小于所述目标版本号的osdmap;
应答模块703,用于当接收到目标OSD发起的osdmap获取请求,向所述目标OSD发送起始于目标版本号的osdmap,以使所述目标OSD根据所述起始于目标版本号的osdmap,确定起始于目标版本号的目标PG的OSD映射区间,以及每个OSD映射区间的OSD映射列表;标记起始于目标版本号的第一个OSD映射区间为可能写入数据区间;以起始于目标版本号的第一个OSD映射区间为可能写入数据区间为基础,根据所确定的所述第一个OSD映射区间之后的其他OSD映射区间的OSD映射列表,确定至少一个权威OSD,所述权威OSD保存有所述目标PG的全部写入数据,并根据所述权威OSD中的数据对目标OSD进行数据恢复。
应用本发明实施例提供的osdmap的裁剪优化装置,优化了MON侧的osdmap裁剪策略,实现在保障正确恢复OSD数据的前提下,减少MON保存的osdmap数目,并加速PG的peering过程。
基于相同的发明构思,根据上述OSD的数据恢复方法实施例,本发明实施例还提供了一种电子设备,如图8所示,包括处理器801、通信接口802、存储器803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信,
存储器803,用于存放计算机程序;
处理器801,用于执行存储器803上所存放的程序时,实现如下步骤:
获取监控节点MON中存储的各版本的osdmap,其中,MON存储起始于目标版本号的osdmap,所述目标版本号是各OSD向所述MON上报的各个PG的LEC版本号中的最小版本号,其中LEC版本号表示PG最近一次转入清洁状态时的osdmap的版本号;
根据所述起始于目标版本号的osdmap,确定起始于目标版本号的目标PG的OSD映射区间,以及每个OSD映射区间的OSD映射列表;
标记起始于目标版本号的第一个OSD映射区间为可能写入数据区间;
以起始于目标版本号的第一个OSD映射区间为可能写入数据区间为基础,根据所确定的所述第一个OSD映射区间之后的其他OSD映射区间的OSD映射列表,确定至少一个权威OSD,所述权威OSD保存有所述目标PG的全部写入数据,并根据所述权威OSD中的数据对目标OSD进行数据恢复。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一OSD的数据恢复方法的步骤。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一OSD的数据恢复方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于OSD的数据恢复装置、电子设备、计算机可读存储介质及计算机程序产品实施例而言,由于其基本相似于OSD的数据恢复方法实施例,所以描述的比较简单,相关之处参见OSD的数据恢复方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (10)

1.一种OSD的数据恢复方法,其特征在于,应用于目标放置策略组PG的目标对象存储设备OSD,所述方法包括:
获取监控节点MON中存储的各版本的osdmap,其中,MON存储起始于目标版本号的osdmap,所述目标版本号是各OSD向所述MON上报的各个PG的LEC版本号中的最小版本号,其中LEC版本号表示PG最近一次转入清洁状态时的osdmap的版本号;
根据所述起始于目标版本号的osdmap,确定起始于目标版本号的目标PG的OSD映射区间,以及每个OSD映射区间的OSD映射列表;
标记起始于目标版本号的第一个OSD映射区间为可能写入数据区间;
以起始于目标版本号的第一个OSD映射区间为可能写入数据区间为基础,根据所确定的所述第一个OSD映射区间之后的其他OSD映射区间的OSD映射列表,确定至少一个权威OSD,所述权威OSD保存有所述目标PG的全部写入数据,并根据所述权威OSD中的数据对目标OSD进行数据恢复。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定所述可能写入数据区间的OSD映射列表中各OSD的当前存活状态;
若所述可能写入数据区间的OSD映射列表中所有OSD在当前均处于非存活状态,则标记所述目标PG为不可恢复状态。
3.根据权利要求2所述的方法,其特征在于,若所述可能写入数据区间的OSD映射列表中至少一个OSD在当前处于存活状态,则判断下一OSD映射区间是否为可能写入数据区间。
4.根据权利要求3所述的方法,其特征在于,所述判断下一OSD映射区间是否为可能写入数据区间,包括:
判断下一OSD映射区间的起始版本号是否小于或等于预先存储的所述下一OSD映射区间中OSD的alive版本号;
若是,则将所述下一OSD映射区间确定为可能写入数据区间;
若否,则将所述下一OSD映射区间确定为不可能写入数据区间。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
接收当前处于存活状态且处于所述目标PG的LES映射列表中的OSD发送的重新peering信息,所述重新peering信息中包含所述目标PG的LES版本号;
清除所述目标PG的不可恢复状态,并从所述LES版本号开始重新进行peering。
6.一种osdmap的裁剪优化方法,其特征在于,应用于监控节点MON,所述方法包括:
获取ceph集群中各对象存储设备OSD上报的该OSD中各个放置策略组PG的LEC版本号,并从中确定最小的LEC版本号,作为目标版本号,所述LEC版本号表示所述PG最近一次转入清洁状态时的osdmap的版本号;
删除版本号小于所述目标版本号的osdmap;
当接收到目标OSD发起的osdmap获取请求,向所述目标OSD发送起始于目标版本号的osdmap,以使所述目标OSD根据所述起始于目标版本号的osdmap,确定起始于目标版本号的目标PG的OSD映射区间,以及每个OSD映射区间的OSD映射列表;标记起始于目标版本号的第一个OSD映射区间为可能写入数据区间;以起始于目标版本号的第一个OSD映射区间为可能写入数据区间为基础,根据所确定的所述第一个OSD映射区间之后的其他OSD映射区间的OSD映射列表,确定至少一个权威OSD,所述权威OSD保存有所述目标PG的全部写入数据,并根据所述权威OSD中的数据对目标OSD进行数据恢复。
7.一种OSD的数据恢复装置,其特征在于,应用于目标放置策略组PG的目标对象存储设备OSD,所述装置包括:
第一获取模块,用于获取监控节点MON中存储的各版本的osdmap,其中,MON存储起始于目标版本号的osdmap,所述目标版本号是各OSD向所述MON上报的各个PG的LEC版本号中的最小版本号,其中LEC版本号表示PG最近一次转入清洁状态时的osdmap的版本号;
第一确定模块,用于根据所述起始于目标版本号的osdmap,确定起始于目标版本号的目标PG的OSD映射区间,以及每个OSD映射区间的OSD映射列表;
标记模块,用于标记起始于目标版本号的第一个OSD映射区间为可能写入数据区间;
恢复模块,用于以起始于目标版本号的第一个OSD映射区间为可能写入数据区间为基础,根据所确定的所述第一个OSD映射区间之后的其他OSD映射区间的OSD映射列表,确定至少一个权威OSD,所述权威OSD保存有所述目标PG的全部写入数据,并根据所述权威OSD中的数据对目标OSD进行数据恢复。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:第二确定模块,
所述第二确定模块,用于确定所述可能写入数据区间的OSD映射列表中各OSD的当前存活状态;若所述可能写入数据区间的OSD映射列表中所有OSD在当前均处于非存活状态,则标记所述目标PG为不可恢复状态。
9.一种osdmap的裁剪优化装置,其特征在于,应用于监控节点MON,所述装置包括:
第二获取模块,用于获取ceph集群中各对象存储设备OSD上报的该OSD中各个放置策略组PG的LEC版本号,并从中确定最小的LEC版本号,作为目标版本号,所述LEC版本号表示所述PG最近一次转入清洁状态时的osdmap的版本号;
删除模块,用于删除版本号小于所述裁剪版本号的osdmap;
应答模块,用于当接收到目标OSD发起的osdmap获取请求,向所述目标OSD发送起始于目标版本号的osdmap,以使所述目标OSD根据所述起始于目标版本号的osdmap,确定起始于目标版本号的目标PG的OSD映射区间,以及每个OSD映射区间的OSD映射列表;标记起始于目标版本号的第一个OSD映射区间为可能写入数据区间;以起始于目标版本号的第一个OSD映射区间为可能写入数据区间为基础,根据所确定的所述第一个OSD映射区间之后的其他OSD映射区间的OSD映射列表,确定至少一个权威OSD,所述权威OSD保存有所述目标PG的全部写入数据,并根据所述权威OSD中的数据对目标OSD进行数据恢复。
10.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-5或6任一所述的方法步骤。
CN202011350807.XA 2020-11-26 2020-11-26 一种osd的数据恢复方法及装置 Active CN112395263B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011350807.XA CN112395263B (zh) 2020-11-26 2020-11-26 一种osd的数据恢复方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011350807.XA CN112395263B (zh) 2020-11-26 2020-11-26 一种osd的数据恢复方法及装置

Publications (2)

Publication Number Publication Date
CN112395263A CN112395263A (zh) 2021-02-23
CN112395263B true CN112395263B (zh) 2022-08-19

Family

ID=74604518

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011350807.XA Active CN112395263B (zh) 2020-11-26 2020-11-26 一种osd的数据恢复方法及装置

Country Status (1)

Country Link
CN (1) CN112395263B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105930103A (zh) * 2016-05-10 2016-09-07 南京大学 一种分布式存储ceph的纠删码覆盖写方法
CN107250986A (zh) * 2015-02-26 2017-10-13 新加坡科技研究局 数据分条、分配和重构
CN108958970A (zh) * 2018-05-29 2018-12-07 新华三技术有限公司 一种数据恢复方法、服务器和计算机可读介质
CN109101259A (zh) * 2018-08-28 2018-12-28 郑州云海信息技术有限公司 一种OSDMap缓存容器的更新方法、装置及终端
CN109101357A (zh) * 2018-07-20 2018-12-28 广东浪潮大数据研究有限公司 一种osd故障的检测方法及装置
WO2020107829A1 (zh) * 2018-11-28 2020-06-04 平安科技(深圳)有限公司 故障处理方法、装置、分布式存储系统和存储介质
CN111756571A (zh) * 2020-05-28 2020-10-09 苏州浪潮智能科技有限公司 一种集群节点故障的处理方法、装置、设备及可读介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015210658A (ja) * 2014-04-25 2015-11-24 富士通株式会社 記憶制御装置、データ復旧プログラム、およびデータ復旧方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107250986A (zh) * 2015-02-26 2017-10-13 新加坡科技研究局 数据分条、分配和重构
CN105930103A (zh) * 2016-05-10 2016-09-07 南京大学 一种分布式存储ceph的纠删码覆盖写方法
CN108958970A (zh) * 2018-05-29 2018-12-07 新华三技术有限公司 一种数据恢复方法、服务器和计算机可读介质
CN109101357A (zh) * 2018-07-20 2018-12-28 广东浪潮大数据研究有限公司 一种osd故障的检测方法及装置
CN109101259A (zh) * 2018-08-28 2018-12-28 郑州云海信息技术有限公司 一种OSDMap缓存容器的更新方法、装置及终端
WO2020107829A1 (zh) * 2018-11-28 2020-06-04 平安科技(深圳)有限公司 故障处理方法、装置、分布式存储系统和存储介质
CN111756571A (zh) * 2020-05-28 2020-10-09 苏州浪潮智能科技有限公司 一种集群节点故障的处理方法、装置、设备及可读介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ESetStore: An Erasure-Coded Storage System With Fast Data Recovery;Chengjian Liu等;《 IEEE Transactions on Parallel and Distributed Systems》;20200331;第2001-2016页 *
一种Ceph分布式块存储的持续数据保护方法;王胜杰等;《网络安全技术与应用》;20170228(第02期);第84-85页 *

Also Published As

Publication number Publication date
CN112395263A (zh) 2021-02-23

Similar Documents

Publication Publication Date Title
KR101303989B1 (ko) 분산 스토리지 시스템
US8103840B2 (en) Snapshot mechanism and method thereof
US20060031647A1 (en) Storage system and data processing system
CN107817950B (zh) 一种数据处理方法及装置
US20130024421A1 (en) File storage system for transferring file to remote archive system
CN110651246B (zh) 一种数据读写方法、装置和存储服务器
CN111049928B (zh) 数据同步方法、系统、电子设备及计算机可读存储介质
JP2016513306A (ja) データ格納方法、データストレージ装置、及びストレージデバイス
CN109992452B (zh) 一种故障处理方法及装置
CN112506710B (zh) 分布式文件系统数据修复方法、装置、设备及存储介质
US20140229787A1 (en) Content delivery failover
CN111176900A (zh) 一种分布式存储系统及其数据恢复方法、装置和介质
CN115756955A (zh) 一种数据备份、数据恢复的方法、装置及计算机设备
JP5475702B2 (ja) メール保存バックアップシステムおよびバックアップ方法
CN112395263B (zh) 一种osd的数据恢复方法及装置
US11301329B2 (en) Point-in-time copy on a remote system
CN109542841B (zh) 集群中创建数据快照的方法及终端设备
JP6287308B2 (ja) レプリケーション制御システム、レプリケーション制御方法、及び、レプリケーション制御プログラム
CN111488124A (zh) 一种数据更新方法、装置、电子设备及存储介质
JP6376626B2 (ja) データ格納方法、データストレージ装置、及びストレージデバイス
CN112783688B (zh) 一种基于可用分区级的纠删码数据恢复方法及装置
JP2014170448A (ja) レプリケーションシステム、業務処理システム、レプリケーション方法、及びプログラム
CN113821176B (zh) 一种数据迁移的处理方法、装置及存储介质
CN117493082B (zh) 一种防止数据脑裂的双机热备方法、系统、设备、介质
JPS58103052A (ja) 自動デ−タ収集方式

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