CN109992452B - 一种故障处理方法及装置 - Google Patents

一种故障处理方法及装置 Download PDF

Info

Publication number
CN109992452B
CN109992452B CN201910247965.3A CN201910247965A CN109992452B CN 109992452 B CN109992452 B CN 109992452B CN 201910247965 A CN201910247965 A CN 201910247965A CN 109992452 B CN109992452 B CN 109992452B
Authority
CN
China
Prior art keywords
osd
slave
role
storage device
object 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
CN201910247965.3A
Other languages
English (en)
Other versions
CN109992452A (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.)
Hangzhou H3C Technologies Co Ltd
Original Assignee
Hangzhou H3C 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 Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CN201910247965.3A priority Critical patent/CN109992452B/zh
Publication of CN109992452A publication Critical patent/CN109992452A/zh
Application granted granted Critical
Publication of CN109992452B publication Critical patent/CN109992452B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery

Abstract

本申请实施例提供了一种故障处理方法及装置,涉及存储技术领域,用以解决主OSD上线但数据还未恢复时,IO请求的响应速度较慢的问题。本申请实施例的方案包括:若检测到目标PG对应的主OSD下线,则将目标PG对应的一个从OSD变更为临时主角色,并将目标PG的PG日志的最大条目数增加预设数量,若在预设时长内主OSD未上线,则将一个从OSD变更为主角色;在超过预设时长,且目标PG的PG日志达到最大条目数之前,若主OSD上线,则将主OSD设置为从角色,并将主OSD下线期间产生的与目标PG相关的数据复制到主OSD,在完成数据复制后,将主OSD由从角色变更为主角色,将一个从OSD由主角色变更为从角色。

Description

