GlusterFS脑裂的自动化恢复方法

文档序号:6401630阅读:2631来源:国知局
专利名称:GlusterFS脑裂的自动化恢复方法
技术领域
本发明涉及云计算技术领域,尤其涉及GlusterFS脑裂的自动化恢复方法。
背景技术
GlusterFS是一个开源的分布式文件系统,具有强大的横向扩展能力,通过扩展能够支持PB数量级的存储容量和处理数千客户端。GlusterFS借助TCP/IP或InfiniBandRDMA网络将物理分布的存储资源聚集在一起,使用单一全局命名空间来管理数据。GlusterFS基于可堆叠的用户空间设计,可为各种不同的数据负载提供优异的性能。脑裂是因为集群分裂导致的,集群中节点因为处理器忙或者其他原因暂时停止响应时,其他节点可能误认为该节点“已死”,从而夺取共享磁盘(即资源)的访问权,此时极有可能假死节点重新对共享文件系统产生读写操作,从而导致共享磁盘文件系统损坏。脑裂就是当心跳网络出现状况的时候,集群可能分裂成几个节点组,几个节点组都分别接管服务并且访问文件系统资源(例如并发写入文件系统)导致数据损坏。GlusterFS卷可以在宕机恢复之后自动从备份服务器上恢复数据,但是各节点之间有时会相互指控,这时就发生了声名狼藉的脑裂,此时无法自动修复,只能采取手动的方式进行恢复。为了避免脑裂的发生,可以采用GlusterFS本身提供了 quorum的机制,也可以通过对Gluster服务器添加心跳检测来降低脑裂发生的几率,但都无法杜绝脑裂的发生。但是现有技术中的手动恢复容易受网络环境的影响,出错的几率比较大,而且耗时长、效率低。

发明内容
(一)要解决的技术问题针对上述缺陷,本发明要解决的技术问题是解决手动恢复过程中容易受环境影响的弊端,尽量减少恢复时出现的错误。(二)技术方案为解决上述问题,本发明提供了 GlusterFS脑裂的自动化恢复方法,所述方法具体包括:S1:通过安全外壳协议方式停止集群中Gluster服务和所有调用所述Gluster服务的系统服务,其中所述Gluster服务是Gluster服务器中的服务;S2:将集群中所述Gluster服务器中的数据进行备份和删除;S3:恢复步骤SI中停止的Gluster服务,同时恢复和管理集群中Gluster客户端的服务,且允许存储目录;S4:从所述Gluster客户端将备份的Gluster服务器中的数据重新写回到所述Gluster服务器中,解除脑裂状态;S5:恢复步骤SI停止的所有调用所述Gluster服务的系统服务。进一步地,所述步骤SI之前还包括:
SO:定时检测所述Gluster客户端中存储目录的状态,如果所述存储目录的状态发生异常,则判断有脑裂状态的发生,进行脑裂自动化恢复进程。进一步地,在进行所述脑裂自动化恢复进程之前:检查集群中Gluster服务器的运行状态,当集群中Gluster服务器的运行数量多于I个时,才开始脑裂自动化恢复进程。进一步地,所述步骤SO之后、步骤SI之前还包括:SOl:在进行所述脑裂自动化恢复进程中,通过安全外壳协议方式重命名所有调用所述Gluster服务的系统服务的脚本以及所述Gluster服务的脚本。进一步地,所述步骤S3还包括恢复集群中Gluster服务脚本的原命名,并且检测到集群中Gluster服务恢复后也恢复所述Gluster用户端的服务脚本的原命名。进一步地,所述步骤S5还包括:恢复集群中调用所述Gluster服务的系统服务的脚本的原命名,恢复并管理集群中调用所述Gluster服务的系统服务。(三)有益效果本发明提供了 GlusterFS脑裂的自动化恢复方法,在集群环境中进行GlusterFS脑裂的自动恢复,不受网络环境的影响,相比手动恢复,自动恢复简便易操作、耗时短、效率高,同时避免手动恢复过程中出现的人为错误。


