CN109669822B - 电子装置、备用存储池的创建方法和计算机可读存储介质 - Google Patents
电子装置、备用存储池的创建方法和计算机可读存储介质 Download PDFInfo
- Publication number
- CN109669822B CN109669822B CN201811438576.0A CN201811438576A CN109669822B CN 109669822 B CN109669822 B CN 109669822B CN 201811438576 A CN201811438576 A CN 201811438576A CN 109669822 B CN109669822 B CN 109669822B
- Authority
- CN
- China
- Prior art keywords
- storage
- standby
- pool
- osd
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/202—Error 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 processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/2033—Failover techniques switching over of hardware resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明涉及一种分布式存储技术,揭露了一种电子装置、备用存储池的创建方法和计算机可读存储介质。本发明根据用户发送的配置数据,从各个存储节点中选出若干个OSD作为备用OSD,创建备用Pool,并创建备用Pool与备用OSD之间的映射关系,再将备用Pool与备用OSD之间的映射关系保存。相较于现有技术,本发明在分布式存储***中设置备用OSD及备用Pool,当分布式存储***中某个OSD出现故障时,可启用备用OSD及备用Pool,降低OSD故障对分布式存储***性能的影响。
Description
技术领域
本发明涉及分布式存储技术领域,特别涉及一种电子装置、备用存储池的创建方法和计算机可读存储介质。
背景技术
CEPH分布式文件***是一种容量大、性能高、可靠性强的分布式存储***。CEPH的核心组件是OSD(Object Storage Device,对象存储设备),OSD管理一块独立的硬盘,并提供对象存储(Object-based Storage)的读写访问接口。CEPH集群由很多独立的OSD构成,OSD数量可以动态的增删。CEPH客户端通过CRUSH算法将对象数据(Object)分发到不同OSD上进行存储。其中,CRUSH是一种伪随机分布算法,该算法先将对象数据通过哈希值(HASH)归属到存储池(Pool)中的一个归置组(Placement Group,PG)中,然后计算该PG存放的OSD,由此,归属于同一个PG的对象数据存放到该PG对应的目标OSD中。
目前,CEPH分布式文件***中未设置备用OSD或备用Pool,因此,当CEPH中某个OSD出现故障时,没有备用OSD或备用Pool可启用,造成CEPH的存储性能下降。
发明内容
本发明的主要目的是提供一种电子装置、备用存储池的创建方法和计算机可读存储介质,旨在为CEPH设置备用OSD和备用Pool。
为实现上述目的,本发明提出一种电子装置,所述电子装置与多个存储节点通信连接,各个所述存储节点中设置有多个对象存储设备,所述电子装置包括存储器和处理器,所述存储器上存储有备用存储池的创建程序,所述备用存储池的创建程序被所述处理器执行时实现如下步骤:
接收步骤:接收用户发送的配置数据;
确定步骤:根据所述配置数据,分别从各个存储节点中选择若干个对象存储设备作为备用对象存储设备;
创建步骤:根据所述配置数据,创建备用存储池,并创建所述备用存储池与备用对象存储设备之间的映射关系,且将所述备用存储池与备用对象存储设备之间的映射关系保存。
优选地,所述确定步骤包括:
从所述配置数据中获取各个存储节点的故障阈值,根据各个存储节点的故障阈值,分别确定各所述存储节点的配置数量,并分别从各所述存储节点中随机选择所述配置数量的对象存储设备作为备用对象存储设备,所述存储节点的配置数量大于或等于所述故障阈值;
或者,从所述配置数据中获取各个存储节点对应的对象存储设备标识信息,并将各个所述对象存储设备标识信息对应的对象存储设备作为备用对象存储设备。
优选地,所述处理器执行所述备用存储池的创建程序,在所述创建步骤之后,还实现以下步骤:
侦测步骤:实时或定时侦测预设事件是否被触发;
重定向步骤:当侦测到时,在预设时间区间内,拦截发送至预设存储位置的写请求,并将所述写请求重定向至所述备用存储池。
优选地,所述预设事件包括一个或多个主用对象存储设备发生故障,所述主用对象存储设备为所述存储节点中除备用对象存储设备之外的对象存储设备;
所述处理器执行所述备用存储池的创建程序,在所述侦测步骤之后,还实现以下步骤:
使用备用对象存储设备逐一置换故障的主用对象存储设备。
此外,为实现上述目的,本发明还提出一种备用存储池的创建方法,适用于电子装置,所述电子装置与多个存储节点通信连接,各个所述存储节点中设置有多个对象存储设备,该方法包括步骤:
接收步骤:接收用户发送的配置数据;
确定步骤:根据所述配置数据,分别从各个存储节点中选择若干个对象存储设备作为备用对象存储设备;
创建步骤:根据所述配置数据,创建备用存储池,并创建所述备用存储池与备用对象存储设备之间的映射关系,且将所述备用存储池与备用对象存储设备之间的映射关系保存。
优选地,所述确定步骤包括:
从所述配置数据中获取各个存储节点的故障阈值,根据各个存储节点的故障阈值,分别确定各所述存储节点的配置数量,并分别从各所述存储节点中随机选择所述配置数量的对象存储设备作为备用对象存储设备,所述存储节点的配置数量大于或等于所述故障阈值;
或者,从所述配置数据中获取各个存储节点对应的对象存储设备标识信息,并将各个所述对象存储设备标识信息对应的对象存储设备作为备用对象存储设备。
优选地,在所述创建步骤之后,该方法还包括:
侦测步骤:实时或定时侦测预设事件是否被触发;
重定向步骤:当侦测到时,在预设时间区间内,拦截发送至预设存储位置的写请求,并将所述写请求重定向至所述备用存储池。
优选地,所述预设事件包括一个或多个主用对象存储设备发生故障,所述主用对象存储设备为所述存储节点中除备用对象存储设备之外的对象存储设备;
在所述侦测步骤之后,该方法还包括:
使用备用对象存储设备逐一置换故障的主用对象存储设备。
此外,为实现上述目的,本发明还提出一种分布式存储***,所述分布式存储***包括电子装置、多个存储节点,所述电子装置分别与各个所述存储节点通信连接,所述电子装置包括存储器和处理器,所述存储器上存储有备用存储池的创建程序,所述备用存储池的创建程序被所述处理器执行时实现如下步骤:
接收步骤:接收用户发送的配置数据;
确定步骤:根据所述配置数据,分别从各个存储节点中选择若干个对象存储设备作为备用对象存储设备;
创建步骤:根据所述配置数据,创建备用存储池,并创建所述备用存储池与备用对象存储设备之间的映射关系,且将所述备用存储池与备用对象存储设备之间的映射关系保存。
优选地,所述确定步骤包括:
从所述配置数据中获取各个存储节点的故障阈值,根据各个存储节点的故障阈值,分别确定各所述存储节点的配置数量,并分别从各所述存储节点中随机选择所述配置数量的对象存储设备作为备用对象存储设备,所述存储节点的配置数量大于或等于所述故障阈值;
或者,从所述配置数据中获取各个存储节点对应的对象存储设备标识信息,并将各个所述对象存储设备标识信息对应的对象存储设备作为备用对象存储设备。
优选地,所述处理器执行所述备用存储池的创建程序,在所述创建步骤之后,还实现以下步骤:
侦测步骤:实时或定时侦测预设事件是否被触发;
重定向步骤:当侦测到时,在预设时间区间内,拦截发送至预设存储位置的写请求,并将所述写请求重定向至所述备用存储池。
优选地,所述预设事件包括一个或多个主用对象存储设备发生故障,所述主用对象存储设备为所述存储节点中除备用对象存储设备之外的对象存储设备;
所述处理器执行所述备用存储池的创建程序,在所述侦测步骤之后,还实现以下步骤:
使用备用对象存储设备逐一置换故障的主用对象存储设备。
此外,为实现上述目的,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质存储有备用存储池的创建程序,所述备用存储池的创建程序可被至少一个处理器执行,以使所述至少一个处理器执行上述任一项所述的备用存储池的创建方法的步骤。
本发明根据用户发送的配置数据,从各个存储节点中选出若干个OSD作为备用OSD,创建备用Pool,并创建备用Pool与备用OSD之间的映射关系,再将备用Pool与备用OSD之间的映射关系保存。相较于现有技术,本发明在分布式存储***中设置备用OSD及备用Pool,当分布式存储***中某个OSD出现故障时,可启用备用OSD及备用Pool,降低OSD故障对分布式存储***性能的影响。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
图1为本发明分布式存储***第一实施例的***架构示意图;
图2为本发明备用存储池的创建程序第一实施例的运行环境示意图;
图3为本发明备用存储池的创建程序第一实施例的程序模块图;
图4为本发明备用存储池的创建程序第二实施例的程序模块图;
图5为本发明备用存储池的创建方法第一实施例的流程示意图;
图6为本发明备用存储池的创建方法第二实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
参阅图1所示,是本发明分布式存储***第一实施例的***架构示意图。
在本实施例中,分布式存储***包括多个存储节点3(例如,一个主机即作为一个存储节点),各个存储节点3中设置有多个OSD。
在一些应用场景中,分布式存储***中还设置有电子装置1,该电子装置1通过网络2与各个存储节点3之间通信连接。
在一些应用场景中,上述电子装置1独立于分布式存储***设置,且与分布式存储***通信连接(例如,通过网络2通信连接)。
本实施例中,上述分布式存储***中的最小存储单元为对象数据(object),一个对象数据是一个大小不超过规定数值(例如,4MB)的数据块,各个对象数据被映射至对应的PG中,该分布式存储***不会直接操作对象数据,而是以PG为基本单位进行数据处理(例如,数据寻址、数据迁移等)。
上述分布式存储***支持多副本策略,例如,预先设置该分布式存储***的副本数量为三个,则代表该分布式存储***中一个PG对应的所有对象数据存在三个副本(拷贝),且该PG对应的所有对象数据的各个副本分别被对应存储至三个OSD中。
下面,将基于上述分布式***和相关设备,提出本发明的各个实施例。
本发明提出一种备用存储池的创建程序。
请参阅图2,是本发明备用存储池的创建程序10第一实施例的运行环境示意图。
在本实施例中,备用存储池的创建程序10安装并运行于电子装置1中。电子装置1可以是桌上型计算机、笔记本、掌上电脑及服务器等计算设备。该电子装置1可包括,但不仅限于,通过程序总线相互通信的存储器11、处理器12。图2仅示出了具有组件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等。
请参阅图3,是本发明备用存储池的创建程序10第一实施例的程序模块图。在本实施例中,备用存储池的创建程序10可以被分割成一个或多个模块,一个或者多个模块被存储于存储器11中,并由一个或多个处理器(本实施例为处理器12)所执行,以完成本发明。例如,在图3中,备用存储池的创建程序10可以被分割成接收模块101、确定模块102及创建模块103。本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述备用存储池的创建程序10在电子装置1中的执行过程,其中:
接收模块101,用于接收用户发送的配置数据。
接收模块101提供用户设置界面,根据用户的输入数据,生成配置数据。该配置数据包括各个存储节点的故障阈值或者各个存储节点对应的OSD标识信息。
上述存储节点的故障阈值是指该存储节点中发生故障的OSD的数量阈值。
此外,在一些实施例中,上述配置数据还包括待创建的备用Pool的副本数量及PG数量。
确定模块102,用于根据所述配置数据,分别从各个存储节点中选择若干个OSD作为备用OSD。
确定模块102根据所述配置数据,分别从各个存储节点中选择若干个OSD作为备用OSD的步骤包括至少两种实施方式,分别为:
方式一:
从所述配置数据中获取各个存储节点的故障阈值,根据各个存储节点的故障阈值,分别确定各所述存储节点的配置数量,并分别从各所述存储节点中随机选择所述配置数量的OSD作为备用OSD。
其中,所述存储节点的配置数量大于或等于所述故障阈值。例如,一存储节点的故障阈值为2,则可为该存储节点配置2个备用OSD,或者为该存储节点配置大于两个的备用OSD。需要注意的是,本实施例中虽限定了存储节点的配置数量大于或等于所述故障阈值,但该配置数量不宜过大,即不宜为一存储节点配置过多的备用OSD,以免造成资源浪费。
方式二:
从所述配置数据中获取各个存储节点对应的OSD标识信息,并将各个所述OSD标识信息对应的OSD作为备用OSD。
上述两种方式的区别在于,方式一中用户仅需设置各个存储节点的配置数量,由电子装置根据该配置数量,从各个存储节点中自动选出OSD作为备用OSD。而方式二则是由用户在各个存储节点的OSD中选出若干个OSD作为备用OSD。
需要注意的是,本实施例中备用OSD的总数量应当大于或等于预设阈值,该预设阈值可根据待创建的备用Pool的副本数量设置。例如,设置该预设阈值等于待创建的备用Pool的副本数量。
创建模块103,用于根据所述配置数据,创建备用Pool,并创建所述备用Pool与备用OSD之间的映射关系,并将所述备用Pool与备用OSD之间的映射关系保存。
上述备用Pool与备用OSD之间的映射关系之后,备用OSD仅用于存储备用Pool中PG的对象数据。
本实施例根据用户发送的配置数据,从各个存储节点中选出若干个OSD作为备用OSD,创建备用Pool,并创建备用Pool与备用OSD之间的映射关系,再将备用Pool与备用OSD之间的映射关系保存。相较于现有技术,本实施例在分布式存储***中设置备用OSD及备用Pool,当分布式存储***中某个OSD出现故障时,可启用备用OSD及备用Pool,降低OSD故障对分布式存储***性能的影响。
如图4所示,图4为本发明备用存储池的创建程序第二实施例的程序模块图。
本实施例在第一实施例的基础上,该程序还包括侦测模块104及重定向模块105,其中:
侦测模块104,用于实时或定时侦测预设事件是否被触发。
本实施例中,上述预设事件包括一个或多个主用OSD发生故障,所述主用OSD为所述存储节点中除备用OSD之外的OSD。侦测该预设事件是否触发的方式包括:采用心跳机制来侦测一主用OSD是否故障,实时或定时发送检测消息至各个主用OSD,若一主用OSD在预设时长内未返回回复消息,则确定该主用OSD发生故障。
在一些应用场景中,上述预设事件还包括一个或多个主用OSD执行写入请求超时。侦测该预设事件是否触发的方式包括:从一主用OSD接收到对象数据的写入请求时开始计时。当所述主用OSD完成所述对象数据的写入操作且当前所记录的时长小于第二预设时长时停止计时,确定所述主用OSD未执行超时。当所述主用OSD未完成所述对象数据的写入操作且当前所记录的时长等于第二预设时长时停止计时,确定所述主用OSD执行超时。
在一些应用场景中,上述预设事件还包括接收到重定向指令。
重定向模块105,用于当侦测模块104侦测到时,在预设时间区间内,拦截发送至预设存储位置的写请求,并将所述写请求重定向至所述备用Pool。
当预设事件为一个或多个主用OSD发生故障时,根据预先确定的对象数据与PG之间的映射关系,确定所述故障的主用OSD中存储的各个对象数据对应的PG,将确定的各个所述PG作为故障PG。并将所有所述故障PG对应的所有对象数据的副本数量从第一预设数量减少为第二预设数量(例如,从三副本减少为二副本)。然后,使用备用OSD逐一置换故障的主用OSD。例如,选择一个备用OSD作为新的主用OSD,再用所述新的主用OSD置换所述故障的主用OSD。接着,将所有所述故障PG对应的所有对象数据的副本数量从第二预设数量增加为第一预设数量(例如,从二副本增加为三副本)。接着,根据预先确定的PG与主用OSD之间的映射关系,将每一个所述故障PG对应的第一预设数量的主用OSD作为故障OSD组,当一所述故障OSD组接收到对象数据的写请求时,将所述写请求重定向至备用Pool,利用所述备用Pool执行所述写请求。
其中,选择新的主用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组接收到一写请求时,将所述写请求重定向至备用Pool,利用备用Pool执行所述新的写请求。
本实施例在预设事件触发时,拦截发送至预设存储位置的写请求,并将所述写请求重定向至所述备用Pool。可降低因主用OSD故障或执行超时对分布式存储***写性能的影响,有效的保证了写请求的执行效率。
进一步地,在其他实施例中,该程序还包括提示模块(图中未示出)。
提示模块,用于实时或定时侦测各所述存储节点中备用OSD的数量以及所述备用OSD的总数量。当所述存储节点中备用OSD的数量小于或等于所述故障阈值时,或者,当所述备用OSD的总数量小于或等于预设阈值(例如,备用Pool的副本数量)时,发出提示信息。
此外,本发明提出一种备用存储池的创建方法。
如图5所示,图5为本发明备用存储池的创建方法第一实施例的流程示意图。
本实施例中,该方法适用于电子装置,其特征在于,所述电子装置与多个存储节点通信连接,各个所述存储节点中设置有多个OSD,该方法包括步骤:
步骤S10,接收用户发送的配置数据。
提供用户设置界面,根据用户的输入数据,生成配置数据。该配置数据包括各个存储节点的故障阈值或者各个存储节点对应的OSD标识信息。
上述存储节点的故障阈值是指该存储节点中发生故障的OSD的数量阈值。
此外,在一些实施例中,上述配置数据还包括待创建的备用Pool的副本数量及PG数量。
步骤S20,根据所述配置数据,分别从各个存储节点中选择若干个OSD作为备用OSD。
上述步骤S20存在至少两种实施方式,分别为:
方式一:
从所述配置数据中获取各个存储节点的故障阈值,根据各个存储节点的故障阈值,分别确定各所述存储节点的配置数量,并分别从各所述存储节点中随机选择所述配置数量的OSD作为备用OSD。
其中,所述存储节点的配置数量大于或等于所述故障阈值。例如,一存储节点的故障阈值为2,则可为该存储节点配置2个备用OSD,或者为该存储节点配置大于两个的备用OSD。需要注意的是,本实施例中虽限定了存储节点的配置数量大于或等于所述故障阈值,但该配置数量不宜过大,即不宜为一存储节点配置过多的备用OSD,以免造成资源浪费。
方式二:
从所述配置数据中获取各个存储节点对应的OSD标识信息,并将各个所述OSD标识信息对应的OSD作为备用OSD。
上述两种方式的区别在于,方式一中用户仅需设置各个存储节点的配置数量,由电子装置根据该配置数量,从各个存储节点中自动选出OSD作为备用OSD。而方式二则是由用户在各个存储节点的OSD中选出若干个OSD作为备用OSD。
需要注意的是,本实施例中备用OSD的总数量应当大于或等于预设阈值,该预设阈值可根据待创建的备用Pool的副本数量设置。例如,设置该预设阈值等于待创建的备用Pool的副本数量。
步骤S30,根据所述配置数据,创建备用Pool,并创建所述备用Pool与备用OSD之间的映射关系,且将所述备用Pool与备用OSD之间的映射关系保存。
上述备用Pool与备用OSD之间的映射关系之后,备用OSD仅用于存储备用Pool中PG的对象数据。
本实施例根据用户发送的配置数据,从各个存储节点中选出若干个OSD作为备用OSD,创建备用Pool,并备用Pool与备用OSD之间的映射关系,再将备用Pool与备用OSD之间的映射关系保存。相较于现有技术,本实施例在分布式存储***中设置备用OSD及备用Pool,当分布式存储***中某个OSD出现故障时,可启用备用OSD及备用Pool,降低OSD故障对分布式存储***性能的影响。
如图6所示,图6为本发明备用存储池的创建方法第二实施例的流程示意图。
本实施例在第一实施例的基础上,于步骤S30之后,该方法还包括:
步骤S40,实时或定时侦测预设事件是否被触发。
本实施例中,上述预设事件包括一个或多个主用OSD发生故障,所述主用OSD为所述存储节点中除备用OSD之外的OSD。侦测该预设事件是否触发的方式包括:采用心跳机制来侦测一主用OSD是否故障,实时或定时发送检测消息至各个主用OSD,若一主用OSD在预设时长内未返回回复消息,则确定该主用OSD发生故障。
在一些应用场景中,上述预设事件还包括一个或多个主用OSD执行写入请求超时。侦测该预设事件是否触发的方式包括:从一主用OSD接收到对象数据的写入请求时开始计时。当所述主用OSD完成所述对象数据的写入操作且当前所记录的时长小于第二预设时长时停止计时,确定所述主用OSD未执行超时。当所述主用OSD未完成所述对象数据的写入操作且当前所记录的时长等于第二预设时长时停止计时,确定所述主用OSD执行超时。
在一些应用场景中,上述预设事件还包括接收到重定向指令。
步骤S50,当侦测到时,在预设时间区间内,拦截发送至预设存储位置的写请求,并将所述写请求重定向至所述备用Pool。
当预设事件为一个或多个主用OSD发生故障时,根据预先确定的对象数据与PG之间的映射关系,确定所述故障的主用OSD中存储的各个对象数据对应的PG,将确定的各个所述PG作为故障PG。并将所有所述故障PG对应的所有对象数据的副本数量从第一预设数量减少为第二预设数量(例如,从三副本减少为二副本)。然后,使用备用OSD逐一置换故障的主用OSD。例如,选择一个备用OSD作为新的主用OSD,再用所述新的主用OSD置换所述故障的主用OSD。接着,将所有所述故障PG对应的所有对象数据的副本数量从第二预设数量增加为第一预设数量(例如,从二副本增加为三副本)。接着,根据预先确定的PG与主用OSD之间的映射关系,将每一个所述故障PG对应的第一预设数量的主用OSD作为故障OSD组,当一所述故障OSD组接收到对象数据的写请求时,将所述写请求重定向至备用Pool,利用所述备用Pool执行所述写请求。
其中,选择新的主用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组接收到一写请求时,将所述写请求重定向至备用Pool,利用备用Pool执行所述新的写请求。
本实施例在预设事件触发时,拦截发送至预设存储位置的写请求,并将所述写请求重定向至所述备用Pool。可降低因主用OSD故障或执行超时对分布式存储***写性能的影响,有效的保证了写请求的执行效率。
进一步地,在其他实施例中,于步骤S30之后,该方法还包括:
实时或定时侦测各所述存储节点中备用OSD的数量以及所述备用OSD的总数量。当所述存储节点中备用OSD的数量小于或等于所述故障阈值时,或者,当所述备用OSD的总数量小于或等于预设阈值(例如,备用Pool的副本数量)时,发出提示信息。
进一步地,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质存储有备用存储池的创建程序,所述备用存储池的创建程序可被至少一个处理器执行,以使所述至少一个处理器执行上述任一实施例中的备用存储池的创建方法。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。
Claims (8)
1.一种电子装置,其特征在于,所述电子装置与多个存储节点通信连接,各个所述存储节点中设置有多个对象存储设备,所述电子装置包括存储器和处理器,所述存储器上存储有备用存储池的创建程序,所述备用存储池的创建程序被所述处理器执行时实现如下步骤:
接收步骤:接收用户发送的配置数据;
确定步骤:根据所述配置数据,分别从各个存储节点中选择若干个对象存储设备作为备用对象存储设备;
创建步骤:根据所述配置数据,创建备用存储池,并创建所述备用存储池与备用对象存储设备之间的映射关系,且将所述备用存储池与备用对象存储设备之间的映射关系保存;
其中,所述确定步骤包括:
从所述配置数据中获取各个存储节点的故障阈值,根据各个存储节点的故障阈值,分别确定各所述存储节点的配置数量,并分别从各所述存储节点中随机选择所述配置数量的对象存储设备作为备用对象存储设备,所述存储节点的配置数量大于或等于所述故障阈值;
或者,从所述配置数据中获取各个存储节点对应的对象存储设备标识信息,并将各个所述对象存储设备标识信息对应的对象存储设备作为备用对象存储设备。
2.如权利要求1所述的电子装置,其特征在于,所述处理器执行所述备用存储池的创建程序,在所述创建步骤之后,还实现以下步骤:
侦测步骤:实时或定时侦测预设事件是否被触发;
重定向步骤:当侦测到时,在预设时间区间内,拦截发送至预设存储位置的写请求,并将所述写请求重定向至所述备用存储池。
3.如权利要求2所述的电子装置,其特征在于,所述预设事件包括一个或多个主用对象存储设备发生故障,所述主用对象存储设备为所述存储节点中除备用对象存储设备之外的对象存储设备;
所述处理器执行所述备用存储池的创建程序,在所述侦测步骤之后,还实现以下步骤:
使用备用对象存储设备逐一置换故障的主用对象存储设备。
4.一种备用存储池的创建方法,适用于电子装置,其特征在于,所述电子装置与多个存储节点通信连接,各个所述存储节点中设置有多个对象存储设备,该方法包括步骤:
接收步骤:接收用户发送的配置数据;
确定步骤:根据所述配置数据,分别从各个存储节点中选择若干个对象存储设备作为备用对象存储设备;
创建步骤:根据所述配置数据,创建备用存储池,并创建所述备用存储池与备用对象存储设备之间的映射关系,且将所述备用存储池与备用对象存储设备之间的映射关系保存;
其中,所述确定步骤包括:
从所述配置数据中获取各个存储节点的故障阈值,根据各个存储节点的故障阈值,分别确定各所述存储节点的配置数量,并分别从各所述存储节点中随机选择所述配置数量的对象存储设备作为备用对象存储设备,所述存储节点的配置数量大于或等于所述故障阈值;
或者,从所述配置数据中获取各个存储节点对应的对象存储设备标识信息,并将各个所述对象存储设备标识信息对应的对象存储设备作为备用对象存储设备。
5.如权利要求4所述的备用存储池的创建方法,其特征在于,在所述创建步骤之后,该方法还包括:
侦测步骤:实时或定时侦测预设事件是否被触发;
重定向步骤:当侦测到时,在预设时间区间内,拦截发送至预设存储位置的写请求,并将所述写请求重定向至所述备用存储池。
6.如权利要求5所述的备用存储池的创建方法,其特征在于,所述预设事件包括一个或多个主用对象存储设备发生故障,所述主用对象存储设备为所述存储节点中除备用对象存储设备之外的对象存储设备;
在所述侦测步骤之后,该方法还包括:
使用备用对象存储设备逐一置换故障的主用对象存储设备。
7.一种分布式存储***,其特征在于,所述分布式存储***包括电子装置、多个存储节点,所述电子装置分别与各个所述存储节点通信连接,所述电子装置包括存储器和处理器,所述存储器上存储有备用存储池的创建程序,所述备用存储池的创建程序被所述处理器执行时实现如下步骤:
接收步骤:接收用户发送的配置数据;
确定步骤:根据所述配置数据,分别从各个存储节点中选择若干个对象存储设备作为备用对象存储设备;
创建步骤:根据所述配置数据,创建备用存储池,并创建所述备用存储池与备用对象存储设备之间的映射关系,且将所述备用存储池与备用对象存储设备之间的映射关系保存;
其中,所述确定步骤包括:
从所述配置数据中获取各个存储节点的故障阈值,根据各个存储节点的故障阈值,分别确定各所述存储节点的配置数量,并分别从各所述存储节点中随机选择所述配置数量的对象存储设备作为备用对象存储设备,所述存储节点的配置数量大于或等于所述故障阈值;
或者,从所述配置数据中获取各个存储节点对应的对象存储设备标识信息,并将各个所述对象存储设备标识信息对应的对象存储设备作为备用对象存储设备。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有备用存储池的创建程序,所述备用存储池的创建程序可被至少一个处理器执行,以使所述至少一个处理器执行如权利要求4-6中的任一项所述的备用存储池的创建方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811438576.0A CN109669822B (zh) | 2018-11-28 | 2018-11-28 | 电子装置、备用存储池的创建方法和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811438576.0A CN109669822B (zh) | 2018-11-28 | 2018-11-28 | 电子装置、备用存储池的创建方法和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109669822A CN109669822A (zh) | 2019-04-23 |
CN109669822B true CN109669822B (zh) | 2023-06-06 |
Family
ID=66143303
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811438576.0A Active CN109669822B (zh) | 2018-11-28 | 2018-11-28 | 电子装置、备用存储池的创建方法和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109669822B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110287151B (zh) * | 2019-05-20 | 2023-08-22 | 平安科技(深圳)有限公司 | 分布式存储***、数据写入方法、装置和存储介质 |
CN112835511B (zh) * | 2019-11-25 | 2022-09-20 | 浙江宇视科技有限公司 | 分布式存储集群的数据写入方法、装置、设备和介质 |
CN111290909A (zh) * | 2020-01-19 | 2020-06-16 | 山东汇贸电子口岸有限公司 | 一种对ceph集群进行监控和告警的***及方法 |
CN112363980A (zh) * | 2020-11-03 | 2021-02-12 | 网宿科技股份有限公司 | 一种分布式***的数据处理方法及装置 |
CN114510379B (zh) * | 2022-04-21 | 2022-11-01 | 山东百盟信息技术有限公司 | 一种分布式阵列视频数据存储装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107678918A (zh) * | 2017-09-26 | 2018-02-09 | 郑州云海信息技术有限公司 | 一种分布式文件***的osd心跳机制设置方法及装置 |
CN107729185A (zh) * | 2017-10-26 | 2018-02-23 | 新华三技术有限公司 | 一种故障处理方法及装置 |
CN108287660A (zh) * | 2017-01-09 | 2018-07-17 | ***通信集团河北有限公司 | 数据存储方法和设备 |
CN108694209A (zh) * | 2017-04-11 | 2018-10-23 | 华为技术有限公司 | 基于对象的分布式索引方法和客户端 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9774678B2 (en) * | 2009-10-29 | 2017-09-26 | International Business Machines Corporation | Temporarily storing data in a dispersed storage network |
-
2018
- 2018-11-28 CN CN201811438576.0A patent/CN109669822B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108287660A (zh) * | 2017-01-09 | 2018-07-17 | ***通信集团河北有限公司 | 数据存储方法和设备 |
CN108694209A (zh) * | 2017-04-11 | 2018-10-23 | 华为技术有限公司 | 基于对象的分布式索引方法和客户端 |
CN107678918A (zh) * | 2017-09-26 | 2018-02-09 | 郑州云海信息技术有限公司 | 一种分布式文件***的osd心跳机制设置方法及装置 |
CN107729185A (zh) * | 2017-10-26 | 2018-02-23 | 新华三技术有限公司 | 一种故障处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109669822A (zh) | 2019-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109669822B (zh) | 电子装置、备用存储池的创建方法和计算机可读存储介质 | |
CN109614276B (zh) | 故障处理方法、装置、分布式存储***和存储介质 | |
CN109656896B (zh) | 故障修复方法、装置及分布式存储***和存储介质 | |
CN109656895B (zh) | 分布式存储***、数据写入方法、装置和存储介质 | |
US10261853B1 (en) | Dynamic replication error retry and recovery | |
US10095576B2 (en) | Anomaly recovery method for virtual machine in distributed environment | |
US10884645B2 (en) | Virtual machine hot migration method, host machine and storage medium | |
US20150095597A1 (en) | High performance intelligent virtual desktop infrastructure using volatile memory arrays | |
US9354907B1 (en) | Optimized restore of virtual machine and virtual disk data | |
US8375200B2 (en) | Embedded device and file change notification method of the embedded device | |
CN109558260B (zh) | Kubernetes故障排除***、方法、设备及介质 | |
US9417973B2 (en) | Apparatus and method for fault recovery | |
JP6288275B2 (ja) | 仮想化基盤管理装置、仮想化基盤管理システム、仮想化基盤管理方法、及び、仮想化基盤管理プログラム | |
KR102398076B1 (ko) | 데이터 분산 저장 방법 및 장치 | |
US10579299B2 (en) | Method, apparatus, server and storage medium of erasing cloud host in cloud-computing environment | |
US8060773B1 (en) | Systems and methods for managing sub-clusters within a multi-cluster computing system subsequent to a network-partition event | |
CN108205482B (zh) | 文件挂载恢复方法 | |
CN111541762A (zh) | 数据处理的方法、管理服务器、设备及存储介质 | |
CN108241616B (zh) | 消息推送方法和装置 | |
CN108173892B (zh) | 云端镜像操作方法和装置 | |
CN112328423A (zh) | 一种搜索服务漏洞的处理方法、装置和存储介质 | |
CN109324931B (zh) | 在重复数据删除***中实现vmware挂载恢复的方法 | |
CN110908821A (zh) | 任务失败管理的方法、装置、设备和存储介质 | |
CN113609199B (zh) | 数据库***、服务器及存储介质 | |
US20180225201A1 (en) | Preserving volatile memory across a computer system disruption |
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 |