一种Ceph系统数据清洗方法、装置、设备及介质与流程

文档序号:26404890发布日期:2021-08-24 16:18阅读:547来源:国知局
一种Ceph系统数据清洗方法、装置、设备及介质与流程

本发明属于云计算技术领域,涉及一种分布式存储系统,尤其是涉及一种ceph系统数据清洗方法、装置、设备及介质。



背景技术:

ceph作为一个分布式存储系统,在云计算行业爆发式增长的背景下,得到了越来越多的应用。ceph分布式存储采用数据多副本备份机制来保证数据的可靠性。其中,cephpg是一个放置策略组,它是对象的集合,相同pg内的对象都会放到相同的硬盘上,cephosd是负责物理存储的进程,一般配置成和磁盘一一对应,一块磁盘启动一个osd进程。ceph系统为了维护数据干净和一致性,osd守护进程可以在pg内清洗对象。

ceph的数据清洗包括轻清洗和深度清洗两种,轻清洗是指osd守护进程在pg内和其他osd的对象副本比较元数据,捕获bugs或者文件系统错误。深度清洗是指osd守护进程通过逐位比较pg中所有对象的数据执行更深层的清洗。可以发现轻清洗不能发现的硬盘坏扇区。在数据清洗之前,相关的osd会锁定对象的读写请求。

在传统模式下,ceph系统数据清洗开始之前会判定所在系统的负载(cpuload)是否超过相关配置的阈值,在负载不超过阈值的情况下即可开启清洗操作,以此来避免ceph清洗对系统负载的负担,以可能出现的数据清洗错误和卡死。但这种模式考虑因素较少,会较为频繁地启动清洗操作。除此以外,ceph系统的深度清洗一旦开始,若因为系统原因导致无法结束是没有主动停止的能力的,也就是说pgscrub会持续很长时间,在这期间相关的对象都是被锁死的,这会严重影响ceph整个存储系统的可用性和性能。



技术实现要素:

本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种ceph系统数据清洗方法、装置、设备及介质,以减少数据清洗对系统可用性和性能的影响。

本发明的目的可以通过以下技术方案来实现:

一种ceph系统数据清洗方法,包括状态判断步骤和数据清洗步骤,其中,所述状态判断步骤具体为:

采集ceph系统实时状态信息,循环判断当前ceph系统是否同时满足以下判定条件:

负载低于第一阈值;

可用内存高于第二阈值;

pg所对应的osdiops低于第三阈值;

若是,则启动所述数据清洗步骤,若否,则返回状态判断步骤。

进一步地,所述数据清洗步骤包括:

执行数据清洗过程中,实时判断清洗持续时长是否超过第四阈值,若是,则中断数据清洗。

进一步地,所述第一阈值、第二阈值、第三阈值和第四阈值ceph系统运行环境确定。

进一步地,所述ceph系统运行环境包括ceph所在系统的cpu核数、内存大小、硬盘正常情况下的iops指标和ceph系统在该硬件环境下正常运行时的延时性能。

本发明还提供一种ceph系统数据清洗装置,包括状态判断模块和数据清洗模块,其中,所述状态判断模块包括:

采集单元,用于采集ceph系统实时状态信息;

判断单元,用于循环判断当前ceph系统是否同时满足以下判定条件:

负载低于第一阈值;

可用内存高于第二阈值;

pg所对应的osdiops低于第三阈值;

若是,则产生清洗指令,若否,则产生重新判断指令;

所述数据清洗模块响应所述清洗指令执行数据清洗过程。

进一步地,所述数据清洗模块包括:

监听模块,用于在执行数据清洗过程中,实时判断清洗持续时长是否超过第四阈值,若是,则中断数据清洗。

进一步地,所述第一阈值、第二阈值、第三阈值和第四阈值ceph系统运行环境确定。

进一步地,所述ceph系统运行环境包括ceph所在系统的cpu核数、内存大小、硬盘正常情况下的iops指标和ceph系统在该硬件环境下正常运行时的延时性能

本发明还提供一种电子设备,包括:

一个或多个处理器;

存储器;和

被存储在存储器中的一个或多个程序,所述一个或多个程序包括用于执行如上所述ceph系统数据清洗方法的指令。

本发明还提供一种计算机可读存储介质,包括供电子设备的一个或多个处理器执行的一个或多个程序,所述一个或多个程序包括用于执行如上所述ceph系统数据清洗方法的指令。

与现有技术相比,本发明具有以下有益效果:

1、本发明在数据清洗是否启动的判定中,同时利用系统的负载、可用内存以及pg所对应的osdiops进行条件判定,既能够避免系统出现内存抢占、导致部分进程被杀死的情况,又能够避免当前的数据清洗操作卡死、导致相关osd对象长时间被锁定无法读写的情况,消除ceph系统数据清洗的隐患,有效提高了存储系统的可用性和性能。

