CN111131146B - 一种广域环境下多超算中心软件系统部署和增量更新方法 - Google Patents
一种广域环境下多超算中心软件系统部署和增量更新方法 Download PDFInfo
- Publication number
- CN111131146B CN111131146B CN201911086526.5A CN201911086526A CN111131146B CN 111131146 B CN111131146 B CN 111131146B CN 201911086526 A CN201911086526 A CN 201911086526A CN 111131146 B CN111131146 B CN 111131146B
- Authority
- CN
- China
- Prior art keywords
- deployment
- server
- node
- center
- information
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/658—Incremental updates; Differential updates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/22—Arrangements for detecting or preventing errors in the information received using redundant apparatus to increase reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0663—Performing the actions predefined by failover planning, e.g. switching to standby network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0281—Proxies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/143—Termination or inactivation of sessions, e.g. event-controlled end of session
- H04L67/145—Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明提供一种广域环境下多超算中心软件系统部署和增量更新方法,针对广域环境下,跨域软件系统的部署和测试过程中频繁的软件安装,启动,校验,停止,卸载问题以及跨域部署过程中可能出现的安全问题,提出了一种较为安全的解决方案。本发明的方法通过白名单和公私钥的方式保证广域环境下系统部署的安全;利用存在于广域网中的部署中心服务器来保证部署系统的一致性和可用性,各个超算中心存在的部署代理服务器接受来自中心服务器的命令;中心服务器采用一主两备,强一致的同步方式保证系统高可用,底层待部署软件包数据放置在分布式存储系统中;部署代理服务器完成部署后,继续为其他超算中心提供数据传输服务,从而减轻主部署服务器的负担。
Description
技术领域:
本发明公开了一种广域环境下多超算中心软件系统部署和增量更新方法,涉及广域高性能计算面临的挑战,属于计算机技术领域。
背景技术:
高性能计算机是当前计算机科学领域中一个日趋重要的分支,而提高计算机性能的一个重要组成部分是大规模机群系统。随着机群规模的增加,传统的单中心部署模式已经很难适应现有的机群环境。而当前国家高性能计算环境中存储资源广域分散且隔离自治,大型计算应用迫切需要可以支持跨域统一访问的全局数据空间,来统一调度存储资源。在当前的广域超算中心环境中,主要采用独立部署的方式,且各超算中心网络状况各异,这要求部署人员对超算中心的网络环境,软件分布情况有着清楚的认知。另外当一个新的超算中心加入时,部署人员需要重新做一遍部署流程,这将大大减缓了部署的进度。随着软件的更新和节点的变更,部署工作的复杂性会越来越大。如何简化部署流程,快速有效地在广域环境下部署软件并增量更新是当前广域机群软件部署需要解决的重点。
为了解决机群环境下软件的部署以及增量更新,近些年来出现了不少有效的方法:
1)Docker容器:Docker是PaaS提供商dotCloud开源的一个基于LXC的应用容器引擎。它采用将应用与依赖包打包进一个可移植的镜像中,然后发布到任意流行的Linux发型版本和Windows机器上都可以运行。Docker提供的虚拟化运行环境支持解决了应用程序和宿主机的环境配置问题,保证了各节点程序运行环境强一致。在管理部署上,采用单中心主从结构的管理方式,在某节点上运行Swarm Manager,其组织管理Worker节点的运行状态以及加入退出,通过分发更新的应用镜像实现节点同步更新。但超算中心在网络上广域分布,镜像的同步未进行加密,存在安全性的风险。另外单中心部署增加了中心节点的工作强度,提高了从节点与中心节点交流的频次,且单一的数量降低了部署中心的容错性。
2)Jenkins:Jenkins是微服务架构中常用的持续集成发布软件,拥有简单安装、开箱即用、易于管理等特性。它可以连接代码仓库系统,从中获取源码并执行自动构建,构建完成后还能通过设置后续需要执行的任务,例如搭建测试环境供测试人员测试,以及发布软件至待部署节点。Jenkins采用将构建出的程序包封装到Docker容器中,发布到服务器上的方式实现增量更新和运行环境适配问题。Jenkins将增量更新的过程自动化但发布整体上依旧采用Docker Swarm的方案,未解决安全性以及多中心的问题。
3)Cfengine:Cfengine(配置引擎)是一种UNIX管理工具,其目的是使简单的管理的任务自动化,困难的任务变得容易。它通过制定一些策略,让系统定时运行一个进程来检测系统当前的状态与策略要求是否一致,从而判断节点所处的状态。策略可以在本地定制,也可在中心策略服务器配置,具有一定的自治性。中心服务器可以将客户端分组,不同的组可以分别定制配置文件、计划任务等。通过在中心策略服务器配置,然后通知客户端更新并执行策略,从而实现软件的更新。Cfengine Client通过SSL加密的连接定期向服务器端发送请求从而获取最新的配置文件和管理命令、脚本程序、补丁安装等任务。总体来说Cfengine解决了安全性、增量更新、软件环境适配等问题,是考虑广域环境下软件部署较好的解决方案,但未能摆脱单中心管理的健壮性问题。
相对于前两种部署方式而言,利用Cfengine工具进行部署能更好的适应广域环境下复杂的网络结构以及主机软硬件配置,但它没能解决单中心管理面临的健壮性考验。另外随着规模的增大,主机环境的复杂度增加,策略的编写也变得复杂起来。
具体而言,现有的机群软件部署与增量更新的方法主要存在问题在于:没有考虑广域环境下软件的部署的安全问题和可扩展性问题,主要面向局域网内的机群部署。不能很好的支持超大规模的机群系统,当机群节点数目大规模增长时,部署服务器负载也在急剧增长。单一部署服务节点不具备抗灾能力,并且部署管理过程复杂。
发明内容:
本发明的主要目的是提供一种广域环境下多超算中心软件系统部署和增量更新方法,针对广域环境下,跨域软件系统的部署和测试过程中频繁的软件安装,启动,校验,停止,卸载问题以及跨域部署过程中可能出现的安全问题,提出了一种较为安全的解决方案。
本发明的技术方案是:
一种广域环境下多超算中心软件系统部署和增量更新方法,其特征在于,通过动态准入IP白名单和公私密钥认证结合的方式保证广域环境下系统部署的安全;利用存在于广域网中的部署中心服务器来保证部署系统的一致性和可用性,各个超算中心存在的部署代理服务器接受来自中心服务器的命令;中心服务器采用一主两备,强一致的同步方式保证系统高可用,底层待部署软件包数据放置在分布式存储系统中;部署代理服务器完成部署后,继续为其他超算中心提供数据传输服务,从而减轻主部署服务器的负担。
所述方法包括以下步骤:
1)超算中心管理员部署前,首先要访问中心服务器Web服务器,填写所属超算中心IP和端口等信息,待中心服务器更新完中心服务器网络白名单时,中心服务器生成公私密钥,公私密钥使用ssh-keygen命令采用RSA-2048算法生成;管理员下载密钥后,即完成超算中心信息登记工作;
2)管理员配置超算中心防火墙,开放部署代理服务器通信端口,并把部署中心服务器IP加入超算中心准入IP白名单,并配置公钥信息;部署代理服务器启动后,部署代理服务器启动并接管白名单的维护工作;
3)部署代理服务器启动时,向中心服务器提交内部环境部署机群的IP和端口信息;中心服务器接收到IP和端口信息后,向其他已经部署好的超算中心的部署代理服务器发出请求,更新其准入白名单;待所有中心准入白名单更新完成后再通知部署代理服务器开始下一步工作;
4)部署代理服务器部署前,首先和中心服务器通信,获取所要部署软件的配置信息和软件包信息。部署代理服务器通过中心服务器提供的信息向中心服务器和附近其他较近的超算中心的部署代理服务器获取软件包;
5)部署代理服务器软件包获取完成后,保存检查点,等待中心服务器发送部署命令;接收到中心服务器的部署命令之后,开始软件的部署,启动和校验工作;校验成功后,超算中心软件部署成功;
6)中心节点定期向各超算中心发送心跳信息保证整个软件系统状态最新;
7)中心服务器采用主备策略保障系统的高可用,主备节点共享同一分布式存储系统保证软件包的一致性;
8)中心服务器在启动过程中,首先向主节点同步数据库信息,数据库信息同步完成后,变为备用节点;当主节点出现宕机或者停机时,备用节点随机产生一个令牌,标识自己为主节点,并发向其他备用节点;当得到所有备用节点同意后,主节点产生。
其中,步骤1)包括以下步骤:
步骤(1.1)管理员访问Web服务器,登记本中心部署代理节点IP和端口信息;
步骤(1.2)中心服务器更新自身部署代理服务器准入IP白名单;
步骤(1.3)服务器生成公私密钥,公私密钥使用ssh-keygen命令采用RSA-2048算法生成;
步骤(1.4)管理员下载公钥,并进行配置本中心部署代理节点。
其中,步骤2)包括以下步骤:
步骤(2.1)管理员配置本中心防火墙,开放部署代理服务器端口;
步骤(2.2)管理员把中心服务器IP和端口,加入到自身防火墙白名单中;
步骤(2.3)管理员启动部署代理服务器,部署代理服务器接管防火墙配置工作。
其中,步骤3)包括以下步骤:
步骤(3.1)部署代理服务器向中心服务器提供内部带部署集群IP和端口列表;
步骤(3.2)中心服务器接收并保存信息,并向其他超算中心发出防火墙白名单更新命令;
步骤(3.3)中心服务器接收到各个超算中心部署代理节点更新成功结果后,通知代理服务器;
步骤(3.4)部署代理服务器进行进入启动状态。
其中,步骤4)包括以下步骤:
步骤(4.1)部署代理节点,向中心节点获取软件配置信息和软件包信息;
步骤(4.2)中心服务器,基于部署代理节点所处的地理位置信息,返回软件包信息,和离其较近的超算中心中存储的软件包信息;
步骤(4.3)部署代理节点向中心节点和其他代理节点请求,获取软件包信息。
其中,步骤5)包括以下步骤:
步骤(5.1)部署代理节点获取软件包信息,并设置检查点,并进入部署就绪状态;
步骤(5.2)部署代理节点接收到部署中心服务器部署开始命令后,进入部署状态;
步骤(5.3)部署代理节点在软件部署完成后调用各个机器的启动脚本,进入软件启动状态;
步骤(5.4)部署代理节点在软件启动完成后调用各个机器的校验脚本,进入软件校验状态;
步骤(5.5)部署环境校验成功后,进入软件启动状态;
步骤(5.6)当中心发布软件包出现更新时,部署代理服务器进入中心数据中部状态进行数据同步;
步骤(5.7)当其他超算中心请求同步信息时,部署代理服务器进入代理数据同步状态。
其中,步骤6)包括以下步骤:
步骤(6.1)中心节点每10秒钟发送一次心跳,检测部署代理节点是否运行;
步骤(6.2)中心节点和部署代理节点之间通过心跳信息,检测部署软件系统的状态,如果软件包不是最新,部署代理节点进行中心数据同步状态;
步骤(6.3)部署代理节点向中心节点同步最新软件包数据完成后,等待中心节点重新部署命令,并进入重新部署状态。
其中,步骤7)包括以下步骤:
步骤(7.1)首个中心服务器启动后,自动变为主节点,并对外提供服务;
步骤(7.2)之后中心服务器启动,需要向主节点同步数据库信息,信息同步完成后,变为备用节点,并保持和主节点信息同步;
步骤(7.3)主节点和备用节点连接同一分布式存储集群,保证软件包的一致性。
其中,步骤8)包括以下步骤:
步骤(8.1)中心服务器启动,需要向主节点同步数据库信息,信息同步完成后,变为备用节点,并保持和主节点信息同步;
步骤(8.2)主节点出现宕机或者停机时,备用节点随机产生一个令牌,标识自己为主节点,并发向其他备用节点;当得到所有备用节点同意后,主节点产生;
步骤(8.3)失效的主节点重新重启后,首先进行同步管理数据,数据同步完成后,重新成为备用节点,对外提供服务。
本发明的技术效果:
本发明所提出的一种广域环境下多超算中心软件系统部署和增量更新方法,针对广域环境下,跨域软件系统的部署和测试过程中频繁的软件安装,启动,校验,停止,卸载问题以及跨域部署过程中可能出现的安全问题,提出了一种较为安全的解决方案。与现有技术相比,其主要优点是:
广域环境下针对跨域软件系统的部署和测试过程中频繁的软件安装,启动,校验,停止,卸载问题以及跨域部署过程中可能出现的安全问题,提出了一种较为安全的解决方案。该系统有两个主要明显的特征:(1)安全性好,提供一种公私钥和白名单相结合的方式,保证了广域环境部署的安全;(2)可扩展性高,能很好的适应系统规模的扩展,且部署效果随着超算中心数目的增加而更加明显;(3)操作灵活,管理员只需要填写配置信息并启动部署代理节点后,整个部署过程自动化进行。
本发明具有良好的安全性,稳定性和可扩展性,为广域环境下软件系统部署和增量更新,提供了一种可用的解决方法。
附图说明:
图1是本发明的方法实施流程图;
图2广域软件部署系统架构图;
图3广域软件部署系统数据流动图;
图4广域软件部署系统详细架构图;
图5部署中心服务器主备节点方案图;
图6代理服务器生命周期图;
图7中心服务器生命周期图;
图8部署代理服务器注册流程图;
图9部署代理服务器白名单更新流程图;
图10代理服务器各超算中心白名单更新流程图;
图11代理服务器加入流程图;
图12代理服务器退出流程图;
图13中心服务器启动流程图;
图14中心服务器备用节点加入流程图;
具体实施方式:
以下结合附图对本发明作进一步详细的说明。
一种广域环境下多超算中心软件系统部署和增量更新方法,其特征在于,通过白名单和公私钥的方式保证广域环境下系统部署的安全;利用存在于广域网中的部署中心服务器来保证部署系统的一致性和可用性,各个超算中心存在的部署代理服务器接受来自中心服务器的命令;中心服务器采用一主两备,强一致的同步方式保证系统高可用,底层待部署软件包数据放置在分布式存储系统中;部署代理服务器完成部署后,继续为其他超算中心提供数据传输服务,从而减轻主部署服务器的负担。
如图1所示,是本发明的方法实施流程图。所述方法包括以下步骤:
1)超算中心管理员部署前,首先要访问中心服务器Web服务器,填写所属超算中心IP和端口等信息,待中心服务器更新完中心服务器网络白名单时,中心服务器生成公私密钥。管理员下载密钥后,即完成超算中心信息登记工作;
2)管理员配置超算中心防火墙,开放部署代理服务器通信端口,并把部署中心服务器IP加入超算中心白名单,并配置公钥信息。部署代理服务器启动后,部署代理服务器启动并接管白名单的维护工作;
3)部署代理服务器启动时,向中心服务器提交内部环境部署机群的IP和端口信息;中心服务器接收到IP和端口信息后,向其他已经部署好的超算中心的部署代理服务器发出请求,更新其白名单。待所有中心白名单更新完成后再通知部署代理服务器开始下一步工作;
4)部署代理服务器部署前,首先和中心服务器通信,获取所要部署软件的配置信息和软件包信息。部署代理服务器通过中心服务器提供的信息向中心服务器和附近其他较近的超算中心的部署代理服务器获取软件包;
5)部署代理服务器软件包获取完成后,保存检查点,等待中心服务器发送部署命令。接收到中心服务器的部署命令之后,开始软件的部署,启动和校验工作。校验成功后,超算中心软件部署成功;
6)中心节点定期向各超算中心发送心跳信息保证整个软件系统状态最新;
7)中心服务器采用主备策略保障系统的高可用,主备节点共享同一分布式存储系统保证软件包的一致性;
8)中心服务器在启动过程中,首先向主节点同步数据库信息,数据库信息同步完成后,变为备用节点。当主节点出现宕机或者停机时,备用节点随机产生一个令牌,标识自己为主节点,并发向其他备用节点。当得到所有备用节点同意后,主节点产生。
其中,步骤1)包括以下步骤:
步骤(1.1)管理员访问Web服务器,登记本中心部署代理节点IP和端口信息;
步骤(1.2)中心服务器更新自身部署代理服务器白名单;
步骤(1.3)服务器生成公私密钥;
步骤(1.4)管理员下载公钥,并进行配置本中心部署代理节点。
如图2所示,是我们广域软件部署系统架构图。广域软件部署系统分布在广域互联网上,部署中心节点和部署代理节点之间都是通过广域网络进行连接。超算中心内的部署代理节点可以和中心节点进行通信;部署代理节点受中心节点控制;中心节点和部署代理节点之间传输的数据,包含控制信息和软件包等数据信息;超算中心的部署代理节点可以向中心节点请求包数据,也能向地理位置上较近或者网络状态较好的其他超算中心请求软件包数据,以提高自身软件包的获取速度。
广域软件部署系统中的数据流动如图3所示。所有超算中心的部署代理节点受中心节点控制;超算中心节点B和D可以向中心节点请求软件包数据。因为通常情况下,软件包数据较大,下载时间较长,超算中心也可以向地理位置上较近或者网络状态较好的超算中心请求数据。图中的超算中心E可以同时向中心节点和周围相邻的超算中心节点B,D进行请求软件包数据。
广域软件部署系统的详细架构如图4所示。左边是中心节点,中心节点内部包含一主两备中心服务器用于提供中心服务器的主要功能。中心节点内部还包含一台网络服务器,用于提供web服务。各个超算中心的管理员在开始部署的时候,需要首先进行登录web服务器进行登记相关信息,并下载密钥。中心节点包含一个防火墙,该防火墙受中心服务器配置;其中白名单上为IP和端口信息,对应各个超算中心的部署代理服务器。图3的右边是超算中心的内部拓扑情况。广域软件部署系统的代理节点位于超算中心的DMZ区域中。DMZ区域分为内部防火墙和外部防火墙;我们在部署的过程中,内部防火墙不受我们控制,这样保证超算中心内部的计算节点的安全性;外部防火墙受部署代理节点控制。我们所要部署的软件机器同样位于DMZ区域中,这样保证了我们在进行软件部署,测试和增量更新的过程中,不影响生产环境。超算中心外部防火墙上维护一张白名单。白名单内容包括中心节点的IP和端口,其他超算中心的部署代理服务器的IP和端口信息以及其他超算中心待部署节点的IP和端口信息。
部署代理服务器注册流程图,如图8所示。超算中心管理员首先登陆部署中心web服务器注册超算中心部署代理节点的IP和端口信息;待中心服务器修改白名单信息成功后,中心服务器生成特定超算中的密钥。超算中心管理员下载生成的公钥,并配置本中心的部署代理服务器,之后进行启动部署代理服务器,开始其他部署工作。
其中,步骤2)包括以下步骤:
步骤(2.1)管理员配置本中心防火墙,开放部署代理服务器端口;
步骤(2.2)管理员把中心服务器IP和端口,加入到自身防火墙白名单中;
步骤(2.3)管理员启动部署代理服务器,部署代理服务器接管防火墙配置工作。
代理服务器加入流程图,如图11所示。管理员首先登陆Web网站注册超算中心信息,并配置本地代理服务器和密钥对。部署代理服务器进行初始化,并向中心服务器主节点进行注册自身信息。中心服务器接收最新服务器,并返回离代理服务器较近的几个中心的部署代理节点。部署代理节点向部署中心服务器和最近的几个部署代理节点点对点下载必要的软件部署包。代理服务器在接收到到中心服务器通知后,按照包依赖关系安装依赖包。之后调用install.sh脚本进行部署软件。之后进行启动,校验,校验成功后进行正常运行状态。如果校验失败,则通知管理员部署失败,管理员检查失败原因后,可重新开始部署。
代理服务器退出流程,如图12所示。正常退出时,代理服务器登录本地部署集群,调用stop脚本进行停止集群上软件的运行。代理服务器通知中心服务器自身退出消息。中心服务器更新自身和其他中心白名单信息,更新完成后,完成代理服务器退出流程。被动退出时,中心服务器检测各中心部署服务器状态,如果超过一定期限,则通知各个超算中心管理员,确认是否已经退出代理服务器,如果确定代理服务器已经退出,则中心服务器更新自身以及其他超算中心白名单。完成更新后,代理服务器退出。
其中,步骤3)包括以下步骤:
步骤(3.1)部署代理服务器向中心服务器提供内部带部署集群IP和端口列表;
步骤(3.2)中心服务器接收并保存信息,并向其他超算中心发出防火墙白名单更新命令;
步骤(3.3)中心服务器接收到各个超算中心部署代理节点更新成功结果后,通知代理服务器;
步骤(3.4)部署代理服务器进行进入启动状态。
部署代理服务器白名单更新流程图,如图9所示。中心服务器首先读取配置文件信息;中心服务器获取待更新的部署代理节点的服务器IP和类型,中心服务器按照配置文件中部署代理服务器的先后顺序依次向其他超算中心请求,通知待服务器更新防火墙。当各超算中心防火墙更新完成后,网页状态通知或发送邮件通知超算中心管理员,代理服务器防火墙白名单信息更新成功。如果更新失败,发送邮件通知超算中心管理员检查配置信息的正确性。并重新进行更新。
代理服务器各超算中心白名单更新图,如图10所示。部署代理服务器读取本地控制信息获取本地待部署集群公网IP和端口信息。部署代理服务器通知部署中心服务器更新其他超算中心白名单信息,并发送本地集群IP和端口信息。中心服务器获取数据库中超算中心部署代理服务器列表。中心服务器按照列表顺序依次发送请求,更新各超算中心白名单,并等待所有部署代理服务器返回信息。当更新完成后,邮件通知各中心管理员白名单信息变动,并反馈更新成功给请求更新的代理服务器。并在数据库中记录相应更新日志。
其中,步骤4)包括以下步骤:
步骤(4.1)部署代理节点,向中心节点获取软件配置信息和软件包信息;
步骤(4.2)中心服务器,基于部署代理节点所处的地理位置信息,返回软件包信息,和离其较近的超算中心中存储的软件包信息;
步骤(4.3)部署代理节点向中心节点和其他代理节点请求,获取软件包信息。
其中,步骤5)包括以下步骤:
步骤(5.1)部署代理节点获取软件包信息,并设置检查点,并进入部署就绪状态;
步骤(5.2)部署代理节点接收到部署中心服务器部署开始命令后,进入部署状态;
步骤(5.3)部署代理节点在软件部署完成后调用各个机器的启动脚本,进入软件启动状态;
步骤(5.4)部署代理节点在软件启动完成后调用各个机器的校验脚本,进入软件校验状态;
步骤(5.5)部署环境校验成功后,进入软件启动状态;
步骤(5.6)当中心发布软件包出现更新时,部署代理服务器进入中心数据中部状态进行数据同步;
步骤(5.7)当其他超算中心请求同步信息时,部署代理服务器进入代理数据同步状态。
其中,步骤6)包括以下步骤:
步骤(6.1)中心节点每10秒钟发送一次心跳,检测部署代理节点是否运行;
步骤(6.2)中心节点和部署代理节点之间通过心跳信息,检测部署软件系统的状态,如果软件包不是最新,部署代理节点进行中心数据同步状态;
步骤(6.3)部署代理节点向中心节点同步最新软件包数据完成后,等待中心节点重新部署命令,并进入重新部署状态。
其中,步骤7)包括以下步骤:
步骤(7.1)首个中心服务器启动后,自动变为主节点,并对外提供服务;
步骤(7.2)之后中心服务器启动,需要向主节点同步数据库信息,信息同步完成后,变为备用节点,并保持和主节点信息同步;
步骤(7.3)主节点和备用节点连接同一分布式存储集群,保证软件包的一致性。
其中,步骤8)包括以下步骤:
步骤(8.1)中心服务器启动,需要向主节点同步数据库信息,信息同步完成后,变为备用节点,并保持和主节点信息同步;
步骤(8.2)主节点出现宕机或者停机时,备用节点随机产生一个令牌,标识自己为主节点,并发向其他备用节点。当得到所有备用节点同意后,主节点产生。
步骤(8.3)失效的主节点重新重启后,首先进行同步管理数据,数据同步完成后,重新成为备用节点,对外提供服务。
图5中是广域部署系统的中心服务器的主备节点方案图。中心节点采用一主两备的方案。所有的更新都需要在主服务器向所有备用服务器同步过后才能返回成功。主备服务器之间同步的控制信息和超算中心的配置信息。主备服务器使用的数据库为嵌入式SQLite3数据库进行保存数据。主备服务器连接的是同一套支持Posix接口的分布式共享存储。分布式共享存储可以使用NFS或者CephFS来进行实现。
代理服务器的生命周期,如图6所示。在超算中心管理员设置好防火墙和配置文件后,可启动代理服务器。代理服务器启动后,其首先进入启动状态;代理服务器首先向中心节点注册自身信息;注册完成后,按照从中心节点获取到的节点分布信息,进行向中心节点或者其他超算中心的代理节点获取软件包信息;软件包信息完成后,系统进入部署就绪状态;收到中心节点部署命令后,进入部署状态并进行软件部署;软件部署完成后,进行软件启动,部署代理服务器进行入启动状态;启动完成后,进入软件校验状态;校验完成后,部署代理服务器进入运行状态;部署过程,启动过程,校验过程中任何一步出错,部署代理服务器都将进入部署失败状态,并尝试重新部署;或者进入错误状态,进而停机;正常运行时,如果中心节点通知软件包更新,则进入中心数据同步状态;如果其他中心的部署代理服务器请求同步软件包,则部署代理服务器进入代理数据同步状态。
中心服务器的生命周期,如图7所示。在配置好中心节点防火墙时,中心节点进入启动状态。启动成功后,如果是当前第一个启动的服务器,则进入主节点状态,并对外提供服务;如果当前已经有主节点在运行,则首先进入主备信息同步状态进行同步数据;数据同步完成后,中心服务器进入备用节点运行状态;如果主节点或者备用节点运行过程中出现错误,则进入错误状态。主节点运行过程中,当部署代理节点请求同步软件包信息时,则进入数据同步状态。如果出现任何错误则进入错误状态,进而进入停机状态。
中心服务器启动流程,如图13所示。中心节点,首先启动本地分部署存储集群。中心节点管理员修改配置信息,配置分部署存储位置,配置初始防火墙白名单。初期情况下,默认开放只有80端口http服务器,用于提供给其他超算中心注册自身部署代理节点信息。中心服务器初始化环境变为主服务器,中心服务器接管防火墙白名单配置。所有后台服务启动完成后,中心节点启动web服务器对外提供服务。中心服务器完成启动,并作为主节点开始对外提供服务。
中心服务器备用节点加入流程如图14所示。管理员修改配置信息,配置共享分布式存储的位置。管理员启动中心服务器主进程。中心服务器向主节点进行同步数据元数据。数据同步完成后,中心服务器变为备用服务器并对外服务。备用节点同主节点定时进行心跳检测并同步数据库信息。中心服务器以备用节点的身份,向外提供服务。注意,当旧的主节点宕机重新后,也按照此流程进行同步数据,并进行启动,启动成功后变成备用节点向外提供服务。
最后所应说明的是:本发明还可有其它多种应用场景,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明的保护范围。
Claims (9)
1.一种广域环境下多超算中心软件系统部署和增量更新方法,其特征在于,通过动态准入IP白名单和公私密钥认证结合的方式保证广域环境下系统部署的安全;利用存在于广域网中的部署中心服务器来保证部署系统的一致性和可用性,各个超算中心存在的部署代理服务器接受来自中心服务器的命令;中心服务器采用一主两备,强一致的同步方式保证系统高可用,底层待部署软件包数据放置在分布式存储系统中;部署代理服务器完成部署后,继续为其他超算中心提供数据传输服务,从而减轻主部署服务器的负担;
具体包括以下步骤:
1)超算中心管理员部署前,首先要访问中心服务器Web服务器,填写所属超算中心IP和端口等信息,待中心服务器更新完中心服务器准入IP白名单时,中心服务器生成公私密钥,公私密钥使用ssh-keygen命令采用RSA-2048算法生成;管理员下载公私密钥,即完成超算中心信息登记工作;
2)管理员配置超算中心防火墙,开放部署代理服务器通信端口,并把部署中心服务器IP加入超算中心准入IP白名单,并配置公钥信息;部署代理服务器启动后,部署代理服务器启动并接管白名单的维护工作;
3)部署代理服务器启动时,向中心服务器提交内部环境部署机群的IP和端口信息;中心服务器接收到IP和端口信息后,向其他已经部署好的超算中心的部署代理服务器发出请求,更新其准入IP白名单;待所有中心准入IP白名单更新完成后再通知部署代理服务器开始下一步工作;
4)部署代理服务器部署前,首先和中心服务器通信,获取所要部署软件的配置信息和软件包信息;部署代理服务器通过中心服务器提供的信息向中心服务器和附近其他较近的超算中心的部署代理服务器获取软件包;
5)部署代理服务器软件包获取完成后,保存检查点,等待中心服务器发送部署命令;接收到中心服务器的部署命令之后,开始软件的部署,启动和校验工作;校验成功后,超算中心软件部署成功;
6)中心节点定期向各超算中心发送心跳信息保证整个软件系统状态最新;
7)中心服务器采用主备策略保障系统的高可用,主备节点共享同一分布式存储系统保证软件包的一致性;
8)中心服务器在启动过程中,首先向主节点同步数据库信息,数据库信息同步完成后,变为备用节点;当主节点出现宕机或者停机时,备用节点随机产生一个令牌,标识自己为主节点,并发向其他备用节点;当得到所有备用节点同意后,主节点产生。
2.根据权利要求1所述的方法,其特征在于,所述步骤1)包括以下步骤:
步骤(1.1)管理员访问Web服务器,登记本中心部署代理节点IP和端口信息;
步骤(1.2)中心服务器更新自身部署代理服务器准入IP白名单;
步骤(1.3)服务器生成公私密钥,公私密钥使用ssh-keygen命令采用RSA-2048算法生成;
步骤(1.4)管理员下载公钥,并进行配置本中心部署代理节点。
3.根据权利要求1所述的方法,其特征在于,所述步骤2)包括以下步骤:
步骤(2.1)管理员配置本中心防火墙,开放部署代理服务器端口;
步骤(2.2)管理员把中心服务器IP和端口,加入到自身防火墙白名单中;
步骤(2.3)管理员启动部署代理服务器,部署代理服务器接管防火墙配置工作。
4.根据权利要求1所述的方法,其特征在于,所述步骤3)包括以下步骤:
步骤(3.1)部署代理服务器向中心服务器提供内部带部署集群IP和端口列表;
步骤(3.2)中心服务器接收并保存信息,并向其他超算中心发出防火墙白名单更新命令;
步骤(3.3)中心服务器接收到各个超算中心部署代理节点更新成功结果后,通知代理服务器;
步骤(3.4)部署代理服务器进行进入启动状态。
5.根据权利要求1所述的方法,其特征在于,所述步骤4)包括以下步骤:
步骤(4.1)部署代理节点,向中心节点获取软件配置信息和软件包信息;
步骤(4.2)中心服务器,基于部署代理节点所处的地理位置信息,返回软件包信息,和离其较近的超算中心中存储的软件包信息;
步骤(4.3)部署代理节点向中心节点和其他代理节点请求,获取软件包信息。
6.根据权利要求1所述的方法,其特征在于,所述步骤5)包括以下步骤:
步骤(5.1)部署代理节点获取软件包信息,并设置检查点,并进入部署就绪状态;
步骤(5.2)部署代理节点接收到部署中心服务器部署开始命令后,进入部署状态;
步骤(5.3)部署代理节点在软件部署完成后调用各个机器的启动脚本,进入软件启动状态;
步骤(5.4)部署代理节点在软件启动完成后调用各个机器的校验脚本,进入软件校验状态;
步骤(5.5)部署环境校验成功后,进入软件启动状态;
步骤(5.6)当中心发布软件包出现更新时,部署代理服务器进入中心数据中部状态进行数据同步;
步骤(5.7)当其他超算中心请求同步信息时,部署代理服务器进入代理数据同步状态。
7.根据权利要求1所述的方法,其特征在于,所述步骤6)包括以下步骤:
步骤(6.1)中心节点每10秒钟发送一次心跳,检测部署代理节点是否运行;
步骤(6.2)中心节点和部署代理节点之间通过心跳信息,检测部署软件系统的状态,如果软件包不是最新,部署代理节点进行中心数据同步状态;
步骤(6.3)部署代理节点向中心节点同步最新软件包数据完成后,等待中心节点重新部署命令,并进入重新部署状态。
8.根据权利要求1所述的方法,其特征在于,所述步骤7)包括以下步骤:
步骤(7.1)首个中心服务器启动后,自动变为主节点,并对外提供服务;
步骤(7.2)之后中心服务器启动,需要向主节点同步数据库信息,信息同步完成后,变为备用节点,并保持和主节点信息同步;
步骤(7.3)主节点和备用节点连接同一分布式存储集群,保证软件包的一致性。
9.根据权利要求1所述的方法,其特征在于,所述步骤8)包括以下步骤:
步骤(8.1)中心服务器启动,需要向主节点同步数据库信息,信息同步完成后,变为备用节点,并保持和主节点信息同步;
步骤(8.2)主节点出现宕机或者停机时,备用节点随机产生一个令牌,标识自己为主节点,并发向其他备用节点;当得到所有备用节点同意后,主节点产生;
步骤(8.3)失效的主节点重新重启后,首先进行同步管理数据,数据同步完成后,重新成为备用节点,对外提供服务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911086526.5A CN111131146B (zh) | 2019-11-08 | 2019-11-08 | 一种广域环境下多超算中心软件系统部署和增量更新方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911086526.5A CN111131146B (zh) | 2019-11-08 | 2019-11-08 | 一种广域环境下多超算中心软件系统部署和增量更新方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111131146A CN111131146A (zh) | 2020-05-08 |
CN111131146B true CN111131146B (zh) | 2021-04-09 |
Family
ID=70495721
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911086526.5A Active CN111131146B (zh) | 2019-11-08 | 2019-11-08 | 一种广域环境下多超算中心软件系统部署和增量更新方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111131146B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110855494B (zh) * | 2019-11-18 | 2022-10-04 | 上海新炬网络信息技术股份有限公司 | 基于分布式监控系统实现代理高可用的方法 |
CN111427605B (zh) * | 2020-06-15 | 2020-10-16 | 广东睿江云计算股份有限公司 | 基于docker的分布式代码自动更新部署方法及系统 |
CN112100073A (zh) * | 2020-09-16 | 2020-12-18 | 京东数字科技控股股份有限公司 | 应用程序的在线开发方法、装置、电子设备和存储介质 |
CN114650213A (zh) * | 2020-12-18 | 2022-06-21 | 航天信息股份有限公司 | 配置Jenkins服务器集群的方法、装置、存储介质 |
CN113630453B (zh) * | 2021-07-29 | 2024-03-15 | 中国人民解放军国防科技大学 | 面向高性能计算的大规模运行环境快速启动方法及系统 |
CN115242806B (zh) * | 2022-06-14 | 2023-09-29 | 山东省计算中心(国家超级计算济南中心) | 一种在超算互联网中超算中心数据备份的方法及装置 |
CN115834594B (zh) * | 2022-11-16 | 2024-04-19 | 贵州电网有限责任公司 | 一种用于改善高性能计算应用的数据收集方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106161336A (zh) * | 2015-03-25 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 一种信息更新方法、装置及系统 |
CN108681461A (zh) * | 2018-05-07 | 2018-10-19 | 广东电网有限责任公司 | 一种集群软件系统不停机更新的方法、系统及相关装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102664894B (zh) * | 2012-04-25 | 2015-03-25 | 浪潮(北京)电子信息产业有限公司 | 一种基于云计算的软件提供系统及方法 |
CN103699449B (zh) * | 2013-12-20 | 2017-01-18 | 北京遥测技术研究所 | 一种适用于监控mpi并行软件的通信方法 |
CN106528125A (zh) * | 2016-10-26 | 2017-03-22 | 腾讯科技(深圳)有限公司 | 一种数据文件的增量更新方法和服务器、客户端以及系统 |
CN107172094B (zh) * | 2017-07-05 | 2020-04-17 | 北京并行科技股份有限公司 | 访问超级计算中心上服务程序的方法及系统 |
-
2019
- 2019-11-08 CN CN201911086526.5A patent/CN111131146B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106161336A (zh) * | 2015-03-25 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 一种信息更新方法、装置及系统 |
CN108681461A (zh) * | 2018-05-07 | 2018-10-19 | 广东电网有限责任公司 | 一种集群软件系统不停机更新的方法、系统及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111131146A (zh) | 2020-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111131146B (zh) | 一种广域环境下多超算中心软件系统部署和增量更新方法 | |
CN109639794B (zh) | 一种有状态集群恢复方法、装置、设备及可读存储介质 | |
US11615195B2 (en) | Systems and methods for providing multi-node resiliency for blockchain peers | |
CN106991035B (zh) | 一种基于微服务架构的主机监控系统 | |
US11520808B2 (en) | System and method for synchronizing data between communication devices in a networked environment without a central server | |
CN113169952B (zh) | 一种基于区块链技术的容器云管理系统 | |
US8196142B2 (en) | Use of external services with clusters | |
US8146073B2 (en) | Updating software while it is running | |
US7869373B2 (en) | High-availability network systems | |
EP3210367B1 (en) | System and method for disaster recovery of cloud applications | |
CN107544783B (zh) | 一种数据更新方法、装置及系统 | |
CN106911648B (zh) | 一种环境隔离方法及设备 | |
CN114116909A (zh) | 一种分布式云原生数据库管理方法和系统 | |
CN109799998B (zh) | OpenStack集群配置及批量部署方法及系统 | |
CN111835862B (zh) | 一种参考流量类型部署对象存储后端服务的实现方法 | |
CN109032618B (zh) | 一种与OpenStack云管理平台的部署及对接方法及系统 | |
US10420049B2 (en) | Synchronizing configurations between access point controllers over N+1 network | |
CN112948008B (zh) | 一种基于Ironic管理物理裸机的方法 | |
CN116107704B (zh) | 区块链BaaS和多联盟部署方法、数据存储访问方法及装置 | |
CN113672336A (zh) | 一种k8s容器集群部署方法、装置、设备及可读存储介质 | |
CN113312059A (zh) | 一种服务处理系统、方法及云原生系统 | |
CN112732412A (zh) | 一种服务配置文件处理方法、装置、存储介质及电子设备 | |
CN116346834A (zh) | 一种会话同步方法、装置、计算设备及计算机存储介质 | |
CN114615268B (zh) | 基于Kubernetes集群的服务网络、监控节点、容器节点及设备 | |
US20220342769A1 (en) | Application consistent network backup using three phase full quorum |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |