对象的恢复方法和装置、电子设备和存储介质制造方法及图纸

技术编号:28622616 阅读:13 留言:0更新日期:2021-05-28 16:18
本申请提供了一种对象的恢复方法和装置、电子设备和存储介质,其中,该方法包括:向多个第一节点分别发送对象标识集合,其中,对象标识集合包含用于标识第二节点的目标纠删块中待恢复的多个目标对象的多个对象标识,多个对象标识与多个目标对象一一对应;接收各个第一节点根据对象标识集合返回的、各个目标对象的第一分片,得到各个目标对象的分片集合,其中,各个目标对象的第一分片为存储在各个第一节点上的各个目标对象的分片;使用各个目标对象的分片集合对各个目标对象进行纠删恢复,得到各个目标对象的第二分片,其中,各个目标对象的第二分片为各个目标对象在目标纠删块中的分片。

【技术实现步骤摘要】
对象的恢复方法和装置、电子设备和存储介质
本申请涉及数据处理领域,尤其涉及一种对象的恢复方法和装置、电子设备和存储介质。
技术介绍
分布式存储系统中可以采用EC(ErasureCoding,纠删)块的方式进行数据存储。EC码是一种冗余方式,可以把数据切成m个数据块,对m个数据块生成m个校验块,共得到(m+n)个纠删块,每个纠删块(可以是数据块,也可以是校验块)可以存储在不同的数据节点上,可使系统最多容忍n个纠删块的丢失。目前,分布式存储系统的纠删块的恢复流程都是按照对象的粒度执行的。待恢复的纠删块中可以包含多个对象的分片(分片数据),每个对象逐个到其他所有副本上读取该对象的其他分片;之后利用纠删的方式在本地进行恢复(恢复出该对象在本节点上的分片)、校验(对该对象进行校验)、写入(将恢复出的分片写入到本地存储中),之后再进行下一个对象的恢复,直到这个纠删块上所有的对象全部恢复完成。比如,对于8+4的纠删模式(8个数据块,4个校验块),如果需要恢复其中的一个纠删块上的对象,可以从其他至少8个副本中读取该对象的其他对象数据,并利用纠删的方式在本地进行恢复、校验、写入。上述恢复纠删块的方式,如果要恢复的对象较多,则会导致整个恢复流程时间很长,整个服务在恢复期间可用性下降,低可用性时间也会增长。并且,恢复的时间过长也会在恢复期间影响整个服务的读写的质量。因此,相关技术中恢复纠删块中的对象的方式存在由于恢复流程时间过长导致的在恢复期间服务的可用性下降的问题。
技术实现思路
本申请提供了一种对象的恢复方法和装置、电子设备和存储介质,以至少解决相关技术中恢复纠删块中的对象的方式存在由于恢复流程时间过长导致的在恢复期间服务的可用性下降的问题。根据本申请实施例的一个方面,提供了一种对象的恢复方法,包括:向多个第一节点分别发送对象标识集合,其中,所述对象标识集合包含用于标识第二节点的目标纠删块中待恢复的多个目标对象的多个对象标识,多个所述对象标识与多个所述目标对象一一对应;接收各个所述第一节点根据所述对象标识集合返回的、各个所述目标对象的第一分片,得到各个所述目标对象的分片集合,其中,各个所述目标对象的第一分片为存储在各个所述第一节点上的各个所述目标对象的分片;使用各个所述目标对象的分片集合对各个所述目标对象进行纠删恢复,得到各个所述目标对象的第二分片,其中,各个所述目标对象的第二分片为各个所述目标对象在所述目标纠删块中的分片。可选地,接收各个所述第一节点根据所述对象标识集合返回的、各个所述目标对象的第一分片,得到各个所述目标对象的分片集合包括:在已接收到的、第一目标对象的第一分片的数量大于或者等于目标数量阈值的情况下,确定已接收到所述第一目标对象的分片集合,其中,第一目标对象为多个所述目标对象中的一个。可选地,使用各个所述目标对象的分片集合对各个所述目标对象进行纠删恢复,得到各个所述目标对象的第二分片包括:通过多个线程中的目标线程使用第二目标对象的分片集合对所述第二目标对象进行纠删恢复,得到所述第二目标对象的候选分片,其中,所述第二目标对象为已接收到对应的分片集合的一个所述目标对象,所述多个线程用于对已接收到对应的分片集合的所述目标对象进行并行纠删恢复;根据所述第二目标对象的分片集合、以及所述第二目标对象的候选分片对所述第二目标对象进行校验;在对所述第二目标对象校验通过的情况下,将所述第二目标对象的候选分片确定为所述第二目标对象的第二分片。可选地,在使用各个所述目标对象的分片集合对各个所述目标对象进行纠删恢复,得到各个所述目标对象的第二分片之后,所述方法还包括:按照目标写入顺序,将各个所述目标对象的第二分片依次写入到所述第二节点的磁盘中,其中,所述目标写入顺序为多个所述目标对象在所述目标纠删块中的顺序。可选地,按照所述目标写入顺序,将各个所述目标对象的第二分片依次写入到所述第二节点的磁盘中包括:按照所述目标写入顺序,确定第三目标对象的对象标识,其中,所述第三目标对象为当前待写入的所述目标对象,写入顺序位于所述第三目标对象之前的所述目标对象的第二分片都已写入到所述第二节点的磁盘中;以所述第三目标对象的对象标识为关键字查找目标映射表,其中,所述目标映射表用于以各个所述目标对象的对象标识为关键字、以各个所述目标对象的第二分片作为值存储各个所述目标对象的第二分片;在从所述目标映射表中查找到所述第三目标对象的第二分片的情况下,将所述第三目标对象的第二分片写入到所述第二节点的磁盘中。可选地,按照所述目标写入顺序,将各个所述目标对象的第二分片依次写入到所述第二节点的磁盘中还包括:在以所述第三目标对象的对象标识为关键字查找所述目标映射表之后,在从所述目标映射表中未查找到所述第三目标对象的第二分片的情况下,每隔目标时间间隔重新以所述第三目标对象的对象标识为关键字查找一次所述目标映射表,直到查找到所述第三目标对象的第二分片;将所述第三目标对象的第二分片写入到所述第二节点的磁盘中。根据本申请实施例的另一个方面,还提供了一种对象的恢复方法,包括:通过第一节点接收第二节点发送的对象标识集合,其中,所述对象标识集合包含用于标识第二节点的目标纠删块中待恢复的多个目标对象的多个对象标识,多个所述对象标识与多个所述目标对象一一对应;根据所述对象标识集合,获取各个所述目标对象的第一分片,其中,各个所述目标对象的第一分片为存储在所述第一节点上的各个所述目标对象的分片;将各个所述目标对象的第一分片发送给所述第二节点,以在所述第二节点上恢复出各个所述目标对象的第二分片,其中,各个所述目标对象的第二分片为各个所述目标对象在所述目标纠删块中的分片。可选地,根据所述对象标识集合,获取各个所述目标对象的第一分片包括:按照目标写入顺序,将所述对象标识集合中的多个所述对象标识依次添加到目标读取队列中,其中,所述目标写入顺序为多个所述目标对象在所述目标纠删块中的顺序;从所述目标读取队列中依次获取一个所述对象标识,得到第一对象标识,其中,所述第一对象标识用于标识多个所述目标对象中的第一对象;按照所述第一对象标识进行数据读取,得到所述第一对象的第一分片。可选地,根据所述对象标识集合,获取各个所述目标对象的第一分片包括:在将第二对象标识所标识的第二对象的第一分片发送给所述第二节点的同时,从所述对象标识集合中获取所述第二对象标识的下一个对象标识,得到第三对象标识,其中,所述第二对象标识为多个所述对象标识中的一个;按照所述第三对象标识进行数据读取,得到第三对象的第一分片,其中,所述第三对象为所述第三对象标识所标识的所述目标对象。根据本申请实施例的又一个方面,还提供了一种对象的恢复装置,包括:第一发送单元,用于向多个第一节点分别发送对象标识集合,其中,所述对象标识集合包含用于标识第二节点的目标纠删块中待恢复的多个目标对象的多个对象标识,多个所述对象标识与多个所述目标对象一一对应;第一接收单元,用于接收各个所述第一节点根据所述对象标识集合返回的、各个所述目标对象的第一分片,得到各个所述目标对象的分片集合,其本文档来自技高网...

