CN109614276A - 故障处理方法、装置、分布式存储***和存储介质 - Google Patents

故障处理方法、装置、分布式存储***和存储介质 Download PDF

Info

Publication number
CN109614276A
CN109614276A CN201811433003.9A CN201811433003A CN109614276A CN 109614276 A CN109614276 A CN 109614276A CN 201811433003 A CN201811433003 A CN 201811433003A CN 109614276 A CN109614276 A CN 109614276A
Authority
CN
China
Prior art keywords
storage device
object storage
group
osd
failure
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.)
Granted
Application number
CN201811433003.9A
Other languages
English (en)
Other versions
CN109614276B (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.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen 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 Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN201811433003.9A priority Critical patent/CN109614276B/zh
Publication of CN109614276A publication Critical patent/CN109614276A/zh
Priority to PCT/CN2019/088634 priority patent/WO2020107829A1/zh
Application granted granted Critical
Publication of CN109614276B publication Critical patent/CN109614276B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明涉及一种分布式存储技术,揭露了一种故障处理方法、装置、分布式存储***和计算机可读存储介质。本发明实时或定时侦测故障的主用OSD;当侦测到一故障的主用OSD时,根据预先确定的对象数据与PG之间的映射关系,确定故障的主用OSD中存储的各个对象数据对应的PG,并将确定的各个PG作为故障PG;将所有故障PG对应的所有对象数据的副本配置量从第一预设数量减少为第二预设数量;从备用OSD组中选择一个备用OSD作为新的主用OSD,用新的主用OSD置换故障的主用OSD,并将所有故障PG对应的所有对象数据的副本配置量从第二预设数量增加为第一预设数量。相较于现有技术,本发明在OSD故障处理过程中,减少了OSD之间的数据迁移量。

Description

故障处理方法、装置、分布式存储***和存储介质
技术领域
本发明涉及分布式存储技术领域,特别涉及一种故障处理方法、装置、分布式存储***和计算机可读存储介质。
背景技术
CEPH分布式文件***是一种容量大、性能高、可靠性强的分布式存储***。CEPH的核心组件是OSD(Object Storage Device,对象存储设备),OSD管理一块独立的硬盘,并提供对象存储(Object-based Storage)的读写访问接口。CEPH集群由很多独立的OSD构成,OSD数量可以动态的增删。CEPH客户端通过CRUSH算法将对象数据(Object)分发到不同OSD上进行存储。其中,CRUSH是一种伪随机分布算法,该算法先将对象数据通过哈希值(HASH)归属到一个归置组(Placement Group,PG)中,然后计算该PG存放的OSD,由此,归属于同一个PG的对象数据存放到该PG对应的目标OSD中。
CEPH还是一个具有自修复功能的存储集群,即当CEPH中的某个OSD出现故障时,对应的OSD会退出服务,属于该OSD的数据会产生重构,重新分布到其他OSD上,待该OSD修复后,CEPH又会将该其他OSD上的部分数据迁移到该OSD上。因此,即使CEPH中出现故障的OSD,CEPH也可保持存储数据的完整性。然而,这种故障处理方法虽可保障存储数据的完整性,但数据重构的过程会造成CEPH中多个OSD中数据发生大量迁移,从而导致存储集群资源被占用,存储性能下降。
因此,如何在OSD故障处理过程中,减少OSD之间的数据迁移量已成为一个亟待解决的问题。
发明内容
本发明的主要目的是提供一种故障处理方法、装置、分布式存储***和计算机可读存储介质,旨在解决如何在OSD故障处理过程中,减少OSD之间的数据迁移量的问题。
为实现上述目的,本发明提出一种电子装置,所述电子装置分别与多个主用OSD及至少一个备用OSD组通信连接,所述备用OSD组包括若干个备用OSD,所述主用OSD用于存储对象数据,各个所述对象数据的第一预设数量的副本分别存储于对应的第一预设数量的主用OSD中,所述电子装置包括存储器和处理器,所述存储器上存储有故障处理程序,所述故障处理程序被所述处理器执行时实现如下步骤:
侦测步骤:实时或定时侦测各个所述主用对象存储设备是否发生故障;
确定步骤:当侦测到一故障的主用OSD时,根据预先确定的对象数据与PG之间的映射关系,确定所述故障的主用OSD中存储的各个对象数据对应的PG,并将确定的各个所述PG作为故障PG;
降级步骤:将所有所述故障PG对应的所有对象数据的副本配置量从第一预设数量减少为第二预设数量;
置换步骤:从所述备用OSD组中选择一个备用OSD作为新的主用OSD,用所述新的主用OSD置换所述故障的主用OSD,并将所有所述故障PG对应的所有对象数据的副本配置量从第二预设数量增加为第一预设数量。
优选地,所述处理器执行所述故障处理程序,在所述置换步骤之后,还实现以下步骤:
根据预先确定的PG与主用OSD之间的映射关系,将每一个所述故障PG对应的第一预设数量的主用OSD作为故障OSD组,并利用各个所述故障OSD组中除所述新的主用OSD之外的其他未发生故障的主用OSD对所述新的主用OSD进行数据恢复。
优选地,所述处理器执行所述故障处理程序,在所述置换步骤之后,还实现以下步骤:
当一所述故障OSD组接收到对象数据的写请求时,
将所述写请求重定向至所述备用OSD组,利用所述备用OSD组执行所述写请求;
实时或定时,或在收到增量数据恢复请求时,判断所述备用OSD组的各所述备用OSD是否存储有对象数据;
当所述备用OSD组的各所述备用OSD存储有对象数据时,判断是否存在所述故障OSD组;
当不存在所述故障OSD组时,将所述备用OSD组中存储的对象数据迁移至一个或多个主用OSD中;
当存在所述故障OSD组时,查找不属于所述故障OSD组的主用OSD,当查找到时,将所述备用OSD组中存储的对象数据迁移至一个或多个查找到的所述主用OSD中。
优选地,所述用所述新的主用OSD置换所述故障的主用OSD的步骤包括:
将预先设置的所述故障的主用OSD的设备标识信息与所述故障的主用OSD的位置信息之间的映射关系解除,将所述故障的主用OSD的设备标识信息分配给所述新的主用OSD作为该新的主用OSD的设备标识信息,重新建立并保存所述新的主用OSD的设备标识信息与新的主用OSD的位置信息之间的映射关系。
此外,为实现上述目的,本发明还提出一种故障处理方法,适用于电子装置,所述电子装置分别与多个主用OSD及至少一个备用OSD组通信连接,所述备用OSD组包括若干个备用OSD,所述主用OSD用于存储对象数据,各个所述对象数据的第一预设数量的副本分别存储于对应的第一预设数量的主用OSD中,该方法包括步骤:
侦测步骤:实时或定时侦测各个所述主用对象存储设备是否发生故障;
确定步骤:当侦测到一故障的主用OSD时,根据预先确定的对象数据与PG之间的映射关系,确定所述故障的主用OSD中存储的各个对象数据对应的PG,并将确定的各个所述PG作为故障PG;
降级步骤:将所有所述故障PG对应的所有对象数据的副本配置量从第一预设数量减少为第二预设数量;
置换步骤:从所述备用OSD组中选择一个备用OSD作为新的主用OSD,用所述新的主用OSD置换所述故障的主用OSD,并将所有所述故障PG对应的所有对象数据的副本配置量从第二预设数量增加为第一预设数量。
优选地,在所述置换步骤之后,该方法还包括:
根据预先确定的PG与主用OSD之间的映射关系,将每一个所述故障PG对应的第一预设数量的主用OSD作为故障OSD组,并利用各个所述故障OSD组中除所述新的主用OSD之外的其他未发生故障的主用OSD对所述新的主用OSD进行数据恢复。
优选地,在所述置换步骤之后,该方法还包括:
当一所述故障OSD组接收到对象数据的写请求时,
将所述写请求重定向至所述备用OSD组,利用所述备用OSD组执行所述写请求;
实时或定时,或在收到增量数据恢复请求时,判断所述备用OSD组的各所述备用OSD是否存储有对象数据;
当所述备用OSD组的各所述备用OSD存储有对象数据时,判断是否存在所述故障OSD组;
当不存在所述故障OSD组时,将所述备用OSD组中存储的对象数据迁移至一个或多个主用OSD中;
当存在所述故障OSD组时,查找不属于所述故障OSD组的主用OSD,当查找到时,将所述备用OSD组中存储的对象数据迁移至一个或多个查找到的所述主用OSD中。
优选地,所述用所述新的主用OSD置换所述故障的主用OSD的步骤包括:
将预先设置的所述故障的主用OSD的设备标识信息与所述故障的主用OSD的位置信息之间的映射关系解除,将所述故障的主用OSD的设备标识信息分配给所述新的主用OSD作为该新的主用OSD的设备标识信息,重新建立并保存所述新的主用OSD的设备标识信息与新的主用OSD的位置信息之间的映射关系。
此外,为实现上述目的,本发明还提出一种分布式存储***,所述分布式存储***包括电子装置、多个主用对象存储设备及至少一个备用对象存储设备组,所述电子装置分别与各个所述主用对象存储设备及各个所述备用对象存储设备组通信连接,所述备用对象存储设备组包括若干个备用对象存储设备,所述主用对象存储设备用于存储对象数据,各个所述对象数据的第一预设数量的副本分别存储于对应的第一预设数量的主用对象存储设备中,所述电子装置包括存储器和处理器,所述存储器上存储有故障处理程序,所述故障处理程序被所述处理器执行时实现如下步骤:
侦测步骤:实时或定时侦测各个所述主用对象存储设备是否发生故障;
确定步骤:当侦测到一故障的主用对象存储设备时,根据预先确定的对象数据与归置组之间的映射关系,确定所述故障的主用对象存储设备中存储的各个对象数据对应的归置组,并将确定的各个所述归置组作为故障归置组;
降级步骤:将所有所述故障归置组对应的所有对象数据的副本配置量从第一预设数量减少为第二预设数量;
置换步骤:从所述备用对象存储设备组中选择一个备用对象存储设备作为新的主用对象存储设备,用所述新的主用对象存储设备置换所述故障的主用对象存储设备,并将所有所述故障归置组对应的所有对象数据的副本配置量从第二预设数量增加为第一预设数量。
此外,为实现上述目的,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质存储有故障处理程序,所述故障处理程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述任一项所述的故障处理方法的步骤。
本发明实时或定时侦测故障的主用OSD;当侦测到一故障的主用OSD时,根据预先确定的对象数据与PG之间的映射关系,确定所述故障的主用OSD中存储的各个对象数据对应的PG,并将确定的各个所述PG作为故障PG;将所有所述故障PG对应的所有对象数据的副本配置量从第一预设数量减少为第二预设数量;从所述备用OSD组中选择一个备用OSD作为新的主用OSD,用所述新的主用OSD置换所述故障的主用OSD,并将所有所述故障PG对应的所有对象数据的副本配置量从第二预设数量增加为第一预设数量。相较于现有技术,本发明在分布式存储***一OSD发生故障时,将故障PG对应的所有对象数据的副本配置量从第一预设数量减少为第二预设数量,使分布式存储***识别当前故障PG副本数量满足其副本配置量,因此,不会对该故障OSD进行数据重构,也就不会造成OSD之间大量的数据迁移。可见,本发明在OSD故障处理过程中,减少了OSD之间的数据迁移量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
图1为本发明分布式存储***第一实施例的***架构示意图;
图2为本发明分布式存储***的存储关系示意图;
图3为本发明故障处理程序第一实施例的运行环境示意图;
图4为本发明故障处理程序第一实施例的程序模块图;
图5为本发明故障处理方法第一实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
参阅图1所示,是本发明分布式存储***第一实施例的***架构示意图。
在本实施例中,分布式存储***包括多个主用OSD31及至少一个备用OSD组,所述备用OSD组包括若干个备用OSD32,其中,各个主用OSD31和备用OSD32可设置于各个主机3中,例如,一台主机3中至少设置一个主用OSD31及至少一个备用OSD32,且各个主用OSD31、备用OSD32之间通信连接(例如,通过网络2通信连接)。
在一些应用场景中,分布式存储***中还设置有电子装置1,该电子装置1与各个主用OSD31、备用OSD32之间通信连接(例如,通过网络2通信连接)。
在一些应用场景中,上述电子装置1独立于分布式存储***设置,且与分布式存储***通信连接(例如,通过网络2通信连接)。
本实施例中,上述分布式存储***中的最小存储单元为对象数据(object),一个对象数据是一个大小不超过规定数值(例如,4MB)的数据块,各个对象数据被映射至对应的PG中,该分布式存储***不会直接操作对象数据,而是以PG为基本单位进行数据处理(例如,数据寻址、数据迁移等)。
上述分布式存储***支持多副本策略,例如,预先设置该分布式存储***中PG对应的对象数据的副本配置量为第一预设数量(如,三个),则代表一个PG中所有的对象数据存在第一预设数量的副本(拷贝),且该PG中所有的对象数据的各个副本分别被对应存储至第一预设数量的OSD中。例如,图2中PG1.1中各个对象数据的3个副本分别存储于OSD.0、OSD.1及OSD.2中,则OSD.0、OSD.1及OSD.2中均分别存储有PG1.1中所有对象数据。由于该分布式存储***以PG为基本单位进行数据处理,因此,在下面各实施例中,将一个PG中所有的对象数据的一个拷贝(副本)称为该PG的PG副本。
下面,将基于上述分布式存储***和相关设备,提出本发明的各个实施例。
本发明提出一种故障处理程序。
请参阅图3,图3为本发明故障处理程序第一实施例的运行环境示意图。
在本实施例中,故障处理程序10安装并运行于电子装置1中。电子装置1可以是桌上型计算机、笔记本、掌上电脑及服务器等计算设备。该电子装置1可包括,但不仅限于,通过程序总线相互通信的存储器11及处理器12。图3仅示出了具有组件11、12的电子装置1,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
存储器11在一些实施例中可以是电子装置1的内部存储单元,例如该电子装置1的硬盘或内存。存储器11在另一些实施例中也可以是电子装置1的外部存储设备,例如电子装置1上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器11还可以既包括电子装置1的内部存储单元也包括外部存储设备。存储器11用于存储安装于电子装置1的应用软件及各类数据,例如故障处理程序10的程序代码等。存储器11还可以用于暂时地存储已经输出或者将要输出的数据。
处理器12在一些实施例中可以是一中央处理器(Central Processing Unit,CPU),微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行故障处理程序10等。
请参阅图4,是本发明故障处理程序10第一实施例的程序模块图。在本实施例中,故障处理程序10可以被分割成一个或多个模块,一个或者多个模块被存储于存储器11中,并由一个或多个处理器(本实施例为处理器12)所执行,以完成本发明。例如,在图3中,故障处理程序10可以被分割成侦测模块101、确定模块102、降级模块103及置换模块104。本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述故障处理程序10在电子装置1中的执行过程,其中:
侦测模块101,用于实时或定时侦测各个所述主用OSD是否发生故障。
例如,可采用心跳机制来侦测一主用OSD是否故障,实时或定时发送检测消息至各个主用OSD,若一主用OSD在预设时长内未返回回复消息,则确定该主用OSD发生故障。
确定模块102,用于当侦测到一故障的主用OSD时,根据预先确定的对象数据与PG之间的映射关系,确定所述故障的主用OSD中存储的各个对象数据对应的PG,并将确定的各个所述PG作为故障PG。
降级模块103,用于将所有所述故障PG对应的所有对象数据的副本配置量从第一预设数量减少为第二预设数量。
例如,若第一预设数量为3,则每一个PG中各个对象数据应当存在3个副本并对应存储于3个主用OSD中,即一个PG应当存在3个PG副本并对应存储于3个主用OSD中。一旦一主用OSD发生故障,则分布式存储***中仅存在故障PG的2个PG副本,分布式存储***识别到故障PG的副本数量少于副本配置量时,会启动数据重构,即拷贝出各个故障PG的一个PG副本,并将该拷贝的各个PG副本写入至对应的主用OSD中,以使故障PG的副本数量达到副本配置量。本实施例中,将所有所述故障PG对应的所有对象数据的副本配置量从第一预设数量减少为第二预设数量,即将所有故障PG的副本配置量从第一预设数量减少为第二预设数量,例如,第一预设数量为3,第二预设数量为2,即将故障PG的多副本策略从三副本降级为二副本。此时,除去故障的主用OSD中存储的各个故障PG的一个PG副本,其他正常状态的主用OSD中仍存在各个故障PG的两个PG副本,故障PG的副本数量等于当前副本配置量,因此,分布式存储***不会立即进行数据重构,也不会造成数据的大量迁移。
置换模块104,用于从所述备用OSD组中选择一个备用OSD作为新的主用OSD,用所述新的主用OSD置换所述故障的主用OSD,并将所有所述故障PG对应的所有对象数据的副本配置量从第二预设数量增加为第一预设数量。
本实施例中,上述置换模块104从所述备用OSD组中选择一个备用OSD作为新的主用OSD的步骤包括:
在备用OSD组中查找与所述故障的主用OSD处于同一主机的备用OSD。若查找到,则将该查找到的备用OSD作为新的主用OSD。若未查找到,则从备用OSD组中随机选择一备用OSD作为新的主用OSD。
进一步地,本实施例中,所述置换模块104用所述新的主用OSD置换所述故障的主用OSD的步骤包括:
将预先设置的所述故障的主用OSD的设备标识信息与所述故障的主用OSD的位置信息(例如,网络端口值)之间的映射关系解除,将所述故障的主用OSD的设备标识信息分配给所述新的主用OSD作为该新的主用OSD的设备标识信息,重新建立并保存所述新的主用OSD的设备标识信息与新的主用OSD的位置信息之间的映射关系。
本实施例中,之所以将所述故障的主用OSD的设备标识信息分配给所述新的主用OSD作为该新的主用OSD的设备标识信息,而不使用该新的主用OSD原有的设备标识信息,是因为一旦使用该新的主用OSD原有的设备标识信息,并建立该新的主用OSD原有的设备标识信息与新的主用OSD的位置信息之间的映射关系,该分布式存储***将会识别有新的OSD加入,随即启动数据再平衡(re-balance)操作,即从各个其他的主用OSD中分别选取部分PG副本迁移至该新的主用OSD中,以实现PG副本的合理分布,数据再平衡操作会造成大量数据的迁移,从而对分布式存储***的响应速度造成影响。
相较于现有技术,本实施例在分布式存储***一OSD发生故障时,将故障PG对应的所有对象数据的副本配置量从第一预设数量减少为第二预设数量,使分布式存储***识别当前故障PG副本数量满足其副本配置量,因此,不会对该故障OSD进行数据重构,也就不会造成OSD之间大量的数据迁移,可见,本发明在OSD故障处理过程中,减少了OSD之间的数据迁移量。
进一步地,本实施例中,该程序还包括数据恢复模块(图中未示出),用于:
根据预先确定的PG与主用OSD之间的映射关系,将每一个所述故障PG对应的第一预设数量的主用OSD作为故障OSD组(如图2所示,若OSD.0为故障的主用OSD,则PG1.1、PG1.2及PG1.3均为故障PG,而PG1.1对应的故障OSD组中包括OSD.0、OSD.1及OSD.2,PG1.2对应的故障OSD组中包括OSD.0、OSD.1及OSD.2,PG1.3对应的故障OSD组中包括OSD.0、OSD.2及OSD.3),并利用各个所述故障OSD组中除所述新的主用OSD之外的其他未发生故障的主用OSD对所述新的主用OSD进行数据恢复。并在完成数据恢复之后,将各个所述故障OSD组的状态标记为正常状态。
进一步地,本实施例中,该程序还包括重定向模块(图中未示出),用于:
当一所述故障OSD组接收到对象数据的写请求时,将所述写请求重定向至所述备用OSD组,利用所述备用OSD组执行所述写请求。
本实施例之所以启用备用OSD组执行写请求,是因为此时故障OSD组中新的主用OSD尚未完成数据恢复,若该故障OSD组再执行写请求,则会造成写请求执行延时。可见,启用备用OSD组执行写请求可有效的保证写请求的执行效率。
进一步地,本实施例中,数据恢复模块还用于:
实时或定时,或在收到增量数据恢复请求时,判断所述备用OSD组的各所述备用OSD是否存储有对象数据。
当所述备用OSD组的各所述备用OSD存储有对象数据时,判断是否存在所述故障OSD组。
当不存在所述故障OSD组时,将所述备用OSD组中存储的对象数据迁移至一个或多个主用OSD中。
当存在所述故障OSD组时,查找不属于所述故障OSD组的主用OSD。
当查找到时,将所述备用OSD组中存储的对象数据迁移至一个或多个查找到的所述主用OSD中。
当未查找到时,返回恢复增量数据失败的消息,或者,返回继续查找不属于所述故障OSD组的主用OSD直至查找到不属于所述故障OSD组的主用OSD。
进一步地,本实施例中,该程序还用于:
实时或定时侦测备用OSD组中备用OSD的数量,当备用OSD的数量小于或者等于预设阈值时,在各个主机的备用OSD中选择一个或多个不属于该备用OSD组的备用OSD添加至该备用OSD组中。
此外,本发明提出一种故障处理方法。
如图5所示,图5为本发明故障处理方法第一实施例的流程示意图。
本实施例中,该方法适用于电子装置,所述电子装置分别与多个主用OSD及至少一个备用OSD组通信连接,所述备用OSD组包括若干个备用OSD,所述主用OSD用于存储对象数据,各个所述对象数据的第一预设数量的副本分别存储于对应的第一预设数量的主用OSD中,该方法包括:
步骤S10,实时或定时侦测各个所述主用OSD是否发生故障。
例如,可采用心跳机制来侦测一主用OSD是否故障,实时或定时发送检测消息至各个主用OSD,若一主用OSD在预设时长内未返回回复消息,则确定该主用OSD发生故障。
步骤S20,当侦测到一故障的主用OSD时,根据预先确定的对象数据与PG之间的映射关系,确定所述故障的主用OSD中存储的各个对象数据对应的PG,并将确定的各个所述PG作为故障PG。
步骤S30,将所有所述故障PG对应的所有对象数据的副本配置量从第一预设数量减少为第二预设数量。
例如,若第一预设数量为3,则每一个PG中各个对象数据应当存在3个副本并对应存储于3个主用OSD中,即一个PG应当存在3个PG副本并对应存储于3个主用OSD中。一旦一主用OSD发生故障,则分布式存储***中仅存在故障PG的2个PG副本,分布式存储***识别到故障PG的副本数量少于副本配置量时,会启动数据重构,即拷贝出各个故障PG的一个PG副本,并将该拷贝的各个PG副本写入至对应的主用OSD中,以使故障PG的副本数量达到副本配置量。本实施例中,将所有所述故障PG对应的所有对象数据的副本配置量从第一预设数量减少为第二预设数量,即将所有故障PG的副本配置量从第一预设数量减少为第二预设数量,例如,第一预设数量为3,第二预设数量为2,即将故障PG的多副本策略从三副本降级为二副本。此时,除去故障的主用OSD中存储的各个故障PG的一个PG副本,其他正常状态的主用OSD中仍存在各个故障PG的两个PG副本,故障PG的副本数量等于当前副本配置量,因此,分布式存储***不会立即进行数据重构,也不会造成数据的大量迁移。
步骤S40,从所述备用OSD组中选择一个备用OSD作为新的主用OSD,用所述新的主用OSD置换所述故障的主用OSD,并将所有所述故障PG对应的所有对象数据的副本配置量从第二预设数量增加为第一预设数量。
本实施例中,上述从所述备用OSD组中选择一个备用OSD作为新的主用OSD的步骤包括:
在备用OSD组中查找与所述故障的主用OSD处于同一主机的备用OSD。若查找到,则将该查找到的备用OSD作为新的主用OSD。若未查找到,则从备用OSD组中随机选择一备用OSD作为新的主用OSD。
进一步地,本实施例中,所述用所述新的主用OSD置换所述故障的主用OSD的步骤包括:
将预先设置的所述故障的主用OSD的设备标识信息与所述故障的主用OSD的位置信息(例如,网络端口值)之间的映射关系解除,将所述故障的主用OSD的设备标识信息分配给所述新的主用OSD作为该新的主用OSD的设备标识信息,重新建立并保存所述新的主用OSD的设备标识信息与新的主用OSD的位置信息之间的映射关系。
本实施例中,之所以将所述故障的主用OSD的设备标识信息分配给所述新的主用OSD作为该新的主用OSD的设备标识信息,而不使用该新的主用OSD原有的设备标识信息,是因为一旦使用该新的主用OSD原有的设备标识信息,并建立该新的主用OSD原有的设备标识信息与新的主用OSD的位置信息之间的映射关系,该分布式存储***将会识别有新的OSD加入,随即启动数据再平衡(re-balance)操作,即从各个其他的主用OSD中分别选取部分PG副本迁移至该新的主用OSD中,以实现PG副本的合理分布,数据再平衡操作会造成大量数据的迁移,从而对分布式存储***的响应速度造成影响。
相较于现有技术,本实施例在分布式存储***一OSD发生故障时,将故障PG对应的所有对象数据的副本配置量从第一预设数量减少为第二预设数量,使分布式存储***识别当前故障PG副本数量满足其副本配置量,因此,不会对该故障OSD进行数据重构,也就不会造成OSD之间大量的数据迁移,可见,本发明在OSD故障处理过程中,减少了OSD之间的数据迁移量。
进一步地,本实施例中,在步骤S40之后,该方法还包括:
根据预先确定的PG与主用OSD之间的映射关系,将每一个所述故障PG对应的第一预设数量的主用OSD作为故障OSD组(如图2所示,若OSD.0为故障的主用OSD,则PG1.1、PG1.2及PG1.3均为故障PG,而PG1.1对应的故障OSD组中包括OSD.0、OSD.1及OSD.2,PG1.2对应的故障OSD组中包括OSD.0、OSD.1及OSD.2,PG1.3对应的故障OSD组中包括OSD.0、OSD.2及OSD.3),并利用各个所述故障OSD组中除所述新的主用OSD之外的其他未发生故障的主用OSD对所述新的主用OSD进行数据恢复。并在完成数据恢复之后,将各个所述故障OSD组的状态标记为正常状态。
进一步地,本实施例中,在步骤S40之后,该方法还包括:
当一所述故障OSD组接收到对象数据的写请求时,将所述写请求重定向至所述备用OSD组,利用所述备用OSD组执行所述写请求。
本实施例之所以启用备用OSD组执行写请求,是因为此时故障OSD组中新的主用OSD尚未完成数据恢复,若该故障OSD组再执行写请求,则会造成写请求执行延时。可见,启用备用OSD组执行写请求可有效的保证写请求的执行效率。
进一步地,本实施例中,该方法还包括:
实时或定时,或在收到增量数据恢复请求时,判断所述备用OSD组的各所述备用OSD是否存储有对象数据。
当所述备用OSD组的各所述备用OSD存储有对象数据时,判断是否存在所述故障OSD组。
当不存在所述故障OSD组时,将所述备用OSD组中存储的对象数据迁移至一个或多个主用OSD中。
当存在所述故障OSD组时,查找不属于所述故障OSD组的主用OSD。
当查找到时,将所述备用OSD组中存储的对象数据迁移至一个或多个查找到的所述主用OSD中。
当未查找到时,返回恢复增量数据失败的消息,或者,返回继续查找不属于所述故障OSD组的主用OSD直至查找到不属于所述故障OSD组的主用OSD。
进一步地,本实施例中,该方法还包括:
实时或定时侦测备用OSD组中备用OSD的数量,当备用OSD的数量小于或者等于预设阈值时,在各个主机的备用OSD中选择一个或多个不属于该备用OSD组的备用OSD添加至该备用OSD组中。
进一步地,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质存储有故障处理程序,所述故障处理程序可被至少一个处理器执行,以使所述至少一个处理器执行上述任一实施例中的故障处理方法。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。

Claims (10)

1.一种电子装置,其特征在于,所述电子装置分别与多个主用对象存储设备及至少一个备用对象存储设备组通信连接,所述备用对象存储设备组包括若干个备用对象存储设备,所述主用对象存储设备用于存储对象数据,各个所述对象数据的第一预设数量的副本分别存储于对应的第一预设数量的主用对象存储设备中,所述电子装置包括存储器和处理器,所述存储器上存储有故障处理程序,所述故障处理程序被所述处理器执行时实现如下步骤:
侦测步骤:实时或定时侦测各个所述主用对象存储设备是否发生故障;
确定步骤:当侦测到一故障的主用对象存储设备时,根据预先确定的对象数据与归置组之间的映射关系,确定所述故障的主用对象存储设备中存储的各个对象数据对应的归置组,并将确定的各个所述归置组作为故障归置组;
降级步骤:将所有所述故障归置组对应的所有对象数据的副本配置量从第一预设数量减少为第二预设数量;
置换步骤:从所述备用对象存储设备组中选择一个备用对象存储设备作为新的主用对象存储设备,用所述新的主用对象存储设备置换所述故障的主用对象存储设备,并将所有所述故障归置组对应的所有对象数据的副本配置量从第二预设数量增加为第一预设数量。
2.如权利要求1所述的电子装置,其特征在于,所述处理器执行所述故障处理程序,在所述置换步骤之后,还实现以下步骤:
根据预先确定的归置组与主用对象存储设备之间的映射关系,将每一个所述故障归置组对应的第一预设数量的主用对象存储设备作为故障对象存储设备组,并利用各个所述故障对象存储设备组中除所述新的主用对象存储设备之外的其他未发生故障的主用对象存储设备对所述新的主用对象存储设备进行数据恢复。
3.如权利要求2所述的电子装置,其特征在于,所述处理器执行所述故障处理程序,在所述置换步骤之后,还实现以下步骤:
当一所述故障对象存储设备组接收到对象数据的写请求时,将所述写请求重定向至所述备用对象存储设备组,利用所述备用对象存储设备组执行所述写请求;
实时或定时,或在收到增量数据恢复请求时,判断所述备用对象存储设备组的各所述备用对象存储设备是否存储有对象数据;
当所述备用对象存储设备组的各所述备用对象存储设备存储有对象数据时,判断是否存在所述故障对象存储设备组;
当不存在所述故障对象存储设备组时,将所述备用对象存储设备组中存储的对象数据迁移至一个或多个主用对象存储设备中;
当存在所述故障对象存储设备组时,查找不属于所述故障对象存储设备组的主用对象存储设备,当查找到时,将所述备用对象存储设备组中存储的对象数据迁移至一个或多个查找到的所述主用对象存储设备中。
4.如权利要求1至3中任一项所述的电子装置,其特征在于,所述用所述新的主用对象存储设备置换所述故障的主用对象存储设备的步骤包括:
将预先设置的所述故障的主用对象存储设备的设备标识信息与所述故障的主用对象存储设备的位置信息之间的映射关系解除,将所述故障的主用对象存储设备的设备标识信息分配给所述新的主用对象存储设备作为该新的主用对象存储设备的设备标识信息,重新建立并保存所述新的主用对象存储设备的设备标识信息与新的主用对象存储设备的位置信息之间的映射关系。
5.一种故障处理方法,适用于电子装置,其特征在于,所述电子装置分别与多个主用对象存储设备及至少一个备用对象存储设备组通信连接,所述备用对象存储设备组包括若干个备用对象存储设备,所述主用对象存储设备用于存储对象数据,各个所述对象数据的第一预设数量的副本分别存储于对应的第一预设数量的主用对象存储设备中,该方法包括步骤:
侦测步骤:实时或定时侦测各个所述主用对象存储设备是否发生故障;
确定步骤:当侦测到一故障的主用对象存储设备时,根据预先确定的对象数据与归置组之间的映射关系,确定所述故障的主用对象存储设备中存储的各个对象数据对应的归置组,并将确定的各个所述归置组作为故障归置组;
降级步骤:将所有所述故障归置组对应的所有对象数据的副本配置量从第一预设数量减少为第二预设数量;
置换步骤:从所述备用对象存储设备组中选择一个备用对象存储设备作为新的主用对象存储设备,用所述新的主用对象存储设备置换所述故障的主用对象存储设备,并将所有所述故障归置组对应的所有对象数据的副本配置量从第二预设数量增加为第一预设数量。
6.如权利要求5所述的故障处理方法,其特征在于,在所述置换步骤之后,该方法还包括:
根据预先确定的归置组与主用对象存储设备之间的映射关系,将每一个所述故障归置组对应的第一预设数量的主用对象存储设备作为故障对象存储设备组,并利用各个所述故障对象存储设备组中除所述新的主用对象存储设备之外的其他未发生故障的主用对象存储设备对所述新的主用对象存储设备进行数据恢复。
7.如权利要求6所述的故障处理方法,其特征在于,在所述置换步骤之后,该方法还包括:
当一所述故障对象存储设备组接收到对象数据的写请求时,将所述写请求重定向至所述备用对象存储设备组,利用所述备用对象存储设备组执行所述写请求;
实时或定时,或在收到增量数据恢复请求时,判断所述备用对象存储设备组的各所述备用对象存储设备是否存储有对象数据;
当所述备用对象存储设备组的各所述备用对象存储设备存储有对象数据时,判断是否存在所述故障对象存储设备组;
当不存在所述故障对象存储设备组时,将所述备用对象存储设备组中存储的对象数据迁移至一个或多个主用对象存储设备中;
当存在所述故障对象存储设备组时,查找不属于所述故障对象存储设备组的主用对象存储设备,当查找到时,将所述备用对象存储设备组中存储的对象数据迁移至一个或多个查找到的所述主用对象存储设备中。
8.如权利要求5至7中任一项所述的故障处理方法,其特征在于,所述用所述新的主用对象存储设备置换所述故障的主用对象存储设备的步骤包括:
将预先设置的所述故障的主用对象存储设备的设备标识信息与所述故障的主用对象存储设备的位置信息之间的映射关系解除,将所述故障的主用对象存储设备的设备标识信息分配给所述新的主用对象存储设备作为该新的主用对象存储设备的设备标识信息,重新建立并保存所述新的主用对象存储设备的设备标识信息与新的主用对象存储设备的位置信息之间的映射关系。
9.一种分布式存储***,其特征在于,所述分布式存储***包括电子装置、多个主用对象存储设备及至少一个备用对象存储设备组,所述电子装置分别与各个所述主用对象存储设备及各个所述备用对象存储设备组通信连接,所述备用对象存储设备组包括若干个备用对象存储设备,所述主用对象存储设备用于存储对象数据,各个所述对象数据的第一预设数量的副本分别存储于对应的第一预设数量的主用对象存储设备中,所述电子装置包括存储器和处理器,所述存储器上存储有故障处理程序,所述故障处理程序被所述处理器执行时实现如下步骤:
侦测步骤:实时或定时侦测各个所述主用对象存储设备是否发生故障;
确定步骤:当侦测到一故障的主用对象存储设备时,根据预先确定的对象数据与归置组之间的映射关系,确定所述故障的主用对象存储设备中存储的各个对象数据对应的归置组,并将确定的各个所述归置组作为故障归置组;
降级步骤:将所有所述故障归置组对应的所有对象数据的副本配置量从第一预设数量减少为第二预设数量;
置换步骤:从所述备用对象存储设备组中选择一个备用对象存储设备作为新的主用对象存储设备,用所述新的主用对象存储设备置换所述故障的主用对象存储设备,并将所有所述故障归置组对应的所有对象数据的副本配置量从第二预设数量增加为第一预设数量。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有故障处理程序,所述故障处理程序可被至少一个处理器执行,以使所述至少一个处理器执行如权利要求5-8中任一项所述的故障处理方法的步骤。
CN201811433003.9A 2018-11-28 2018-11-28 故障处理方法、装置、分布式存储***和存储介质 Active CN109614276B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201811433003.9A CN109614276B (zh) 2018-11-28 2018-11-28 故障处理方法、装置、分布式存储***和存储介质
PCT/CN2019/088634 WO2020107829A1 (zh) 2018-11-28 2019-05-27 故障处理方法、装置、分布式存储***和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811433003.9A CN109614276B (zh) 2018-11-28 2018-11-28 故障处理方法、装置、分布式存储***和存储介质

Publications (2)

Publication Number Publication Date
CN109614276A true CN109614276A (zh) 2019-04-12
CN109614276B CN109614276B (zh) 2021-09-21

Family

ID=66006290

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811433003.9A Active CN109614276B (zh) 2018-11-28 2018-11-28 故障处理方法、装置、分布式存储***和存储介质

Country Status (2)

Country Link
CN (1) CN109614276B (zh)
WO (1) WO2020107829A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111190775A (zh) * 2019-12-30 2020-05-22 浪潮电子信息产业股份有限公司 一种osd更换方法、***、设备及计算机可读存储介质
WO2020107829A1 (zh) * 2018-11-28 2020-06-04 平安科技(深圳)有限公司 故障处理方法、装置、分布式存储***和存储介质
CN112162699A (zh) * 2020-09-18 2021-01-01 北京浪潮数据技术有限公司 一种数据读写方法、装置、设备及计算机可读存储介质
CN113126925A (zh) * 2021-04-21 2021-07-16 山东英信计算机技术有限公司 一种成员列表确定方法、装置、设备及可读存储介质
WO2021238250A1 (zh) * 2020-05-28 2021-12-02 苏州浪潮智能科技有限公司 一种存储集群中存储介质变更减少重构数据的方法及***
CN114510379A (zh) * 2022-04-21 2022-05-17 山东百盟信息技术有限公司 一种分布式阵列视频数据存储装置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111880747B (zh) * 2020-08-01 2022-11-08 广西大学 一种基于分级映射的Ceph存储***自动均衡存储方法
CN111966291B (zh) * 2020-08-14 2023-02-24 苏州浪潮智能科技有限公司 一种存储集群中的数据存储方法、***及相关装置
CN112395263B (zh) * 2020-11-26 2022-08-19 新华三大数据技术有限公司 一种osd的数据恢复方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140122441A1 (en) * 2012-10-26 2014-05-01 Amplidata Nv Distributed Object Storage System Comprising Performance Optimizations
CN106250055A (zh) * 2016-07-12 2016-12-21 乐视控股(北京)有限公司 一种数据存储方法及***
CN107729185A (zh) * 2017-10-26 2018-02-23 新华三技术有限公司 一种故障处理方法及装置
CN108121510A (zh) * 2017-12-19 2018-06-05 紫光华山信息技术有限公司 Osd选取方法、数据写入方法、装置和存储***
CN108235751A (zh) * 2017-12-18 2018-06-29 华为技术有限公司 识别对象存储设备亚健康的方法、装置和数据存储***
CN108287669A (zh) * 2018-01-26 2018-07-17 平安科技(深圳)有限公司 数据存储方法、装置及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109614276B (zh) * 2018-11-28 2021-09-21 平安科技(深圳)有限公司 故障处理方法、装置、分布式存储***和存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140122441A1 (en) * 2012-10-26 2014-05-01 Amplidata Nv Distributed Object Storage System Comprising Performance Optimizations
CN106250055A (zh) * 2016-07-12 2016-12-21 乐视控股(北京)有限公司 一种数据存储方法及***
CN107729185A (zh) * 2017-10-26 2018-02-23 新华三技术有限公司 一种故障处理方法及装置
CN108235751A (zh) * 2017-12-18 2018-06-29 华为技术有限公司 识别对象存储设备亚健康的方法、装置和数据存储***
CN108121510A (zh) * 2017-12-19 2018-06-05 紫光华山信息技术有限公司 Osd选取方法、数据写入方法、装置和存储***
CN108287669A (zh) * 2018-01-26 2018-07-17 平安科技(深圳)有限公司 数据存储方法、装置及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
刘媛媛: "基于Ceph存储***的冗余存储技术研究", 《信息通信》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020107829A1 (zh) * 2018-11-28 2020-06-04 平安科技(深圳)有限公司 故障处理方法、装置、分布式存储***和存储介质
CN111190775A (zh) * 2019-12-30 2020-05-22 浪潮电子信息产业股份有限公司 一种osd更换方法、***、设备及计算机可读存储介质
WO2021238250A1 (zh) * 2020-05-28 2021-12-02 苏州浪潮智能科技有限公司 一种存储集群中存储介质变更减少重构数据的方法及***
CN112162699A (zh) * 2020-09-18 2021-01-01 北京浪潮数据技术有限公司 一种数据读写方法、装置、设备及计算机可读存储介质
CN112162699B (zh) * 2020-09-18 2023-12-22 北京浪潮数据技术有限公司 一种数据读写方法、装置、设备及计算机可读存储介质
CN113126925A (zh) * 2021-04-21 2021-07-16 山东英信计算机技术有限公司 一种成员列表确定方法、装置、设备及可读存储介质
CN114510379A (zh) * 2022-04-21 2022-05-17 山东百盟信息技术有限公司 一种分布式阵列视频数据存储装置

Also Published As

Publication number Publication date
WO2020107829A1 (zh) 2020-06-04
CN109614276B (zh) 2021-09-21

Similar Documents

Publication Publication Date Title
CN109614276A (zh) 故障处理方法、装置、分布式存储***和存储介质
CN109656896A (zh) 故障修复方法、装置及分布式存储***和存储介质
CN109656895A (zh) 分布式存储***、数据写入方法、装置和存储介质
US8069191B2 (en) Method, an apparatus and a system for managing a snapshot storage pool
US20080148015A1 (en) Method for improving reliability of multi-core processor computer
US20030212872A1 (en) Distributing workload evenly across storage media in a storage array
CN110807064B (zh) Rac分布式数据库集群***中的数据恢复装置
CN109669822A (zh) 电子装置、备用存储池的创建方法和计算机可读存储介质
EP3311272B1 (en) A method of live migration
US11579992B2 (en) Methods and systems for rapid failure recovery for a distributed storage system
US12013758B2 (en) Methods and systems for power failure resistance for a distributed storage system
CN110580195B (zh) 一种基于内存热插拔的内存分配方法和装置
CN111181780A (zh) 基于ha集群的主机池切换方法、***、终端及存储介质
CN111399988A (zh) 一种云平台的内存安全检测***及方法
CN107729182B (zh) 数据存储和访问的方法及装置
US20100085871A1 (en) Resource leak recovery in a multi-node computer system
CN110674008B (zh) Ssd的问题盘日志信息收集方法、装置、设备及介质
US8537662B2 (en) Global detection of resource leaks in a multi-node computer system
CN105743696A (zh) 一种云计算平台管理方法
CN113468020A (zh) 内存监控方法、装置、电子设备及计算机可读存储介质
Newhall et al. Reliable adaptable network ram
CN107688479A (zh) Android***网络集群及其搭建的方法、Android***网络集群数据处理的方法和***
CN110297692A (zh) 一种分布式软件任务动态管理的方法及其***
CN114415979B (zh) 存储装置的处理方法、计算机设备及存储装置
CN112073519B (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