CN104331353A - 软件高可用保证的方法 - Google Patents
软件高可用保证的方法 Download PDFInfo
- Publication number
- CN104331353A CN104331353A CN201410552601.3A CN201410552601A CN104331353A CN 104331353 A CN104331353 A CN 104331353A CN 201410552601 A CN201410552601 A CN 201410552601A CN 104331353 A CN104331353 A CN 104331353A
- Authority
- CN
- China
- Prior art keywords
- information
- manager
- program
- network
- heartbeat
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Computer And Data Communications (AREA)
Abstract
软件高可用保证的方法,涉及软件技术领域,特别是涉及一种软件高可用保证的方法。本发明的软件高可用保证的方法,其特征在于:程序部署包提交到部署管理器进行验证和分发;部署管理器将程序分发给各个运行容器;为了保证程序进程运行正常,运行容器在启动以后将会向状态服务器上报进程和运行信息,并同时保持网络心跳,管理器通过查询状态服务器和心跳直接管理进程。本发明的软件高可用保证的方法,信息提交满足幂等性,保证信息不重复,不丢失,最大程度保障运行稳定和资源稳定。
Description
技术领域
本发明涉及软件技术领域,特别是涉及一种软件高可用保证的方法。
背景技术
“高可用性”(High Availability)通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性。一个具备高可用性的系统涉及因素比较多;传统方式需要分配服务器资源、随时对服务器CPU,内存,磁盘吞吐,网络传输等硬件环境以及数据库的运行状态和空间、软件运行容器情况、线程占用情况等软件环境进行人工监控。
随着信息化建设的深入,系统的性能和稳定性要求越来越高,尤其是一些关键业务系统对稳定性要求也越高。常见很多监控软件可以帮助系统运维人员掌握系统情况,但是大部分监控软件,都是基于模拟用户进行:如果监控密集度高则影响系统使用,系统访问压力大,同时监控的结果需要通过网络进行反馈和收集,所以监控动作和监控数据实际上都带来了网络传输和硬件的负载;监控不频繁则准确度不高,会给运维以及后续的操作带来很大影响,甚至造成误报的情况,运行维护人员从这样的告警信息中,很难判断后续需要做的操作。
发明内容
针对现有系统稳定性基于监控密度过高则影响系统使用,密度过低准确度低的问题,本发明提出一种软件高可用保证的方法。
本发明的软件高可用保证的方法,其特征在于:程序部署包提交到部署管理器进行验证和分发;部署管理器将程序分发给各个运行容器;为了保证程序进程运行正常,运行容器在启动以后将会向状态服务器上报进程和运行信息,并同时保持网络心跳,管理器通过查询状态服务器和心跳直接管理进程。
所述的心跳检测机制,具体为:管理器需要通过网络和进程保持一个TCP长连接,每隔一个时间段通过网络向状态管理器传递一个TCP包。
管理器需要通过网络和进程保持一个TCP长连接。如果进程停止运行则网络连接就一定会断开。由此判断进程已经由于问题而推出。由于TCP连接建立以后,长期不使用连接会被关闭或者被操作系统回收。因此TCP连接建立以后,需要每隔固定一个固定时间,通过网络传递一个TCP包。包中传递的内容不需要具备特殊意义,只需要维持TCP连接即可。系统发送心跳包的间隔时间应当可以配置。默认为3秒。
所述的程序进程上报机制,具体为:部署管理器根据监控情况,从整个硬件资源池中找到相对资源占用率低、运行进程较少的硬件资源,将程序部署包相对平衡的分布在资源中的各个资源上,同时保存部署包;程序运行以后,向状态管理器上报进程信息,并生成一个运行时的进程分布情况供部署管理器进行管理,部署管理器要求上传部署包时,提供一个的节点默认资源需求。部署管理器根据这个资源需求和目前硬件资源池状况,自动计算出一个节点的默认分布情况。程序运行时,部署管理会将这个默认分布情况和运行时分布情况进行对比,识别出现故障的节点和位置,进而处理。
因为系统被自动分散到整个环境中,就减小了资源征用和征用造成的死锁问题,从资源耗用层面保证系统稳定运行。
作为优选,系统采用了校验和网络检测阀值两个策略应对心跳检测及上报机制失败,具体为:
1)校验:进程信息上报时,会先进行连接测试;如果无法上报,则运行模块无法正常启动,保证一个事务性;当管理器读取上报信息时,首先会做一个信息校验,校验方法是crc循环冗余校验,保证信息上报完整;
2)网络检测阀值:所以任何网络故障,都会造成心跳停止:一次心跳停止认为节点出现了逻辑故障;三次心跳停止则认为是物理故障,物理故障时状态服务器上的节点信息会消息,为了确认故障部署管理器会再进行一次直接向运行进程进行信息询问和验证,如果仍无法通信则判断该故障为需要处理的故障。处理逻辑:部署管理器重新从资源池选取资源,然后将已经保存的部署包进行分发,分发完成后重新启动该进程。
发生网络故障时,心跳可能会停止,信息也可能无法上报。这样造成管理器认为发生了故障。为了处理这个问题,整个机制必须具备断线处理和重连机制。网络恢复后,机制需要感知到,且提交应该提交的所有内容。这样信息才不会因为丢失而形成管理器无法识别的死角。包括心跳在内,一旦网络恢复,心跳随之恢复。信息提交满足幂等性,保证信息不重复,不丢失。
部署管理器管理的进程信息中,可能存在很多的节点。采用了心跳机制,节点信息上报状态服务器并进行对比和控制两个主要功能,能够保证模块运行的节点数就会保持在一个正常的区间(如2-4个)。之所以保持在正常区间,是因为存在网络故障等链路和不可抗拒因素,节点数在一个网络故障的时刻,状态管理器有可能无法精确的感知到所有运行节点,所以部署管理器初次定义部署包时,会使用一个区间来描述部署节点需求。即最大不超过多少,最小不低于多少的策略。最大程度保障运行稳定和资源稳定。
附图说明
图1为本发明软件高可用性部署进程的结构框图;
图2为 心跳机制实现过程的结构框图;
图3为 故障发生处理流过程的结构框图。
具体实施方式
实施例1:本发明的软件高可用保证的方法,其特征在于:程序部署包提交到部署管理包进行验证和分发;部署管理器将程序分发给各个运行容器;为了保证程序进程运行正常,运行容器在启动以后将会向状态服务器上报进程和运行信息,并同时保持网络心跳,管理器通过查询状态服务器和心跳直接管理进程。
所述的心跳检测机制,具体为:管理器需要通过网络和进程保持一个TCP长连接,每隔一个时间段通过网络向状态管理器传递一个TCP包。
管理器需要通过网络和进程保持一个TCP长连接。如果进程停止运行则网络连接就一定会断开。由此判断进程已经由于问题而推出。由于TCP连接建立以后,长期不使用连接会被关闭或者被操作系统回收。因此TCP连接建立以后,需要每隔固定一个固定时间,通过网络传递一个TCP包。包中传递的内容不需要具备特殊意义,只需要维持TCP连接即可。系统发送心跳包的间隔时间应当可以配置。默认为3秒。
所述的程序进程上报机制,具体为:部署管理器根据监控情况,从整个系统中找到相对资源占用率低、运行进程较少的运行容器,将程序部署包相对平衡的分布在各个运行容器中,同时进行储存;程序运行以后,向状态管理器上报进程信息,并生成一个运行时的进程分布情况,状态管理器通过默认分布情况和运行时分布情况进行对比,识别出现故障的节点和位置,进而处理。
系统采用了校验和网络检测阀值两个策略应对心跳检测及上报机制失败,具体为:
1)校验:进程信息上报时,会先进行连接测试;如果无法上报,则运行模块无法正常启动,保证一个事务性;当管理器读取上报信息时,首先会做一个信息校验,校验方法是crc循环冗余校验,保证信息上报完整;
2)网络检测阀值:所以任何网络故障,都会造成心跳停止:一次心跳停止认为节点出现了逻辑故障;三次心跳停止则认为是物理故障,物理故障时部署管理器会再进行一次直接向进程进行信息询问和验证,如果仍无法通信则需要处理的故障,部署管理器通知其他资源,重新启动该进程。
Claims (4)
1.软件高可用保证的方法,其特征在于:程序部署包提交到部署管理包进行验证和分发;部署管理器将程序分发给各个运行容器;为了保证程序进程运行正常,运行容器在启动以后将会向状态服务器上报进程和运行信息,并同时保持网络心跳,管理器通过查询状态服务器和心跳直接管理进程。
2.如权利要求1所述的软件高可用保证的方法,其特征在于涉及的心跳检测机制,具体为:管理器需要通过网络和进程保持一个TCP长连接,每隔一个时间段通过网络向状态管理器传递一个TCP包。
3.如权利要求1所述的软件高可用保证的方法,其特征在于涉及的程序进程上报机制,具体为:部署管理器根据监控情况,从整个系统中找到相对资源占用率低、运行进程较少的运行容器,将程序部署包相对平衡的分布在各个运行容器中,同时进行储存;程序运行以后,向状态管理器上报进程信息,并生成一个运行时的进程分布情况,状态管理器通过默认分布情况和运行时分布情况进行对比,识别出现故障的节点和位置,进而处理。
4.如权利要求1所述的软件高可用保证的方法,其特征在于系统采用了校验和网络检测阀值两个策略应对心跳检测及上报机制失败,具体为:
1)校验:进程信息上报时,会先进行连接测试;如果无法上报,则运行模块无法正常启动,保证一个事务性;当管理器读取上报信息时,首先会做一个信息校验,校验方法是crc循环冗余校验,保证信息上报完整;
2)网络检测阀值:所以任何网络故障,都会造成心跳停止:一次心跳停止认为节点出现了逻辑故障;三次心跳停止则认为是物理故障,物理故障时部署管理器会再进行一次直接向进程进行信息询问和验证,如果仍无法通信则需要处理的故障,部署管理器通知其他资源,重新启动该进程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410552601.3A CN104331353A (zh) | 2014-10-17 | 2014-10-17 | 软件高可用保证的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410552601.3A CN104331353A (zh) | 2014-10-17 | 2014-10-17 | 软件高可用保证的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104331353A true CN104331353A (zh) | 2015-02-04 |
Family
ID=52406085
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410552601.3A Pending CN104331353A (zh) | 2014-10-17 | 2014-10-17 | 软件高可用保证的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104331353A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105389243A (zh) * | 2015-10-26 | 2016-03-09 | 华为技术有限公司 | 一种容器监控方法和装置 |
CN105893129A (zh) * | 2016-03-30 | 2016-08-24 | 北京小米移动软件有限公司 | 终端中应用程序的处理方法及装置 |
CN106126365A (zh) * | 2016-07-04 | 2016-11-16 | 深圳市神云科技有限公司 | 云计算节点服务防护方法以及云平台管理系统 |
CN106357425A (zh) * | 2016-08-26 | 2017-01-25 | 苏州华兴源创电子科技有限公司 | 一种网络管理代理方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101237413A (zh) * | 2008-02-29 | 2008-08-06 | 浙江工商大学 | 在转发和控制分离网络件架构下实现控制件高可用性的方法 |
US20120042030A1 (en) * | 2010-08-12 | 2012-02-16 | International Business Machines Corporation | High availability management system for stateless components in a distributed master-slave component topology |
US8412672B1 (en) * | 2010-09-08 | 2013-04-02 | Netapp, Inc. | High availability network storage system incorporating non-shared storage suitable for use with virtual storage servers |
CN103152414A (zh) * | 2013-03-01 | 2013-06-12 | 四川省电力公司信息通信公司 | 一种基于云计算的高可用系统及其实现方法 |
CN103973811A (zh) * | 2014-05-23 | 2014-08-06 | 浪潮电子信息产业股份有限公司 | 一种可动态迁移的高可用集群管理方法 |
CN104021078A (zh) * | 2014-06-13 | 2014-09-03 | 中国民航信息网络股份有限公司 | 软件监控装置及方法 |
-
2014
- 2014-10-17 CN CN201410552601.3A patent/CN104331353A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101237413A (zh) * | 2008-02-29 | 2008-08-06 | 浙江工商大学 | 在转发和控制分离网络件架构下实现控制件高可用性的方法 |
US20120042030A1 (en) * | 2010-08-12 | 2012-02-16 | International Business Machines Corporation | High availability management system for stateless components in a distributed master-slave component topology |
US8412672B1 (en) * | 2010-09-08 | 2013-04-02 | Netapp, Inc. | High availability network storage system incorporating non-shared storage suitable for use with virtual storage servers |
CN103152414A (zh) * | 2013-03-01 | 2013-06-12 | 四川省电力公司信息通信公司 | 一种基于云计算的高可用系统及其实现方法 |
CN103973811A (zh) * | 2014-05-23 | 2014-08-06 | 浪潮电子信息产业股份有限公司 | 一种可动态迁移的高可用集群管理方法 |
CN104021078A (zh) * | 2014-06-13 | 2014-09-03 | 中国民航信息网络股份有限公司 | 软件监控装置及方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105389243A (zh) * | 2015-10-26 | 2016-03-09 | 华为技术有限公司 | 一种容器监控方法和装置 |
WO2017071460A1 (zh) * | 2015-10-26 | 2017-05-04 | 华为技术有限公司 | 一种容器监控方法和装置 |
CN105389243B (zh) * | 2015-10-26 | 2018-06-05 | 华为技术有限公司 | 一种容器监控方法和装置 |
US10635558B2 (en) | 2015-10-26 | 2020-04-28 | Huawei Technologies Co., Ltd. | Container monitoring method and apparatus |
CN105893129A (zh) * | 2016-03-30 | 2016-08-24 | 北京小米移动软件有限公司 | 终端中应用程序的处理方法及装置 |
CN106126365A (zh) * | 2016-07-04 | 2016-11-16 | 深圳市神云科技有限公司 | 云计算节点服务防护方法以及云平台管理系统 |
CN106357425A (zh) * | 2016-08-26 | 2017-01-25 | 苏州华兴源创电子科技有限公司 | 一种网络管理代理方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103019866B (zh) | 基于消息队列的分布式方法和系统 | |
KR101888029B1 (ko) | 가상 머신 클러스터 모니터링 방법 및 모니터링 시스템 | |
WO2019182670A1 (en) | Endpoint process state collector | |
CN106301823B (zh) | 一种关键组件的故障告警方法、装置及大数据管理系统 | |
CN107707380B (zh) | 一种监控告警方法和装置 | |
CN105323113B (zh) | 一种基于可视化技术的系统故障应急处置方法 | |
US20150339200A1 (en) | Intelligent disaster recovery | |
CN104331353A (zh) | 软件高可用保证的方法 | |
CN103810076B (zh) | 数据复制的监控方法及装置 | |
CN106685676A (zh) | 一种节点切换方法及装置 | |
CN102857371B (zh) | 一种面向集群系统的动态配置管理方法 | |
CN110830283A (zh) | 故障检测方法、装置、设备和系统 | |
CN110134518A (zh) | 一种提高大数据集群多节点应用高可用性的方法及系统 | |
CN104598300A (zh) | 分布式业务流程定制方法及系统 | |
CN101777020A (zh) | 一种用于分布式程序的容错方法和系统 | |
CN102404386A (zh) | 一种保证分布式文件系统元数据服务器组的服务高可靠的方法 | |
CN109391691A (zh) | 一种单节点故障下nas服务的恢复方法及相关装置 | |
CN105607583A (zh) | 一种监控方法、装置及电源系统中的第一监控单元 | |
CN107153595A (zh) | 分布式数据库系统的故障检测方法及其系统 | |
CN103905247A (zh) | 一种基于多客户裁决的双机备份方法及系统 | |
CN111258305B (zh) | 卫星运控中心系统及设备管理方法、设备及存储介质 | |
CN109257396B (zh) | 一种分布式锁调度方法及装置 | |
CN109308233A (zh) | 数据备份方法、装置及系统 | |
CN104618461A (zh) | 一种基于动码云手机的服务器监控方法 | |
Zhong et al. | Dynamic lines of collaboration in CPS disruption response |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150204 |