一种故障处理方法及装置
技术领域
本申请涉及存储技术领域,特别是涉及一种故障处理方法及装置。
背景技术
Ceph是一种软件定义的分布式存储系统。它通过整合通用服务器的硬件存储资源,为客户提供统一的、分布式的存储服务。Ceph可以将数据域划分为多个归置组(Placement Group,PG),每个PG可映射到至少两个对象存储设备(Object StorageDevice,OSD)上,其中一个OSD为主(primary)OSD,用于存储PG的主副本,其余OSD为从(replicate)OSD,用于存储PG的从副本。
若某一PG对应的主OSD下线,该PG将变更为降级状态,并增加可保存的PG日志(Log)的最大条目数,且该PG对应的其中一个从OSD升级为临时主角色,在主OSD下线期间,PG将通过该从OSD存储的从副本处理输入/输出(Input/Output,IO)IO请求,并生成PG日志。
在主OSD再次上线时,PG可获取针对从OSD存储的从副本生成的PG日志,将获取到的PG日志与主OSD下线前针对主副本生成的PG日志进行合并,并建立missing列表来标记主OSD下线期间从OSD产生的数据。然后从OSD恢复为从角色,PG通过主OSD存储的主副本处理IO请求,且主OSD在从OSD中获取missing列表标记的数据,以进行数据恢复。
然而,若IO请求所请求的数据为处于missing列表中的数据,而主OSD还未恢复IO请求所请求的数据,将进行数据恢复的“插队”操作,即先恢复IO请求所请求的数据。在这种情况下,由于不能直接从主OSD中获取数据,而是需要通过拉取从OSD中的数据,将这部分数据恢复至主OSD后,才能继续处理IO请求,这个过程受磁盘转速、网络带宽、服务器性能等影响,将会产生较长的时延,导致IO请求的响应速度较慢。
发明内容
有鉴于此,本申请实施例提供一种故障处理的方法及装置,以解决主OSD上线但数据还未恢复时,IO请求的响应速度较慢。具体技术方案如下:
第一方面,本申请实施例提供一种故障处理方法,包括:
若检测到目标归置组PG对应的主对象存储设备OSD下线,则将所述目标PG对应的一个从OSD变更为临时主角色,并将所述目标PG的PG日志的最大条目数增加预设数量;
若在预设时长内所述主OSD未上线,则将所述一个从OSD变更为主角色;
在超过所述预设时长,且所述目标PG的PG日志达到最大条目数之前,若所述主OSD上线,则将所述主OSD设置为从角色,并将所述主OSD下线期间产生的与所述目标PG相关的数据复制到所述主OSD;
在完成数据复制后,将所述主OSD由从角色变更为主角色,将所述一个从OSD由主角色变更为从角色。
在一种可能的实现方式中,所述方法还包括:
在超过所述预设时长,且所述PG日志达到最大条目数之后,若检测到所述主OSD上线,则将所述主OSD设置为从角色;
对所述主OSD进行全量复制,将所述一个从OSD中与所述目标PG相关的数据全部复制到所述主OSD;
在完成所述全量复制后,将所述主OSD由从角色变更为主角色,将所述一个从OSD由主角色变更为从角色;或者,
在超过所述预设时长,且所述PG日志达到最大条目数之后,若未检测到所述主OSD上线,则确定用于存储所述目标PG的主副本的指定OSD,并将所述指定OSD设置为从角色;
对所述指定OSD进行全量复制,将所述一个从OSD中与所述目标PG相关的数据全部复制到所述指定OSD;
在完成所述全量复制后,将所述指定OSD由从角色变更为主角色,将所述一个从OSD由主角色变更为从角色。
在一种可能的实现方式中,所述方法还包括:
当检测到所述主OSD下线时,判断所述主OSD是否永久下线;
若所述主OSD具有更换标识,则确定所述主OSD永久下线,所述更换标识用于表示所述主OSD为即将被更换的OSD;或者,
若检测到所述主OSD对应的致命性告警信息,则确定所述主OSD永久下线。
在一种可能的实现方式中,所述若检测到所述目标PG对应的主OSD下线,则将所述目标PG的对应的一个从OSD变更为临时主角色,包括:
若所述主OSD不是永久下线,则将所述目标PG的对应的所述一个从OSD变更为临时主角色。
在一种可能的实现方式中,所述方法还包括:
若确定所述主OSD是永久下线,则将所述主OSD对应的目标PG变更为主动降级状态,将所述目标PG对应的一个从OSD变更为临时主角色,且所述目标PG的PG日志的最大条目数保持不变;
确定用于存储所述目标PG的主副本的指定OSD,若确定所述指定OSD对应的目标PG处于主动降级状态,则将所述指定OSD设置为从角色,将所述一个从OSD变更为主角色;
对所述指定OSD执行全量复制,将所述一个从OSD中与所述目标PG相关的数据全部复制到所述指定OSD;
在完成所述全量复制后,将所述指定OSD由从角色变更为主角色,将所述一个从OSD由主角色变更为从角色。
第二方面,本申请实施例提供一种故障处理装置,包括:
变更模块,用于若检测到目标归置组PG对应的主对象存储设备OSD下线,则将所述目标PG对应的一个从OSD变更为临时主角色,并将所述目标PG的PG日志最大条目数增加预设数量;
所述变更模块,还用于若在预设时长内,所述OSD未上线,则将所述一个OSD变更为主角色;
设置模块,用于在超过所述预设时长,且所述目标PG的PG日志达到最大条目数之前,若所述主OSD上线,则将所述主OSD设置为从角色;
复制模块,用于将所述主OSD下线期间产生的与所述目标PG相关的数据复制到所述主OSD;
所述变更模块,还用于在完成数据复制后,将所述主OSD由从角色变更为主角色,将所述一个从OSD由主角色变更为从角色。
在一种可能的实现方式中,所述设置模块,还用于在超过所述预设时长,且所述PG日志达到最大条目数之后,若检测到所述主OSD上线,则将所述主OSD设置为从角色;
所述复制模块,还用于对所述主OSD进行全量复制,将所述一个从OSD中与所述目标PG相关的数据全部复制到所述主OSD;
所述变更模块,还用于在完成所述全量复制后,将所述主OSD由从角色变更为主角色,将所述一个从OSD由主角色变更为从角色;或者,
所述设置模块,还用于在超过所述预设时长,且所述PG日志达到最大条目数之后,若未检测到所述主OSD上线,则确定用于存储所述目标PG的主副本的指定OSD,并将所述指定OSD设置为从角色;
所述复制模块,还用于对所述指定OSD进行全量复制,将所述一个从OSD中与所述目标PG相关的数据全部复制到所述指定OSD;
所述变更模块,还用于在完成所述全量复制后,将所述指定OSD由从角色变更为主角色,将所述一个从OSD由主角色变更为从角色。
在一种可能的实现方式中,所述装置还包括:判断模块;
所述判断模块,用于当检测到所述主OSD下线时,判断所述主OSD是否永久下线;若所述主OSD具有更换标识,则确定所述主OSD永久下线,所述更换标识用于表示所述主OSD为即将被更换的OSD;或者,若检测到所述主OSD对应的致命性告警信息,则确定所述主OSD永久下线。
在一种可能的实现方式中,所述变更模块,具体用于若所述主OSD不是永久下线,则将所述目标PG的对应的所述一个从OSD变更为临时主角色。
在一种可能的实现方式中,所述变更模块,还用于若确定所述主OSD是永久下线,则将所述主OSD对应的目标PG变更为主动降级状态,将所述目标PG对应的一个从OSD变更为临时主角色,且所述目标PG的PG日志的最大条目数保持不变;
所述设置模块,还用于确定用于存储所述目标PG的主副本的指定OSD,若确定所述指定OSD对应的目标PG处于主动降级状态,则将所述指定OSD设置为从角色,将所述一个从OSD变更为主角色;
所述复制模块,还用于对所述指定OSD执行全量复制,将所述从OSD中与所述目标PG相关的数据全部复制到所述指定OSD;
所述变更模块,还用于在完成所述全量复制后,将所述指定OSD由从角色变更为主角色,将所述一个从OSD由主角色变更为从角色。
第三方面,本申请实施例提供一种服务器,该服务器包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现第一方面中所述的方法。
第四方面,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面中所述的方法。
第五方面,本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面中所述的方法。
由以上技术方案可知,采用本申请实施例提供的故障处理方法,由于在目标PG的PG日志达到最大条目数之前,可通过PG日志对主OSD进行数据恢复,所以主OSD上线后,可暂时承担从角色,先进行数据恢复,将从OSD变更为主角色,从而仍可通过从OSD处理IO请求,由于从OSD不存在丢失数据,所以由通过从OSD处理IO请求可以使得IO请求得到较快的响应。而主OSD可在完成数据恢复后重新承担主角色,使得接收到IO请求后,IO请求的数据将可直接从主OSD获得,就无需先进行数据恢复,再响应IO请求,可以加快IO请求的响应速度。
当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种故障处理方法的流程图;
图2为本申请实施例提供的另一种故障处理方法的流程图;
图3为本申请实施例提供的一种故障处理装置的结构示意图;
图4为本申请实施例提供的一种服务器的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为方便理解,首先对本申请实施例涉及到的相关术语进行解释说明。
1、PG、OSD
在将数据写入Ceph集群时,可以将数据分割为多个对象,将对象映射至PG,一个PG为若干个对象的逻辑集合,可以将一个PG看作包含多个对象的逻辑容器。
一个PG可映射至多个OSD上,可以理解为将一个PG复制为多个副本,分别将每个PG副本映射至一个OSD,即一个PG包含的对象被复制分发到多个OSD上。
其中一个OSD为该PG对应的主OSD,用于存储该PG的主副本,其余OSD为该PG对应的从OSD,用于存储该PG的从副本。PG一般通过主OSD存储的主副本处理IO请求。
需要说明的是,一个OSD可以存储多个PG包含的对象,同一个OSD可以作为其中一个PG的主角色,同时又作为另一个PG的从角色,在本申请实施例中,以一个PG为例进行说明。
2、PG日志
PG日志,即PGLog,用于记录PG执行的所有操作,例如对OSD中存储的每个对象的操作记录。
为了解决主OSD上线但数据还未恢复时,IO请求的响应速度较慢的问题,本申请实施例提供一种故障处理方法,该方法可以由服务器执行,如图1所示,该方法包括:
S101、若检测到目标PG对应的主OSD下线,则将目标PG对应的一个从OSD变更为临时主角色,并将目标PG的PG日志的最大条目数增加预设数量。
在检测到主OSD下线时,可判断主OSD是否永久下线,若主OSD不是永久下线,则可执行S101。
可以理解的是,主OSD下线后,目标PG对应的一个从OSD变更为临时主角色,目标PG将通过该从OSD存储的从副本处理IO请求。
S102、若预设时长内主OSD未上线,则将一个从OSD变更为主角色。
其中,在预设时长内,从OSD中产生的数据更新较少,若主OSD上线,该从OSD将恢复为从角色。
而若在预设时长内主OSD未上线,此时已经在从OSD上进行了一定量的数据读写操作,会产生一定的数据更新,从OSD将抢占主角色,由临时主角色变更为主角色。在主OSD上线时,如果从OSD承担主角色,就暂时不通过主OSD处理IO请求,以避免主OSD在进行数据恢复的同时处理IO请求,导致的IO请求被响应较慢的问题。
可选地,可通过定时器定时的方式来确定预设时长,例如,在主OSD下线时启动定时器T1,若在定时器T1超时前主OSD上线,则将上述从OSD恢复为从角色;若定时器T1超时,主OSD仍未上线,则将一个从OSD从临时主角色变更为主角色。
S103、在超过所述预设时长,且目标PG的PG日志达到最大条目数之前,若主OSD上线,则将主OSD设置为从角色,并将主OSD下线期间产生的与目标PG相关的数据复制到主OSD。
其中,若PG日志未达到最大条目数,说明主OSD上线后,还可以根据PG日志进行数据恢复,此时可将主OSD设置为从角色,即暂时不通过主OSD处理IO请求,且原本由主OSD维护的missing列表将由上述从OSD维护。
在主OSD承担从角色期间,可进行数据恢复,即将主OSD下线期间从OSD产生的与目标PG相关的数据复制到主OSD,以保证主OSD与从OSD中存储的关于目标PG的数据一致。
需要说明的是,本申请实施例以主OSD对应的其中一个目标PG为例进行说明,对于主OSD对应的每个PG,需要分别对其进行本申请实施例的处理流程。
针对于本申请实施例描述的目标PG,可以理解的是,在S103进行数据恢复时,只将主OSD下线期间从OSD产生的与目标PG相关的数据复制到上线后的主OSD。而主OSD下线期间从OSD产生的与其他PG相关的数据,将在对其他PG执行本申请实施例的流程时进行恢复。
S104、在完成数据恢复后,将主OSD由从角色变更为主角色,将所述一个从OSD由主角色变更为从角色。
可选地,在一种实施方式中,可在确定完成数据恢复后,进行角色变更。
或者,在另一种实施方式中,可以通过设置定时器的方式来确定角色变更的时机。例如,可以在将主OSD变更为从角色后启动定时器T2,定时器T2的超时时长可根据经验值设置,其超时时长足以使得主OSD完成数据恢复。在定时器T2超时后,说明主OSD已完成对目标PG的数据恢复,则可将主OSD由从角色变更为主角色,将从OSD由主角色变更为从角色,从而恢复通过主OSD处理IO请求。
采用本申请实施例提供的故障处理方法,若检测到目标PG对应的主OSD下线,则将目标PG对应的一个从OSD变更为从角色,并将目标PG的PG日志的最大条目数增加预设数量,若在预设时长内主OSD未上线,则将一个从OSD变更为主角色,在超过预设时长,且目标PG的PG日志达到最大条目数之前,若主OSD上线,则将主OSD设置为从角色,并将主OSD下线期间产生的与目标PG相关的数据复制到主OSD,在完成数据复制后,将主OSD由从角色变更为主角色,将所述一个从OSD由主角色变更为从角色。由于在目标PG的PG日志达到最大条目数之前,可通过PG日志对主OSD进行数据恢复,所以主OSD上线后,可暂时承担从角色,先进行数据恢复,将从OSD变更为主角色,从而仍可通过从OSD处理IO请求,由于从OSD不存在丢失数据,所以由通过从OSD处理IO请求可以使得IO请求得到较快的响应。而主OSD可在完成数据恢复后重新承担主角色,使得接收到IO请求后,IO请求的数据将可直接从主OSD获得,就无需先进行数据恢复,再响应IO请求,可以加快IO请求的响应速度。
另外,本申请实施例中在主OSD上线后就可进行数据恢复,无需等待PG日志达到最大条目数之后才进行数据恢复,可以提高数据恢复的效率,提升系统处理性能。
在本申请实施例提供的另一种实现方式中,在超过预设时长,且PG日志达到最大条目数之后,在图1对应实施例的基础上,如图2所示,在第一种实现方式中,该方法还包括S105至S107;或者在另一种实现方式中,该方法还包括S108至S110。
第一种实现方式:
S105、在超过预设时长,且PG日志达到最大条目数之后,若检测到主OSD上线,则将主OSD设置为从角色。
PG日志达到最大条目数之后,目标PG执行的操作将无法继续存储在PG日志中,所以主OSD上线后将无法通过PG日志恢复数据,需要通过全量复制(backfill)流程来恢复数据,此时可将主OSD设置为从角色,在执行全量复制流程期间不通过主OSD处理IO请求。
S106、对主OSD进行全量复制,将所述一个从OSD中与目标PG相关的数据全部复制到主OSD。
其中,通过对主OSD进行全量复制,可以使得主OSD存储的目标PG相关的数据与所述一个从OSD中存储目标PG相关的数据一致。
S107、在完成全量复制后,将主OSD由从角色变更为主角色,将从OSD由主角色变更为从角色。
可以理解的是,将主OSD由从角色变更为主角色,将从OSD由主角色变更为从角色之后,目标PG可以通过主OSD处理IO请求。
第二种实现方式:
S108、在超过预设时长,且PG日志达到最大条目数之后,若未检测到主OSD上线,则确定用于存储目标PG的主副本的指定OSD,并将指定OSD设置为从角色。
PG日志达到最大条目数之后,目标PG执行的操作将无法继续存储在PG日志中,且主OSD未上线,所以可确定用于存储目标PG的主副本的指定OSD,由于指定OSD中未存储目标PG的数据,所以需要通过全量复制(backfill)流程来同步数据,此时可将指定OSD设置为从角色,在执行全量复制流程期间不通过指定OSD处理IO请求。
需要说明的是,在本申请实施例中,可通过PG与OSD之间的映射规则来为目标PG选择指定OSD。在主OSD存储了多个PG的主副本的场景下,若PG日志达到最大条目数之后,主OSD未上线,则分别确定用于存储每个PG的主副本的指定OSD。
例如,若主OSD分别存储了PG1、PG2和PG3的主副本,则可分别确定用于存储PG1的主副本的指定OSD1,用于存储PG2的主副本的指定OSD2,用于存储PG3的主副本的指定OSD3。
S109、对指定OSD进行全量复制,将所述一个从OSD中与目标PG相关的数据全部复制到指定OSD。
结合S108中的举例,若主OSD分别存储了PG1、PG2和PG3的主副本,可以将PG1对应的从OSD上存储的PG1的数据全量复制到指定OSD1;将PG2对应的从OSD上存储的PG2的数据全量复制到指定OSD2;将PG3对应的从OSD上存储的PG3的数据全量复制到指定OSD3。
S110、在完成全量复制后,将指定OSD由从角色变更为主角色,将一个从OSD由主角色变更为从角色。
可以理解的是,将指定OSD由从角色变更为主角色,将从OSD由主角色变更为从角色之后,目标PG可以通过指定OSD处理IO请求。
需要说明的是,在指定OSD承担主角色期间,上述主OSD可能会重新上线,若检测到主OSD上线,则可将该主OSD设置为从角色,将目标PG对应的一个从OSD变更为主角色,目标PG通过该从OSD处理IO请求。同时对主OSD进行全量复制,将该从OSD中与目标PG相关的数据全部复制到主OSD,完成全量复制后,将主OSD变更为主角色,将该从OSD变更为从角色。可选地,在这种情况下,可以在主OSD上线后,或者主OSD完成全量复制后,将指定OSD存储的目标PG的主副本删除。
采用本申请实施例提供的方法,在超过预设时长,且PG日志已经达到最大条目数后,主OSD或用于存储目标PG的主副本的指定OSD将被设置为从角色,并对主OSD或指定OSD进行全量复制,在此过程中,不会通过主OSD或指定OSD处理IO请求,仍通过从OSD处理IO请求,由于从OSD不存在丢失数据,所以通过从OSD处理IO请求可以使得IO请求得到较快的响应。而主OSD或指定OSD可在完成全量复制之后重新承担主角色,此时主OSD或指定OSD中也存储了完整的数据,可以及时响应IO请求。
在一种可能的场景中,若主OSD为主动下线,例如,如果是管理员需要更换主OSD导致的主OSD下线,对于ceph集群而言,仍会认为主OSD是因为故障下线,将下线的主OSD看作故障的OSD。在这部分主OSD下线时,服务器将增加PG日志的最大条目数,以便于主OSD重新上线后,通过PG日志对主OSD进行数据恢复。而这种情况中,主OSD不会重新上线,由于主OSD是永久性下线,当确定用于存储目标PG的主副本的指定OSD后,需进行全量复制,不会使用PG日志对进行数据恢复,所以在这种情况下如果增加PG日志的最大条目数,增加保存的PG日志的条目数将会无效增加对系统资源的消耗。
为了解决该问题,本申请实施例中,若管理员需要更换主OSD,可提前选中该主OSD,例如为该主OSD设置更换标识。
进而,本申请实施例中,在主OSD下线时,可判断主OSD是否为永久下线,若主OSD具有更换标识,则可确定主OSD永久下线。
或者,服务器本身具有一定的故障检测功能,对于能够检测到的永久性故障,将会生成致命性告警信息,若服务器检测到该主OSD对应的致命性告警信息,也可以确定主OSD永久下线。
在确定主OSD永久下线的情况下,则可将主OSD对应的目标PG变更为主动降级状态,将目标PG对应的一个从OSD变更为临时主角色,且目标PG的PG日志的最大条目数保持不变。
在确定主OSD永久下线后,可确定用于存储目标PG的主副本的指定OSD,若确定指定OSD对应的目标PG处于主动降级状态,则将指定OSD设置为从角色,将上述从OSD变更为主角色,然后对指定OSD进行全量复制,将上述从OSD中的与目标PG相关的数据全部复制到指定OSD。
进而,在完成全量复制后,将指定OSD由从角色变更为主角色,将所述一个从OSD由主角色变更为从角色。
其中,主动降级(Active Degrade)状态不同于现有技术中的降级(Degrade)状态,本申请实施例中若服务器识别到目标PG处于主动降级状态,则不采用现有技术的流程,由于全量复制过程不会使用PG日志,所以无需等待PG日志达到最大条目数,而是可以直接对指定的OSD进行全量复制。
采用本申请实施例提供的方法,在主OSD下线后,若确定主OSD永久下线,则可将目标PG变更为主动降级状态,且不会增加PG日志的最大条目数,可以避免对系统资源的浪费,当存在用于存储目标PG的主副本的指定OSD上线时,无需等待PG日志达到最大条目数,可直接对指定OSD进行全量复制,可以省去多余的等待时间,使得指定OSD更快地正常工作,提高系统性能。
对应于上述方法实施例,本申请实施例还提供一种故障处理装置,如图3所示,该装置包括:变更模块301、设置模块302和复制模块303。
变更模块301,用于若检测到目标归置组PG对应的主对象存储设备OSD下线,则将目标PG对应的一个从OSD变更为临时主角色,并将目标PG的PG日志最大条目数增加预设数量;
变更模块301,还用于若在预设时长内,OSD未上线,则将一个OSD变更为主角色;
设置模块302,用于在超过预设时长,且目标PG的PG日志达到最大条目数之前,若主OSD上线,则将主OSD设置为从角色;
复制模块303,用于将主OSD下线期间产生的与目标PG相关的数据复制到主OSD;
变更模块301,还用于在完成数据复制后,将主OSD由从角色变更为主角色,将一个从OSD由主角色变更为从角色。
可选地,设置模块302,还用于在超过预设时长,且PG日志达到最大条目数之后,若检测到主OSD上线,则将主OSD设置为从角色;
复制模块303,还用于对主OSD进行全量复制,将一个从OSD中与目标PG相关的数据全部复制到主OSD;
变更模块301,还用于在完成全量复制后,将主OSD由从角色变更为主角色,将一个从OSD由主角色变更为从角色;或者,
设置模块302,还用于在超过预设时长,且PG日志达到最大条目数之后,若未检测到主OSD上线,则确定用于存储目标PG的主副本的指定OSD,并将指定OSD设置为从角色;
复制模块303,还用于对指定OSD进行全量复制,将一个从OSD中与目标PG相关的数据全部复制到指定OSD;
变更模块301,还用于在完成全量复制后,将指定OSD由从角色变更为主角色,将一个从OSD由主角色变更为从角色。
可选地,该装置还包括判断模块;
判断模块,用于当检测到主OSD下线时,判断主OSD是否永久下线;若主OSD具有更换标识,则确定主OSD永久下线,更换标识用于表示主OSD为即将被更换的OSD;或者,若检测到主OSD对应的致命性告警信息,则确定主OSD永久下线。
可选地,变更模块301,具体用于若确定主OSD不是永久下线,则将目标PG的对应的一个从OSD变更为临时主角色。
可选地,变更模块301,还用于若主OSD是永久下线,则将主OSD对应的目标PG变更为主动降级状态,将目标PG对应的一个从OSD变更为临时主角色,且目标PG的PG日志的最大条目数保持不变;
设置模块302,还用于确定用于存储所述目标PG的主副本的指定OSD,若确定指定OSD对应的目标PG处于主动降级状态,则将指定OSD设置为从角色,将一个从OSD变更为主角色;
复制模块303,还用于对指定OSD执行全量复制,将从OSD中与目标PG相关的数据全部复制到指定OSD;
变更模块301,还用于在完成全量复制后,将指定OSD由从角色变更为主角色,将一个从OSD由主角色变更为从角色。
本申请实施例还提供了一种服务器,如图4所示,包括处理器401、通信接口402、存储器403和通信总线404,其中,处理器401,通信接口402,存储器403通过通信总线404完成相互间的通信,
存储器403,用于存放计算机程序;
处理器401,用于执行存储器403上所存放的程序时,实现上述方法实施例中由服务器执行的步骤。
上述服务器提到的通信总线可以是外设部件互连标准(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)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一故障处理方法的步骤。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一故障处理方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。

