一种集群存储中磁盘故障的预防及检测方法
【专利摘要】本发明公开了一种集群存储中磁盘故障的预防及检测方法,步骤如下:将每个磁盘对应设置一个磁盘请求监控模块,磁盘请求监控模块监控磁盘请求处理过程中每个请求的响应速度,当请求花费的时间超过了规定的阈值时,则磁盘请求监控模块会向磁盘故障判断模块报告其所监控的磁盘出现了请求响应缓慢的情况,并给出最慢的请求所花费的时间;磁盘故障判断模块收集磁盘请求监控模块报告的磁盘请求超时情况,并据此判断是否可能存在潜在故障磁盘,如果发现只有极个别的磁盘发生了超时,则判断该磁盘是潜在故障磁盘;则会发送信息通知磁盘故障处理模块对该磁盘进行处理。本发明能有效的预防磁盘故障导致的数据丢失,提高系统的数据可靠性。
【专利说明】一种集群存储中磁盘故障的预防及检测方法
[0001]
【技术领域】
[0002]本发明涉及计算机存储领域,具体地说是一种集群存储中磁盘故障的预防及检测方法。
【背景技术】
[0003]随着的互联网时代已经到来:社交网络、微博、位置服务等面向普通互联网用户的交互型网站正蓬勃兴起,如Google、Facebook、Twitter以及国内的人人网、微博等,向数以亿计的用户提供基于互联网和无线网络的交互服务。遍布全世界的互联网用户每天都进行多种多样的交互,随时都在制造各种各样的数据,这些数据的数量是单机时代数据量的数倍。
[0004]为存储这些数据,各互联网公司在世界各地建立了庞大的数据中心,单个数据中心的主机数量在几百至数万的数量级不等。来自Google的信息表明,Google在全球有数十个数据中心和过千万台服务器,存储其全球用户每天产生的海量数据。在数据中心内部,数据的储存最终需要存储到磁盘上,因此,磁盘的可靠性与数据的可靠性密切相关。
[0005]目前,一个数据中心通常包括成千上万块磁盘,在如此庞大的数量下,磁盘的故障被视为一种常态而对待,因此数据冗余功能也成为了基本功能。在磁盘发生故障的时候,通过冗余的数据,可以保证数据的可靠性,同时还可以重新建立数据的冗余,以便应对后续的磁盘故障。目前常用的数据冗余功能包括副本和RAID两种方式,前者主要用于跨数据节点的容灾、后者用于节点内部的容灾。这两种方式都能保证部分磁盘损坏(容灾限度内)的情况下,数据仍然可用。
[0006]数据的冗余机制虽然能够在磁盘发生故障时在一定程度上保证数据的安全性,但仍然存在一定的风险,特别是在磁盘发生故障后的冗余数据重建过程中。以双副本数据冗余策略为例,假设一份数据存在A和B两个副本,如果A副本由于磁盘故障丢失后,需要根据B副本重建A副本。此时,数据实际上只存在一份有效的拷贝(B副本)。如果在A副本的重建过程中,B副本所在的磁盘也发生了故障,则有可能导致数据的彻底丢失。改善这一现象固然可以通过增加数据冗余度(例如增加到三副本)进行改善,但会造成额外的空间利用率的损失。
[0007]导致数据重建过程中数据安全性较为脆弱的原因,主要是因为现有的数据容灾机制都是一种基于事后的处理方式,即只有当磁盘发生了故障、无法使用后才会进行数据冗余的重建,而无法实现识别潜在的磁盘故障,因此存在一个数据安全系数较低的冗余数据重建阶段。
[0008]另一方面,磁盘的损坏通常是一个逐渐发生的过程,其前期特征通常是磁盘的性能出现较大幅度的下降,体现在部分磁盘请求需要较长时间完整或者平均吞吐量出现明显的降低。如果能够通过这些前期特征提前识别出可能发生故障的磁盘,并且在其完全故障前就采取相应的策略,则可以极大的提高数据的安全性。
[0009]
【发明内容】
本发明的技术任务是提供一种集群存储中磁盘故障的预防及检测方法。
[0010]本发明的技术任务是按以下方式实现的,该预防及检测方法包括磁盘请求监控模块、磁盘故障判断模块和磁盘故障处理模块,所述的检测方法步骤如下:
将每个磁盘对应设置一个磁盘请求监控模块,磁盘请求监控模块监控磁盘请求处理过程中每个请求的响应速度,当请求花费的时间超过了规定的阈值时,则磁盘请求监控模块会向磁盘故障判断模块报告其所监控的磁盘出现了请求响应缓慢的情况,并给出最慢的请求所花费的时间;磁盘故障判断模块收集磁盘请求监控模块报告的磁盘请求超时情况,并据此判断是否可能存在潜在故障磁盘,如果发现只有极个别的磁盘发生了超时,则判断该磁盘是潜在故障磁盘;则会发送信息通知磁盘故障处理模块对该磁盘进行处理。
[0011]所述的磁盘故障判断模块判断磁盘是否存在潜在故障的依据主要是根据集群存储的负载平衡原理。
[0012]所述的磁盘故障处理模块处理潜在故障磁盘有以下处理方式:在集群状态描述中,将该磁盘标记为潜在故障;发送告警信息,通知系统维护人员该磁盘存在潜在故障;降低该磁盘的权重,减少该磁盘的IO负载,延缓磁盘发生故障的时间;如果集群压力较小,将该磁盘的数据重新分布到其它磁盘中。
[0013]本发明的一种集群存储中磁盘故障的预防及检测方法和现有技术相比,能够在磁盘故障前,预先判断出可能发生故障的磁盘,并对这些磁盘执行自动处理操作,包括将该磁盘标记为潜在故障、激活数据冗余的重建、向维护人员发送告警信息等;通过这种方法可以有效的预防磁盘故障导致的数据丢失,提高系统的数据可靠性。
【专利附图】
【附图说明】`
[0014]附图1为一种集群存储中磁盘故障的预防及检测方法的示意图。
【具体实施方式】
[0015]实施例1:
磁盘对于IO请求的执行情况是磁盘潜在故障的判断依据,对于磁盘IO请求执行情况的监控由磁盘请求监控模块负责。将每一个磁盘对应设置一个磁盘请求监控模块,该模块主要监控磁盘请求处理过程中每个请求的响应速度。如果存在请求花费的时间超过了规定的阈值,例如一个IO请求在30秒之内仍无法完成,则磁盘请求监控模块会向磁盘故障判断模块报告其所监控的磁盘出现了请求响应缓慢的情况,并给出最慢的请求所花费的时间。
[0016]磁盘故障判断模块收集磁盘请求监控模块报告的磁盘请求超时情况,并据此判断是否存在潜在故障磁盘。磁盘故障判断模块判断磁盘可能存在潜在故障的依据主要是根据集群存储的负载平衡原理,即:在一个集群中,负载平衡算法会将集群的负载平均的分配到每一个磁盘上,因此每一个磁盘所承担的IO操作的压力是相同的。由于集群的采用的磁盘基本相同,其IO处理能力也相同,因此,在相同压力下,完成请求所有的时间应该也大致相同;反之,如果出现了个别磁盘完成请求所需要的时间大大超过其它磁盘,则该磁盘存在潜在故障的可能性极大。根据以上原理,磁盘故障判断模块如果在其收集到的磁盘请求超时情况中,发现只有极个别的磁盘发生了超时,则判断该磁盘是潜在故障磁盘。
[0017]如果磁盘故障判断模块认定某块磁盘是潜在故障磁盘,则会通知磁盘故障处理模块对该磁盘进行处理,磁盘故障处理模块会根据需要对该磁盘进行如下处理:
1)在集群状态描述中,将该磁盘标记为潜在故障;
2)发送告警信息,通知系统维护人员该磁盘存在潜在故障;
3)降低该磁盘的权重,减少该磁盘的IO负载,延缓磁盘发生故障的时间;
4)如果集群压力较小,将该磁盘的数据重新分布到其它磁盘中。
【权利要求】
1.一种集群存储中磁盘故障的预防及检测方法,包括磁盘请求监控模块、磁盘故障判断模块和磁盘故障处理模块,其特征在于,所述的检测方法步骤如下: 将每个磁盘对应设置一个磁盘请求监控模块,磁盘请求监控模块监控磁盘请求处理过程中每个请求的响应速度,当请求花费的时间超过了规定的阈值时,则磁盘请求监控模块会向磁盘故障判断模块报告其所监控的磁盘出现了请求响应缓慢的情况,并给出最慢的请求所花费的时间;磁盘故障判断模块收集磁盘请求监控模块报告的磁盘请求超时情况,并据此判断是否可能存在潜在故障磁盘,如果发现只有极个别的磁盘发生了超时,则判断该磁盘是潜在故障磁盘;则会发送信息通知磁盘故障处理模块对该磁盘进行处理。
2.根据权利要求1所述的一种集群存储中磁盘故障的预防及检测方法,其特征在于,所述的磁盘故障判断模块判断磁盘是否存在潜在故障的依据主要是根据集群存储的负载平衡原理。
3.根据权利要求1所述的一种集群存储中磁盘故障的预防及检测方法,其特征在于,所述的磁盘故障处理模块处理潜在故障磁盘有以下处理方式:在集群状态描述中,将该磁盘标记为潜在故障;发送告警信息,通知系统维护人员该磁盘存在潜在故障;降低该磁盘的权重,减少该磁盘的IO负载,延缓磁盘发生故障的时间;如果集群压力较小,将该磁盘的数据重新分布到其它磁盘中。
【文档编号】G06F11/34GK103761180SQ201410011802
【公开日】2014年4月30日 申请日期:2014年1月11日 优先权日:2014年1月11日
【发明者】王恩东, 文中领, 张立强, 袁冬 申请人:浪潮电子信息产业股份有限公司