【技术保护点】
1.一种对象的恢复方法,其特征在于,包括:/n向多个第一节点分别发送对象标识集合,其中,所述对象标识集合包含用于标识第二节点的目标纠删块中待恢复的多个目标对象的多个对象标识,多个所述对象标识与多个所述目标对象一一对应;/n接收各个所述第一节点根据所述对象标识集合返回的、各个所述目标对象的第一分片,得到各个所述目标对象的分片集合,其中,各个所述目标对象的第一分片为存储在各个所述第一节点上的各个所述目标对象的分片;/n使用各个所述目标对象的分片集合对各个所述目标对象进行纠删恢复,得到各个所述目标对象的第二分片,其中,各个所述目标对象的第二分片为各个所述目标对象在所述目标纠删块中的分片。/n

【技术特征摘要】
1.一种对象的恢复方法,其特征在于,包括:
向多个第一节点分别发送对象标识集合,其中,所述对象标识集合包含用于标识第二节点的目标纠删块中待恢复的多个目标对象的多个对象标识,多个所述对象标识与多个所述目标对象一一对应;
接收各个所述第一节点根据所述对象标识集合返回的、各个所述目标对象的第一分片,得到各个所述目标对象的分片集合,其中,各个所述目标对象的第一分片为存储在各个所述第一节点上的各个所述目标对象的分片;
使用各个所述目标对象的分片集合对各个所述目标对象进行纠删恢复,得到各个所述目标对象的第二分片,其中,各个所述目标对象的第二分片为各个所述目标对象在所述目标纠删块中的分片。