2、本发明在数据清洗过程中实时监听清洗过程是否超时,进一步减少数据清洗对系统可用性和性能的影响。

3、本发明的设置的各项阈值可以根据ceph系统运行环境确定,更符合实际运行情况,提高数据清洗准确性和效率。

附图说明

图1为本发明的流程示意图。

具体实施方式

下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。

实施例1

参考图1所示,本实施例提供一种ceph系统数据清洗方法,包括状态判断步骤和数据清洗步骤,其中,所述状态判断步骤具体为:

采集ceph系统实时状态信息,循环判断当前ceph系统是否同时满足以下判定条件:负载低于第一阈值osd_scrub_load_threshold;可用内存高于第二阈值osd_scrub_mem_threshold;pg所对应的osdiops低于第三阈值osd_scrub_iops_threshold;

若是,则启动所述数据清洗步骤,若否,则返回状态判断步骤。

上述数据清洗(pgscrub)方法在负载判定的基础上增加两个判定条件:

a.osd_scrub_mem_threshold阈值判定,判断当前的剩余可用内容是否不低于这个阈值,如果低于这个阈值,在这个情况下开启数据清洗操作则可能导致系统出现内存抢占的情况,会导致部分进程被杀死,影响整个系统的可用性和性能;

b.osd_scrub_iops_threshold阈值判定,判断当前数据清洗pg相关的osd对应的硬盘的iops是否高于这个阈值,如果高于这个阈值,标明当前的磁盘处于高速读写的状态中,在这个情况下开启数据清洗操作可能导致当前的数据清洗操作卡死,导致相关osd对象长时间被锁定无法读写,影响存储系统的可用性和性能。

在优选的实施方式中,所述数据清洗步骤包括:在数据清洗过程开启之后,对数据清洗过程的进行监听,实时判断清洗持续时长是否超过第四阈值osd_scrub_time_threshold,若是,则主动中断数据清洗。

上述第一阈值sd_scrub_load_threshold、第二阈值osd_scrub_mem_threshold、第三阈值osd_scrub_iops_threshold和第四阈值osd_scrub_time_threshold可以根据ceph系统的运行环境决定,比如ceph所在系统的cpu核数、内存大小、硬盘正常情况下的iops指标以及ceph系统在该硬件环境下正常运行时的延时性能等。

这几个阈值是根据ceph系统的运行环境决定的,比如ceph所在系统的cpu核数,内存大小,以及硬盘正常情况下的iops指标,以及ceph系统在该硬件环境下正常运行时的延时性能等

参考图1所示,在优选实施方式中,上述数据清洗方法的具体实施过程包括如下步骤:

s1、scrub定时器开始,启动时间相关判定流程;

s2、判断系统负载是否低于osd_scrub_load_threshold,若是,则执行步骤s3,若否,则执行步骤s5;

s3、判断系统可用内存是否不低于osd_scrub_mem_threshold,若是,则执行步骤s4,若否,则执行步骤s5;

s4、判断系统pg所对应的osdiops是否低于osd_scrub_iops_threshold,若是,则执行步骤s6,若否,则执行步骤s5;

s5、while循环若干时间后重试,返回步骤s1;

s6、开始pgscrub;

s7、进入实时监听pgscrub进程;

s8、实时判断pgscrub耗时是否超过osd_scrub_time_threshold,若是,则执行步骤s9,若否,则执行步骤s7;

s9、主动中断pgscrub进程;

s10、pgscrub进程正常停止。

基于上述步骤,在数据清洗过程开始之前,假设一个pg对应n个osd进程,这n个osd进程分别分布在n个系统中,读取对应n个osd进程所在系统的当前availablememory值为am1,am2,…,amn,读取对应n个osd进程对应硬盘的当前iops值为io1,io2,…,ion。数据清洗开启过程记为函数fstart(pg),数据清洗中断过程记为函数fstop(pg),当前时间记为t,数据清洗开始时间为t0,则:

1.当(min(am1,am2,…,amn)>osd_scrub_mem_threshold)∩(max(io1,io2,…,ion)<osd_scrub_iops_threshold)时,fstart(pg),t0=t

2.当(t-t0)>=sd_scrub_time_threshold时,fstop(pg)

3.其他情况下:等待

上述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

在另一实施例中,提供一种电子设备,包括一个或多个处理器、存储器和被存储在存储器中的一个或多个程序,所述一个或多个程序包括用于执行如上所述ceph系统数据清洗方法的指令。

实施例2

本实施例中,提供一种ceph系统数据清洗装置,包括状态判断模块和数据清洗模块,其中,所述状态判断模块包括:

采集单元,用于采集ceph系统实时状态信息;

判断单元,用于循环判断当前ceph系统是否同时满足以下判定条件:负载低于第一阈值;可用内存高于第二阈值;pg所对应的osdiops低于第三阈值;

若是,则产生清洗指令,若否,则产生重新判断指令;所述数据清洗模块响应所述清洗指令执行数据清洗过程。

以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1