CN112711376B - 对象存储系统中对象主副本文件的确定方法及装置 - Google Patents

对象存储系统中对象主副本文件的确定方法及装置 Download PDF

Info

Publication number
CN112711376B
CN112711376B CN201911029536.5A CN201911029536A CN112711376B CN 112711376 B CN112711376 B CN 112711376B CN 201911029536 A CN201911029536 A CN 201911029536A CN 112711376 B CN112711376 B CN 112711376B
Authority
CN
China
Prior art keywords
file
storage server
determining
copy
storage
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
CN201911029536.5A
Other languages
English (en)
Other versions
CN112711376A (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.)
Beijing Kingsoft Cloud Network Technology Co Ltd
Beijing Kingsoft Cloud Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud Network Technology Co Ltd
Beijing Kingsoft Cloud Technology 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 Beijing Kingsoft Cloud Network Technology Co Ltd, Beijing Kingsoft Cloud Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN201911029536.5A priority Critical patent/CN112711376B/zh
Priority to PCT/CN2020/123045 priority patent/WO2021078222A1/zh
Publication of CN112711376A publication Critical patent/CN112711376A/zh
Application granted granted Critical
Publication of CN112711376B publication Critical patent/CN112711376B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Abstract

本发明提供了一种对象存储系统中对象主副本文件的确定方法及装置,涉及存储技术领域,该方法包括:首先监测存储服务器的当前状态;进而根据该存储服务器的当前状态,从该存储服务器上的区块文件和该区块文件对应的副本文件中,确定主副本文件。本发明在监测到存储服务器启动,异常关闭或者存储已满时,为该存储服务器上的区块文件确定主副本文件,从而缓解主副本文件所在进程重启,或者主副本文件所在存储服务器挂掉后,因区块文件没有主副本而无法存储的问题。

Description

