一种基于Ceph的OSD阻塞检测方法、系统、终端及存储介质技术方案

技术编号:26303709 阅读:11 留言:0更新日期:2020-11-10 19:58
本发明专利技术公开了一种基于Ceph的OSD阻塞检测方法、系统、终端及存储介质。所述方法包括:通过OSD进程接收IO请求;统计所述IO请求的排队时延或等待时延;判断所述排队时延或等待时延是否超过设定阈值,如果超过设定阈值,判定所述OSD进程为阻塞OSD,并将所述阻塞OSD的阻塞消息发送至Monitor主节点;通过所述Monitor主节点接收所述阻塞消息,并计算所述阻塞OSD的阻塞状态,根据所述阻塞状态的计算结果控制所述阻塞OSD的运行状态。本发明专利技术可以确保IO阻塞不进一步扩散,从而保证Ceph集群稳定运行。在整个OSD阻塞检测和集群自愈过程中,无需人工干预,实现了自动化的集群自处理和维护。

【技术实现步骤摘要】
一种基于Ceph的OSD阻塞检测方法、系统、终端及存储介质
本专利技术涉及集群管理
,特别是涉及一种基于Ceph的OSD阻塞检测方法、系统、终端及存储介质。
技术介绍
Ceph(分布式文件系统)作为集对象、块、文件3者于一身的分布式存储开源系统,由于无单点、高性能、易扩展的特性,愈加受到追捧和使用。Ceph尽管有如此多的优点,但其弊端也很明显,例如系统稳定性、易用性差、系统稳定性差等,主要体现在两方面:一、慢盘、单盘故障等硬件故障容易导致OSD(onscreendisplay,屏幕菜单式调节方式)处理速率降低,随着请求积压,最终导致该OSD阻塞,直接影响该OSD上的所有PG(PlacementGroups,中文译为放置组);二、网络异常导致OSD心跳偶发性失联,OSD心跳失联过程中若存在文件写入,待OSD心跳恢复正常时,由于Ceph的recovery(恢复)机制,该OSD需要恢复心跳失联过程中新写入或修改的文件,恢复过程容易导致IO(输入输出)阻塞,最终同样影响该OSD上的所有PG。基于上述问题,极大影响了Ceph运行的稳定性,不利于用户的使用体验。
技术实现思路
本专利技术提供了一种基于Ceph的OSD阻塞检测方法、系统、终端及存储介质,能够在一定程度上解决现有技术中存在的不足。为解决上述技术问题,本专利技术采用的技术方案为:一种基于Ceph的OSD阻塞检测方法,包括:通过OSD进程接收IO请求;统计所述IO请求的排队时延或等待时延;判断所述排队时延或等待时延是否超过设定阈值,如果超过设定阈值,判定所述OSD进程为阻塞OSD,并将所述阻塞OSD的阻塞消息发送至Monitor主节点;通过所述Monitor主节点接收所述阻塞消息,并计算所述阻塞OSD的阻塞状态,根据所述阻塞状态的计算结果控制所述阻塞OSD的运行状态。本专利技术实施例采取的技术方案还包括:所述通过OSD进程接收IO请求还包括:将所述IO请求放入等待处理队列,并记录所述IO请求的队列进入时间。本专利技术实施例采取的技术方案还包括:所述判定所述OSD进程为阻塞OSD包括:判断所述IO请求在所述等待处理队列中的排队时延是否超过设定阈值;如果超过设定阈值,判定所述OSD进程为内阻塞OSD。本专利技术实施例采取的技术方案还包括:所述判定所述OSD进程为阻塞OSD还包括:从所述等待处理队列中提取IO请求进行处理,并实时判断所述IO请求对应的目标对象状态是否正常,如果状态正常,根据所述IO请求对所述目标对象进行操作;如果所述目标对象处于恢复状态中,统计所述IO请求等待所述目标对象恢复的等待时延;如果所述等待时延超过设定阈值,判定所述OSD进程为外阻塞OSD。本专利技术实施例采取的技术方案还包括:所述将所述阻塞OSD的阻塞消息发送至Monitor主节点包括:通过OSD后台阻塞检查线程将所述内阻塞OSD或外阻塞OSD的OSDID、阻塞类型、阻塞时间、阻塞的IO请求数量发送至monitor主节点。本专利技术实施例采取的技术方案还包括:所述monitor主节点计算所述阻塞OSD的阻塞状态,根据所述阻塞状态的计算结果控制所述阻塞OSD的运行状态包括:查看所述阻塞OSD所归属的存储池,获取存储池的故障冗余模式及故障域,所述故障域包括OSD或host或room;以所述故障域为单位计算实际故障数N_real,如果OSD.x和OSD.y属于同一个host,且故障域为host,则所述实际故障数N_real记为1;如果所述故障域为OSD,则所述实际故障数N_real记为2;计算所述阻塞OSD所属的存储池能容忍的最大故障数N_max;将所述实际故障数N_real和所述最大故障数N_max进行比较,如果N_real<=N_max,则允许所述阻塞OSD停止运行,向所述阻塞OSD主机返回停止运行命令;否则,不允许所述阻塞OSD停止运行。本专利技术实施例采取的技术方案还包括:所述向所述阻塞OSD主机返回停止运行命令后还包括:所述阻塞OSD主机接收到停止运行命令后,控制所述阻塞OSD停止运行,并更新Ceph集群的OSDmap,使得新的IO请求不再发往已停止运行的OSD进程。本专利技术实施例采取的另一技术方案为:一种基于Ceph的OSD阻塞检测系统,包括:请求接收模块:用于通过OSD进程接收IO请求;阻塞判断模块:用于统计所述IO请求的排队时延或等待时延,并判断所述排队时延或等待时延是否超过设定阈值,如果超过设定阈值,判定所述OSD进程为阻塞OSD,并将所述阻塞OSD的阻塞消息发送至Monitor主节点;主节点控制模块:用于接收所述阻塞消息,计算所述阻塞OSD的阻塞状态,根据所述阻塞状态的计算结果控制所述阻塞OSD的运行状态。本专利技术实施例采取的又一技术方案为:一种终端,所述终端包括处理器、与所述处理器耦接的存储器,其中,所述存储器存储有用于实现上述的基于Ceph的OSD阻塞检测方法的程序指令;所述处理器用于执行所述存储器存储的所述程序指令以执行所述基于Ceph的OSD阻塞检测操作。本专利技术实施例采取的又一技术方案为:一种存储介质,存储有处理器可运行的程序指令,所述程序指令用于执行上述的基于Ceph的OSD阻塞检测方法。本专利技术的有益效果是:本专利技术实施例基于Ceph的OSD阻塞检测方法、系统、终端及存储介质通过对OSD进程的内阻塞和外阻塞两类场景分别进行阻塞检测,并通过Monitor主节点对阻塞OSD的阻塞状态进行计算后,控制阻塞OSD停止运行,确保IO阻塞不进一步扩散,保证Ceph集群稳定运行。在整个OSD阻塞检测和集群自愈过程中,无需人工干预,实现了自动化的集群自处理和维护。附图说明图1是本专利技术第一实施例的基于Ceph的OSD阻塞检测方法的流程示意图;图2是本专利技术第二实施例的基于Ceph的OSD阻塞检测方法的流程示意图;图3是本专利技术实施例基于Ceph的OSD阻塞检测系统的结构示意图;图4是本专利技术实施例的终端结构示意图;图5是本专利技术实施例的存储介质结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本专利技术的一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术中的术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”的特征可以明示或者隐含地包括至少一个该特征。本专利技术的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。本专利技术实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅本文档来自技高网...

