CN102075358B - 针对大规模服务器集群的内容分发和部署的系统和方法 - Google Patents
针对大规模服务器集群的内容分发和部署的系统和方法 Download PDFInfo
- Publication number
- CN102075358B CN102075358B CN 201010622153 CN201010622153A CN102075358B CN 102075358 B CN102075358 B CN 102075358B CN 201010622153 CN201010622153 CN 201010622153 CN 201010622153 A CN201010622153 A CN 201010622153A CN 102075358 B CN102075358 B CN 102075358B
- Authority
- CN
- China
- Prior art keywords
- task
- deployment
- bag
- server
- controlled terminal
- 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
Abstract
本发明公开了针对大规模服务器集群的内容分发和部署的系统和方法,可将各种资源迅速、准确、安全的部署到指定的服务器上。其技术方案为:在系统中,调度服务器接收部署任务,根据调度策略执行部署任务,向被控端发送激发包,向被控端提供任务信息,接收被控端向调度服务器反馈的部署包的执行结果;被控端通过监听UDP端口接收调度服务器发来的激发包,向调度服务器获取子任务信息并对任务信息进行解析,向下载服务器下载部署包,执行部署包中的脚本,向调度服务器反馈执行结果;下载服务器向被控端提供部署包的下载服务。
Description
技术领域
本发明涉及一种网络上有关内容分发和部署的技术,尤其涉及一种针对互联网或者局域网中,对大批量服务器的软件环境、系统配置、应用程序配置等进行集中管理的方法和系统,尤其是针对数千台、万台数量级的服务器集中配置管理和部署的方法和系统。
背景技术
随着互联网的飞速发展,越来越多的大型网络应用需要大量的服务器进行支撑,服务器数量达到数千甚至数万台的情况越来越频繁,如何迅速、准确、灵活的将各种资源,包括软件、配置信息等,部署到服务器上成为行业发展的难题和瓶颈。
现有的批量服务器配置管理、部署技术,主要存在以下弊端:
(1)只能针对单一或者少数几种特定的软件,灵活性不够;
(2)大多数采用由1台主控服务器向所有被控服务器推送配置数据或软件包,容易造成主控服务器负载过高,而且受网络影响较大;
(3)大多数都需要被控服务器对一个TCP端口的进行监听,或者基于SSH等远程控制协议进行,如果有对TCP端口的攻击行为,安全性较差;
(4)缺乏灵活的调度策略和容错措施,难以针对不同的软件、应用等采取不同的调度策略以保障服务的稳定性。
而现在各种网络应用对响应速度和准度的要求越来越高,需要配置信息、软件更新等操作,在保障准确的、保障服务不受影响的前提下,在尽量短的时间内,批量部署到指定的服务器上。
发明内容
本发明的目的在于解决上述问题,提供了一种针对大规模服务器集群的内容分发和部署的系统,可将各种资源迅速、准确、安全的部署到指定的服务器上。
本发明的另一目的在于提供了一种针对大规模服务器集群的内容分发和部署的方法。
本发明的技术方案为:本发明揭示了一种针对大规模服务器集群的内容分发和部署的系统,包括调度服务器、下载服务器和被控端,调度服务器和被控端之间建立数据通讯的连接,下载服务器和被控端之间建立数据通讯的连接,其中:
调度服务器接收部署任务,根据调度策略执行部署任务,向被控端发送激发包,向被控端提供任务信息,接收被控端向调度服务器反馈的部署包的执行结果;
被控端通过监听UDP端口接收调度服务器发来的激发包,向调度服务器获取子任务信息并对任务信息进行解析,向下载服务器下载部署包,执行部署包中的脚本,向调度服务器反馈执行结果;
下载服务器向被控端提供部署包的下载服务。
根据本发明的针对大规模服务器集群的内容分发和部署的系统的一实施例,调度服务器包括:
任务接收与持久化模块,接收外围程序或系统发送的部署任务,为部署任务分配一个标识号,并持久化任务信息到本地;
任务启动与结束模块,判断部署任务是否满足启动与结束条件,满足启动条件则启动任务,满足结束条件则结束任务;
调度策略模块,根据任务的调度策略分批次完成部署任务;
结果信息接收模块,接收被控端反馈的部署包的执行结果;
定时检测模块,每隔设定时间间隔检测是否有执行中的部署任务超时,是否有执行中的子任务超时,以保障部署任务不因外部异常而终端;
IP安全校验模块,耦接任务接收与持久化模块、任务启动与结束模块、结果信息接收模块,检测外部程序或系统IP是否合法,检测被控端IP是否合法。
根据本发明的针对大规模服务器集群的内容分发和部署的系统的一实施例,被控端包括:
UDP数据包接收模块,接收调度服务器通过UDP端口传送的激发包,并验证激发包的内容格式、来源是否合法;
任务接收模块,向调度服务器发出HTTP请求以获取任务信息,并检查任务格式是否正确;
任务处理模块,包括:
部署包文件下载单元,解析获取到的任务信息并向下载服务器下载部署包的文件;
部署安装验证单元,解压部署包并执行部署包中的脚本文件;
任务信息反馈单元,向调度服务器反馈部署包的执行结果。
根据本发明的针对大规模服务器集群的内容分发和部署的系统的一实施例,激发包是UDP数据包,其内容是任务的标识号,用于通知被控端到调度服务器获取任务。
根据本发明的针对大规模服务器集群的内容分发和部署的系统的一实施例,任务是由外围程序或系统发送给调度服务器的需要做什么的信息,任务是XML文件,任务包含任务基本信息、调度策略、子任务以及子任务的分组关系。
根据本发明的针对大规模服务器集群的内容分发和部署的系统的一实施例,将任务中对每一服务器的部署作为一个子任务,子任务的信息包括:子任务的标识号、任务类型、软件名称、部署包路径、部署脚本名称、子任务超时时间。
根据本发明的针对大规模服务器集群的内容分发和部署的系统的一实施例,部署包的文件包括部署脚本、配置文件、软件升级包。
根据本发明的针对大规模服务器集群的内容分发和部署的系统的一实施例,调度策略通过建立一个包含组内并发百分比、是否首台检测、任务取消失败百分比、任务超时时间、子任务超时时间的调度策略模型来实现。
本发明还揭示了一种针对大规模服务器集群的内容分发和部署的方法,包括:
外围程序或系统上传部署包到下载服务器;
外围程序或系统发送部署任务到调度服务器;
调度服务器为每一任务分配标识号,持久化任务信息到本地,并开始执行任务;
调度服务器根据调度策略在任务中选择子任务,向被控端发送激发包;
被控端收到激发包后,向调度服务器获取子任务信息;
被控端解析获取到的子任务信息,从下载服务器下载部署包;
被控端解压部署包并执行相应的部署脚本;
被控端将部署脚本的执行结果反馈给调度服务器;
调度服务器在收到子任务的执行结果反馈后,根据调度策略再选择一批子任务执行,直到任务中的所有子任务全部被执行。
根据本发明的针对大规模服务器集群的内容分发和部署的方法的一实施例,激发包是UDP数据包,其内容是任务的标识号,用于通知被控端到调度服务器获取任务。
根据本发明的针对大规模服务器集群的内容分发和部署的方法的一实施例,任务是由外围程序或系统发送给调度服务器的需要做什么的信息,任务是XML文件,任务包含任务基本信息、调度策略、子任务以及子任务的分组关系。
根据本发明的针对大规模服务器集群的内容分发和部署的方法的一实施例,子任务是任务中对每一服务器的部署,子任务的信息包括:子任务的标识号、任务类型、软件名称、部署包路径、部署脚本名称、子任务超时时间。
根据本发明的针对大规模服务器集群的内容分发和部署的方法的一实施例,部署包包括部署脚本、配置文件、软件升级包。
根据本发明的针对大规模服务器集群的内容分发和部署的方法的一实施例,调度策略是通过建立一个包含组内并发百分比、是否首台检测、任务取消失败百分比、任务超时时间、子任务超时时间的调度策略模型来实现。
本发明对比现有技术有如下的有益效果:本发明的技术方案中系统包括了调度服务器、下载服务器和被控端三个部分,其中调度服务器接收部署任务,根据调度策略执行部署任务,向被控端发送激发包,向被控端提供任务信息,接收被控端向调度服务器反馈的部署包的执行结果;被控端通过监听UDP端口接收调度服务器发来的激发包,向调度服务器获取子任务信息并对任务信息进行解析,向下载服务器下载部署包,执行部署包中的脚本,向调度服务器反馈执行结果;下载服务器向被控端提供部署包的下载服务。对比现有技术,本发明的效果为:(1)基于shell程序来具体实现具体的操作,可以灵活的针对任何软件或系统环境进行部署;(2)有独立的多个下载服务器模块,被控端自行选择速度最快的下载服务器下载部署包,数据传输由主动推送方式变为由被控端程序到下载服务器下载,能支持更大的并发,对网络也有更好的容错性;(3)主控调度服务器通过UDP包通知与调度被控服务器,被控端仅对一个UDP端口进行监听,被控端通过HTTP请求向主控调度服务器获取任务信息和反馈部署结果,整个体系架构更安全;(4)基于DNS解析、IP过滤等方式,根本上保障系统安全工作,不会响应外界干扰;(5)提供了一种通用的、灵活的调度策略模型。
附图说明
图1示例性的示出了本发明的针对大规模集群的内容分发和部署的系统的实施例的系统结构图。
图2示例性的示出了本发明的针对大规模集群的内容分发和部署的系统中的调度服务器的细化结构图。
图3示例性的示出了本发明的针对大规模集群的内容分发和部署的系统中的被控端的细化结构图。
图4示出了本发明的针对大规模集群的内容分发和部署的系统的一个具体示例的系统结构图。
图5示例性的示出了本发明的针对大规模集群的内容分发和部署的方法的实施例的流程图。
具体实施方式
下面结合附图和实施例对本发明作进一步的描述。
针对大规模集群的内容分发和部署的系统的实施例
图1示例性的示出了本发明的针对大规模集群的内容分发和部署的系统的实施例的系统结构。请参见图1,本实施例的针对大规模集群的内容分发和部署的系统包括:调度服务器12、下载服务器14、被控端16。它们之间的连接关系是:调度服务器12和被控端16之间建立数据通讯的连接,下载服务器14和被控端16之间建立数据通讯的连接。调度服务器12、下载服务器14和被控端16的数量根据实际需要而定,图1中的数量仅为示例。
调度服务器12完成的功能包括:接收部署任务,根据调度策略执行部署任务,向被控端16发送激发包,向被控端16提供任务信息,接收被控端16向调度服务器12反馈的部署包的执行结果。
调度服务器12的细化结构如图2所示,调度服务器12包括:任务接收与持久化模块120、任务启动与结束模块121、调度策略模块122、结果信息接收模块123、定时检测模块124、IP安全校验模块125。
这些模块之间的连接关系是:IP安全校验模块125分别耦接任务接收与持久化模块120、任务启动与结束模块121、结果信息接收模块123。
这些模块各自实现如下的功能:任务接收与持久化模块120接收外围程序或系统发送的部署任务,为部署任务分配一个标识号,并持久化任务信息到本地。任务启动与结束模块121判断部署任务是否满足启动与结束条件,满足启动条件则启动任务,满足结束条件则结束任务。调度策略模块122根据任务的调度策略分批次完成部署任务。结果信息接收模块123接收被控端反馈的部署包的执行结果。定时检测模块124每隔设定时间间隔检测是否有执行中的部署任务超时,是否有执行中的子任务超时,以保障部署任务不因外部异常而中断。IP安全校验模块125检测外部程序或系统IP是否合法,检测被控端16的IP是否合法。
被控端16完成的功能包括:通过监听UDP端口接收调度服务器12发来的激发包,向调度服务器12获取子任务信息并对任务信息进行解析,向下载服务器14下载部署包,执行部署包中的脚本,向调度服务器12反馈执行结果。
被控端16的细化结构如图3所示,被控端16包括:UDP数据包接收模块160、任务接收模块162、任务处理模块164,而任务处理模块164又分为部署包文件下载单元1640、部署安装验证单元1642、任务信息反馈单元1644。
UDP数据包接收模块160接收调度服务器12通过UDP端口传送的激发包,并验证激发包的内容格式、来源是否合法。任务接收模块162向调度服务器12发出HTTP请求以获取任务信息,并检查任务格式是否正确。任务处理模块中的部署包文件下载单元1640解析获取到的任务信息并向下载服务器14下载部署包的文件。部署安装验证单元1642解压部署包并执行部署包中的脚本文件。任务信息反馈单元1644向调度服务器12反馈部署包的执行结果。下载服务器14完成的功能是向被控端提供部署包的下载服务。
请进一步参见图1,整个系统的完成情况如下。
第一步,在图1中示出为步骤1,外围程序或系统上传部署包到所有的下载服务器14(在图1中示为下载服务器1和下载服务器2)。部署包是指在以此部署中某台服务器需要的全部内容,包括一个部署脚本以及其他相关内容,比如配置文件、软件升级包等,可以是一个tar包或者zip包。
第二步,在图1中示出为步骤2,外围程序或系统发送部署任务到调度服务器12。其中任务是指由外围程序或系统发送给调度服务器12的要做什么的信息,通过一个任务可以表现为一个XML文件,一般包含任务基本信息、调度策略、子任务及其分组关系等。
任务的层次结构如下表所示:
第三步:在图1中示出为步骤3,调度服务器12为任务分配一个唯一标识号,并持久化信息到本地,并开始执行任务。
第四步,在图1中示出为步骤4,调度服务器12根据调度策略在这个任务中选择一批或者全部子任务,向其机器(被控端)发送激发包。
对应于任务的子任务,是指在一次任务中,一般需要对多台服务器进行部署,将每一台服务器看作一个子任务,有时也可以将一个任务中的多个子任务分为不同的组。
激发包是一个UDP包,其内容为第三步中所提及的任务的唯一标识号,激发包由调度服务器12发往被控端16,用于通知被控端16到调度服务器12获取任务。
这里所说的调度策略,是通过建立一个包含组内并发百分比、是否首台检测、任务取消失败百分比、任务超时时间、子任务超时时间的调度策略模型来实现的,具体如下。
上述模型可以满足大多数软件与配置部署的实际需求,提供了组内并发、是否首台检测、任务取消条件、超时异常控制等多个参数,可以有效控制整个部署过程的稳定性、连续性,也可以通过调整调度策略,满足不同类型的部署任务对速度、稳定性的要求。
第五步,在图1中示出为步骤5,这些机器的被控端程序收到激发包后,向调度服务器12发出HTTP请求,获取子任务信息。
子任务信息是指被控端向调度服务器请求任务信息时,主控端将该台机器的子任务信息返回出去,包括:子任务的唯一标识号、任务类型、软件名称、部署包路径、部署脚本名称、子任务超时时间等信息。
以下方法保障了被控端只响应调度服务器的激发包。
为调度服务器配置一个域名,将调度服务器的IP加入到这个域名中,如:
Dispatch.deploy.com 192.168.0.4
代表调度服务器的IP是192.168.0.4,添加为域名dispatch.deploy.com的A记录。被控端程序定时的dig一次该域名,并将dig到的A记录结果存储在本地文件中。被控端每次收到激发包时,首先获取包的发送IP地址,并跟上述文件中记录的IP地址做比对,如果发送IP地址文件记录中存在,则被控端通过HTTP请求向调度服务器查询任务信息,否则丢弃该激发包不处理。这样,就保障了被控端程序只会响应由调度服务器发出的激发包。
第六步,在图1中示出为步骤6,被控端16解析获取的子任务信息,并寻找一台最快的下载服务器以下载部署包。
本步骤中被控端程序通过以下方法保证实现到最快的下载服务器去下载部署包,以及保证不到非指定的下载服务器去下载部署包。
为所有的下载服务器配置一个域名,将所有的下载服务器IP都加入到该域名中,如
Download.deploy.com 192.168.0.1;192.168.0.2;192.168.0.3
这代表有三台下载服务器,其IP分别是:192.168.0.1、192.168.0.2、192.168.0.3。将以上3个IP都添加为域名Download.deploy.com的A记录。被控端程序定义(例如每隔30分钟)挖掘(dig)一次上述域名,将会得到所有下载服务器的IP,并对每个IP进行一次ping操作,得到每个IP的TTL时间,并记录在被控端16的一个数据文件中。被控端挑选TTL时间最短的那台下载服务器当作首选,以此作为目标下载部署包。如果下载失败,则选择TTL第二短的下载服务器进行下载,以此类推。这样,一方面可以是被控端到最快的下载服务器下载部署包,提高了部署效率,另外也可以保证被控端只到指定的下载服务器下载部署包。
第七步,在图1中示出为步骤7,被控端16解压部署包,并执行相应的部署脚本。
第八步,在图1中示出为步骤8,被控端16获取部署脚本执行结果,并反馈给调度服务器12。
以下方法保障了调度服务器只接收被控端的任务信息询问和执行结果反馈。
调度服务器接收到外围程序或系统发来的任务信息时,将其中所有子任务对应的服务器的IP持久化到本地,当有被控端程序前来询问任务信息或汇报结果时,首先获取被控端的IP,再在本地查找是否有该IP对应的子任务信息,如果有,则做出响应;如果没有,则不做出响应。
第九步,在图1中示出为步骤9,调度服务器12在收到子任务的反馈后,根据调度策略,再选择一批子任务进行执行,直到这个任务的所有子任务全部被执行。
针对大规模集群的内容分发和部署的方法的实施例
图5示出了本发明的针对大规模集群的内容分发和部署的方法的实施例。请参见图5,以下是对本实施例的方法中的各个步骤的详细描述。
步骤S100:外围程序或系统上传部署包到下载服务器。
部署包是指在以此部署中某台服务器需要的全部内容,包括一个部署脚本以及其他相关内容,比如配置文件、软件升级包等,可以是一个tar包或者zip包。
步骤S101:外围程序或系统发送部署任务到调度服务器。
其中任务是指由外围程序或系统发送给调度服务器的要做什么的信息,通过一个任务可以表现为一个XML文件,一般包含任务基本信息、调度策略、子任务及其分组关系等。
任务的层次结构如下表所示:
步骤S102:调度服务器为每一任务分配标识号,持久化任务信息到本地,并开始执行任务。
步骤S103:调度服务器根据调度策略在任务中选择子任务,向被控端发送激发包。
对应于任务的子任务,是指在一次任务中,一般需要对多台服务器进行部署,将每一台服务器看作一个子任务,有时也可以将一个任务中的多个子任务分为不同的组。
激发包是一个UDP包,其内容为第三步中所提及的任务的唯一标识号,激发包由调度服务器发往被控端,用于通知被控端到调度服务器获取任务。
这里所说的调度策略,是通过建立一个包含组内并发百分比、是否首台检测、任务取消失败百分比、任务超时时间、子任务超时时间的调度策略模型来实现的,具体如下。
上述模型可以满足大多数软件与配置部署的实际需求,提供了组内并发、是否首台检测、任务取消条件、超时异常控制等多个参数,可以有效控制整个部署过程的稳定性、连续性,也可以通过调整调度策略,满足不同类型的部署任务对速度、稳定性的要求。
步骤S104:被控端收到激发包后,向调度服务器获取子任务信息。
子任务信息是指被控端向调度服务器请求任务信息时,主控端将该台机器的子任务信息返回出去,包括:子任务的唯一标识号、任务类型、软件名称、部署包路径、部署脚本名称、子任务超时时间等信息。
以下方法保障了被控端只响应调度服务器的激发包。
为调度服务器配置一个域名,将调度服务器的IP加入到这个域名中,如:
Dispatch.deploy.com 192.168.0.4
代表调度服务器的IP是192.168.0.4,添加为域名dispatch.deploy.com的A记录。被控端程序定时的dig一次该域名,并将dig到的A记录结果存储在本地文件中。被控端每次收到激发包时,首先获取包的发送IP地址,并跟上述文件中记录的IP地址做比对,如果发送IP地址文件记录中存在,则被控端通过HTTP请求向调度服务器查询任务信息,否则丢弃该激发包不处理。这样,就保障了被控端程序只会响应由调度服务器发出的激发包。
步骤S105:被控端解析获取到的子任务信息,从下载服务器下载部署包。
本步骤中被控端程序通过以下方法保证实现到最快的下载服务器去下载部署包,以及保证不到非指定的下载服务器去下载部署包。
为所有的下载服务器配置一个域名,将所有的下载服务器IP都加入到该域名中,如
Download.deploy.com 192.168.0.1;192.168.0.2;192.168.0.3
这代表有三台下载服务器,其IP分别是:192.168.0.1、192.168.0.2、192.168.0.3。将以上3个IP都添加为域名Download.deploy.com的A记录。被控端程序定义(例如每隔30分钟)挖掘(dig)一次上述域名,将会得到所有下载服务器的IP,并对每个IP进行一次ping操作,得到每个IP的TTL时间,并记录在被控端16的一个数据文件中。被控端挑选TTL时间最短的那台下载服务器当作首选,以此作为目标下载部署包。如果下载失败,则选择TTL第二短的下载服务器进行下载,以此类推。这样,一方面可以是被控端到最快的下载服务器下载部署包,提高了部署效率,另外也可以保证被控端只到指定的下载服务器下载部署包。
步骤S106:被控端解压部署包并执行相应的部署脚本。
步骤S107:被控端将部署脚本的执行结果反馈给调度服务器。
以下方法保障了调度服务器只接收被控端的任务信息询问和执行结果反馈。
调度服务器接收到外围程序或系统发来的任务信息时,将其中所有子任务对应的服务器的IP持久化到本地,当有被控端程序前来询问任务信息或汇报结果时,首先获取被控端的IP,再在本地查找是否有该IP对应的子任务信息,如果有,则做出响应;如果没有,则不做出响应。
步骤S108:调度服务器在收到子任务的执行结果反馈后,根据调度策略再选择一批子任务执行,直到任务中的所有子任务全部被执行。
针对大规模集群的内容分发和部署的系统的示例
图4示出了本发明的针对大规模集群的内容分发和部署的系统的实际示例。请参见图4,系统中模块的分布如下。
有1台调度服务器,IP为192.168.0.1,将其添加为域名dispatch.deploy.com的A记录
有2台下载服务器,IP分别为192.168.1.1和192.168.1.2,将他们添加为域名download.deploy.com的A记录
有4台被控端服务器,IP分别为192.168.2.1,192.168.2.2,192.168.2.3,192.168.2.4。
假设被控端192.168.2.1和192.168.2.2离下载服务器192.168.1.1较近,dig域名download.deploy.com、dispatch.deploy.com和ping其中所有A记录的得到结果如下:
dispatch:192.168.0.1:10
download:192.168.1.1:5
download:192.168.1.2:40
表示dig域名dispatch.deploy.com得到1个IP,192.168.0.1,且ping操作的TTL值为10ms;dig域名dispatch.deploy.com得到2个IP,分别是192.168.1.1和192.168.1.2,ping操作的TTL值分别为5ms和40ms。
步骤1:外围程序或系统将远程服务器需要的部署包,推送到192.168.1.1和192.168.1.2两台下载服务器相应的位置上。
步骤2:外围程序或系统发送如下XML格式的任务信息到调度服务器。
上述XML文件表示该任务的任务名称和任务ID都是dp_sq_20100309152625,任务类型是部署任务,任务优先级是普通任务,涉及的软件的是Squid,不进行首台检测,任务取消失败百分比是100%,默认组内并发百分比是50%,任务的提交人是admin。该任务的配置生成超时时间是1200s,调度执行超时时间是300s,子任务超时时间是60s。该任务包含两个组的子任务,分别是group1和group2,group1包含两个子任务,分别是192.168.2.1和192.168.2.2,group2也包含两个子任务,分别是192.168.2.3和192.168.2.4。还包含有他们的部署包Url信息和部署脚本名称。
步骤3:调度服务器将任务信息持久化到本地数据库。
步骤4:调度服务器根据调度策略,并发的在每个组中按照50%的比例挑选出机器,发送激发包。假如选中了192.168.2.1和192.168.2.3,则对他们发送激发包。
步骤5:192.168.2.1和192.168.2.3收到UDP包后,分别向调度服务器192.168.0.1发出HTTP请求,而调度服务器将返回如下信息给被控端,以告知客户端需要做什么。
步骤6:192.168.2.1和192.168.2.3的被控端程序收到上述信息后,进行解析,如果符合格式要求,则开始执行这个子任务。被控端程序从上述所描述的dig和ping的下载服务器中挑选出一台最快的,也即192.168.1.1,然后根据filepath去http://192.168.1.1/wsautodeploy/squid/conf/agent1/dp_sq_20100309152625.zip下载部署包。
步骤7:192.168.2.1和192.168.2.3的被控端程序下载部署包完毕后,解压部署包,并根据shname执行其部署脚本exUpdate.sh。
步骤8:192.168.2.1和192.168.2.3的被控端程序下等待部署脚本执行完毕,假设执行脚本返回状态码0,则被控端程序通过HTTP请求,将该子任务的atid和执行的状态码反馈给调度服务器。
步骤9:调度服务器收到来自192.168.2.1和192.168.2.3反馈后,分别挑选组内的另外一台机器,192.168.2.2和192.168.2.4,发送激发包,通知其执行。
步骤10:待192.168.2.2和192.168.2.4都向调度服务器汇报后,该任务的所有子任务均执行完毕,调度服务器将该任务的状态设置为执行完毕。
上述实施例是提供给本领域普通技术人员来实现或使用本发明的,本领域普通技术人员可在不脱离本发明的发明思想的情况下,对上述实施例做出种种修改或变化,因而本发明的保护范围并不被上述实施例所限,而应该是符合权利要求书提到的创新性特征的最大范围。
Claims (8)
1.一种针对大规模服务器集群的内容分发和部署的系统,包括调度服务器、下载服务器和被控端,调度服务器和被控端之间建立数据通讯的连接,下载服务器和被控端之间建立数据通讯的连接,其中:
调度服务器接收部署任务,根据调度策略执行部署任务,向被控端发送激发包,向被控端提供任务信息,接收被控端向调度服务器反馈的部署包的执行结果,其中被控端需要部署包和任务信息,其中部署包包括部署脚本、软件升级包和配置文件,激发包是一个UDP包,激发包的内容为任务的唯一标识号,由调度服务器发往被控端,用于通知被控端到调度服务器获取任务;
被控端通过监听UDP端口接收调度服务器发来的激发包,向调度服务器获取子任务信息并对任务信息进行解析,向下载服务器下载部署包,执行部署包中的脚本,向调度服务器反馈执行结果,其中部署任务中对每一被控端的部署作为一个子任务,子任务信息包括子任务的标识号、任务类型、软件名称、部署包路径、部署脚本名称、子任务超时时间;
下载服务器向被控端提供部署包的下载服务。
2.根据权利要求1所述的针对大规模服务器集群的内容分发和部署的系统,其特征在于,调度服务器包括:
任务接收与持久化模块,接收外围程序或系统发送的部署任务,为部署任务分配一个标识号,并持久化任务信息到本地;
任务启动与结束模块,判断部署任务是否满足启动与结束条件,满足启动条件则启动任务,满足结束条件则结束任务;
调度策略模块,根据任务的调度策略分批次完成部署任务;
结果信息接收模块,接收被控端反馈的部署包的执行结果;
定时检测模块,每隔设定时间间隔检测是否有执行中的部署任务超时,是否有执行中的子任务超时,以保障部署任务不因外部异常而中断;
IP安全校验模块,耦接任务接收与持久化模块、任务启动与结束模块、结果信息接收模块,检测外部程序或系统IP是否合法,检测被控端IP是否合法。
3.根据权利要求1所述的针对大规模服务器集群的内容分发和部署的系统,其特征在于,被控端包括:
UDP数据包接收模块,接收调度服务器通过UDP端口传送的激发包,并验证激发包的内容格式、来源是否合法;
任务接收模块,向调度服务器发出HTTP请求以获取任务信息,并检查任务格式是否正确;
任务处理模块,包括:
部署包文件下载单元,解析获取到的任务信息并向下载服务器下载部署包的文件;
部署安装验证单元,解压部署包并执行部署包中的脚本文件;
任务信息反馈单元,向调度服务器反馈部署包的执行结果。
4.根据权利要求1所述的针对大规模服务器集群的内容分发和部署的系统,其特征在于,任务是由外围程序或系统发送给调度服务器的需要做什么的信息,任务是XML文件,任务包含任务基本信息、调度策略、子任务以及子任务的分组关系。
5.根据权利要求1所述的针对大规模服务器集群的内容分发和部署的系统,其特征在于,调度策略通过建立一个包含组内并发百分比、是否首台检测、任务取消失败百分比、任务超时时间、子任务超时时间的调度策略模型来实现。
6.一种针对大规模服务器集群的内容分发和部署的方法,包括:
外围程序或系统上传部署包到下载服务器,其中被控端需要部署包和任务信息,其中部署包包括部署脚本、软件升级包和配置文件;
外围程序或系统发送部署任务到调度服务器;
调度服务器为每一任务分配标识号,持久化任务信息到本地,并开始执行任务;
调度服务器根据调度策略在任务中选择子任务,向被控端发送激发包,其中激发包是一个UDP包,激发包的内容为任务的唯一标识号,由调度服务器发往被控端,用于通知被控端到调度服务器获取任务,其中在需要对多台作为被控端的服务器进行部署的任务中,将对每一个被控端的部署看作一个子任务;
被控端收到激发包后,向调度服务器获取子任务信息,其中子任务信息包括子任务的标识号、任务类型、软件名称、部署包路径、部署脚本名称、子任务超时时间;
被控端解析获取到的子任务信息,从下载服务器下载部署包;
被控端解压部署包并执行相应的部署脚本;
被控端将部署脚本的执行结果反馈给调度服务器;
调度服务器在收到子任务的执行结果反馈后,根据调度策略再选择一批子任务执行,直到任务中的所有子任务全部被执行。
7.根据权利要求6所述的针对大规模服务器集群的内容分发和部署的方法,其特征在于,任务是由外围程序或系统发送给调度服务器的需要做什么的信息,任务是XML文件,任务包含任务基本信息、调度策略、子任务以及子任务的分组关系。
8.根据权利要求6所述的针对大规模服务器集群的内容分发和部署的方法,其特征在于,调度策略是通过建立一个包含组内并发百分比、是否首台检测、任务取消失败百分比、任务超时时间、子任务超时时间的调度策略模型来实现。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010622153 CN102075358B (zh) | 2010-12-31 | 2010-12-31 | 针对大规模服务器集群的内容分发和部署的系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010622153 CN102075358B (zh) | 2010-12-31 | 2010-12-31 | 针对大规模服务器集群的内容分发和部署的系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102075358A CN102075358A (zh) | 2011-05-25 |
CN102075358B true CN102075358B (zh) | 2013-10-30 |
Family
ID=44033713
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010622153 Active CN102075358B (zh) | 2010-12-31 | 2010-12-31 | 针对大规模服务器集群的内容分发和部署的系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102075358B (zh) |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102523124B (zh) * | 2011-12-26 | 2014-09-10 | 北京蓝汛通信技术有限责任公司 | 一种cdn网络中批量处理大量主机的方法及装置 |
CN103209197B (zh) * | 2012-01-12 | 2016-08-03 | 百度在线网络技术(北京)有限公司 | 集群服务器部署方法及系统 |
CN104243603B (zh) * | 2012-05-29 | 2017-09-19 | 北京奇虎科技有限公司 | 业务套件的信息收集方法、节点服务器及数据存储系统 |
CN102833092A (zh) * | 2012-06-21 | 2012-12-19 | 江西省电力公司信息通信中心 | 云节点管理方法及系统、中心服务器 |
CN103581225A (zh) * | 2012-07-25 | 2014-02-12 | 中国银联股份有限公司 | 分布式系统中的节点处理任务的方法 |
CN103685366B (zh) * | 2012-09-10 | 2018-10-19 | 腾讯科技(深圳)有限公司 | 提高文件下载速度的方法、装置及系统 |
CN102904754A (zh) * | 2012-09-28 | 2013-01-30 | 浪潮(北京)电子信息产业有限公司 | 服务器管理方法和系统 |
CN102946443B (zh) * | 2012-12-06 | 2015-02-18 | 北京邮电大学 | 一种实现大规模数据传输的多任务调度方法 |
CN103246516B (zh) * | 2013-05-16 | 2017-02-08 | 中国科学院计算机网络信息中心 | 一种基于互联网的遥感数据分析工具的封装服务方法 |
CN104468638B (zh) * | 2013-09-12 | 2018-04-03 | 北大方正集团有限公司 | 一种分布式数据处理方法及系统 |
CN104468174B (zh) * | 2013-09-25 | 2017-10-13 | 北京新媒传信科技有限公司 | 一种集群服务器执行任务的方法和装置 |
CN103577235A (zh) * | 2013-11-14 | 2014-02-12 | 中安消技术有限公司 | 一种软件部署方法、部署服务器、待部署机和系统 |
CN104679528B (zh) | 2013-11-26 | 2018-08-07 | 中国银联股份有限公司 | 应用程序远程更新的方法和装置 |
CN103716188B (zh) * | 2013-12-20 | 2016-09-14 | 上海网达软件股份有限公司 | Linux服务器集群管理的管理和维护方法 |
CN103906013B (zh) * | 2014-04-14 | 2018-01-09 | 夷希数码科技(上海)有限公司 | 一种基于移动设备的消息推送方法及装置 |
CN105224433B (zh) * | 2014-06-23 | 2018-04-10 | 阿里巴巴集团控股有限公司 | 一种内存监控方法及服务器 |
CN104184823B (zh) * | 2014-09-05 | 2017-11-14 | 北京京东尚科信息技术有限公司 | 一种自动化任务调度的方法和系统 |
CN105635228A (zh) * | 2014-11-06 | 2016-06-01 | 阿里巴巴集团控股有限公司 | 控制目标机执行任务的方法、装置、服务器及系统 |
CN105743680B (zh) * | 2014-12-11 | 2019-02-12 | 深圳云之家网络有限公司 | 一种集群部署方法及部署设备 |
CN105162878B (zh) | 2015-09-24 | 2018-08-31 | 网宿科技股份有限公司 | 基于分布式存储的文件分发系统及方法 |
CN105516256A (zh) * | 2015-11-27 | 2016-04-20 | 北京锐安科技有限公司 | Linux主机的批量命令运行方法和装置 |
CN105391805A (zh) * | 2015-12-21 | 2016-03-09 | 天津海量信息技术有限公司 | 基于多客户端集群协作的数据下载系统及下载方法 |
CN105743703B (zh) * | 2016-03-10 | 2019-05-03 | 郑州悉知信息科技股份有限公司 | 一种集群中节点服务器配置方法、节点服务器及系统 |
CN107395379A (zh) * | 2016-05-16 | 2017-11-24 | 北京京东尚科信息技术有限公司 | 一种集群巡检系统及方法 |
CN106407244A (zh) * | 2016-06-21 | 2017-02-15 | 平安科技(深圳)有限公司 | 基于多数据库的数据查询方法、系统和装置 |
CN107544783B (zh) * | 2016-06-27 | 2020-11-24 | 腾讯科技(深圳)有限公司 | 一种数据更新方法、装置及系统 |
CN106357773A (zh) * | 2016-09-19 | 2017-01-25 | 杭州当虹科技有限公司 | 一种基于SSHv2协议的远程协助系统 |
CN106528170A (zh) * | 2016-11-25 | 2017-03-22 | 上海找钢网信息科技股份有限公司 | 一种基于多语言环境的软件包发布方法及系统 |
CN108255588A (zh) * | 2017-03-13 | 2018-07-06 | 平安科技(深圳)有限公司 | 一种自动化编排任务调度方法及装置 |
EP3598697B1 (en) | 2017-04-14 | 2022-01-19 | Huawei Technologies Co., Ltd. | Content deployment method and distribution controller |
CN107632834A (zh) * | 2017-09-08 | 2018-01-26 | 北京小度信息科技有限公司 | 自定义应用部署方法、装置、设备及计算机可读存储介质 |
CN108600208A (zh) * | 2018-04-12 | 2018-09-28 | 南京中新赛克科技有限责任公司 | 一种针对服务器集群的细粒度流量仲裁装置及方法 |
CN110445628B (zh) * | 2018-05-02 | 2024-01-12 | 北京京东尚科信息技术有限公司 | 基于nginx的服务器及其部署、监控的方法和装置 |
CN108717358A (zh) * | 2018-05-25 | 2018-10-30 | 网宿科技股份有限公司 | 服务型软件配置管理方法和设备 |
CN110213213B (zh) * | 2018-05-30 | 2021-08-03 | 腾讯科技(深圳)有限公司 | 应用的定时任务处理方法及系统 |
CN109861842A (zh) * | 2018-11-23 | 2019-06-07 | 阿里巴巴集团控股有限公司 | 服务器集群的运维方法、装置、电子设备及存储介质 |
CN109918089B (zh) * | 2019-02-01 | 2022-07-26 | 网宿科技股份有限公司 | 一种软件部署方法和系统 |
CN109831520A (zh) * | 2019-03-07 | 2019-05-31 | 网宿科技股份有限公司 | 一种定时任务调度方法及相关装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1731738A (zh) * | 2005-08-30 | 2006-02-08 | 西安交通大学 | 大规模计算机集群系统节点的自动化快速部署方法 |
CN101355476A (zh) * | 2008-05-23 | 2009-01-28 | 林云帆 | 一种基于服务器群集的数据文件存储、分发和应用的系统和方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7577661B2 (en) * | 2005-06-30 | 2009-08-18 | Microsoft Corporation | Extensible and automatically replicating server farm configuration management infrastructure |
-
2010
- 2010-12-31 CN CN 201010622153 patent/CN102075358B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1731738A (zh) * | 2005-08-30 | 2006-02-08 | 西安交通大学 | 大规模计算机集群系统节点的自动化快速部署方法 |
CN101355476A (zh) * | 2008-05-23 | 2009-01-28 | 林云帆 | 一种基于服务器群集的数据文件存储、分发和应用的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102075358A (zh) | 2011-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102075358B (zh) | 针对大规模服务器集群的内容分发和部署的系统和方法 | |
US9569289B2 (en) | Generic distributed processing for multi-agent systems | |
CN101305551B (zh) | 用于通信系统中的分布式工作流的构造和执行的方法、系统、网络节点和设备 | |
JP3980596B2 (ja) | サーバを遠隔かつ動的に構成する方法およびシステム | |
US20080120600A1 (en) | Exchange Infrastructure System and Method | |
EP2787742B1 (en) | Method and system for transmitting network video | |
CN102385582A (zh) | 生产测试数据处理方法、服务器及系统 | |
CN103019757A (zh) | 一种在多台客户端间同步软件的方法、装置及系统 | |
WO2013043665A1 (en) | Systems and methods for the demand-driven deployment of location-neutral software | |
CN111866063B (zh) | 一种工业物联网ai算法的在线更新系统、方法及装置 | |
CN108549542A (zh) | 一种文件部署方法、装置及设备 | |
Kertész et al. | Integrated monitoring approach for seamless service provisioning in federated clouds | |
CN112764696A (zh) | 一种云打印服务器、远程打印设备的智能打印方法及系统 | |
CN114153468A (zh) | 工业协议的适配方法、装置、边缘设备及云端服务器 | |
CN103150203B (zh) | 一种虚拟机控制系统、虚拟机控制器及控制方法 | |
US7726567B2 (en) | Method and system for generating an electronic product identification report in an embedded device | |
CN103138961B (zh) | 服务器控制方法、被控服务器及中心控制服务器 | |
CN103905392A (zh) | 动态主机设置协议dhcp服务器选择方法、装置及系统 | |
KR101345373B1 (ko) | 실시간 시스템의 송신 방법 및 장치, 수신 방법 및 장치 | |
CN108429703A (zh) | Dhcp客户端上线方法及装置 | |
CN102055737B (zh) | 一种远程登陆多核系统硬件线程的方法、装置及系统 | |
CN111641664B (zh) | 一种爬虫设备业务请求方法、装置、系统和存储介质 | |
CN102594587A (zh) | 嵌入式web调测维护方法及调测维护系统 | |
CN112241323A (zh) | 基于fpga服务器的计算资源发现及管理方法、系统 | |
CN111309467A (zh) | 任务分发方法及装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C56 | Change in the name or address of the patentee | ||
CP02 | Change in the address of a patent holder |
Address after: 200030 Shanghai city Xuhui District Xietu Road No. 2899 Building 5 floor A Kuangchi Cultural Square Patentee after: ChinaNetCenter Co., Ltd. Address before: 200030 Shanghai Xietu Road No. 15 building 2669 Patentee before: ChinaNetCenter Co., Ltd. |