2.根据权利要求1所述的方法,其特征在于,接收各个所述第一节点根据所述对象标识集合返回的、各个所述目标对象的第一分片,得到各个所述目标对象的分片集合包括:
在已接收到的、第一目标对象的第一分片的数量大于或者等于目标数量阈值的情况下,确定已接收到所述第一目标对象的分片集合,其中,第一目标对象为多个所述目标对象中的一个。


3.根据权利要求1所述的方法,其特征在于,使用各个所述目标对象的分片集合对各个所述目标对象进行纠删恢复,得到各个所述目标对象的第二分片包括:
通过多个线程中的目标线程使用第二目标对象的分片集合对所述第二目标对象进行纠删恢复,得到所述第二目标对象的候选分片,其中,所述第二目标对象为已接收到对应的分片集合的一个所述目标对象,所述多个线程用于对已接收到对应的分片集合的所述目标对象进行并行纠删恢复;
根据所述第二目标对象的分片集合、以及所述第二目标对象的候选分片对所述第二目标对象进行校验;
在对所述第二目标对象校验通过的情况下,将所述第二目标对象的候选分片确定为所述第二目标对象的第二分片。


4.根据权利要求1至3中任一项所述的方法,其特征在于,在使用各个所述目标对象的分片集合对各个所述目标对象进行纠删恢复,得到各个所述目标对象的第二分片之后,所述方法还包括:
按照目标写入顺序,将各个所述目标对象的第二分片依次写入到所述第二节点的磁盘中,其中,所述目标写入顺序为多个所述目标对象在所述目标纠删块中的顺序。


5.根据权利要求4所述的方法,其特征在于,按照所述目标写入顺序,将各个所述目标对象的第二分片依次写入到所述第二节点的磁盘中包括:
按照所述目标写入顺序,确定第三目标对象的对象标识,其中,所述第三目标对象为当前待写入的所述目标对象,写入顺序位于所述第三目标对象之前的所述目标对象的第二分片都已写入到所述第二节点的磁盘中;
以所述第三目标对象的对象标识为关键字查找目标映射表,其中,所述目标映射表用于以各个所述目标对象的对象标识为关键字、以各个所述目标对象的第二分片作为值存储各个所述目标对象的第二分片;
在从所述目标映射表中查找到所述第三目标对象的第二分片的情况下,将所述第三目标对象的第二分片写入到所述第二节点的磁盘中。


6.根据权利要求5所述的方法,其特征在于,按照所述目标写入顺序,将各个所述目标对象的第二分片依次写入到所述第二节点的磁盘中还包括:
在以所述第三目标对象的对象标识为关键字查找所述目标映射表之后,在从所述目标映射表中未查找到所述第三目标对象的第二分片的情况下,每隔目标时间间隔重新以所述第三目标对象的对象标识为关键字查找一次所述目标映射表,直到查找到所述第三目标对象的第二分片;
将所述第三目标对象的第二分片写入到所述第二节点的磁盘中。


7.一种对象的恢复方法,其特征在于,包括:
通过第一节点接收第二节点发送的对象标识集合,其中,所述对象标识集合包含用于标识第二节点的目标纠删块中待恢复...

【专利技术属性】
技术研发人员:张丞
申请(专利权)人:北京金山云网络技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1