对象存储系统中对象主副本文件的确定方法及装置
技术领域
本发明涉及存储技术领域,尤其是涉及一种对象存储系统中对象主副本文件的确定方法及装置。
背景技术
在分布式对象存储系统中,当需要上传一个对象时,对象存储系统通常会先选择一个非满的block文件(区块文件),然后找到这个block文件的三个副本所在的存储服务器,并将用户上传的对象转发到主副本所在存储服务器,主副本将该对象追加写在block文件的末尾,然后向两个从副本转发,从副本也将该对象追加写在block文件的末尾;当3个副本均写成功后,向用户返回该对象写成功,并返回该对象在存储系统中的唯一标识。
目前,通常在创建block文件的3个副本时,就指定第一个副本为主副本,其余两个为从副本。但是,这种设置主副本的方式,还存在以下不足:
第一,当主副本所在进程重启后,3个副本均是从副本,没有主副本;
第二,当主副本所在存储服务器挂掉后,只剩下2个副本,且都是从副本。
在以上两种情况下,会导致block文件没有主副本,从而导致对象数据无法写入存储系统。
发明内容
有鉴于此,本发明的目的在于提供一种对象存储系统中对象主副本文件的确定方法及装置,可以在监测到存储服务器启动,异常关闭或者存储已满时,为该存储服务器上的区块文件确定主副本,从而缓解主副本所在进程重启,或者主副本所在存储服务器挂掉后,区块文件没有主副本而无法存储的问题。
第一方面,本发明实施例提供了一种对象存储系统中对象主副本文件的确定方法,该方法包括:监测存储服务器的当前状态;根据该存储服务器的当前状态,从该存储服务器上的区块文件和该区块文件对应的副本文件中,确定主副本文件。
在本发明较佳的实施例中,上述根据该存储服务器的当前状态,从该存储服务器上的区块文件和该区块文件对应的副本文件中,确定主副本文件的步骤,包括:当该存储服务器的当前状态为启动时,获取该存储服务器上的区块文件中保存的对象的第一对象标识,以及该区块文件对应的副本文件中保存的对象的第二对象标识;根据该第一对象标识和该第二对象标识,从该区块文件和该区块文件对应的副本文件中确定主副本文件。
在本发明较佳的实施例中,在上述获取该存储服务器上的区块文件中保存的对象的第一对象标识,以及该区块文件对应的副本文件中保存的对象的第二对象标识的步骤之前,该方法还包括:接收来自该存储服务器的心跳信号;根据该心跳信号,确定该存储服务器发生重新启动或故障修复后启动。
在本发明较佳的实施例中,上述存储服务器中运行有存储服务进程;该心跳信号中包括该存储服务进程的启动时间;上述根据该心跳信号,确定该存储服务器发生重新启动的步骤,包括:监测该心跳信号中的启动时间,与该心跳信号的上一个心跳信号中的启动时间是否相同;如果不同,确定该存储服务器发生重新启动。
在本发明较佳的实施例中,上述存储服务器中运行有存储服务进程;该心跳信号中包括该存储服务进程的启动时间;上述根据该心跳信号,确定该存储服务器发生故障修复后启动的步骤,包括:如果当前时间与接收到最近一个心跳信号的时间,之间的时间差达到预设的第一时间阈值,确定该存储服务器发生故障修复后启动。
在本发明较佳的实施例中,上述根据该第一对象标识和该第二对象标识,从该区块文件和该区块文件对应的副本文件中确定主副本文件的步骤,包括:从该第一对象标识和该第二对象标识中筛选出数值最大的对象标识;将该数值最大的对象标识所属的该区块文件或该副本文件,确定为主副本文件。
在本发明较佳的实施例中,上述将该数值最大的对象标识所属的该区块文件或该副本文件,确定为主副本文件的步骤,包括:如果该数值最大的对象标识对应的对象存储于该区块文件,将该区块文件确定为主副本文件,将该副本文件确定为从副本文件;如果该数值最大的对象标识对应的对象存储于该副本文件,将该副本文件确定为主副本文件,将该区块文件确定为从副本文件。
在本发明较佳的实施例中,上述根据该存储服务器的当前状态,从该存储服务器上的区块文件和该区块文件对应的副本文件中,确定主副本文件的步骤,包括:当该存储服务器的当前状态为异常关闭,且关闭时长达到预设的第二时间阈值时,确定该存储服务器不可修复;在除该存储服务器、及该副本文件所在的存储服务器之外的备选存储服务器上,创建该区块文件的新副本文件;获取该副本文件中保存的对象的第二对象标识,以及该新副本文件中保存的对象的第三对象标识;根据该第二对象标识和该第三对象标识,从该副本文件和该新副本文件中确定主副本文件。
在本发明较佳的实施例中,上述根据该存储服务器的当前状态,从该存储服务器上的区块文件和该区块文件对应的副本文件中,确定主副本文件的步骤,包括:当该存储服务器的当前状态为存储已满,且接收到该存储服务器的区块文件新建请求时,从除该存储服务器以外的备选存储服务器中,选取指定数量的存储服务器;在发送该新建请求的存储服务器上创建新的区块文件,将该新的区块文件确定为主副本文件;在选取的存储服务器上创建该新的区块文件对应的从副本文件。
第二方面,本发明实施例还提供了一种对象存储系统中对象主副本文件的确定装置,该装置包括:存储服务器状态监测模块,用于监测存储服务器的当前状态;主副本文件确定模块,用于根据该存储服务器的当前状态,从该存储服务器上的区块文件和该区块文件对应的副本文件中,确定主副本文件。
在本发明较佳的实施例中,上述主副本文件确定模块还用于:当该存储服务器的当前状态为启动时,获取该存储服务器上的区块文件中保存的对象的第一对象标识,以及该区块文件对应的副本文件中保存的对象的第二对象标识;根据该第一对象标识和该第二对象标识,从该区块文件和该区块文件对应的副本文件中确定主副本文件。
在本发明较佳的实施例中,上述主副本文件确定模块还用于:当该存储服务器的当前状态为异常关闭,且关闭时长达到预设的第二时间阈值时,确定该存储服务器不可修复;在除该存储服务器、及该副本文件所在的存储服务器之外的备选存储服务器上,创建该区块文件的新副本文件;获取该副本文件中保存的对象的第二对象标识,以及该新副本文件中保存的对象的第三对象标识;根据该第二对象标识和该第三对象标识,从该副本文件和该新副本文件中确定主副本文件。
在本发明较佳的实施例中,上述主副本文件确定模块还用于:当该存储服务器的当前状态为存储已满,且接收到该存储服务器的区块文件新建请求时,从除该存储服务器以外的备选存储服务器中,选取指定数量的存储服务器;在发送该新建请求的存储服务器上创建新的区块文件,将该新的区块文件确定为主副本文件;在选取的存储服务器上创建该新的区块文件对应的从副本文件。
第三方面,本发明实施例还提供了一种对象存储服务器,包括处理器和存储器,该存储器存储有能够被该处理器执行的计算机可执行指令,该处理器执行该计算机可执行指令以实现上述对象存储系统中对象主副本文件的确定方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现上述对象存储系统中对象主副本文件的确定方法。
本发明实施例带来了以下有益效果:
本发明实施例提供的一种对象存储系统中对象主副本文件的确定方法及装置,首先监测存储服务器的当前状态;进而根据该存储服务器的当前状态,从该存储服务器上的区块文件和该区块文件对应的副本文件中,确定主副本文件。该方式可以在监测到存储服务器启动,异常关闭或者存储已满时,为该存储服务器上的区块文件确定主副本文件,从而缓解主副本文件所在进程重启,或者主副本文件所在存储服务器挂掉后,因区块文件没有主副本而无法存储的问题。
本公开的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本公开的上述技术即可得知。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种分布式对象存储系统的应用场景示意图;
图2为本发明实施例提供的一种对象存储系统中对象主副本文件的确定方法的流程示意图;
图3为本发明实施例提供的另一种对象存储系统中对象主副本文件的确定方法的流程示意图;
图4为本发明实施例提供的另一种对象存储系统中对象主副本文件的确定方法的流程示意图;
图5为本发明实施例提供的另一种对象存储系统中对象主副本文件的确定方法的流程示意图;
图6为本发明实施例提供的另一种对象存储系统中对象主副本文件的确定方法的流程示意图;
图7为本发明实施例提供的另一种对象存储系统中对象主副本文件的确定方法的流程示意图;
图8为本发明实施例提供的另一种对象存储系统中对象主副本文件的确定方法的流程示意图;
图9为本发明实施例提供的另一种对象存储系统中对象主副本文件的确定方法的流程示意图;
图10为本发明实施例提供的一种对象存储系统中对象主副本文件的确定装置的结构示意图;
图11为本发明实施例提供的一种对象存储服务器的结构示意图。
图标:100-分布式对象存储系统;10-存储服务器;11-主副本文件;12-从副本文件;91-对象标识获取模块;92-主副本文件确定模块;101-处理器;102-存储器;103-总线;104-通信接口。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
分布式存储系统是将数据分散存储在多个独立的存储服务器上,并通过网络进行各个独立设备间的通信和数据传输。在分布式对象存储系统中,用户的所有数据都被系统理解为一个个对象,其中,一个对象可以是一张图片、一个视频文件、一个音频文件或者一个Word文档等等。
参见图1,所示为一种分布式对象存储系统的应用场景示意图,其中,该分布式对象存储系统100包括三个存储服务器10,每台存储服务器10物理上分割成多个定长的block文件(区块文件),每个block文件有三个副本文件,包括一个主副本文件11和两个从副本文件12,并且每个副本位于不同的存储服务器10。当分布式对象存储系统100接收到用户的上传请求时,首先选择一个非满的block文件,并找到这个block文件的三个副本所在的存储服务器10;然后将用户上传的待存储对象转发到主副本文件11所在存储服务器,主副本文件11将该对象追加写在block文件的末尾;进而由主副本所在的存储服务器,向两个从副本文件12所在的服务器转发待存储对象,从副本文件12也将该待存储对象追加写在对应的block文件的末尾。
对于存储服务器中的区块文件,需要有对应的主副本文件才可以写入对象,否则,对象无法写入。而现有的主副本文件确定方式,在主副本所在进程重启,或者主副本所在存储服务器挂掉的情况下,会出现区块文件没有主副本的问题,从而导致对象数据无法写入存储系统。
基于此,本发明实施例提供的一种对象存储系统中对象主副本文件的确定方法及装置,该技术可以应用于各种对象存储的场景中,例如数据备份、数据归档、云盘存储等等。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种对象存储系统中对象主副本文件的确定方法进行详细介绍。
图2所示为一种对象存储系统中对象主副本文件的确定方法的流程示意图,由图2可见,该方法包括以下步骤:
步骤S202:监测存储服务器的当前状态。
这里,该监测的动作可以是由执行该对象存储系统中对象主副本文件的确定方法的设备本身执行,例如,若该方法应用于分布式对象存储服务器,则可以由该存储服务器本身执行监测。另外,上述监测的操作也可以是由外部设备或程序执行,例如,可以由外部设备监测该存储服务器的启动操作,并将监测状态反馈给执行该对象存储系统中对象主副本文件的确定方法的设备。
步骤S204:根据该存储服务器的当前状态,从该存储服务器上的区块文件和该区块文件对应的副本文件中,确定主副本文件。
区块文件即block文件,对于每台存储服务器,通常物理上被分割成多个定长的区块文件,其中,区块文件一般是GB级别,并且,每个区块文件都有一个唯一区块标识(blockid)。通常情况下,每个区块文件有多个副本,每个副本位于不同的存储服务器,并且每个副本的数据完全一模一样。
在实际操作中,当需要上传一个对象时,对象存储系统通常会首先选择一个非满的block文件,并找到这个block文件的三个副本所在的存储服务器,然后将用户上传的对象转发到主副本所在存储服务器,由主副本将该对象追加写在block文件的末尾,然后向两个从副本转发,进而从副本也将该对象追加写在对应block文件的末尾;当3个副本均写成功后,向用户返回该对象写成功,并返回该对象在存储系统中的唯一标识。
在本实施例中,上述存储服务器的当前状态可以是启动,也可以是异常关闭,还可以是存储已满。也即,当该存储服务器启动时,例如,存储服务器重新启动,或者存储服务器发生故障,并在修复故障后启动;都从该存储服务器上的区块文件和该区块文件对应的副本文件中,确定出主副本文件。并且,当该存储服务器异常关闭时,例如,因硬件损坏而关闭,此时,也从该存储服务器上的区块文件和该区块文件对应的副本文件中,确定出主副本文件。此外,当该存储服务器存储已满,并且需要新建区块文件时,仍然从该存储服务器上的区块文件和该区块文件对应的副本文件中,确定出主副本文件。
这样,在实际操作中,当存储服务器出现启动、异常关闭或存储已满的状况时,都可以从该存储服务器上的区块文件和该区块文件对应的副本文件中,确定出主副本文件,从而缓解了主副本所在进程重启,或者主副本所在存储服务器挂掉后,区块文件没有主副本而无法存储的问题。
本发明实施例提供的一种对象存储系统中对象主副本文件的确定方法,首先监测存储服务器的当前状态;进而根据该存储服务器的当前状态,从该存储服务器上的区块文件和该区块文件对应的副本文件中,确定主副本文件。该方式可以在监测到存储服务器启动,异常关闭或者存储已满时,为该存储服务器上的区块文件确定主副本文件,从而缓解主副本文件所在进程重启,或者主副本文件所在存储服务器挂掉后,因区块文件没有主副本而无法存储的问题,提高了存储系统的存储性能。
在图2所示对象存储系统中对象主副本文件的确定方法的基础上,本实施例还提供了另一种对象存储系统中对象主副本文件的确定方法,该方法重点描述了根据该存储服务器的当前状态,从该存储服务器上的区块文件和该区块文件对应的副本文件中,确定主副本文件的具体实现过程,如图3所示,为该方法的流程示意图,由图3可见,该方法包括以下步骤:
步骤S302:当该存储服务器的当前状态为启动时,获取该存储服务器上的区块文件中保存的对象的第一对象标识,以及该区块文件对应的副本文件中保存的对象的第二对象标识。
这里,每个区块文件有多个副本,且每个副本位于不同的存储服务器,再者,每个副本内通常包括多个对象,其中,对于小文件,一个文件就是一个对象,对于大文件,则需要在业务层拆分成多个小对象。在block文件内,每个对象都有一个对象标识(object id),且每个对象之间没有空隙。
对于存储服务器的启动类型,该存储服务器可以是正常启动,也可以是重新启动,也可以是发生故障修复后启动,或者其他可能的启动类型,在此不作限定。
在本实施例中,只要监测到存储服务器启动,就获取该存储服务器上的区块文件中保存的对象的第一对象标识,同时还获取该区块文件对应的副本文件中保存的对象的第二对象标识。这里,上述操作是对存储服务器上的每一个区块文件进行的。在一个区块文件中,其保存的对象可能有多个,且每个对象都有唯一的对象标识(object id),因此,获取的第一对象标识也相应有多个。另外,每个区块文件通常还对应有副本文件,其中,该副本文件至少为一个,且各个副本文件保存在互不相同的存储服务器上。
在本实施例中,上述第一对象标识和第二对象标识中的“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。以及,同一对象的第一对象标识和第二对象标识实为同一个值。在本申请中,针对同一对象,存储在区块文件中,则将其对象标识称为第一对象标识,而存储在该区块文件的副本中,则将该对象的对象标识称为第二对象标识。
假设该区块文件对应的副本文件有多个,则需要分别获取每个副本文件中保存对象的第二对象标识。同理,每个副本文件中保存的对象一般有多个,因而获取的第二对象标识也有多个。
步骤S304:根据该第一对象标识和该第二对象标识,从上述区块文件和该区块文件对应的副本文件中确定主副本文件。
在实际操作中,对象标识可以为一定位数的数字串,例如“080625”;也可以是字符串,例如“A1S57F”;还可以是其他形式的可识别标识。
这里,根据步骤S302获取到的第一对象标识和第二对象标识,从上述区块文件和该区块文件对应的副本文件中确定主副本文件。其中,可以设定规则进行确定,例如,以对象标识为数字串为例,可以从上述第一对象标识和第二对象标识中筛选出数值最小的对象标识,并将该对象标识对应的对象所在的区块文件或副本文件确定为主副本文件。在其他可能的实施方式中,也可以筛选出数值最大的对象标识,或者筛选出数值位于某一特定区间的对象标识等等,并将该对象标识对应的对象所在的区块文件或副本文件确定为主副本文件。并且,在确定主副本文件之后,上述区块文件与其对应的副本文件中的其他文件则被确定为从副本文件。
这样,通过对象标识,即可实现主副本文件的确定。只要监测到存储服务器的启动,即可通过本实施所提供的方法对该存储服务器进行副本选主,因而,无论该启动的存储服务器中的区块文件是不是主副本,也不管该存储服务器是重新启动,或者挂掉,或者发生其他故障并修复后启动,都可以通过本实施例提供的对象存储系统中对象主副本文件的确定方法,使得存储服务器上的每个区块文件都对应有主副本文件。
本发明实施例提供的对象存储系统中对象主副本文件的确定方法,如果监测到存储服务器启动,获取该存储服务器上的区块文件中保存的对象的第一对象标识,以及该区块文件对应的副本文件中保存的对象的第二对象标识;进而根据该第一对象标识和该第二对象标识,从上述区块文件和该区块文件对应的副本文件中确定主副本文件。该方式可以在监测到存储服务器启动时,为该存储服务器上的区块文件确定主副本,从而缓解主副本文件所在进程重启后,因区块文件没有主副本而无法存储的问题。
在图3所示对象存储系统中对象主副本文件的确定方法的基础上,本实施例还提供了另一种对象存储系统中对象主副本文件的确定方法,该方法重点描述了对监测到的启动存储服务器的启动类型,进行判别确定的具体实现过程,如图4所示,为该方法的流程示意图,该方法包括以下步骤:
步骤S402:如果监测到存储服务器启动,接收来自该存储服务器的心跳信号。
这里,心跳信号是周期性的信号,其中,心跳周期可以灵活设置,例如可以是几秒、十几秒等等。并且,根据该信号可以反映出存储服务器的健康状况,也即,判断该存储服务器是否“存活”,若周期性接收到心跳信号,则表明该存储服务器正常工作,否则,表明该存储服务器有异常。
例如,假设心跳周期是10秒,若持续接收到来自存储服务器的10秒周期心跳信号,则表明该存储服务器正常工作;如果接收到的心跳信号有中断,例如中断80秒,才重新收到正常周期的心跳信号,表明该存储服务器工作存在异常;如果长时间不再收到周期的心跳信号,比如超过1个小时都未收到心跳信号,则表明该存储服务器发生了故障。
当监测到存储服务器启动时,即接收从该存储服务器发送的心跳信号。
步骤S404:根据该心跳信号,确定该存储服务器发生重新启动或故障修复后启动。
在一些情况下,存储服务器需要重新启动,可能是用户主动进行重启,也可能发生了死机而需要重启。在另外一些情况下,存储服务器可能出现故障,例如机器挂掉,或者内部线路短路等,在修复故障之后,再次启动该存储服务器。
对于上述两种情况,无论是重新启动或者故障修复后启动,都可以根据心跳信号进行区分。例如,可以根据心跳信号接收情况进行区分。通常情况下,存储服务器从正常状态重新启动,一般需要几十秒至几分钟,而存储服务器发生故障时,从修复到再次启动,往往需要更长时间,可能是几十分钟或者更长。
步骤S406:获取该存储服务器上的区块文件中保存的对象的第一对象标识,以及该区块文件对应的副本文件中保存的对象的第二对象标识。
经过步骤S404,即可确定本次监测到的存储服务器的启动是属于重新启动,还是属于故障修复后启动。对于这两种不同类型的启动,均执行步骤S406与步骤S408,从而可以确定该存储服务器上每个区块文件对应的主副本文件。其中,步骤S406与步骤S408的具体操作,可参见上述实施例中的相应描述,在此不再赘述。
步骤S408:根据该第一对象标识和该第二对象标识,从上述区块文件和该区块文件对应的副本文件中确定主副本文件。
本实施例提供的对象存储系统中对象主副本文件的确定方法,根据存储服务器的心跳信号,先确定监测到启动存储服务器的启动类型,对于存储服务器的重新启动或者故障修复后启动两种启动情况,均可以实现确定该存储服务器上每个区块文件对应的主副本文件,有效缓解了因主副本文件所在进程重启后,区块文件没有主副本而无法存储的问题。
在图4所示对象存储系统中对象主副本文件的确定方法的基础上,本实施例还提供了另一种对象存储系统中对象主副本文件的确定方法,该方法重点描述了根据该心跳信号,确定该存储服务器发生重新启动的具体实现过程,如图5所示,为该方法的流程示意图,该方法包括以下步骤:
步骤S502:如果监测到存储服务器启动,接收来自该存储服务器的心跳信号;该存储服务器中运行有存储服务进程;该心跳信号中包括该存储服务进程的启动时间。
其中,该存储服务进程用于管理对象在存储服务器上的写入、读取和删除等操作。并且,存储服务进程的工作状态反应该存储服务器的工作状态。如果该存储服务器重启,则存储服务进程也重启;如果该存储服务器出现故障,比如挂掉,则该存储服务进程也挂掉。
在本实施例中,当存储服务进程启动并运行时,该存储服务器的心跳信号也携带该存储服务进程的启动时间。例如,假设存储服务进程的启动时间是9:30am,则每次心跳信号中都携带该启动时间9:30am。若该存储服务进程关闭,则心跳信号也停止发送,不再接受到心跳信号。若是再次启动该存储服务进程,假如再次启动进程的时间为15:00pm,则启动后的心跳信号中携带的启动时间为15:00pm。
步骤S504:监测该心跳信号中的启动时间,与该心跳信号的上一个心跳信号中的启动时间是否相同;如果是,执行步骤S508;如果否,执行步骤S506。
对于接收到的心跳信号,获取其中的启动时间,并且将该启动时间与上一个心跳信号中的启动时间进行比较,若是相同,表明心跳信号连续,存储服务器运行正常,执行步骤S508,也即确定该存储服务器不是发生重新启动,此时,不进行副本选主的操作,结束流程;如果不同,则表明中间的心跳信号有中断,此时执行步骤S506,也即确定该存储服务器发生重新启动。
步骤S506:确定该存储服务器发生重新启动。
确定该存储服务器发生重新启动后,继续执行步骤S510与步骤S512的操作,对该重新启动后的存储服务器进行副本选主操作,从而确定该存储服务器上每个区块文件对应的主副本文件。
步骤S508:确定该存储服务器不是发生重新启动。
由于从接收到的心跳信号中获取的启动时间,与上一个心跳信号中的启动时间是相同的,则表明该存储服务器不是发生重新启动。此时,不进行副本选主的操作,结束流程。
步骤S510:获取该存储服务器上的区块文件中保存的对象的第一对象标识,以及该区块文件对应的副本文件中保存的对象的第二对象标识。
步骤S512:根据该第一对象标识和该第二对象标识,从上述区块文件和该区块文件对应的副本文件中确定主副本文件。
本实施例提供的对象存储系统中对象主副本文件的确定方法,根据心跳信号中存储服务进程的启动时间是否发生变化,确定存储服务器是否发生重新启动,并在确定其重新启动后,执行副本选主的操作,从而确定出该存储服务器上每个区块文件对应的主副本文件。该方式有效缓解了因主副本文件所在进程重启,区块文件没有主副本而无法存储的问题。
参见图6,本实施例还提供了另一种对象存储系统中对象主副本文件的确定方法,该方法介绍了根据该心跳信号,确定该存储服务器发生故障修复后启动的具体实现过程,如图6所示,为该方法的流程示意图,该方法包括以下步骤:
步骤S602:如果监测到存储服务器启动,接收来自该存储服务器的心跳信号;该存储服务器中运行有存储服务进程;该心跳信号中包括该存储服务进程的启动时间。
步骤S604:判断当前时间与接收到最近一个心跳信号的时间,之间的时间差是否达到预设的第一时间阈值;如果否,执行步骤S608;如果是,执行步骤S606。
这里,当前时间指实时时间。如果当前时间与接收到最近一个心跳信号的时间较长,则表明此次监测到的启动,是该存储服务器是发生了故障,并修复故障后的再次启动。例如,假设当前时间为12:00am,而接收到的最近一个心跳信号的时间为8:00am,则认为此次监测到的启动是故障修复后启动。
在本实施例中,预先设立了第一时间阈值,以衡量当前时间与接收到最近一个心跳信号的时间之间的时间差是否足够长。对于不同的应用场景,可以根据实际需要灵活设置该第一时间阈值,该第一时间阈值可以是几十分钟、几个小时,或者其他更长或者更短的时间。
这样,如果当前时间与接收到最近一个心跳信号的时间之间的时间差达到该第一时间阈值,则认为心跳信号中断时间较长,此时,执行步骤S606,确定该存储服务器发生故障修复后启动;如果上述时间差未达到预设的第一时间阈值,则认为心跳信号中断时间较短,此时,执行步骤S608,确定该存储服务器不是发生故障修复后启动。
步骤S606:确定该存储服务器发生故障修复后启动。
确定该存储服务器发生故障修复后启动后,继续执行步骤S610与步骤S612的操作,对该发生故障修复后启动的存储服务器进行副本选主操作,从而确定该存储服务器上每个区块文件对应的主副本文件。
步骤S608:确定该存储服务器不是发生故障修复后启动。
由于心跳信号中断时间较短,可能是偶然因素引发,此时,不进行副本选主的操作,结束流程。
步骤S610:获取该存储服务器上的区块文件中保存的对象的第一对象标识,以及该区块文件对应的副本文件中保存的对象的第二对象标识。
步骤S612:根据该第一对象标识和该第二对象标识,从上述区块文件和该区块文件对应的副本文件中确定主副本文件。
本实施例提供的对象存储系统中对象主副本文件的确定方法,根据心跳信号的中断时间长短,确定存储服务器是否发生故障修复后启动,并在确定其是故障修复后启动之后,执行副本选主的操作,从而确定出该存储服务器上每个区块文件对应的主副本文件。该方式有效缓解了因主副本文件所在存储服务器挂掉后,区块文件没有主副本而无法存储的问题。
在实际操作中,还存在一种情况,如果一台存储服务器彻底挂掉,且根本无法修复,那么位于该台服务器上的所有区块文件都缺少一个副本,此时,也需要重新确定主副本文件。为此,本实施例还提供了另一种对象存储系统中对象主副本文件的确定方法,参见图7,为该方法的流程示意图,该方法包括以下步骤:
步骤S702:监测存储服务器的工作状态;如果监测到存储服务器启动,则执行步骤S704;如果监测到存储服务器异常关闭,则执行步骤S708。
这里,如果监测到存储服务器启动,则按照图3对应实施例中的对象存储系统中对象主副本文件的确定方法进行副本选主,具体的步骤可参考上述实施例中对应的描述,在此不再赘述。如果监测到存储服务器异常关闭,即非正常关闭,例如因硬件损坏而关闭,此时,判断关闭时长是否超过预设的第二时间阈值。这里,第二时间阈值可以是几个小时或几十个小时,也可以是其他时间段。
步骤S704:获取该存储服务器上的区块文件中保存的对象的第一对象标识,以及该区块文件对应的副本文件中保存的对象的第二对象标识。
步骤S706:根据该第一对象标识和该第二对象标识,从上述区块文件和该区块文件对应的副本文件中确定主副本文件。
步骤S708:判断关闭时长是否达到预设的第二时间阈值;如果是,则执行步骤S712;如果否,则执行步骤S710。
如果存储服务器的关闭时长达到预设的第二时间阈值,说明该存储服务器长时间未能修复,此时,确定该存储服务器不可修复;如果否,也即关闭时长未达到预设的第二时间阈值,说明关闭时长较短,可能还在修复中,或者重启中,此时,确定该存储服务器不是不可修复。
步骤S710:确定该存储服务器不是不可修复。
确定该存储服务器不是不可修复后,结束操作。
步骤S712:确定该存储服务器不可修复。
此时,表明该存储服务器以及彻底挂掉,无法修复。
步骤S714:在除该存储服务器,及上述副本文件所在的存储服务器,之外的备选存储服务器上,创建该区块文件的新副本文件。
这里,由于该存储服务器已经彻底挂掉,不可修复,因而其上的区块文件都缺少一个副本,此时,需要先将每个区块文件恢复到之前的副本数目,例如,假设之前每个区块文件对应有3个副本,则此时需要将每个区块文件的副本数目恢复成3个副本。其中,需要保证每个副本文件都位于不同的存储服务器上,因此,需要在除该挂掉的存储服务器,以及该存储服务器的区块文件对应的副本文件所在的存储服务器,之外的备选存储服务器上进行新副本文件创建。
步骤S716:获取该新副本文件中保存的对象的第三对象标识。
在创建新副本文件之后,获取该新副本文件中保存的各个对象的对象标识,记为第三对象标识。
步骤S718:根据该第二对象标识和该第三对象标识,从该副本文件和该新副本文件中确定主副本文件。
这里,从该副本文件和该新副本文件中确定主副本文件的方法,与图2中所示从区块文件和该区块文件对应的副本文件中确定主副本文件的方法一致,具体操作可参考对应实施例的相应描述,在此不再赘述。
本实施例针对存储服务器彻底挂掉的情况,提供了确定主副本文件的操作方法,该方式有效缓解了因主副本文件所在存储服务器彻底挂掉,不可修复的情况下,区块文件没有主副本而无法存储的问题。
另外,在图3所示对象存储系统中对象主副本文件的确定方法的基础上,本实施例还提供了另一种对象存储系统中对象主副本文件的确定方法,该方法重点描述了根据第一对象标识和第二对象标识,从区块文件和该区块文件对应的副本文件中确定主副本文件的具体实现过程,如图8所示,为该方法的流程示意图,该方法包括以下步骤:
步骤S802:如果监测到存储服务器启动,获取该存储服务器上的区块文件中保存的对象的第一对象标识,以及该区块文件对应的副本文件中保存的对象的第二对象标识。
步骤S804:从该第一对象标识和该第二对象标识中筛选出数值最大的对象标识。
在本实施例中,对象标识代表一定的数值,并且可以进行数值比较。例如,该对象标识可以是由数字组成,位数可以相同或不同。例如,可以是“00234”,“13546”等等。
在步骤S802中已经获取了第一对象标识和第二对象标识,这里,对这些对象标识的数值进行比较,以筛选出数值最大的对象标识。
步骤S806:将该数值最大的对象标识所属的区块文件或副本文件,确定为主副本文件。
对于该数值最大的对象标识,其对应的对象可能保存在该存储服务器上的区块文件中,也可能是保存在该区块文件对应的副本文件中。这里,如果该数值最大的对象标识对应的对象存储于该区块文件,则将该区块文件确定为主副本文件,并将该副本文件确定为从副本文件;如果该数值最大的对象标识对应的对象存储于该副本文件,则将该副本文件确定为主副本文件,并将该区块文件确定为从副本文件。这样,对于监测到的该启动的存储服务器,即确定了其上每个区块文件对应的主副本文件和从副本文件,从而可以允许对象的存储。
本实施例提供的对象存储系统中对象主副本文件的确定方法,结合对象标识的数值大小来确定主副本文件,可操作性强,该方式同样可以缓解因主副本文件所在进程重启,或者主副本文件所在存储服务器挂掉后,区块文件没有主副本而无法存储的问题。
在实际操作中,上述存储服务进程还可用于监测对应存储服务器的磁盘情况,在其中一种实施方式中,当该存储服务器上的大部分区块文件将写满时,该存储服务器进程向控制设备发起创建区块文件的流程,这里,为满足创建区块文件时的主副本选取需求,本实施例还提供了另一种对象存储系统中对象主副本文件的确定方法,参见图9,为该方法的流程示意图,由图9可见,该方法包括以下步骤:
步骤S902:如果接收到该存储服务器的区块文件新建请求,从除该存储服务器以外的备选存储服务器中,选取指定数量的存储服务器。
通常,当存储服务器上已有的区块文件均快写满时,会向控制设备发送区块文件新建请求。由于区块文件通常为定长,例如8G,在其中一种可能的实施方式中,可以设置存储阈值,例如7.5G,当该存储服务器上的区块文件都达到该存储阈值7.5G时,触发区块文件新建请求。
这里,对于请求新建的区块文件,如果其对应有多个副本文件,则每个副本文件均需对应一台存储服务器。假设请求新建的区块文件对应的副本文件有2个,则需要从除本存储服务器以外的备选存储服务器中,另选取2台存储服务器。
步骤S904:在发送该新建请求的存储服务器上创建新的区块文件,将该新的区块文件确定为主副本文件。
在本实施例中,在发送该新建请求的存储服务器上创建新的区块文件,并且直接将该新的区块文件确定为主副本文件。这样,只要有新建的区块文件,则必然对应有主副本文件。
步骤S906:在选取的存储服务器上创建该新的区块文件对应的从副本文件。
相应地,在步骤S902中选取的指定数量的存储服务器上,分别创建区块文件,并作为从副本文件。
本实施例提供的对象存储系统中对象主副本文件的确定方法,在存储已满,并创建新的区块文件时即进行副本选主,确定了新建区块文件的主副本文件和从副本文件,从而缓解了因区块文件没有主副本而无法存储的问题。
对应于上述对象存储系统中对象主副本文件的确定方法,本实施例还提供了一种对象存储系统中对象主副本文件的确定装置,如图10所示,为该装置的结构示意图,由图10可见,该装置包括彼此相连的对象标识获取模块91和主副本文件确定模块92,其中,各个模块的功能如下:
对象标识获取模块91,用于如果监测到存储服务器启动,获取该存储服务器上的区块文件中保存的对象的第一对象标识,以及该区块文件对应的副本文件中保存的对象的第二对象标识;
主副本文件确定模块92,用于根据该第一对象标识和该第二对象标识,从上述区块文件和该区块文件对应的副本文件中确定主副本文件。
本发明实施例提供的一种对象存储系统中对象主副本文件的确定装置,如果监测到存储服务器启动,获取该存储服务器上的区块文件中保存的对象的第一对象标识,以及该区块文件对应的副本文件中保存的对象的第二对象标识;进而根据该第一对象标识和该第二对象标识,从上述区块文件和该区块文件对应的副本文件中确定主副本文件。该装置可以在监测到存储服务器启动时,为该存储服务器上的区块文件确定主副本,从而缓解主副本所在进程重启,或者主副本所在存储服务器挂掉后,区块文件没有主副本而无法存储的问题。
在其中一种可能的实施方式中,上述装置还包括:心跳信号接收模块,用于接收来自该存储服务器的心跳信号;启动类型确定模块,用于根据该心跳信号,确定该存储服务器发生重新启动或故障修复后启动。
在另一种可能的实施方式中,上述存储服务器中运行有存储服务进程;该心跳信号中包括该存储服务进程的启动时间;该启动类型确定模块还用于:监测该心跳信号中的启动时间,与该心跳信号的上一个心跳信号中的启动时间是否相同;如果不同,确定该存储服务器发生重新启动。
在另一种可能的实施方式中,上述存储服务器中运行有存储服务进程;该心跳信号中包括该存储服务进程的启动时间;该启动类型确定模块还用于:如果当前时间与接收到最近一个心跳信号的时间,之间的时间差达到预设的第一时间阈值,确定该存储服务器发生故障修复后启动。
在另一种可能的实施方式中,该对象存储系统中对象主副本文件的确定装置还包括:不可修复确定模块,用于如果监测到存储服务器异常关闭,且关闭时长达到预设的第二时间阈值,则确定该存储服务器不可修复;新副本文件创建模块,用于在除该存储服务器,及该副本文件所在的存储服务器,之外的备选存储服务器上,创建该区块文件的新副本文件;并且,上述对象标识获取模块91还用于:获取该新副本文件中保存的对象的第三对象标识;上述主副本文件确定模块92还用于:根据该第二对象标识和该第三对象标识,从该副本文件和该新副本文件中确定主副本文件。
在另一种可能的实施方式中,上述主副本文件确定模块92还用于:从该第一对象标识和该第二对象标识中筛选出数值最大的对象标识;将该数值最大的对象标识所属的区块文件或副本文件,确定为主副本文件。
在另一种可能的实施方式中,上述主副本文件确定模块92还用于:如果该数值最大的对象标识对应的对象存储于该区块文件,将该区块文件确定为主副本文件,将该副本文件确定为从副本文件;如果该数值最大的对象标识对应的对象存储于该副本文件,将该副本文件确定为主副本文件,将该区块文件确定为从副本文件。
在另一种可能的实施方式中,上述主副本文件的确定还包括区块文件新建请求响应模块,该模块用于:如果接收到该存储服务器的区块文件新建请求,从除该存储服务器以外的备选存储服务器中,选取指定数量的存储服务器;在发送该新建请求的存储服务器上创建新的区块文件,将该新的区块文件确定为主副本文件;在选取的存储服务器上创建该新的区块文件对应的从副本文件。
本发明实施例提供的对象存储系统中对象主副本文件的确定装置,其实现原理及产生的技术效果和前述对象存储系统中对象主副本文件的确定方法实施例相同,为简要描述,对象存储系统中对象主副本文件的确定装置的实施例部分未提及之处,可参考前述对象存储系统中对象主副本文件的确定方法实施例中相应内容。
本发明实施例还提供了一种对象存储服务器,如图11所示,为该对象存储服务器的结构示意图,其中,该对象存储系统包括处理器101和存储器102,该存储器102存储有能够被该处理器101执行的计算机可执行指令,该处理器101执行该计算机可执行指令以实现上述对象存储系统中对象主副本文件的确定方法。
在图11示出的实施方式中,该对象存储服务器还包括总线103和通信接口104,其中,处理器101、通信接口104和存储器102通过总线连接。
其中,存储器102可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口104(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器101可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器101中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器101可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processing,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器101读取存储器102中的信息,结合其硬件完成前述实施例的对象存储系统中对象主副本文件的确定方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令在被处理器调用和执行时,该计算机可执行指令促使处理器实现上述对象存储系统中对象主副本文件的确定方法,具体实现可参见前述对象存储系统中对象主副本文件的确定方法的实施例,在此不再赘述。
本发明实施例所提供的对象存储系统中对象主副本文件的确定方法、对象存储系统中对象主副本文件的确定装置和对象存储服务器的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的对象存储系统中对象主副本文件的确定方法,具体实现可参见方法实施例,在此不再赘述。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对步骤、数字表达式和数值并不限制本发明的范围。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (13)

1.一种对象存储系统中对象主副本文件的确定方法,其特征在于,包括:
监测存储服务器的当前状态;所述当前状态包括:启动、异常关闭或存储已满;
根据所述存储服务器的当前状态,从所述存储服务器上的区块文件和所述区块文件对应的副本文件中,确定主副本文件;
所述根据所述存储服务器的当前状态,从所述存储服务器上的区块文件和所述区块文件对应的副本文件中,确定主副本文件的步骤,包括:
当所述存储服务器的当前状态为启动时,获取所述存储服务器上的区块文件中保存的对象的第一对象标识,以及所述区块文件对应的副本文件中保存的对象的第二对象标识;
根据所述第一对象标识和所述第二对象标识,按预设规则从所述区块文件和所述区块文件对应的副本文件中确定主副本文件;其中,如果所述第一对象标识和所述第二对象标识为数字串,所述预设规则包括:从所述第一对象标识和所述第二对象标识中筛选出数值最小的对象标识、筛选出数值最大的对象标识或筛选出数值位于特定区间的对象标识,以将该对象标识对应的对象所在的区块文件或副本文件确定为主副本文件。
2.根据权利要求1所述的对象存储系统中对象主副本文件的确定方法,其特征在于,获取所述存储服务器上的区块文件中保存的对象的第一对象标识,以及所述区块文件对应的副本文件中保存的对象的第二对象标识的步骤之前,所述方法还包括:
接收来自所述存储服务器的心跳信号;
根据所述心跳信号,确定所述存储服务器发生重新启动或故障修复后启动。
3.根据权利要求2所述的对象存储系统中对象主副本文件的确定方法,其特征在于,所述存储服务器中运行有存储服务进程;所述心跳信号中包括所述存储服务进程的启动时间;
所述根据所述心跳信号,确定所述存储服务器发生重新启动的步骤,包括:
监测所述心跳信号中的启动时间,与所述心跳信号的上一个心跳信号中的启动时间是否相同;
如果不同,确定所述存储服务器发生重新启动。
4.根据权利要求2所述的对象存储系统中对象主副本文件的确定方法,其特征在于,所述存储服务器中运行有存储服务进程;所述心跳信号中包括所述存储服务进程的启动时间;
所述根据所述心跳信号,确定所述存储服务器发生故障修复后启动的步骤,包括:
如果当前时间与接收到最近一个心跳信号的时间,之间的时间差达到预设的第一时间阈值,确定所述存储服务器发生故障修复后启动。
5.根据权利要求1所述的对象存储系统中对象主副本文件的确定方法,其特征在于,根据所述第一对象标识和所述第二对象标识,从所述区块文件和所述区块文件对应的副本文件中确定主副本文件的步骤,包括:
从所述第一对象标识和所述第二对象标识中筛选出数值最大的对象标识;
将所述数值最大的对象标识所属的所述区块文件或所述副本文件,确定为主副本文件。
6.根据权利要求5所述的对象存储系统中对象主副本文件的确定方法,其特征在于,将所述数值最大的对象标识所属的所述区块文件或所述副本文件,确定为主副本文件的步骤,包括:
如果所述数值最大的对象标识对应的对象存储于所述区块文件,将所述区块文件确定为主副本文件,将所述副本文件确定为从副本文件;
如果所述数值最大的对象标识对应的对象存储于所述副本文件,将所述副本文件确定为主副本文件,将所述区块文件确定为从副本文件。
7.根据权利要求1所述的对象存储系统中对象主副本文件的确定方法,其特征在于,所述根据所述存储服务器的当前状态,从所述存储服务器上的区块文件和所述区块文件对应的副本文件中,确定主副本文件的步骤,包括:
当所述存储服务器的当前状态为异常关闭,且关闭时长达到预设的第二时间阈值时,确定所述存储服务器不可修复;
在除所述存储服务器、及所述副本文件所在的存储服务器之外的备选存储服务器上,创建所述区块文件的新副本文件;
获取所述副本文件中保存的对象的第二对象标识,以及所述新副本文件中保存的对象的第三对象标识;
根据所述第二对象标识和所述第三对象标识,从所述副本文件和所述新副本文件中确定主副本文件。
8.根据权利要求1所述的对象存储系统中对象主副本文件的确定方法,其特征在于,所述根据所述存储服务器的当前状态,从所述存储服务器上的区块文件和所述区块文件对应的副本文件中,确定主副本文件的步骤,包括:
当所述存储服务器的当前状态为存储已满,且接收到所述存储服务器的区块文件新建请求时,从除所述存储服务器以外的备选存储服务器中,选取指定数量的存储服务器;
在发送所述新建请求的存储服务器上创建新的区块文件,将所述新的区块文件确定为主副本文件;
在选取的存储服务器上创建所述新的区块文件对应的从副本文件。
9.一种对象存储系统中对象主副本文件的确定装置,其特征在于,包括:
存储服务器状态监测模块,用于监测存储服务器的当前状态;所述当前状态包括:启动、异常关闭或存储已满;
主副本文件确定模块,用于根据所述存储服务器的当前状态,从所述存储服务器上的区块文件和所述区块文件对应的副本文件中,确定主副本文件;
所述主副本文件确定模块还用于:
当所述存储服务器的当前状态为启动时,获取所述存储服务器上的区块文件中保存的对象的第一对象标识,以及所述区块文件对应的副本文件中保存的对象的第二对象标识;
根据所述第一对象标识和所述第二对象标识,按预设规则从所述区块文件和所述区块文件对应的副本文件中确定主副本文件;其中,如果所述第一对象标识和所述第二对象标识为数字串,所述预设规则包括:从所述第一对象标识和所述第二对象标识中筛选出数值最小的对象标识、筛选出数值最大的对象标识或筛选出数值位于特定区间的对象标识,以将该对象标识对应的对象所在的区块文件或副本文件确定为主副本文件。
10.根据权利要求9所述的对象存储系统中对象主副本文件的确定装置,其特征在于,所述主副本文件确定模块还用于:
当所述存储服务器的当前状态为异常关闭,且关闭时长达到预设的第二时间阈值时,确定所述存储服务器不可修复;
在除所述存储服务器、及所述副本文件所在的存储服务器之外的备选存储服务器上,创建所述区块文件的新副本文件;
获取所述副本文件中保存的对象的第二对象标识,以及所述新副本文件中保存的对象的第三对象标识;
根据所述第二对象标识和所述第三对象标识,从所述副本文件和所述新副本文件中确定主副本文件。
11.根据权利要求9所述的对象存储系统中对象主副本文件的确定装置,其特征在于,所述主副本文件确定模块还用于:
当所述存储服务器的当前状态为存储已满,且接收到所述存储服务器的区块文件新建请求时,从除所述存储服务器以外的备选存储服务器中,选取指定数量的存储服务器;
在发送所述新建请求的存储服务器上创建新的区块文件,将所述新的区块文件确定为主副本文件;
在选取的存储服务器上创建所述新的区块文件对应的从副本文件。
12.一种对象存储服务器,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机可执行指令,所述处理器执行所述计算机可执行指令以实现权利要求1至8任一项所述的对象存储系统中对象主副本文件的确定方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现权利要求1至8任一项所述的对象存储系统中对象主副本文件的确定方法。
CN201911029536.5A 2019-10-25 2019-10-25 对象存储系统中对象主副本文件的确定方法及装置 Active CN112711376B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201911029536.5A CN112711376B (zh) 2019-10-25 2019-10-25 对象存储系统中对象主副本文件的确定方法及装置
PCT/CN2020/123045 WO2021078222A1 (zh) 2019-10-25 2020-10-23 对象存储系统中对象主副本文件的确定方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911029536.5A CN112711376B (zh) 2019-10-25 2019-10-25 对象存储系统中对象主副本文件的确定方法及装置

Publications (2)

Publication Number Publication Date
CN112711376A CN112711376A (zh) 2021-04-27
CN112711376B true CN112711376B (zh) 2022-12-23

Family

ID=75541092

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911029536.5A Active CN112711376B (zh) 2019-10-25 2019-10-25 对象存储系统中对象主副本文件的确定方法及装置

Country Status (2)

Country Link
CN (1) CN112711376B (zh)
WO (1) WO2021078222A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116431417B (zh) * 2023-06-13 2023-10-10 北京中实信息技术有限公司 一种服务器自检的方法、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103294787A (zh) * 2013-05-21 2013-09-11 成都市欧冠信息技术有限责任公司 分布式数据库系统的多副本存储方法和系统
CN105610903A (zh) * 2015-12-17 2016-05-25 北京奇虎科技有限公司 分布式系统的数据节点升级方法及装置
CN107729536A (zh) * 2017-10-31 2018-02-23 新华三技术有限公司 一种数据存储方法和装置
CN108572976A (zh) * 2017-03-10 2018-09-25 华为软件技术有限公司 一种分布式数据库中数据恢复方法、相关设备和系统
CN109992452A (zh) * 2019-03-29 2019-07-09 新华三技术有限公司 一种故障处理方法及装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7065618B1 (en) * 2003-02-14 2006-06-20 Google Inc. Leasing scheme for data-modifying operations
JP4246754B2 (ja) * 2006-05-26 2009-04-02 富士通株式会社 階層型ストレージシステムの階層制御装置,2重化メディアの保守管理方法及びプログラム
CN101706802B (zh) * 2009-11-24 2013-06-05 成都市华为赛门铁克科技有限公司 一种数据写入、修改及恢复的方法、装置及服务器
CN102368222A (zh) * 2011-10-25 2012-03-07 曙光信息产业(北京)有限公司 一种多副本存储系统在线修复的方法
CN102508890A (zh) * 2011-10-25 2012-06-20 无锡城市云计算中心有限公司 一种对象存储系统中对象一致性操作的方法
US9449039B2 (en) * 2012-11-26 2016-09-20 Amazon Technologies, Inc. Automatic repair of corrupted blocks in a database
US9569513B1 (en) * 2013-09-10 2017-02-14 Amazon Technologies, Inc. Conditional master election in distributed databases
US9535612B2 (en) * 2013-10-23 2017-01-03 International Business Machines Corporation Selecting a primary storage device
CN103530205A (zh) * 2013-10-23 2014-01-22 曙光信息产业(北京)有限公司 多副本中故障副本的处理方法和装置
CN103729436A (zh) * 2013-12-27 2014-04-16 中国科学院信息工程研究所 一种分布式元数据管理方法及系统
CN103793296A (zh) * 2014-01-07 2014-05-14 浪潮电子信息产业股份有限公司 一种在集群中用于辅助备份复制计算机系统的方法
US9652471B1 (en) * 2014-12-15 2017-05-16 Amazon Technologies, Inc. Intelligent file system with transparent storage tiering
CN104580427B (zh) * 2014-12-27 2018-09-04 北京奇虎科技有限公司 一种分布式存储系统中的主从平衡方法和装置
CN105550229B (zh) * 2015-12-07 2019-05-03 北京奇虎科技有限公司 分布式存储系统数据修复的方法和装置
US10230809B2 (en) * 2016-02-29 2019-03-12 Intel Corporation Managing replica caching in a distributed storage system
CN107800744B (zh) * 2016-09-06 2021-06-18 北京金山云网络技术有限公司 一种服务请求转发方法、装置及系统
US10282115B2 (en) * 2017-04-13 2019-05-07 International Business Machines Corporation Object synchronization in a clustered system
CN108572793B (zh) * 2017-10-18 2021-09-10 北京金山云网络技术有限公司 数据写入和数据恢复方法、装置、电子设备及存储介质
CN108667917B (zh) * 2018-04-24 2021-12-07 厦门集微科技有限公司 一种实现数据存储的方法、装置、计算机存储介质及终端

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103294787A (zh) * 2013-05-21 2013-09-11 成都市欧冠信息技术有限责任公司 分布式数据库系统的多副本存储方法和系统
CN105610903A (zh) * 2015-12-17 2016-05-25 北京奇虎科技有限公司 分布式系统的数据节点升级方法及装置
CN108572976A (zh) * 2017-03-10 2018-09-25 华为软件技术有限公司 一种分布式数据库中数据恢复方法、相关设备和系统
CN107729536A (zh) * 2017-10-31 2018-02-23 新华三技术有限公司 一种数据存储方法和装置
CN109992452A (zh) * 2019-03-29 2019-07-09 新华三技术有限公司 一种故障处理方法及装置

Also Published As

Publication number Publication date
WO2021078222A1 (zh) 2021-04-29
CN112711376A (zh) 2021-04-27

Similar Documents

Publication Publication Date Title
CN110071821B (zh) 确定事务日志的状态的方法,节点和存储介质
CN108509153B (zh) Osd选择方法、数据写入和读取方法、监控器和服务器集群
US11907561B2 (en) Data backup method and apparatus
JP5713138B1 (ja) 仮想計算機システム、プリンタ制御システム、仮想計算機プログラム及びプリンタ制御プログラム
CN109144789B (zh) 一种重启osd的方法、装置及系统
US20230123923A1 (en) Methods and systems for data resynchronization in a replication environment
CN104036043A (zh) 一种mysql高可用的方法及管理节点
CN111752488B (zh) 存储集群的管理方法、装置、管理节点及存储介质
CN106708960B (zh) 一种nas设备文件系统的修复方法及nas设备
CN112711376B (zh) 对象存储系统中对象主副本文件的确定方法及装置
CN111342986B (zh) 分布式节点管理方法及装置、分布式系统、存储介质
CN109558209B (zh) 一种用于虚拟机的监控方法
TWI518680B (zh) 維護電腦系統之檔案系統的方法
CN113626262A (zh) 一种bmc恢复方法、系统、设备以及介质
JP6583942B1 (ja) Bmc、判定方法及びbmcファームウェア
WO2023147738A1 (zh) 虚拟机的数据存储方法、装置、虚拟机及存储介质
CN115268785A (zh) 一种应用于分布式存储系统的管理方法、装置及存储介质
CN113778763B (zh) 一种三方接口服务故障智能切换方法及系统
CN114490196A (zh) 数据库切换方法、系统、设备及介质
CN114416696A (zh) 一种数据迁移方法、装置、电子设备以及存储介质
US9880855B2 (en) Start-up control program, device, and method
CN113703823A (zh) 一种bmc固件升级方法、装置、电子设备及存储介质
CN112486718A (zh) 数据库故障自动切换方法、装置和计算机存储介质
CN108599982B (zh) 数据恢复方法及相关设备
CN115145782A (zh) 一种服务器切换方法,MooseFS系统及存储介质

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