分布式系统的磁盘清理方法和装置、分布式系统
技术领域
本说明书涉及数据处理技术领域,尤其涉及分布式系统的磁盘清理方法和装置、分布式系统。
背景技术
应用程序在处理业务的过程中,需要持续不断地打印业务日志,暂存在服务器的硬盘中,并通常通过异步地方式同步到数据仓库做长时间的报错;因此,有必要对磁盘空间进行清理。
发明内容
基于此,本说明书提供了分布式系统的磁盘清理方法和装置、分布式系统。
根据本说明书实施例的第一方面,提供一种分布式系统的磁盘清理方法,所述方法包括:
接收分布式系统中各服务器上报的当前磁盘状态参数;
分别根据各个服务器的当前磁盘状态参数判断对应服务器的磁盘是否满足清理条件;
若存在满足清理条件的磁盘,调度运维平台,以按照预设的清理速率对分布式系统中的磁盘进行清理;其中,所述清理速率根据所述当前磁盘状态参数设定。
可选地,所述当前磁盘状态参数包括当前磁盘用量,所述清理条件为当前磁盘用量大于预设的磁盘用量阈值;或者
所述当前磁盘状态参数包括当前磁盘用量和磁盘总量,所述清理条件为当前磁盘用量大于预设的磁盘用量阈值,和/或磁盘剩余容量大于预设的磁盘剩余容量阈值;其中,所述磁盘剩余容量根据当前磁盘用量和磁盘总量而确定。
可选地,所述方法还包括:
分别根据各服务器上报的当前磁盘用量计算对应服务器的磁盘用量增速;
调度运维平台,以按照预设的清理速率对分布式系统中的磁盘进行清理的步骤包括:
若所述磁盘用量增速大于当前磁盘清理速度,调度运维平台,以按照大于所述磁盘用量增速的清理速度对分布式系统中的磁盘进行清理;
若所述磁盘用量增速小于或等于当前磁盘清理速度,调度运维平台,以按照当前清理速度对分布式系统中的磁盘进行清理。
可选地,若存在满足清理条件的磁盘,调度运维平台,以按照预设的清理速率对分布式系统中的磁盘进行清理的步骤包括:
若满足清理条件的磁盘的数量占分布式系统中磁盘总数的比例大于预设的比例阈值,按照预设的清理速率对分布式系统中的各个磁盘进行清理;
若满足清理条件的磁盘的数量占分布式系统中磁盘总数的比例小于或等于预设的比例阈值,按照预设的清理速率对分布式系统中满足清理条件的磁盘进行清理。
可选地,所述方法还包括:
获取业务流量增速;
若业务流量增速大于预设的增速阈值,调度运维平台,以对分布式系统中的磁盘进行清理。
可选地,所述方法还包括:
若满足清理条件的磁盘的数量占分布式系统中磁盘总数的比例大于预设的比例阈值,向运维平台发送报警信息。
可选地,所述方法还包括:
若满足清理条件的磁盘的数量占分布式系统中磁盘总数的比例大于预设的比例阈值,对分布式系统的运行状态进行调整,以降低磁盘容量风险。
根据本说明书实施例的第二方面,提供一种分布式系统的磁盘清理装置,所述装置包括:
接收模块,用于接收分布式系统中各服务器上报的当前磁盘状态参数;
判断模块,用于分别根据各个服务器的当前磁盘状态参数判断对应服务器的磁盘是否满足清理条件;
调度模块,用于若存在满足清理条件的磁盘,调度运维平台,以按照预设的清理速率对分布式系统中的磁盘进行清理;其中,所述清理速率根据所述当前磁盘状态参数设定。
根据本说明书实施例的第三方面,提供一种分布式系统,所述分布式系统包括:
监控系统和多个服务器;
各个服务器分别用于向监控系统上报本服务器的当前磁盘状态参数;
所述监控系统用于分别根据各个服务器的当前磁盘状态参数判断对应服务器的磁盘是否满足清理条件,若存在满足清理条件的磁盘,调度运维平台,以按照预设的清理速率对分布式系统中的磁盘进行清理;其中,所述清理速率根据所述当前磁盘状态参数设定。
可选地,所述分布式系统还包括:
运维平台;
所述运维平台用于接收监控系统的调度,以按照预设的清理速率对分布式系统中的磁盘进行清理。
根据本说明书实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现权任一实施例所述的方法。
根据本说明书实施例的第五方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现任一实施例所述的方法。
应用本说明书实施例方案,通过监控系统获取分布式系统中各个服务器的当前磁盘状态参数,并根据当前磁盘状态参数调度运维平台来对分布式系统中的磁盘进行清理,可以接近实时地统一搜集整个分布式系统所有服务器的当前的磁盘使用情况,然后执行对整个分布式系统最优或者较优的清理策略,可以快速应对突发业务流量增长,快速进行磁盘清理。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。
图1是本说明书一个实施例的分布式系统的磁盘清理方法流程图。
图2是本说明书一个实施例的分布式系统的磁盘清理方法的程序流图。
图3是本说明书一个实施例的分布式系统的控制方式示意图。
图4是本说明书一个实施例的分布式系统的磁盘清理装置的框图。
图5是本说明书一个实施例的分布式系统的示意图。
图6是本说明书一个实施例的用于实施本说明书方法的计算机设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
应用程序在处理业务的过程中,需要持续不断地打印业务日志,暂存在服务器的硬盘中,并通常通过异步地方式同步到数据仓库做长时间的报错;故需要通过删除较老的业务日志,清理磁盘空间,让应用程序可以持续地有空余地空间打印业务日志,以避免由于磁盘打满对业务造成影响。
例如,对于电商公司,在每年的“618”大促,“双11”大促前,都会提前做好各种准备,例如机器扩容、业务压测、提前预案、应急预案等,以应对预期内的业务高峰,在这之中往往包含各业务系统提前准备好的日志降级,因为在大量业务流量下,详细的日志非常容易将服务器的日志直接打爆。在当今复杂多变的业务环境下,提供给用户的互联网服务可能出现预期外的大规模上涨,这时自动扩容增大系统容量通常是可用的手段。但是在扩容完成前,突然升高的业务流量容易引发大量业务日志向磁盘打印。在扩容前,磁盘可能早已打满,轻则丢失重要的业务日志,导致业务不可追溯;重则引发服务不可用、服务器宕机,影响用户使用互联网服务。因此,有必要对磁盘进行清理,避免由于磁盘打满对业务造成影响。
基于此,本说明书实施例提供一种分布式系统的磁盘清理方法,如图1所示,所述方法可包括:
步骤102:接收分布式系统中各服务器上报的当前磁盘状态参数;
步骤104:分别根据各个服务器的当前磁盘状态参数判断对应服务器的磁盘是否满足清理条件;
步骤106:若存在满足清理条件的磁盘,调度运维平台,以按照预设的清理速率对分布式系统中的磁盘进行清理;其中,所述清理速率根据所述当前磁盘状态参数设定。
分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统;分布式系统通常由多台服务器组成。本实施例的方法可以由分布式系统中的监控系统执行。在步骤102中,各服务器可以分别向监控系统上报自身的当前磁盘状态参数,从而监控系统可以获取到分布式系统中各个服务器的当前磁盘状态参数。当前磁盘状态参数用于表征磁盘当前的运行状态,根据实际应用的不同需要,当前磁盘状态参数可以包括当前磁盘用量;进一步地,当前磁盘状态参数还可以包括磁盘总量。其中,当前磁盘用量是指当前已被使用的磁盘容量,磁盘总量是指磁盘的可用容量总额。
由于搜集当前磁盘状态参数占用的计算资源可以忽略不计,因此,服务器可以每秒钟对自身的当前磁盘状态参数进行搜集并上报监控系统,监控系统可以接近实时地统一搜集整个分布式系统所有服务器的当前的磁盘使用情况,然后执行对整个分布式系统最优或者较优的清理策略。
在步骤104中,监控系统可以分别判断各个服务器的磁盘是否满足清理条件。清理条件可根据各服务器上报的当前磁盘状态参数而确定,例如,当前磁盘状态参数包括当前磁盘用量时,则清理条件为当前磁盘用量大于预设的磁盘用量阈值。其中,磁盘用量阈值可以根据实际需要自行设定。假设磁盘用量阈值为5G,则某个服务器的磁盘的当前磁盘用量大于5G时,判定该服务器的磁盘满足清理条件,可对该服务器的磁盘进行清理。
又例如,当前磁盘状态参数包括当前磁盘用量和磁盘总量时,清理条件为当前磁盘用量大于预设的磁盘用量阈值,和/或磁盘剩余容量大于预设的磁盘剩余容量阈值;其中,所述磁盘剩余容量根据当前磁盘用量和磁盘总量而确定。假设当前磁盘用量和磁盘总量分别为R和R总,则磁盘剩余容量可记为R/R总。若清理条件为同时满足当前磁盘用量大于预设的磁盘用量阈值,且磁盘剩余容量大于预设的磁盘剩余容量阈值,假设磁盘用量阈值为5G,磁盘剩余容量阈值为35%,当前磁盘用量为6G,且磁盘总量为15G,则此时由于当前磁盘用量大于磁盘用量阈值,且磁盘剩余容量为6/15=40%,大于磁盘剩余容量阈值为35%,因此,判定满足清理条件。
在步骤106中,监控系统可以调度运维平台来对分布式系统中的磁盘进行清理,清理速率可根据所述当前磁盘状态参数设定,这样,可以根据分布式系统中各服务器的磁盘状态自适应地采取较优的清理措施。具体来说,如果当前磁盘状态参数包括当前磁盘用量,则监控系统可以分别根据各服务器上报的当前磁盘用量计算对应服务器的磁盘用量增速,若磁盘用量增速大于当前磁盘清理速度,调度运维平台,以按照大于所述磁盘用量增速的清理速度对分布式系统中的磁盘进行清理;若所述磁盘用量增速小于或等于当前磁盘清理速度,调度运维平台,以按照当前清理速度对分布式系统中的磁盘进行清理。
假设服务器在ti时刻上报的当前磁盘用量和tj时刻上报的当前磁盘用量,假设分别为Rti和Rtj,则磁盘用量增速可记为:
V=(Rti-Rtj)/(ti-tj)。
例如,假设分布式系统中包括5台服务器,且各个服务器均满足清理条件,预先设定的当前磁盘清理速度(即,当前默认的磁盘清理速度)为2G/s,其中,监控系统根据服务器1、服务器2和服务器3上报的当前磁盘用量计算出的磁盘用量增速为3G/s,监控系统根据服务器4和服务器5上报的当前磁盘用量计算出的磁盘用量增速为1G/s,则监控系统可以调度运维平台以大于3G/s的清理速度对服务器1、服务器2和服务器3的磁盘进行清理(在实际应用中,清理速度可以略大于3G/s),并调度运维平台以2G/s的清理速度对服务器4和服务器5的磁盘进行清理。
在一个实施例中,监控系统还可以根据分布式系统中满足清理条件的磁盘的数量来确定是否对分布式系统中全部的磁盘进行清理,如果满足清理条件的磁盘数量较多,则对分布式系统中全部的磁盘进行清理;否则,仅对满足清理条件的磁盘进行清理。具体来说,若满足清理条件的磁盘的数量占分布式系统中磁盘总数的比例大于预设的比例阈值,按照预设的清理速率对分布式系统中的各个磁盘进行清理;若满足清理条件的磁盘的数量占分布式系统中磁盘总数的比例小于或等于预设的比例阈值,按照预设的清理速率对分布式系统中满足清理条件的磁盘进行清理。
本说明书一个实施例的分布式系统的磁盘清理方法的程序流图如图2所示。假设分布式系统中包括3台服务器,分别为服务器1、服务器2和服务器3,每台服务器均按照预设的时间间隔向监控系统上报自身的当前磁盘状态参数,包括当前磁盘用量和磁盘总量Rm,其中,t1时刻的当前磁盘用量为Rt1,t2时刻(即当前时刻)的当前磁盘用量为Rt2,假设t1时刻与t2时刻之间的时间间隔为1s,则监控系统可计算出当前时刻服务器1至服务器3的磁盘用量增速分别为V1=2G/s,V2=0.5G/s,V3=0.5G/s。假设监控系统执行磁盘清理的清理条件是当前磁盘用量大于预设的磁盘用量阈值Rth,且当满足清理条件的磁盘的数量N大于Nth时,对分布式系统中的全部磁盘执行磁盘清理,当满足清理条件的磁盘的数量N小于或等于Nth时,仅对满足清理条件的磁盘执行磁盘清理。由于服务器1的当前磁盘用量R1和服务器3的当前磁盘用量R3均大于Rth,只有服务器2的当前磁盘用量R2小于Rth,因此,满足清理条件的磁盘的数量N大于Nth,需要对分布式系统中的全部磁盘执行磁盘清理。此时,监控系统可调度运维平台,由于服务器1的磁盘用量增速大于当前磁盘清理速度Vth,服务器2和服务器3的磁盘用量增速小于Vth,因此,可以采用大于V1的清理速度来清理服务器1的磁盘,并采用当前磁盘清理速度Vth来清理服务器2和服务器3的磁盘。
在一个实施例中,监控系统还可以获取业务流量增速;若业务流量增速大于预设的增速阈值,调度运维平台,以对分布式系统中的磁盘进行清理。在实际应用中,可以在存在满足清理条件的磁盘,和/或业务流量增速大于预设的增速阈值时调度运维平台,以对分布式系统中的磁盘进行清理。也可以根据实际需要设置更加复杂的清理逻辑,以对分布式系统的磁盘采取较优的清理策略。
在一个实施例中,若满足清理条件的磁盘的数量占分布式系统中磁盘总数的比例大于预设的比例阈值,监控系统还可以向运维平台发送报警信息。通过向运维平台报警,可以提醒对应的业务应用负责人通过人工决策的方式对分布式系统的运行状态进行调整,以降低磁盘容量风险。
在另一个实施例中,若满足清理条件的磁盘的数量占分布式系统中磁盘总数的比例大于预设的比例阈值,对分布式系统的运行状态进行调整,以降低磁盘容量风险。在本实施例中,监控系统可以自动对分布式系统的运行状态进行调整,以降低磁盘容量风险。
在实际应用中,如果对分布式系统的运行状态所进行的调整时会对分布式系统所执行的业务产生影响,可通过人工决策的方式来对分布式系统的运行状态进行调整;反之,如果调整时不会对分布式系统所执行的业务产生影响,则可由监控系统自动进行调整。其中一种调整方式是降低磁盘写入量,例如,对日志进行降级。对于有损的降级,可通过人工决策来完成;对于无损的降级,则可直接由监控系统来完成。
本说明书一个实施例的分布式系统的控制方式示意图如图3所示。在本实施例中,监控系统首先接收各服务器上报的当前磁盘状态参数,根据当前磁盘状态参数判断各服务器的磁盘是否满足清理条件,然后确定满足清理条件的磁盘的数量。如果满足清理条件的磁盘的数量大于预设设置的数量阈值,则向运维平台发送报警信息,以通过人工决策方式调整分布式系统的运行状态,或者由监控平台直接自动调整分布式系统的运行状态。如果满足清理条件的磁盘的数量小于或等于预设设置的数量阈值,则直接调度运维平台对磁盘进行清理。
本说明书实施例相对于传统的磁盘清理方式具有以下优点:
(1)传统的磁盘清理机制,在单台服务器上分析磁盘用量,且只能够定时调度,无法因对突发业务流量增长造成的磁盘用量速度的增加;采用本说明书实施例之后,通过搜集分布式系统整体的磁盘使用情况,可以更快速地应对突发业务流量增长,更快速地进行清理。
(2)传统的磁盘清理机制,由于需要根据多种条件每次计算磁盘清理的量,需要占用一定的计算资源,造成清理定时任务的间隔不能够太短;而将包含磁盘用量等参数的关键系统状态上报给监控系统,占用业务应用服务器的计算资源可以忽略不计,因此可以以更低的频密,更细的粒度进行搜集和决策;采用本说明书实施例之后,日志清理的响应时间可以达到秒级甚至毫秒级。
以上实施例中的各种技术特征可以任意进行组合,只要特征之间的组合不存在冲突或矛盾,但是限于篇幅,未进行一一描述,因此上述实施方式中的各种技术特征的任意进行组合也属于本说明书公开的范围。
如图4所示,是本说明书一个实施例的分布式系统的磁盘清理装置,所述装置可包括:
接收模块402,用于接收分布式系统中各服务器上报的当前磁盘状态参数;
判断模块404,用于分别根据各个服务器的当前磁盘状态参数判断对应服务器的磁盘是否满足清理条件;
调度模块406,用于若存在满足清理条件的磁盘,调度运维平台,以按照预设的清理速率对分布式系统中的磁盘进行清理;其中,所述清理速率根据所述当前磁盘状态参数设定。
上述装置中各个模块的功能和作用的实现过程具体详情见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
如图5所示,是本说明书一个实施例的分布式系统的示意图,所述分布式系统可包括:
监控系统502和多个服务器504;
各个服务器504分别用于向监控系统502上报本服务器的当前磁盘状态参数;
所述监控系统502用于分别根据各个服务器504的当前磁盘状态参数判断对应服务器504的磁盘是否满足清理条件,若存在满足清理条件的磁盘,调度运维平台,以按照预设的清理速率对分布式系统中的磁盘进行清理;其中,所述清理速率根据所述当前磁盘状态参数设定。
进一步地,所述分布式系统还可包括:运维平台506;所述运维平台506用于接收监控系统502的调度,以按照预设的清理速率对分布式系统中的磁盘进行清理。
本说明书装置的实施例可以应用在计算机设备上,例如服务器或智能终端。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在文件处理的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图6所示,为本说明书装置所在计算机设备的一种硬件结构图,除了图6所示的处理器602、内存604、网络接口606、以及非易失性存储器608之外,实施例中装置所在的服务器或电子设备,通常根据该计算机设备的实际功能,还可以包括其他硬件,对此不再赘述。
相应地,本说明书实施例还提供一种计算机存储介质,所述存储介质中存储有程序,所述程序被处理器执行时实现上述任一实施例中的方法。
相应地,本说明书实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一实施例中的方法。
本申请可采用在一个或多个其中包含有程序代码的存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。计算机可用存储介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括但不限于:相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
本领域技术人员在考虑说明书及实践这里公开的说明书后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
以上所述仅为本公开的较佳实施例而已,并不用以限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开保护的范围之内。