Claims (12)

1.一种故障处理方法,其特征在于,包括:
若检测到目标归置组PG对应的主对象存储设备OSD下线,则将所述目标归置组PG对应的一个从OSD变更为临时主角色,并将所述目标归置组PG的PG日志的最大条目数增加预设数量;
若在预设时长内所述主对象存储设备OSD未上线,则将所述一个从OSD变更为主角色;
在超过所述预设时长,且所述目标归置组PG的PG日志达到最大条目数之前,若所述主对象存储设备OSD上线,则将所述主对象存储设备OSD设置为从角色,并将所述主对象存储设备OSD下线期间产生的与所述目标归置组PG相关的数据复制到所述主对象存储设备OSD;
在完成数据复制后,将所述主对象存储设备OSD由从角色变更为主角色,将所述一个从OSD由主角色变更为从角色。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在超过所述预设时长,且所述目标归置组PG日志达到最大条目数之后,若检测到所述主对象存储设备OSD上线,则将所述主对象存储设备OSD设置为从角色;
对所述主对象存储设备OSD进行全量复制,将所述一个从OSD中与所述目标归置组PG相关的数据全部复制到所述主对象存储设备OSD;
在完成所述全量复制后,将所述主对象存储设备OSD由从角色变更为主角色,将所述一个从OSD由主角色变更为从角色;或者,
在超过所述预设时长,且所述PG日志达到最大条目数之后,若未检测到所述主对象存储设备OSD上线,则确定用于存储所述目标归置组PG的主副本的指定OSD,并将所述指定OSD设置为从角色;
对所述指定OSD进行全量复制,将所述一个从OSD中与所述目标归置组PG相关的数据全部复制到所述指定OSD;
在完成所述全量复制后,将所述指定OSD由从角色变更为主角色,将所述一个从OSD由主角色变更为从角色。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
当检测到所述主对象存储设备OSD下线时,判断所述主对象存储设备OSD是否永久下线;
若所述主对象存储设备OSD具有更换标识,则确定所述主对象存储设备OSD永久下线,所述更换标识用于表示所述主对象存储设备OSD为即将被更换的OSD;或者,
若检测到所述主对象存储设备OSD对应的致命性告警信息,则确定所述主对象存储设备OSD永久下线。
4.根据权利要求3所述的方法,其特征在于,所述若检测到目标归置组PG对应的主对象存储设备OSD下线,则将所述目标归置组PG对应的一个从OSD变更为临时主角色,包括:
若所述主对象存储设备OSD不是永久下线,则将所述目标归置组PG的对应的所述一个从OSD变更为临时主角色。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若确定所述主对象存储设备OSD是永久下线,则将所述主对象存储设备OSD对应的目标归置组PG变更为主动降级状态,将所述目标归置组PG对应的一个从OSD变更为临时主角色,且所述目标归置组PG的PG日志的最大条目数保持不变;
确定用于存储所述目标归置组PG的主副本的指定OSD,若确定所述指定OSD对应的目标归置组PG处于主动降级状态,则将所述指定OSD设置为从角色,将所述一个从OSD变更为主角色;
对所述指定OSD执行全量复制,将所述一个从OSD中与所述目标归置组PG相关的数据全部复制到所述指定OSD;
在完成所述全量复制后,将所述指定OSD由从角色变更为主角色,将所述一个从OSD由主角色变更为从角色。
6.一种故障处理装置,其特征在于,包括:
变更模块,用于若检测到目标归置组PG对应的主对象存储设备OSD下线,则将所述目标归置组PG对应的一个从OSD变更为临时主角色,并将所述目标归置组PG的PG日志最大条目数增加预设数量;
所述变更模块,还用于若在预设时长内,所述从OSD未上线,则将所述一个从OSD变更为主角色;
设置模块,用于在超过所述预设时长,且所述目标归置组PG的PG日志达到最大条目数之前,若所述主对象存储设备OSD上线,则将所述主对象存储设备OSD设置为从角色;
复制模块,用于将所述主对象存储设备OSD下线期间产生的与所述目标归置组PG相关的数据复制到所述主对象存储设备OSD;
所述变更模块,还用于在完成数据复制后,将所述主对象存储设备OSD由从角色变更为主角色,将所述一个从OSD由主角色变更为从角色。
7.根据权利要求6所述的装置,其特征在于,
所述设置模块,还用于在超过所述预设时长,且所述目标归置组PG日志达到最大条目数之后,若检测到所述主对象存储设备OSD上线,则将所述主对象存储设备OSD设置为从角色;
所述复制模块,还用于对所述主对象存储设备OSD进行全量复制,将所述一个从OSD中与所述目标归置组PG相关的数据全部复制到所述主对象存储设备OSD;
所述变更模块,还用于在完成所述全量复制后,将所述主对象存储设备OSD由从角色变更为主角色,将所述一个从OSD由主角色变更为从角色;或者,
所述设置模块,还用于在超过所述预设时长,且所述目标归置组PG日志达到最大条目数之后,若未检测到所述主对象存储设备OSD上线,则确定用于存储所述目标归置组PG的主副本的指定OSD,并将所述指定OSD设置为从角色;
所述复制模块,还用于对所述指定OSD进行全量复制,将所述一个从OSD中与所述目标归置组PG相关的数据全部复制到所述指定OSD;
所述变更模块,还用于在完成所述全量复制后,将所述指定OSD由从角色变更为主角色,将所述一个从OSD由主角色变更为从角色。
8.根据权利要求6或7所述的装置,其特征在于,所述装置还包括:判断模块;
所述判断模块,用于当检测到所述主对象存储设备OSD下线时,判断所述主对象存储设备OSD是否永久下线;若所述主对象存储设备OSD具有更换标识,则确定所述主对象存储设备OSD永久下线,所述更换标识用于表示所述主对象存储设备OSD为即将被更换的OSD;或者,若检测到所述主对象存储设备OSD对应的致命性告警信息,则确定所述主对象存储设备OSD永久下线。
9.根据权利要求8所述的装置,其特征在于,
所述变更模块,具体用于若所述主对象存储设备OSD不是永久下线,则将所述目标归置组PG的对应的所述一个从OSD变更为临时主角色。
10.根据权利要求9所述的装置,其特征在于,
所述变更模块,还用于若确定所述主对象存储设备OSD是永久下线,则将所述主对象存储设备OSD对应的目标归置组PG变更为主动降级状态,将所述目标归置组PG对应的一个从OSD变更为临时主角色,且所述目标归置组PG的PG日志的最大条目数保持不变;
所述设置模块,还用于确定用于存储所述目标归置组PG的主副本的指定OSD,若确定所述指定OSD对应的目标归置组PG处于主动降级状态,则将所述指定OSD设置为从角色,将所述一个从OSD变更为主角色;
所述复制模块,还用于对所述指定OSD执行全量复制,将所述从OSD中与所述目标归置组PG相关的数据全部复制到所述指定OSD;
所述变更模块,还用于在完成所述全量复制后,将所述指定OSD由从角色变更为主角色,将所述一个从OSD由主角色变更为从角色。
11.一种服务器,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现权利要求1-5任一所述的方法步骤。
12.一种机器可读存储介质,其特征在于,存储有机器可执行指令,在被处理器调用和执行时,所述机器可执行指令促使所述处理器:实现权利要求1-5任一所述的方法步骤。
CN201910247965.3A 2019-03-29 2019-03-29 一种故障处理方法及装置 Active CN109992452B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910247965.3A CN109992452B (zh) 2019-03-29 2019-03-29 一种故障处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910247965.3A CN109992452B (zh) 2019-03-29 2019-03-29 一种故障处理方法及装置

