一种集群应用的故障迁移方法和系统的制作方法

文档序号:9474097阅读:298来源:国知局
一种集群应用的故障迁移方法和系统的制作方法
【技术领域】
[0001]本发明涉及计算机软件领域,具体涉及一种集群应用的故障迀移方法和系统。
【背景技术】
[0002]随着计算机技术和互联网的快速发展,集群系统以其低廉的成本、强大的运算能力和健壮的容错机制逐渐成为了计算机行业的焦点。集群应用可以运行在上千台普通的服务器上,伴随业务增长动态扩大集群规模,但也要承受普通计算机较高的故障率,这要求系统在发生软硬件故障的时候仍能保证高度的可用性。目前,对于集群的故障迀移,通常采用的是Failover (失效转移)集群的方法,将应用转移到另外一台完全一样的物理设备上。传统的Failover集群方法有很多局限性,比如有些要求应用必须是IP协议,如果有数据共享,则要求数据必须是在共享底盘资源上如iSCSI LUN, Serial Attached SCSI,或FibreChannel,在物理设备上也对CPU,网络,带宽和操作系统有要求。因此,这种方法对应用的故障迀移有一定的局限性。

【发明内容】

[0003]为了解决上述问题,本发明提出了一种集群应用的故障迀移方法和系统,能够解决传统故障迀移对应用的局限性,减少对物理设备的依赖,提高物理设备的利用率。
[0004]为了达到上述目的,本发明提出了一种集群应用的故障迀移方法,该方法包括:
[0005]通过cAdvisor对运行在不同的Docker容器内的不同应用的进程进行监控,并对运行中的应用的性能进行分析。
[0006]根据分析结果生成带有特殊标志的性能信息;其中,带有特殊标志的性能信息中包含Docker容器内的应用是否出现故障的信息。
[0007]通过各个集群应用服务器上的Agent以第一时间周期周期性地收集Agent所在的集群应用服务器上的不同应用的性能信息,并以心跳的形式将该性能信息作为心跳信息发送给中央处理中心;其中,Agent所在的集群应用服务器上的不同应用是预先使用Docker容器将不同应用以及不同应用的运行环境打包为不同的镜像并存储在镜像服务器上,通过镜像服务器预先部署到集群应用服务器上的。
[0008]当中央处理中心接收到的心跳信息中标志出Docker容器内的应用出现故障时,通过镜像服务器创建与出现故障的应用相对应的可用的应用,并通过预设的备份策略为该可用的应用分配备份的集群应用服务器,并将创建的该可用的应用部署到备份的集群应用服务器上。
[0009]优选地,该方法还包括:
[0010]通过镜像服务器将创建的可用的应用部署到集群应用服务器上以后,更新中央处理中心中预存的位置映射关系表;其中,该位置映射关系表包括不同的应用进程的标志与应用进程所在位置的映射关系。
[0011]优选地,该方法还包括:
[0012]将部署到各个集群应用服务器上的全部Docker容器的信息均注册到中央处理中心中;并且通过各个集群应用服务器上的Agent以第二时间周期周期性地对Agent所在的应用服务器中的Docker容器进行扫描;当发现Agent所在的应用服务器上出现新的Docker容器时,将该新的Docker容器的信息注册到中央处理中心中,并更新位置映射关系表。
[0013]优选地,该方法还包括:
[0014]在预设的时间周期内,当中央处理中心没有接收到任何集群应用服务器上的Agent发送的心跳信息时,通过中央处理中心在预设的资源池中寻找可用的物理资源,重新在各个集群应用服务器上部署不同的应用,并更新位置映射关系表。
[0015]优选地,预设的时间周期为nX第一时间周期,其中,η为正整数。
[0016]为了达到上述目的,本发明还提出了一种集群应用的故障迀移系统,该系统包括:监控模块、生成模块、采集模块、部署模块和创建模块。
[0017]监控模块,用于对运行在不同的Docker容器内的不同应用的进程进行监控,并对运行中的应用的性能进行分析。
[0018]生成模块,用于根据分析结果生成带有特殊标志的性能信息;其中,带有特殊标志的性能信息中包含Docker容器内的应用是否出现故障的信息。
[0019]采集模块,用于以第一时间周期周期性地收集Agent所在的集群应用服务器上的不同应用的性能信息,并以心跳的形式将该性能信息作为心跳信息发送给中央处理中心;其中,Agent所在的集群应用服务器上的不同应用是预先使用Docker容器将不同应用以及不同应用的运行环境打包为不同的镜像并存储在镜像服务器上,通过部署模块预先部署到集群应用服务器上的。
[0020]创建模块,用于当中央处理中心接收到的心跳信息中标志Docker容器内的应用出现故障时,创建与出现故障的应用相对应的可用的应用,并通过预设的备份策略为该可用的应用分配备份的集群应用服务器,并将创建的该可用的应用部署到备份的集群应用服务器上。
[0021]优选地,该系统还包括:更新模块。
[0022]更新模块,用于将创建的可用的应用部署到集群应用服务器上以后,更新中央处理中心中预存的位置映射关系表;其中,该位置映射关系表包括不同的应用进程的标志与应用进程所在位置的映射关系。
[0023]优选地,该系统还包括:注册模块。
[0024]注册模块,用于将部署到各个集群应用服务器上的全部Docker容器的信息均注册到中央处理中心中;并且以第二时间周期周期性地对Agent所在的应用服务器中的Docker容器进行扫描;当发现Agent所在的应用服务器上出现新的Docker容器时,将该新的Docker容器的信息注册到中央处理中心中,并更新位置映射关系表。
[0025]优选地,
[0026]部署模块还用于,在预设的时间周期内,当中央处理中心没有接收到任何集群应用服务器上的Agent发送的心跳信息时,通过中央处理中心在预设的资源池中寻找可用的物理资源,重新在各个集群应用服务器上部署不同的应用。
[0027]优选地,预设的时间周期为nX第一时间周期,其中,η为正整数。
[0028]与现有技术相比,本发明包括:通过cAdvisor对运行在不同的Docker容器内的不同应用的进程进行监控,并对运行中的应用的性能进行分析。根据分析结果生成带有特殊标志的性能信息;其中,带有特殊标志的性能信息中包含Docker容器内的应用是否出现故障的信息。通过各个集群应用服务器上的Agent以第一时间周期周期性地收集Agent所在的集群应用服务器上的不同应用的性能信息,并以心跳的形式将性能信息作为心跳信息发送给中央处理中心;其中,Agent所在的集群应用服务器上的不同应用是预先使用Docker容器将不同应用以及不同应用的运行环境打包为不同的镜像并存储在镜像服务器上,通过镜像服务器预先部署到集群应用服务器上的。当中央处理中心接收到的心跳信息中标志出Docker容器内的应用出现故障时,通过所述镜像服务器创建与出现故障的应用相对应的可用的应用,并通过预设的备份策略为可用的应用分配备份的集群应用服务器,并将创建的该可用的应用部署到备份的集群应用服务器上。通过本发明的方案,能够能够解决传统故障迀移对应用的局限性,减少对物理设备的依赖,提高物理设备的利用率。
【附图说明】
[0029]下面对本发明实施例中的附图进行说明,实施例中的附图是用于对本发明的进一步理解,与说明书一起用于解释本发明,并不构成对
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1