图1为本发明实施例中的GlusterFS脑裂的自动化恢复方法的步骤流程图。
具体实施例方式下面结合附图和实施例,对本发明的具体实施方式
作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。本发明实施例中提供了 GlusterFS脑裂的自动化恢复方法,步骤流程如图1所示,具体包括以下步骤:步骤S1:通过安全外壳协议方式停止集群中Gluster服务和所有调用Gluster服务的系统服务,其中Gluster服务是Gluster服务器中的服务。判断全部正确完成后,再执行后续操作。安全外壳协议(Secure Shell,简称SSH)为建立在应用层和传输层基础上的安全协议。步骤SI之前还包括:步骤SO:在主控程序下定时检测Gluster客户端中存储目录的状态,如果存储目录的状态发生异常,则判断有脑裂状态的发生,进行脑裂自动化恢复进程。在进行脑裂自动化恢复进程之前:检查集群中Gluster服务器的运行状态,因为脑裂是多个服务节点恢复数据的过程中才会发生的,所以需要检测有几个服务器在运行,如果只有一个服务器在运行也不会发生脑裂,不需要本实施例提供的方法来解决。只有当集群中Gluster服务器的运行数量多于I个时,才开始脑裂自动化恢复进程。步骤SO之后、步骤SI之前还包括:步骤SOl:在进行脑裂自动化恢复进程中,通过安全外壳协议方式重命名所有调用Gluster服务的系统服务的脚本以及Gluster服务的脚本。判断全部正确完成后,再执行后续操作。步骤S2:将集群中Gluster服务器中的数据进行备份和删除。判断全部正确完成后,再执行后续操作。在脑裂自动化恢复进程中,通过SSH的方式,将停止之前的Gluster服务器中的数据备份起来,以备后续步骤中恢复使用,备份后就将原来的数据删除。步骤S3:恢复步骤SI中停止的Gluster服务,同时由主控程序恢复和管理集群中Gluster客户端的服务,且允许存储目录。判断全部正确完成后,再执行后续操作。在脑裂自动化恢复进程中,通过SSH的方式,恢复集群中Gluster服务脚本的原命名,并且检测到集群中Gluster服务恢复后也恢复Gluster用户端的服务脚本的原命名。步骤S4:从Gluster客户端将备份的Gluster服务器中的数据重新写回到Gluster服务器中,解除脑裂状态。判断全部正确完成后,再执行后续操作。上述步骤S3恢复Gluster客户端的服务,且存储目录可操作后,将上述步骤S2中备份的Gluster服务器中的数据通过Gluster客户端重新写回到新的Gluster服务器中。步骤S5:恢复步骤SI停止的所有调用Gluster服务的系统服务。在脑裂自动化恢复进程中,通过SSH的方式,恢复集群中调用Gluster服务的系统服务的脚本的原命名,恢复并管理集群中调用Gluster服务的系统服务。通过上述方法,在集群环境中进行GlusterFS脑裂的自动恢复,不受网络环境的影响,相比手动恢复,自动恢复简便易操作、耗时短、效率高,同时避免手动恢复过程中出现的人为错误。以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
权利要求
1.GlusterFS脑裂的自动化恢复方法,其特征在于,所述方法具体包括: 51:通过安全外壳协议方式停止集群中Gluster服务和所有调用所述Gluster服务的系统服务,其中所述Gluster服务是Gluster服务器中的服务; 52:将集群中所述Gluster服务器中的数据进行备份和删除; 53:恢复步骤SI中停止的Gluster服务,同时恢复和管理集群中Gluster客户端的服务,且允许存储目录; 54:从所述Gluster客户端将备份的Gluster服务器中的数据重新写回到所述Gluster服务器中,解除脑裂状态; 55:恢复步骤SI停止的所有调用所述Gluster服务的系统服务。
2.如权利要求1所述的方法,其特征在于,所述步骤SI之前还包括: SO:定时检测所述Gluster客户端中存储目录的状态,如果所述存储目录的状态发生异常,则判断有脑裂状态的发生,进行脑裂自动化恢复进程。
3.如权利要求1或2所述的方法,其特征在于,在进行所述脑裂自动化恢复进程之前:检查集群中Gluster服务器的运行状态,当集群中Gluster服务器的运行数量多于I个时,才开始脑裂自动化恢复进程。
4.如权利要求1或2所述的方法,其特征在于,所述步骤SO之后、步骤SI之前还包括: SOl:在进行所述脑裂自动化恢复进程中,通过安全外壳协议方式重命名所有调用所述Gluster服务的系统服务的脚本以及所述Gluster服务的脚本。
5.如权利要求1所述的方法,其特征在于,所述步骤S3还包括恢复集群中Gluster服务脚本的原命名,并且检测到集群中Gluster服务恢复后也恢复所述Gluster用户端的服务脚本的原命名。
6.如权利要求1所述的方法,其特征在于,所述步骤S5还包括:恢复集群中调用所述Gluster服务的系统服务的脚本的原命名,恢复并管理集群中调用所述Gluster服务的系统服务。
全文摘要
本发明公开了GlusterFS脑裂的自动化恢复方法,停止集群中Gluster服务和所有调用Gluster服务的系统服务,其中Gluster服务是Gluster服务器中的服务;将Gluster服务器中的数据进行备份和删除;恢复停止的Gluster服务,同时恢复和管理集群中Gluster客户端的服务;从Gluster客户端将备份的Gluster服务器中的数据重新写回到Gluster服务器中,解除脑裂状态;恢复停止的所有调用Gluster服务的系统服务。本发明在集群环境中进行GlusterFS脑裂的自动恢复,相比手动恢复,自动恢复简便易操作、耗时短、效率高,同时避免手动恢复过程中出现的人为错误。
文档编号G06F11/14GK103197992SQ20131011884
公开日2013年7月10日 申请日期2013年4月8日 优先权日2013年4月8日
发明者谭海涛 申请人:汉柏科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1