Publications (2)

Publication Number Publication Date
CN109992452A CN109992452A (zh) 2019-07-09
CN109992452B true CN109992452B (zh) 2021-06-18

Family

ID=67131755

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910247965.3A Active CN109992452B (zh) 2019-03-29 2019-03-29 一种故障处理方法及装置

Country Status (1)

Country Link
CN (1) CN109992452B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112711376B (zh) * 2019-10-25 2022-12-23 北京金山云网络技术有限公司 对象存储系统中对象主副本文件的确定方法及装置
CN112162699B (zh) * 2020-09-18 2023-12-22 北京浪潮数据技术有限公司 一种数据读写方法、装置、设备及计算机可读存储介质
CN112306747B (zh) * 2020-09-29 2023-04-11 新华三技术有限公司合肥分公司 一种raid卡故障处理方法及装置
CN112532525B (zh) * 2020-11-25 2022-11-25 北京金山云网络技术有限公司 设备恢复服务的处理方法、装置和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102033786A (zh) * 2010-11-04 2011-04-27 天津曙光计算机产业有限公司 一种对象存储系统中修复副本一致性的方法
CN102368222A (zh) * 2011-10-25 2012-03-07 曙光信息产业(北京)有限公司 一种多副本存储系统在线修复的方法
US9405643B2 (en) * 2013-11-26 2016-08-02 Dropbox, Inc. Multi-level lookup architecture to facilitate failure recovery
CN109213617A (zh) * 2018-09-25 2019-01-15 郑州云海信息技术有限公司 一种osd故障原因的确定方法、系统及相关组件

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108958970B (zh) * 2018-05-29 2021-05-07 新华三技术有限公司 一种数据恢复方法、服务器和计算机可读介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102033786A (zh) * 2010-11-04 2011-04-27 天津曙光计算机产业有限公司 一种对象存储系统中修复副本一致性的方法
CN102368222A (zh) * 2011-10-25 2012-03-07 曙光信息产业(北京)有限公司 一种多副本存储系统在线修复的方法
US9405643B2 (en) * 2013-11-26 2016-08-02 Dropbox, Inc. Multi-level lookup architecture to facilitate failure recovery
CN109213617A (zh) * 2018-09-25 2019-01-15 郑州云海信息技术有限公司 一种osd故障原因的确定方法、系统及相关组件

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"基于pglog的Ceph一致性存储问题";吴东;《UDN企业互联网技术社区》;20160404;全文 *
"基于软件定义网络和多属性决策的Ceph存储系统节点选择方法";王勇 等;《计算机学报》;20190228;第42卷(第2期);第93-108页 *
"解析Ceph:恢复与数据一致";王豪迈;《twt企业IT交流平台》;20180523;全文 *

