CN110413472B - 一种集群管理的方法和设备 - Google Patents
一种集群管理的方法和设备 Download PDFInfo
- Publication number
- CN110413472B CN110413472B CN201810386936.0A CN201810386936A CN110413472B CN 110413472 B CN110413472 B CN 110413472B CN 201810386936 A CN201810386936 A CN 201810386936A CN 110413472 B CN110413472 B CN 110413472B
- Authority
- CN
- China
- Prior art keywords
- osd
- parameter value
- fault
- target osd
- fault parameter
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3034—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3433—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
-
- 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)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种集群管理的方法和设备,用以解决现有技术中OSD频繁的flapping占用了大量的网络带宽和存储读写性能,使集群***性能降低的问题。本发明实施例在监控的OSD发生故障后,将发生故障的OSD的数据转移给其他的OSD;判断发生故障的OSD是否满足停用条件;如果确定发生故障的OSD满足停用条件,则停止使用发生故障的OSD。由于在确定故障的OSD达到停用条件,将故障的OSD停用,在停用时间内,即使发生故障的OSD频繁的发生恢复、故障,也不会进行数据重均衡,减少集群管理***中网络带宽和存储读写性能的占用量,降低了集群***的负载,使集群***的性能增加。
Description
技术领域
本发明涉及存储管理技术领域,特别涉及一种集群管理的方法和设备。
背景技术
Ceph是一种为具有优秀的性能、可靠性和可扩展性而设计的统一的、分布式的存储***。
现有技术中,Ceph存储***至少需要一个Ceph Mon和两个Ceph OSD(ObjectStorage Device,对象存储设备)守护进程。其中,Ceph Mon主要用于维护展示集群状态的各种表格,比如监视器图、OSD图、PG(Placement Group,归置组)图以及CRUSH(ControlledReplication Under Scalable Hashing,数据分发算法)图。Ceph OSD用来存储数据,处理数据的复制、恢复、回填、再均衡;同时Ceph OSD还可以对其他的Ceph OSD进行心跳检测,并向Ceph Mon提供检测的心跳信息。
在实际生产实践时,Ceph存储***提供了大规模的海量存储服务。当存储集群达到10PB量级,若按照每个OSD的最大量级为4TB来计算,则存储***中就存有2500块OSD。在实际运维时,OSD会因为网络的闪断、集群负载过大而发生轻微的故障,或服务器发生故障等原因造成OSD不响应,此时将OSD标为down(下降状态),但是在网络恢复、负载正常、服务器恢复后,将OSD标为up(上升状态);因此OSD频繁的up和down等情况是十分常见的,这种情况被称为OSD的flapping(上下移动)。
如图1所示,OSD发生故障前后的PG分布,假设当前OSD3发生故障,Ceph Mon将OSD3标记为down,同时对保存在OSD3上的PG重新分配,将PG均衡的分配到其他OSD中。
如图2所示,OSD发生故障又恢复的PG分布,在故障的OSD3恢复后,Ceph Mon将OSD3标记为up,同时对集群***中的数据做重均衡操作,此时将保存在OSD1和OSD2上的部分PG重新分配到OSD3。
综上,在现有技术中,OSD频繁的flapping占用了大量的网络带宽和存储读写性能,使整个集群***的性能降低。
发明内容
本发明提供一种集群管理的方法和设备,用以解决现有技术中OSD频繁的flapping占用了大量的网络带宽和存储读写性能,使集群***的性能降低的问题。
第一方面,本发明实施例提供一种集群管理的方法,该方法包括:
在监控的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不满足启用条件。
上述方法,根据判断是否满足启用条件来确定是否将当前停用的OSD重新开启,在确定满足启用条件后,将故障的OSD重新开启,若不满足启用条件,则继续停用所述OSD,保证所述OSD在启用后不会出现使集群***负载增加,及集群***稳定性降低的现象。
第二方面,本发明实施例提供一种集群管理的设备,该设备包括:处理器以及收发机:
处理器用于在监控的OSD发生故障后,将发生故障的OSD的数据转移给其他的OSD;判断发生故障的OSD是否满足停用条件;如果确定发生故障的OSD满足停用条件,则停止使用发生故障的OSD。
第三方面,本发明实施例提供另一种集群管理的设备,该设备包括:处理单元和存储单元;该存储单元用于存储计算机执行指令,当该设备运行时,该处理单元执行该存储单元存储的该计算机执行指令,以使该设备执行如上述方面中任一所述的集群管理的方案。
第四方面,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质中包括程序代码,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
第五方面,本申请还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
另外,第二方面至第五方面中任一种实现方式所带来的技术效果可参见第一方面中不同实现方式所带来的技术效果,此处不再赘述。
本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中OSD发生故障前后的PG分布图;
图2为现有技术中OSD发生故障又恢复的PG分布图;
图3为本发明实施例提供的一种集群管理***架构示意图;
图4为本发明实施例提供的一种集群管理的方法流程图;
图5为本发明实施例提供的一种确定是否停用所述OSD的方法流程图;
图6为本发明实施例提供的另一种确定是否停用所述OSD的方法流程图;
图7为本发明实施例提供的一种确定是否启用所述OSD的方法流程图;
图8为本发明实施例提供的一种集群管理的整体方法流程图;
图9为本发明实施例提供的一种集群管理的设备结构示意图;
图10为本发明实施例提供的另一种集群管理的设备结构示意图。
具体实施方式
本申请实施例描述的架构以及业务场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
目前是社交时代和移动互联网时代,对现代的互联网具有较高的要求,随着出现了大量的读写请求、数据及用户;现有的集群管理***中包含有多个磁盘,只要当磁盘发生故障时,就会对磁盘内的数据进行重均衡,若其中一个磁盘频繁的发生故障,就会对发生故障的磁盘频繁的进行数据的重均衡,在对故障的磁盘中的数据进行重均衡的过程中,占用了大量的网络带宽和存储读写性能,对整个集群的稳定性及其他性能造成了一定的影响。
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
如图3所示,为本发明实施提供的一种集群管理***架构示意图,从图中可知,集群管理***由OSD,Mon及管理模块组成;其中同一个存储节点内的OSD之间可以相互的进行心跳检测,判断是否有OSD发生异常;所述Mon用于接收OSD上报的检测信息,在接收到所述OSD上报的检测信息后,将接收到的检测信息发送给所述管理模块;所述管理模块在接收到检测信息后,确定故障的OSD,并对故障的OSD进行处理。
其中,所述管理模块与Mon主体部署于同一节点,共同维护集群***的OSDs map,且所述管理模块还具有OSD异常状态记录功能,OSD故障参数值计算功能以及OSD控制功能。
具体的,所述OSD异常记录功能主要记录OSD的状态down、out等,并对应的记录发生异常状态的次数、原因、频率等。因此可以对OSD进行故障统计,同时可以对集群***中故障的OSD进行针对性的运维。因此,在出现因服务器故障或网络故障导致OSD故障的情况下,不需要运维人员手动停掉故障的OSD,同时在确定OSD故障的原因时,也不需要对整个集群***中所有存在问题的设备进行检查,进一步减少了人工运维的工作量;还可以根据OSD异常记录功能提前对频繁发生故障的OSD进行运维,不会出现在故障时,因需要等一段时间,而给集群***造成不必要的负载的现象。
具体的,所述OSD控制功能,可以通过调用集群管理命令控制指定OSD,或通过集群管理命令设置整个集群。在确定故障的OSD后,可以对故障的OSD进行控制管理,自动将故障的OSD设置为down,在恢复启用后自动设置为up,或在频繁发生故障后停用所述OSD。
具体的,所述OSD故障参数值计算功能,根据所述OSD故障的次数及频繁度计算出当前OSD的故障参数值,进而根据故障参数值确定是否停用所述OSD,下面进行详细介绍。
如图4所示,为本发明实施例提供的一种集群管理的方法流程图,具体包括如下步骤:
步骤400,在监控的OSD发生故障后,将发生故障的OSD的数据转移给其他的OSD;
步骤401,判断发生故障的OSD是否满足停用条件;
步骤402,如果确定发生故障的OSD满足停用条件,则停止使用发生故障的OSD。
本发明实施例中,在监控的OSD发生故障后,判断发生故障的OSD是否满足停用条件,在确定发生故障的OSD满足停用条件后,停止使用发生故障的OSD,同时在确定监控的OSD发生故障后,将发生故障的OSD的数据转移给其他的OSD;由于在确定故障的OSD达到停用条件,将故障的OSD停用,在停用时间内,即使因发生故障而被停用的OSD频繁的发生故障、恢复,也不会对数据进行重均衡操作,减少集群管理***中网络带宽和存储读写性能的占用量,降低了集群***的负载,使集群***的性能增加。
进一步的,在监控的OSD发生故障后,判断发生故障的OSD是否满足停用条件之前,对所述发生故障的OSD对应的故障参数值进行更新;
所述判断发生故障的OSD是否满足停用条件时,判断更新后的故障参数值是否大于第一阈值,如果是,则确定所述发生故障的OSD满足停用条件;否则,确定所述发生故障的OSD不满足停用条件。
具体的,在确定有OSD发生故障后,针对发生故障的OSD计算故障参数,使用计算后的故障参数对当前的故障参数值进行更新,然后使用更新后的故障参数值与***中设定的第一阈值进行比较,确定更新后的故障参数值是否大于所述第一阈值,若所述故障参数值大于所述第一阈值,则将故障的OSD停用;否则在故障恢复后继续使用所述OSD,确定其再次发生故障后,对故障参数值再次进行更新,并将更新后的故障参数值与所述第一阈值进行比较,确定是否满足停用条件。
比如,所述OSD的当前故障参数值为1,确定所述OSD发生故障后,计算所述OSD的故障参数的参数值为2,此时更新后的故障参数值为2,若***中设定的第一阈值为3,此时所述OSD不满足停用条件。
在实施中,在监控的OSD发生故障后,对发生故障的OSD对应的故障参数值进行更新,并判断更新后的故障参数值是否大于第一阈值,在大于第一阈值后,将故障的OSD停用,由于故障的OSD已被停用,因此不会频繁的出现数据重均衡现象,降低了集群***的负载,提高了集群***的稳定性。
具体的,在对发生故障的OSD的故障参数进行更新时,判断发生故障的OSD是否为第一次发生故障,若所述OSD的故障是第一次故障,则对所述发生故障的OSD的故障参数值进行更新时,将一次步长值作为更新后的故障参数值,并将更新后的故障参数值与第一阈值进行比较确定是否满足停用条件,在满足停用条件下,停用所述OSD。
其中,所述OSD在没有发生故障时,其故障参数值初始为0,在发生第一次故障后,其故障参数值增加一步长值,因此将第一次更新后的故障参数值称为一次步长值。
其中,所述步长值的大小可以人为设定,比如将步长值设置为1。因此在发生故障后,故障参数值就会在之前的故障参数值的基础上增加1,得到更新后的故障参数值。
进一步的,若确定所述OSD的故障不是第一次故障,对所述发生故障的OSD的故障参数值进行更新时,确定OSD发生故障的时间点和前一次发生故障的时间点之间的时长;
若所述时长小于设定的半衰期,则将所述发生故障的OSD的故障参数值增加步长值,得到更新后的故障参数值;
若所述时长未小于设定的半衰期,则根据所述时长和所述半衰期的倍数关系,确定停用调整参数,并根据所述停用调整参数更新所述发生故障的OSD的故障参数值,得到更新后的故障参数值。
其中,所述半衰期的时长由***或人工设定,但针对同一个OSD其对应的半衰期不变。
具体的,在确定发生故障的OSD不是第一次发生故障,则在对发生故障的OSD的故障参数值进行更新时,确定相邻两次发生故障的时长,并判断相邻两次故障的时长是否大于设定的半衰期,若所述相邻两次故障的时长不大于设定的半衰期,即在发生故障后开始时长的计算,到再次发生故障时,不到一个半衰期,此时对发生故障的故障参数值增加一步长值,增加步长值之后的故障参数值为当前的故障参数值,使用当前的故障参数值与设定的第一阈值进行比较,确定当前的故障参数值是否小于所述第一阈值,若小于所述第一阈值,则不停用所述OSD,若不小于所述第一阈值,则停用所述OSD。
比如,第一次发生故障时的时间为9:00,当前的故障参数值为1,此时从9:00开始计时,若第二次发生故障的时间为9:10,相邻两次故障的时长为10分钟,设定的半衰期为30分钟,此时针对当前的故障参数值增加一步长值,假设步长值为1,此时更新后的故障参数值为2,若设置的第一阈值为10,则当更新后的故障参数值不小于10时,停用所述OSD。
若在对发生故障的OSD的故障参数值进行更新时,确定相邻两次故障的时长大于设定的半衰期,并根据所述时长和所述半衰期的倍数关系,即在相连两次故障的时间间隔内存在几个整数倍的半衰期,确定停用调整参数,并根据所述停用调整参数更新所述发生故障的OSD的故障参数值,得到更新后的故障参数值。
其中,根据所述停用调整参数更新所述发生故障的OSD的故障参数值,可设置为当相邻两次故障时长内存在几个半衰期,对当前的故障参数值进行几次减半;或当相邻两次故障时长达到一个设定时长后,对当前的故障参数值减少一定的数值,最终使减半后的参数值或减少一定数值后的参数值在所述OSD发生故障时增加一个步长值,将减半后的参数值或减少一定数值后的参数值与步长值的和作为当前的参数值。
在本发明实施例中,在根据所述时长和所述半衰期的倍数关系确定停用调整参数,并根据所述停用调整参数更新所述OSD的故障参数值时,时长的倍数关系可以向上取整,也可以向下取整,主要根据***的设置。
比如,***设置为向下取整,在确定上一次发生故障的时间为9:00,更新后的故障参数值为1,本次发生故障的时间为10:10,两次故障的时间间隔为70分钟,若一个半衰期的时长为30分钟,此时确定相邻两次的故障的时长中包含有2.3个半衰期,由于***设置为向下取整,因此确定相邻两次的故障的时长中存在两个半衰期,此时对故障参数值1进行两次减半后确定的故障参数值为0.25,在发生故障时,确定当前的故障参数值为1.25。
具体的,本发明实施例在根据所述停用调整参数更新所述发生故障的OSD的故障参数值,还可以为当发生故障后时长达到一个设定的半衰期后,对当前的故障参数值进行减半;或当发生故障后时长达到一个设定的半衰期后,对当前的故障参数值减少一定的数值,使减半后的参数值或减少一定数值后的参数值在所述OSD发生故障时增加一个步长值,将减半后的参数值或减少一定数值后的参数值与步长值的和作为当前的参数值。
比如,第一次发生故障时的时间为9:00,当前的故障参数值为1,此时从9:00开始计时,若在9:30之前所述OSD没有发生故障,则对故障参数值1进行减半,确定当前的故障参数值为0.5;此时以9:30开始计时,当前的故障参数为0.5,确定在经过30分钟的时长内是否发生故障,若在10:00的时候仍没有发生故障,此时的故障参数值变为0.25;继续以10:00开始计算,确定在一个半衰期30分钟内是否发生故障,若在10:10的时候发生故障,由于10:00到10:10之间没有达到一个半衰期的时长,此时对当前的故障参数值进行增加一步长值1,当前的故障参数值为1.25。此时更新后的故障参数值为1.25,若设置的第一阈值为10,则当更新后的故障参数值不小于10时,停用所述OSD。
需要说明的是,在根据所述停用调整参数更新所述发生故障的OSD的故障参数值时,当故障参数值小于一定值时,可以将当前的故障参数值置0。
如图5所示,以执行主体为集群管理***为例,本发明实施例提供的一种确定是否停用所述OSD的方法流程图,具体包括如下步骤:
步骤500,集群管理***启用OSD;
步骤501,集群管理***判断所述OSD故障是否为第一次故障,若为第一次故障,则执行步骤502,否则执行步骤503;
步骤502,集群管理***对所述OSD的初始故障参数值增加一步长值得到一次步长值,将一次步长值作为更新后的故障参数值;
步骤503,集群管理***判断所述OSD相邻两次故障的时间点之间的时长是否小于设定的半衰期,若所述时长小于设定的半衰期,则执行步骤504,否则执行步骤505;
步骤504,集群管理***针对当前的所述OSD的故障参数值增加一步长值,得到更新后的故障参数值;
步骤505,集群管理***根据所述时长和所述半衰期的倍数关系,确定停用调整参数,并根据所述停用调整参数更新所述发生故障的OSD的故障参数值,得到更新后的故障参数值;
步骤506,集群管理***判断所述OSD更新后的故障参数值是否小于所述第一阈值,若小于所述第一阈值,则执行步骤500,否则执行步骤507;
步骤507,集群管理***停止使用发生故障的OSD。
在实施中,根据判断所述OSD的故障是否为第一次故障,并在确定为第一次故障后,如何对所述故障参数值进行更新;确定为不是第一次故障参数值后,如何对所述故障参数值进行更新,明确了对故障参数值的更新方法,在根据更新后的故障参数值与第一阈值之间的关系确定是否被停用时,可以准确定的将频繁发生故障的OSD停用。
在本发明实施例中,对所述发生故障的OSD的故障参数值进行更新时,还可先确定在所述OSD在发生故障之前是否存在半衰期,即先确定发生故障的时间点和位于OSD发生故障的时间点之前的目标时间点之间的时长,判断所述时长是否小于所述半衰期;
若所述时长小于设定的半衰期,则将所述发生故障的OSD的故障参数值增加步长值,得到更新后的故障参数值;
若所述时长未小于设定的半衰期,则根据所述时长和所述半衰期的倍数关系,确定停用调整参数,并根据所述停用调整参数更新所述发生故障的OSD的故障参数值,得到更新后的故障参数值。
其中,所述目标时间点主要由故障的次数决定,若OSD的故障是第一次故障,则所述位于OSD发生故障的时间点之前的目标时间点为所述OSD启用时的时间点;若OSD的故障不是第一次故障,则所述位于OSD发生故障的时间点之前的目标时间点为前一次发生故障的时间点。
其中,所述根据所述停用调整参数更新所述发生故障的OSD的故障参数值,可以为当发生故障后时长达到一个设定的半衰期后,对当前的故障参数值进行减半;或当发生故障后时长达到一个设定的半衰期后,对当前的故障参数值减少一定的数值,使减半后的参数值或减少一定数值后的参数值作为当前的参数值。
具体的,当所述OSD第一次发生故障,则开始计算半衰期的时间点为OSD启用时的时间点,若启用时的时间点为8:00,则在8:00的时候开始计算半衰期,一个半衰期的时长为30分钟,在30分钟后若所述OSD没有发生故障,则将初始故障参数值减半,由于初始故障参数值为0,因此半衰期后的故障参数值仍为0,当在此半衰期之后经过20分钟后发生故障,此故障为所述OSD的第一次故障,因此对故障参数值0增加一步长值1,此时更新后的故障参数值为1,判断更新后的故障参数值1是否小于设定的第一阈值,假设设定的第一阈值为10,此时更新后的故障参数值小于第一阈值,则所述OSD处于启用状态;
根据上述内容确定第一次故障的时间点为8:50,此时以8:50为计算半衰期时长的起始点,判断在一个半衰期的时长内是否发生故障,若经过30分钟后没有发生故障,此时根据停用调整参数确定当前的故障参数值,及将第一次故障确定的故障参数值减半,得到更新后的故障参数值为0.5;若再次经过一个半衰期的时长,所述OSD还没有发生故障,此时更新后的故障参数值为0.25;若在不到一个半衰期的时长内发生故障,此时在上次更新后的参数值的基础上增加一步长值,得到当前更新后的故障参数值为1.25。
若在第一次发生故障后,经过20分钟所述OSD再次放生故障,此时在第一发生故障后确定的故障参数值的基础上增加一步长值,确定当前更新后的故障参数值为2,将当前的故障参数值与第一阈值进行比较确定是否满足停用条件。
如图6所示,以执行主体为集群管理***为例,本发明实施例提供的另一种确定是否停用所述OSD的方法流程图,具体包括如下步骤:
步骤600,集群管理***启用OSD;
步骤601,集群管理***判断一个半衰期的时长内所述OSD是否发生故障,若发生故障,则执行步骤602,否则执行步骤603;
步骤602,集群管理***针对当前的OSD的故障参数值增加一步长值,将增加步长值后的故障参数值作为更新后的故障参数值;
步骤603,集群管理***根据所述时长和所述半衰期的倍数关系确定停用调整参数,并根据所述停用调整参数更新所述发生故障的OSD的故障参数值,得到更新后的故障参数值;
步骤604,集群管理***判断所述OSD更新后的故障参数值是否小于第一阈值,若小于第一阈值则执行步骤605,否则执行步骤600;
步骤605,集群管理***停止使用发生故障的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。
比如,设定的周期时长为30分钟,停用时的故障参数值为10,当停用时间到达30分钟后,会对停用时的故障参数减半,减半后的故障参数值为5,假设第二阈值为2,因此当故障参数值小于第二阈值2时,就可启用当前因故障而被停用的OSD,但是现在的故障参数值为5不小于第二阈值2,因此继续根据停用的时长来判断是否可以启用,确定停用的时长是否超过最大时长,若超过最大时长则可启用,假设最大时长为50,此时才经过30分钟,因此没有超过最大时长,不满足启用条件,此时故障的OSD仍处于停用状态。
基于上述内容,假设被停用的故障的OSD又达到了一个周期,此时减半后的故障参数值为2.5,不小于第二阈值2,继续根据停用的时长来确定,确定停用的时长是否超过最大时长,假设最大时长为50,此时经过60分钟,停用时长超过最大时长,满足启用条件,启用故障的OSD。
若最大时长为100分钟,基于上述内容,当前的故障参数值为2.5,停用时长为分钟60分钟,不满足启用条件,假设又经过一个周期30分钟,此时的故障参数值为1.25,小于第二阈值,不用继续判断停用时长是否超过最大时长就可启用。
在实施中,本发明实施例还可以先由停用时长与最大时长的关系确定所述OSD是否满足启用条件,若停用时长超过最大时长,则直接启用,否则继续根据更新后故障参数值与第二阈值的大小关系确定所述OSD是否满足启用条件,若更新后故障参数值小于第二阈值,则启用所述OSD,否则继续停用所述OSD。
具体的,以先根据更新后的故障参数值与第二阈值的大小关系确定所述OSD是否满足启用条件为例,如图7所示,以执行主体为集群管理***为例,本发明实施例提供的一种确定是否启用所述OSD的方法流程图,具体包括如下步骤:
步骤700,集群管理***确定停用时长达到设定周期后,根据设置的启用调整参数对OSD对应的故障参数值进行更新;
步骤701,集群管理***判断更新后的故障参数值是否小于第二阈值,若不小于第二阈值,则执行步骤702,否则执行步骤703;
步骤702,集群管理***判断停用的总时长是否大于最大时长,若大于最大时长,则执行步骤703,否则执行步骤700;
步骤703,重新使用所述OSD。
在实施中,根据判断是否满足启用条件来确定是否将当前停用的OSD重新开启,在确定满足启用条件后,将故障的OSD重新开启,若不满足启用条件,则继续停用所述OSD,保证所述OSD在启用后不会出现使集群***负载增加,及集群***稳定性降低的现象。
具体的,如图8所示,以执行主体为集群管理***为例,本发明实施例提供的一种集群管理的整体方法流程图,包括如下步骤:
步骤800,集群管理***启用OSD;
步骤801,集群管理***判断所述OSD故障是否为第一次故障,若为第一次故障,则执行步骤802,否则执行步骤803;
步骤802,集群管理***对所述OSD初始故障参数值增加一步长值得到一次步长值,将一次步长值作为更新后的故障参数值;
步骤803,集群管理***判断所述OSD相邻两次故障的时间点之间的时长是否小于设定的半衰期,若所述时长小于设定的半衰期,则执行步骤804,否则执行步骤805;
步骤804,集群管理***针对当前的所述OSD的故障参数值增加一步长值,得到更新后的故障参数值;
步骤805,集群管理***根据所述时长和所述半衰期的倍数关系,确定停用调整参数,并根据所述停用调整参数更新所述发生故障的OSD的故障参数值,得到更新后的故障参数值;
步骤806,集群管理***判断所述OSD更新后的故障参数值是否小于所述第一阈值,若小于所述第一阈值,则执行步骤800,否则执行步骤807;
步骤807,集群管理***停止使用发生故障的OSD;
步骤808,集群管理***确定停用时长达到设定周期后,根据设置的启用调整参数对OSD对应的故障参数值进行更新;
步骤809,集群管理***判断更新后的故障参数值是否小于第二阈值,若不小于第二阈值,则执行步骤810,否则执行步骤800;
步骤810,集群管理***判断停用的总时长是否大于最大时长,若大于最大时长,则执行步骤800,否则执行步骤808。
需要说明的是,在本发明实施例中,执行主体还可以为集群管理***中的某一节点或其他与集群管理***类似的执行主体,在此不在赘述。
在一些可能的实施方式中,本发明实施例提供的集群管理的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序代码在计算机设备上运行时,程序代码用于使计算机设备执行本说明书中描述的根据本发明各种示例性实施方式的集群管理的方法中的步骤。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
根据本发明的实施方式的用于数据转发控制的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在服务器设备上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被信息传输、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由周期网络动作***、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算设备,或者,可以连接到外部计算设备。
本发明实施例针对集群管理的方法还提供一种计算设备可读存储介质,即断电后内容不丢失。该存储介质中存储软件程序,包括程序代码,当程序代码在计算设备上运行时,该软件程序在被一个或多个处理器读取并执行时可实现本发明实施例上面任何一种进行集群管理时的方案。
基于同一发明构思,本发明实施例中还提供了一种集群管理的设备,由于该设备对应的是本发明实施例集群管理的方法对应的设备,并且该设备解决问题的原理与该方法相似,因此该设备的实施可以参见方法的实施,重复之处不再赘述。
如图9所示,本发明实施例提供的一种集群管理的设备,包括:处理器900以及收发机901:所述处理器900用于:在监控的OSD发生故障后,将发生故障的OSD的数据转移给其他的OSD;判断发生故障的OSD是否满足停用条件;如果确定发生故障的OSD满足停用条件,则停止使用发生故障的OSD。
可选的,所述处理器900还用于:
对所述发生故障的OSD对应的故障参数值进行更新;
判断更新后的故障参数值是否大于第一阈值,如果是,则确定所述发生故障的OSD满足停用条件;否则,确定所述发生故障的OSD不满足停用条件。
可选的,所述处理器900具体用于:
确定OSD发生故障的时间点和前一次发生故障的时间点之间的时长;
若所述时长小于设定的半衰期,则将所述发生故障的OSD的故障参数值增加步长值,得到更新后的故障参数值;若所述时长未小于设定的半衰期,则根据所述时长和所述半衰期的倍数关系,确定停用调整参数,并根据所述停用调整参数更新所述发生故障的OSD的故障参数值,得到更新后的故障参数值。
可选的,所述处理器900具体用于:
将一次步长值作为更新后的故障参数值。
可选的,所述处理器900还用于:
判断停用的OSD是否满足启用条件;
如果确定停用的OSD满足启用条件,则重新使用所述OSD。
可选的,所述处理器900具体用于:
在设定的周期达到后,根据设置的启用调整参数对OSD对应的故障参数值进行更新;
若更新后的故障参数值小于第二阈值或停用时长超过最大时长,则确定停用的OSD是否满足启用条件;
若更新后的故障参数值不小于第二阈值,且停用时长未超过最大时长,则确定停用的OSD不满足启用条件。
如图10所示,本发明实施例另一种集群管理的设备,该设备包括:至少一个处理单元1000以及至少一个存储单元1001,其中,所述存储单元1001存储有程序代码,当所述程序代码被所述处理单元1000执行时,使得所述处理单元1000执行所述集群管理过程中的任一方法的步骤。
以上参照示出根据本申请实施例的方法、装置(***)和/或计算机程序产品的框图和/或流程图描述本申请。应理解,可以通过计算机程序指令来实现框图和/或流程图示图的一个块以及框图和/或流程图示图的块的组合。可以将这些计算机程序指令提供给通用计算机、专用计算机的处理器和/或其它可编程数据处理装置,以产生机器,使得经由计算机处理器和/或其它可编程数据处理装置执行的指令创建用于实现框图和/或流程图块中所指定的功能/动作的方法。
相应地,还可以用硬件和/或软件(包括固件、驻留软件、微码等)来实施本申请。更进一步地,本申请可以采取计算机可使用或计算机可读存储介质上的计算机程序产品的形式,其具有在介质中实现的计算机可使用或计算机可读程序代码,以由指令执行***来使用或结合指令执行***而使用。在本申请上下文中,计算机可使用或计算机可读介质可以是任意介质,其可以包含、存储、通信、传输、或传送程序,以由指令执行***、装置或设备使用,或结合指令执行***、装置或设备使用。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (6)
1.一种集群管理的方法,其特征在于,该方法包括:
在监控的对象存储设备OSD发生故障后,将发生故障的目标OSD的数据转移给其他OSD,并对所述目标OSD对应的故障参数值进行更新;
基于更新后的故障参数值,判断所述目标OSD是否满足停用条件;
如果确定所述目标OSD满足停用条件,则停止使用所述目标OSD;
其中,所述对所述目标OSD对应的故障参数值进行更新,包括:
若所述目标OSD不是第一次发生故障,则确定所述目标OSD当前发生故障的时间点和前一次发生故障的时间点之间的时长;若所述时长小于设定的半衰期,则将所述目标OSD的故障参数值增加步长值,得到更新后的故障参数值;若所述时长未小于设定的半衰期,则根据所述时长和所述半衰期的倍数关系,确定停用调整参数,并根据所述停用调整参数更新所述目标OSD的故障参数值,得到更新后的故障参数值;
若所述目标OSD是第一次发生故障,则将在所述目标OSD的初始故障参数值上增加一步长值后得到的一次步长值作为更新后的故障参数值;
其中,所述停止使用所述目标OSD之后,通过如下方式判断所述目标OSD是否满足启用条件:
在设定的周期达到后,根据设置的启用调整参数对所述目标OSD对应的故障参数值进行更新;
若更新后的故障参数值小于第二阈值或停用时长超过最大时长,则确定所述目标OSD满足启用条件;
若更新后的故障参数值不小于第二阈值,且停用时长未超过最大时长,则确定所述目标OSD不满足启用条件。
2.如权利要求1所述的方法,其特征在于,所述判断所述目标OSD是否满足停用条件,包括:
判断更新后的故障参数值是否大于第一阈值,如果是,则确定所述目标OSD满足停用条件;否则,确定所述目标OSD不满足停用条件。
3.一种集群管理的设备,其特征在于,该设备包括:处理器以及收发机:
所述处理器用于:在监控的OSD发生故障后,将发生故障的目标OSD的数据转移给其他OSD,并对所述目标OSD对应的故障参数值进行更新;基于更新后的故障参数值,判断所述目标OSD是否满足停用条件;如果确定所述目标OSD满足停用条件,则停止使用所述目标OSD;
其中,所述处理器具体用于:
若所述目标OSD不是第一次发生故障,确定所述目标OSD当前发生故障的时间点和前一次发生故障的时间点之间的时长;若所述时长小于设定的半衰期,则将所述目标OSD的故障参数值增加步长值,得到更新后的故障参数值;若所述时长未小于设定的半衰期,则根据所述时长和所述半衰期的倍数关系,确定停用调整参数,并根据所述停用调整参数更新所述目标OSD的故障参数值,得到更新后的故障参数值;
若所述目标OSD是第一次发生故障,则将在所述目标OSD的初始故障参数值上增加一步长值后得到的一次步长值作为更新后的故障参数值;
其中,所述停止使用所述目标OSD之后,所述处理器通过如下方式判断所述目标OSD是否满足启用条件:
在设定的周期达到后,根据设置的启用调整参数对所述目标OSD对应的故障参数值进行更新;
若更新后的故障参数值小于第二阈值或停用时长超过最大时长,则确定所述目标OSD满足启用条件;
若更新后的故障参数值不小于第二阈值,且停用时长未超过最大时长,则确定所述目标OSD不满足启用条件。
4.如权利要求3所述的设备,其特征在于,所述处理器还用于:
判断更新后的故障参数值是否大于第一阈值,如果是,则确定所述目标OSD满足停用条件;否则,确定所述目标OSD不满足停用条件。
5.一种集群管理的设备,其特征在于,该设备包括:至少一个处理单元以及至少一个存储单元,其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元执行权利要求1~2任一所述方法的步骤。
6.一种计算设备可读存储介质,其特征在于,包括程序代码,当所述程序代码在计算设备上运行时,所述程序代码用于使所述计算设备执行权利要求1~2任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810386936.0A CN110413472B (zh) | 2018-04-26 | 2018-04-26 | 一种集群管理的方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810386936.0A CN110413472B (zh) | 2018-04-26 | 2018-04-26 | 一种集群管理的方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110413472A CN110413472A (zh) | 2019-11-05 |
CN110413472B true CN110413472B (zh) | 2023-07-21 |
Family
ID=68345728
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810386936.0A Active CN110413472B (zh) | 2018-04-26 | 2018-04-26 | 一种集群管理的方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110413472B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112000500A (zh) * | 2020-07-29 | 2020-11-27 | 新华三大数据技术有限公司 | 一种通信故障的确定方法、处理方法和存储设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104426696B (zh) * | 2013-08-29 | 2018-09-07 | 深圳市腾讯计算机***有限公司 | 一种故障处理的方法、服务器及*** |
CN107566475B (zh) * | 2017-08-28 | 2020-08-04 | 北京天元创新科技有限公司 | 一种会话故障转移方法及装置 |
-
2018
- 2018-04-26 CN CN201810386936.0A patent/CN110413472B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110413472A (zh) | 2019-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109271331B (zh) | 日志的生成方法、装置、计算机设备及存储介质 | |
US10057142B2 (en) | Diagnostic framework in computing systems | |
CN108572898B (zh) | 一种控制接口的方法、装置、设备、以及存储介质 | |
US8479038B1 (en) | Method and apparatus for achieving high availability for applications and optimizing power consumption within a datacenter | |
CN107453932B (zh) | 一种分布式存储***管理方法及其装置 | |
TWI506412B (zh) | 伺服器系統的電源管理方法 | |
CN109921942B (zh) | 云平台切换控制方法、装置、***及电子设备 | |
CN106940671B (zh) | 一种集群中任务线程运行的监控方法、装置及*** | |
US9210059B2 (en) | Cluster system | |
CN111104283B (zh) | 一种分布式存储***的故障检测方法、装置、设备及介质 | |
CN109726062B (zh) | 代理服务器的下线方法和控制服务器 | |
TW201737215A (zh) | 異常監控報警方法及裝置 | |
CN111212127A (zh) | 一种存储集群及业务数据的维护方法、装置和存储介质 | |
US20180300199A1 (en) | System and method for maintaining the health of a machine | |
US8719622B2 (en) | Recording and preventing crash in an appliance | |
CN110413472B (zh) | 一种集群管理的方法和设备 | |
CN102761432B (zh) | Cgi监控方法及其装置和*** | |
US20130254588A1 (en) | Standby system device, a control method, and a program thereof | |
US20120239988A1 (en) | Computing unit, method of managing computing unit, and computing unit management program | |
CN113821232B (zh) | 模型更新方法和装置 | |
US20150088826A1 (en) | Enhanced Performance for Data Duplication | |
CN106487561A (zh) | 一种服务器服务更新的方法和*** | |
US11050651B2 (en) | Systems and methods for health monitoring and upgrade of a distributed controller | |
CN112000720A (zh) | 数据库连接的管理方法、管理***以及数据库连接池 | |
CN110716826A (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 |