【技术保护点】
1.一种基于Ceph的OSD阻塞检测方法,其特征在于,包括:/n通过OSD进程接收IO请求;/n统计所述IO请求的排队时延或等待时延;/n判断所述排队时延或等待时延是否超过设定阈值,如果超过设定阈值,判定所述OSD进程为阻塞OSD,并将所述阻塞OSD的阻塞消息发送至Monitor主节点;/n通过所述Monitor主节点接收所述阻塞消息,并计算所述阻塞OSD的阻塞状态,根据所述阻塞状态的计算结果控制所述阻塞OSD的运行状态。/n

【技术特征摘要】
1.一种基于Ceph的OSD阻塞检测方法,其特征在于,包括:
通过OSD进程接收IO请求;
统计所述IO请求的排队时延或等待时延;
判断所述排队时延或等待时延是否超过设定阈值,如果超过设定阈值,判定所述OSD进程为阻塞OSD,并将所述阻塞OSD的阻塞消息发送至Monitor主节点;
通过所述Monitor主节点接收所述阻塞消息,并计算所述阻塞OSD的阻塞状态,根据所述阻塞状态的计算结果控制所述阻塞OSD的运行状态。


2.根据权利要求1所述的基于Ceph的OSD阻塞检测方法,其特征在于,所述通过OSD进程接收IO请求还包括:
将所述IO请求放入等待处理队列,并记录所述IO请求的队列进入时间。


3.根据权利要求2所述的基于Ceph的OSD阻塞检测方法,其特征在于,所述判定所述OSD进程为阻塞OSD包括:
判断所述IO请求在所述等待处理队列中的排队时延是否超过设定阈值;如果超过设定阈值,判定所述OSD进程为内阻塞OSD。


4.根据权利要求2所述的基于Ceph的OSD阻塞检测方法,其特征在于,所述判定所述OSD进程为阻塞OSD还包括:
从所述等待处理队列中提取IO请求进行处理,并实时判断所述IO请求对应的目标对象状态是否正常,
如果状态正常,根据所述IO请求对所述目标对象进行操作;
如果所述目标对象处于恢复状态中,统计所述IO请求等待所述目标对象恢复的等待时延;
如果所述等待时延超过设定阈值,判定所述OSD进程为外阻塞OSD。


5.根据权利要求3或4所述的基于Ceph的OSD阻塞检测方法,其特征在于,所述将所述阻塞OSD的阻塞消息发送至Monitor主节点包括:
通过OSD后台阻塞检查线程将所述内阻塞OSD或外阻塞OSD的OSDID、阻塞类型、阻塞时间、阻塞的IO请求数量发送至monitor主节点。


6.根据权利要求5所述的基于Ceph的OSD阻塞检测方法,其特征在于,所述monitor主节点计算所述阻塞OSD的阻塞状态,根据所述阻塞状态的计算结果控制所述阻塞OSD的运行状态包...

【专利技术属性】
技术研发人员:雷林凯
申请(专利权)人:平安科技深圳有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1