Also Published As

Publication number Publication date
CN109992452A (zh) 2019-07-09

Similar Documents

Publication Publication Date Title
CN109992452B (zh) 一种故障处理方法及装置
US11030052B2 (en) Data protection using checkpoint restart for cluster shared resources
US9235606B1 (en) Simplified database/log backup and restore
US10409770B1 (en) Automatic archiving of data store log data
US9354907B1 (en) Optimized restore of virtual machine and virtual disk data
US20160212206A1 (en) Deterministic database system and data transferring method thereof
CN109284073B (zh) 数据存储方法、装置、系统、服务器、控制节点及介质
US20050028026A1 (en) Method and system for backing up and restoring data of a node in a distributed system
US6230246B1 (en) Non-intrusive crash consistent copying in distributed storage systems without client cooperation
JP2009288836A (ja) 仮想サーバのシステム障害回復方法及びそのシステム
US8843581B2 (en) Live object pattern for use with a distributed cache
US20170168756A1 (en) Storage transactions
CN107015884B (zh) 一种数据存储方法及装置
JP6455898B2 (ja) データ複製の方法、一次データストレージコントローラ、装置、システム、及びプログラム
US10620871B1 (en) Storage scheme for a distributed storage system
JP6447258B2 (ja) 管理プログラム、管理方法、および管理装置
JP5713138B1 (ja) 仮想計算機システム、プリンタ制御システム、仮想計算機プログラム及びプリンタ制御プログラム
WO2023185802A1 (zh) 数据处理方法及装置
CN111158593B (zh) 一种多快照依赖关系处理方法、装置及相关组件
US8103905B2 (en) Detecting and recovering from process failures
US10169440B2 (en) Synchronous data replication in a content management system
CN110858168A (zh) 集群节点故障处理方法、装置及集群节点
US10983876B2 (en) Node management of pending and unstable operations
CN112261164A (zh) 一种逻辑时钟同步方法、装置及一种中心授时集群
CN111090491B (zh) 虚拟机任务状态的恢复方法、装置及电子设备

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