CN107465709A - 分布式镜像构建任务方法及装置、系统 - Google Patents
分布式镜像构建任务方法及装置、系统 Download PDFInfo
- Publication number
- CN107465709A CN107465709A CN201610391250.1A CN201610391250A CN107465709A CN 107465709 A CN107465709 A CN 107465709A CN 201610391250 A CN201610391250 A CN 201610391250A CN 107465709 A CN107465709 A CN 107465709A
- Authority
- CN
- China
- Prior art keywords
- mirror image
- application
- task
- upgraded
- node
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000010276 construction Methods 0.000 claims description 210
- 238000004806 packaging method and process Methods 0.000 claims description 32
- 230000001960 triggered effect Effects 0.000 claims description 5
- 238000001514 detection method Methods 0.000 claims description 2
- 238000005538 encapsulation Methods 0.000 abstract 1
- 238000012856 packing Methods 0.000 abstract 1
- 238000012423 maintenance Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000011084 recovery Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- 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
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- 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/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种分布式镜像构建任务方法及装置、系统,包括:主节点根据检测到的升级请求,获取待升级的应用的配置信息;根据所述待升级的应用的配置信息,生成所述待升级的应用的镜像构建任务;将所述待升级的应用的镜像构建任务发送给工作节点,以使所述工作节点根据所述镜像构建任务,获取所述待升级的应用,按照预设的打包规范封装所述待升级的应用,并将封装后的所述待升级的应用保存到镜像存储系统中。
Description
技术领域
本申请属于计算机技术领域,具体地说,涉及一种分布式镜像构建任务方法及装置、系统。
背景技术
随着云计算技术的发展和普及,凭借安全可靠、成本低等优势,越来越多的企业选择使用云服务来替代传统的由IT部门自主运维的IT基础设施。目前国内主流的云服务平台,主要可实现基础架构资源的自动化部署,即完成单台或多台同构虚拟服务器的自动化创建。应用集群的部署需要在平台完成虚拟服务器部署后,由用户手工配置完成,无法通过自助服务的方式完成应用集群的自动化部署。但是实际的IT生产环境的应用系统通常不是运行在某一服务器上的单个应用程序,而是运行在多台异构虚拟服务器上的不同应用程序组成的应用集群,且每台虚拟服务器所处的网络层次及安全策略均不尽相同。
因此,迫切需要一种高效率的云环境的应用集群的自动化部署方法。
发明内容
有鉴于此,本申请提供一种分布式镜像构建任务方法及装置、系统,用以解决现有技术中云环境的应用集群部署效率低下的问题。
为了解决上述技术问题,本申请第一方面提供一种分布式镜像构建任务方法,位于主节点侧执行,包括:
主节点根据检测到的升级请求,获取待升级的应用的配置信息;
根据所述待升级的应用的配置信息,生成所述待升级的应用的镜像构建任务;
将所述待升级的应用的镜像构建任务发送给工作节点,以使所述工作节点根据所述镜像构建任务,获取所述待升级的应用的文件,按照预设的打包规范封装所述待升级的应用的文件,并将封装后的所述待升级的应用的文件保存到镜像存储系统中。
可选地,主节点根据检测到的升级请求,获取待升级的应用的配置信息之前,包括:
通过升级配置界面输入所述待升级的应用的配置信息,并触发所述待升级的应用的升级请求。
可选地,所述的方法还包括:
根据所述待升级的应用的配置信息,确定所述待升级的应用的配置信息的唯一性标识,并生成所述待升级的应用的配置信息的镜像构建任务;
将所述待升级的应用的配置信息的镜像构建任务发送给工作节点,以使所述工作节点构建所述待升级的应用的配置信息的镜像并保存到镜像存储系统中。
可选地,所述的方法还包括:
设置镜像构建任务的优先级,将所述优先级的镜像构建任务优先发送给所述工作节点进行镜像任务的构建。
可选地,所述的方法还包括:
在将镜像构建任务发送给工作节点之前,锁定镜像存储地址,所述镜像存储地址为所述镜像构建任务中所述待升级的应用的镜像在镜像存储系统中的存储地址;
在确定所述存储地址对应的存储空间中不存在所述镜像构建任务中所述待升级的应用的镜像时释放所述存储地址。
可选地,所述的方法还包括:
在将镜像构建任务发送给工作节点之前,确定所述工作节点是有效的节点。
可选地,所述的方法还包括:
根据工作节点发送的抢占任务请求中包括的所述工作节点的IP地址,若确定所述工作节点的IP地址在合法的工作节点的IP地址列表中,则确定所述工作节点是合法的;
根据所述工作节点的上次心跳时间,若当前时间减去所述工作节点的上次心跳时间未超过预设的过期时间阈值,则确定所述工作节点是未过期的,所述工作节点的上次心跳时间为所述工作节点上次发送抢占任务请求的时间。
本申请第二方面还提供一种分布式镜像构建任务方法,位于工作节点侧执行,包括:
工作节点接收主节点发送的镜像构建任务,所述镜像构建任务中包括待升级的应用的下载地址;
根据所述待升级的应用的下载地址,从所述下载地址指向的数据源下载所述待升级的应用的文件;
按照预设的打包规范封装所述待升级的应用的文件,并将封装后的所述待升级的应用的文件保存到镜像存储系统中。
可选地,所述的方法还包括:
若所述镜像构建任务中包括所述待升级的应用的配置信息,则构建所述待升级的应用的配置信息的镜像并保存到镜像存储系统中。
可选地,所述的方法还包括:
工作节点向主节点发送抢占任务请求,所述抢占任务请求中包括所述工作节点的IP地址,以使所述主节点根据所述工作节点的IP地址确定所述工作节点是否合法,且根据所述工作节点的上次心跳时间确定所述工作节点是否未过期,所述工作节点的上次心跳时间为所述工作节点上次发送抢占任务请求的时间。
可选地,所述的方法还包括:
工作节点设置有镜像构建任务队列,所述镜像构建任务队列中包括所述工作节点最多可以抢占的镜像构建任务的数目;
根据所述镜像构建任务队列,开启对应数目的协程抢占镜像构建任务;
当检测到某一个协程处于空闲状态时,向主节点发送抢占任务请求。
可选地,所述预设的打包规范包括服务包格式、服务包名称、服务包目录结构、服务包的信息和应用目录结构。
可选地,将所述封装后的所述待升级的应用的文件保存到镜像存储系统中之后,还包括:
向所述主节点发送所述待升级的应用的镜像构建任务结果,所述镜像构建任务结果中包括所述待升级的应用的文件在所述镜像存储系统中的元数据信息。
本申请第三方面提供一种分布式镜像构建任务装置,位于主节点侧,包括:
配置获取模块,用于根据检测到的升级请求,获取待升级的应用的配置信息;
任务生成模块,用于根据所述待升级的应用的配置信息,生成所述待升级的应用的镜像构建任务;
任务分配模块,用于将所述待升级的应用的镜像构建任务发送给工作节点,以使所述工作节点根据所述镜像构建任务,获取所述待升级的应用的文件,按照预设的打包规范封装所述待升级的应用的文件,并将封装后的所述待升级的应用的文件保存到镜像存储系统中。
可选地,所述升级请求为通过升级配置界面输入所述待升级的应用的配置信息,并触发的所述待升级的应用的升级请求。
可选地,所述任务生成模块,还用于根据所述待升级的应用的配置信息,确定所述待升级的应用的配置信息的唯一性标识,并生成所述待升级的应用的配置信息的镜像构建任务;
所述任务分配模块,还用于将所述待升级的应用的配置信息的镜像构建任务发送给工作节点,以使所述工作节点构建所述待升级的应用的配置信息的镜像并保存到镜像存储系统中。
可选地,所述的装置还包括:
设置模块,用于设置镜像构建任务的优先级,将所述优先级的镜像构建任务优先发送给所述工作节点进行镜像任务的构建。
可选地,所述的装置还包括:
地址锁定模块,用于在将镜像构建任务发送给工作节点之前,锁定镜像存储地址,所述镜像存储地址为所述镜像构建任务中所述待升级的应用的镜像在镜像存储系统中的存储地址;
地址释放模块,用于在确定所述存储地址对应的存储空间中不存在所述镜像构建任务中所述待升级的应用的镜像时释放所述存储地址。
可选地,所述的装置还包括:
确定模块,用于在将镜像构建任务发送给工作节点之前,确定所述工作节点是有效的节点。
可选地,所述确定模块具体用于:
根据工作节点发送的抢占任务请求中包括的所述工作节点的IP地址,若确定所述工作节点的IP地址在合法的工作节点的IP地址列表中,则确定所述工作节点是合法的;
根据所述工作节点的上次心跳时间,若当前时间减去所述工作节点的上次心跳时间未超过预设的过期时间阈值,则确定所述工作节点是未过期的,所述工作节点的上次心跳时间为所述工作节点上次发送抢占任务请求的时间。
本申请第四方面提供一种分布式镜像构建任务装置,位于工作节点侧执行,包括:
接收任务模块,用于接收主节点发送的镜像构建任务,所述镜像构建任务中包括待升级的应用的下载地址;
应用下载模块,用于根据所述待升级的应用的下载地址,从所述下载地址指向的数据源下载所述待升级的应用的文件;
镜像任务构建模块,用于按照预设的打包规范封装所述待升级的应用的文件,并将封装后的所述待升级的应用的文件保存到镜像存储系统中。
可选地,所述镜像任务构建模块,还用于在所述镜像构建任务中包括所述待升级的应用的配置信息时,构建所述待升级的应用的配置信息的镜像并保存到镜像存储系统中。
可选地,所述的装置还包括:
发送模块,用于向主节点发送抢占任务请求,所述抢占任务请求中包括所述工作节点的IP地址,以使所述主节点根据所述工作节点的IP地址确定所述工作节点是否合法,且根据所述工作节点的上次心跳时间确定所述工作节点是否未过期,所述工作节点的上次心跳时间为所述工作节点上次发送抢占任务请求的时间。
可选地,所述的装置还包括:
设置模块,用于设置有镜像构建任务队列,所述镜像构建任务队列中包括所述工作节点最多可以抢占的镜像构建任务的数目;
协程抢占模块,用于根据所述镜像构建任务队列,开启对应数目的协程抢占镜像构建任务;
检测模块,用于当检测到所述协程抢占模块中的某一个协程处于空闲状态时,通过所述发送模块向主节点发送抢占任务请求。
可选地,所述预设的打包规范包括服务包格式、服务包名称、服务包目录结构、服务包的信息和应用目录结构。
可选地,所述发送模块,用于向所述主节点发送所述待升级的应用的镜像构建任务结果,所述镜像构建任务结果中包括所述待升级的应用的文件在所述镜像存储系统中的元数据信息。
本申请第五方面提供一种分布式镜像构建任务系统,包括:主节点、多个工作节点;
所述主节点包括本申请第三方面所述的分布式镜像构建任务装置;
所述工作节点包括本申请第四方面所述的分布式镜像构建任务装置。
本发明实施例根据预设的应用打包规范可以将不同数据源的应用统一构建成一种镜像格式,从而使下游系统无区别对待所有镜像应用,统一完成升级;同时,本发明实施例采用基于镜像的存储地址(stoarage url)做为资源访问控制协议的抢占式分配策略、可扩展的分布式架构方法,可以通过增加机器来提高构建效率,并高效管理镜像,能较好地为云端自动化升级大规模集群解决前端性能瓶颈问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本发明实施例提供的一种分布式镜像构建任务方法的流程示意图;
图2为本发明实施例提供的一种分布式镜像构建任务方法的流程示意图;
图3为本发明实施例提供的一种分布式镜像构建任务系统的架构图;
图3-1为本发明实施例图3所示系统进行分布式镜像构建任务方法的流程示意图;
图4为本发明实施例中一种Apsara.Pangu服务包的目录结构图;
图5为本发明实施例中主节点生成镜像构建任务的流程示意图;
图6是本发明实施例一种是操作配置信息的配置截图;
图7为图5所示实施例中步骤503的具体实现流程示意图;
图8为本发明实施例中主节点分配镜像任务的流程示意图;
图9为本发明实施例中工作节点抢占任务具体实现流程图;
图10为本发明实施例提供的一种分布式镜像构建任务装置的结构示意图;
图11为本发明实施例提供的一种分布式镜像构建任务装置的结构示意图。
具体实施方式
以下将配合附图及实施例来详细说明本申请的实施方式,藉此对本申请如何应用技术手段来解决技术问题并达成技术功效的实现过程能充分理解并据以实施。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
如在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”为一开放式用语,故应解释成“包含但不限定于”。“大致”是指在可接收的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。此外,“耦接”一词在此包含任何直接及间接的电性耦接手段。因此,若文中描述一第一装置耦接于一第二装置,则代表所述第一装置可直接电性耦接于所述第二装置,或通过其他装置或耦接手段间接地电性耦接至所述第二装置。说明书后续描述为实施本申请的较佳实施方式,然所述描述乃以说明本申请的一般原则为目的,并非用以限定本申请的范围。本申请的保护范围当视所附权利要求所界定者为准。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
目前,云在各个行业都出现了成熟的应用,但是云计算与虚拟化在提升资源利用率的同时,也加大了IT运维复杂度。如何简化IT运维管理,实现IT运维成本上的降低和效率上的提升,就成了所有企业IT部门面临的难题。如今,越来越多的企业IT部门开始升级运维管理方式,从传统的IT运维向云运维过渡,表现在部署、实施、维护及业务应用响应能力上均有大幅提升。
然而,一个好的自动化运维系统,第一步工作是编译系统将应用打包上传到指定数据源上,之后根据升级需要下载对应的应用。对于云端上的自动化运维系统来说,第一步工作是不可缺少,问题是当为了满足不同的业务需求,大量的业务集群的应用会出现在不同的数据源上,使得自动化运维系统在升级集群服务应用时遇到了以下问题:
即现有的云自动化运维升级系统中,无论是专有云还是公有云,不同业务集群的服务应用,可能来自不同类型的数据源,如开源yum源或者公司私有的源,如果不能很好地将存储在不同数据源上的应用适配到自动化运维集群中,无疑是不能满足云端用户的自动化运维需求。因此,镜像构建服务系统面对大规模集群统一升级时,由于缺少统一的镜像构建环节,不能高效适配和缓冲不同数据源的应用,存在效率低下的问题。
针对现有技术存在的问题,本发明所述的分布式镜像构建服务系统作为云自动化运维系统中的重要一环,承前启后,具有云端应用镜像的统一构建、发布与缓存功能,根据预设的应用打包规范可以将不同数据源的应用统一构建成一种镜像格式,从而使下游系统无区别对待所有镜像应用,统一完成升级;同时,本发明采用基于镜像的存储地址(stoarage url)做为资源访问控制协议的抢占式分配策略、可扩展的分布式架构方法,可以通过增加机器来提高构建效率,并高效管理镜像,能较好地为云端自动化升级大规模集群解决前端性能瓶颈问题。
本发明实施例中使用的术语解释:
天基系统:负责集群自动化部署、自动化升级运维的分布式调度系统。
镜像构建服务系统:天基系统的一个子系统,负责统一镜像构建、管理、下载等服务,管理整个天基域内的集群用到的所有发布。
镜像(image):一种文件存储组织形式,文件管理员可以通过技术手段将很多文件制作成一个镜像。在天基系统中,镜像的基本单位是application和meta信息:
1)application由用户按照天基打包规范制作完成;
2)meta信息由镜像构建系统解析生成,供下游系统使用。
服务操作配置(Op config):运维人员通过该配置来控制集群的每个服务应用的版本升级、服务的运行行为。
Server Role:服务角色,在天基系统中,每台机器可以一个或多个服务角色,每个服务角色可以拥有多个应用,从而在部署时,可以根据服务角色将应用部署在不同的机器上。
图1为本发明实施例提供的一种分布式镜像构建任务方法的流程示意图,位于主节点侧执行,本发明实施例中的主节点为镜像构建系统中的主节点,如图1所示,包括:
101、主节点根据检测到的升级请求,获取待升级的应用的配置信息;
具体实现时,例如升级管理员通过天基系统的升级配置界面输入待升级的应用的配置信息,并点击升级按钮即可触发待升级的应用的升级请求。
本发明实施例中的主节点为镜像构建系统中的主节点,主节点可以检测天基系统是否触发升级请求,如果触发有升级请求,则从配置中心(config store)获取待升级的应用的配置信息。
102、根据所述待升级的应用的配置信息,生成所述待升级的应用的镜像构建任务;
可选地,本发明实施例中,主节点还可以根据所述待升级的应用的配置信息,确定所述待升级的应用的配置信息的唯一性标识,并生成所述待升级的应用的配置信息的镜像构建任务;
可选地,本发明实施例中,主节点还可以设置镜像构建任务的优先级,将所述优先级的镜像构建任务优先发送给所述工作节点进行镜像任务的构建。其中,有关镜像构建任务的优先级可以根据预设策略进行设置。
可选地,本发明实施例中,在将镜像构建任务发送给工作节点之前,锁定镜像存储地址,所述镜像存储地址为所述镜像构建任务中所述待升级的应用在镜像存储系统中的存储地址;在确定所述存储地址对应的存储空间中不存在所述镜像构建任务中所述待升级的应用的镜像时释放所述存储地址。因为在实际应用中,不是每个待升级的应用都需要被重新构建镜像,因为同一个应用镜像在每次升级请求中经常需要重用,比如只是更改了应用的配置,或者被不同的业务集群引用,针对这些情况,如果不加区分地直接构建镜像,会极大浪费时间和系统资源,并可能覆盖别人正在访问的应用镜像,引入读写一致性问题,因此,本发明实施例中主节点(master)会根据镜像存储地址(storage_url)决定是否重新构建镜像,在判定是否分配该镜像构建任务给工作(worker)节点时,master将锁定该任务镜像构建任务对应的storage_url,master将存储应用镜像的storage_url做为分布式锁资源,来控制镜像任务是否应该被分配给worker节点去构建镜像。
可选地,本发明实施例中,主节点在将镜像构建任务发送给工作节点之前,确定所述工作节点是有效的节点。具体地,可以根据工作节点发送的抢占任务请求中包括的所述工作节点的IP地址,若确定所述工作节点的IP地址在合法的工作节点的IP地址列表中,则确定所述工作节点是合法的;以及根据所述工作节点的上次心跳时间,若当前时间减去所述工作节点的上次心跳时间未超过预设的过期时间阈值,则确定所述工作节点是未过期的,所述工作节点的上次心跳时间为所述工作节点上次发送抢占任务请求的时间。
本发明的主节点对抢占任务的工作节点进行合法和有效性的检验,避免将镜像构建任务发送给非法或过期的工作节点而导致镜像任务构建的不成功。
103、将所述待升级的应用的镜像构建任务发送给工作节点,以使所述工作节点根据所述镜像构建任务,获取所述待升级的应用的文件,按照预设的打包规范封装所述待升级的应用的文件,并将封装后的所述待升级的应用的文件保存到镜像存储系统中。
图2为本发明实施例提供的一种分布式镜像构建任务方法的流程示意图,位于工作节点侧执行,本发明实施例中的工作节点为镜像构建系统中的构建镜像的节点,如图2所示,包括:
201、工作节点接收主节点发送的镜像构建任务,所述镜像构建任务中包括待升级的应用的下载地址;
可选地,步骤201之前包括:
工作节点向主节点发送抢占任务请求,所述抢占任务请求中包括所述工作节点的IP地址,以使所述主节点根据所述工作节点的IP地址确定所述工作节点是否合法,且根据所述工作节点的上次心跳时间确定所述工作节点是否有效,所述工作节点的上次心跳时间为所述工作节点上次发送抢占任务请求的时间。当主节点确定该工作节点是合法且有效的节点时,主节点才将镜像构建任务分配给该抢占任务的工作节点。
可选地,本发明实施例中,工作节点设置有镜像构建任务队列,所述镜像构建任务队列中包括所述工作节点最多可以抢占的镜像构建任务的数目;根据所述镜像构建任务队列,开启对应数目的协程抢占镜像构建任务;当检测到某一个协程处于空闲状态时,向主节点发送抢占任务请求。
本发明的工作节点采用多协程抢占镜像构建任务,可以提高镜像任务构建的效率。
202、根据所述待升级的应用的下载地址,从所述下载地址指向的数据源下载所述待升级的应用的文件;
203、按照预设的打包规范封装所述待升级的应用的文件,并将封装后的所述待升级的应用的文件保存到镜像存储系统中。
可选地,本发明实施例中,若所述镜像构建任务中包括所述待升级的应用的配置信息,则工作节点可以构建所述待升级的应用的配置信息的镜像并保存到镜像存储系统中。
本发明实施例中预设的打包规范包括但不限于服务包格式、服务包名称、服务包目录结构、服务包的信息和应用目录结构,具体将在下文中展开详细的说明。
204、向主节点发送所述待升级的应用的镜像构建任务结果。
其中,所述镜像构建任务结果中可以包括所述待升级的应用的文件在所述镜像存储系统中的元数据信息。
图3为本发明实施例提供的一种分布式镜像构建任务系统的架构图,图3-1为本发明实施例图3所示系统进行分布式镜像构建任务方法的流程示意图,如图3所示,主要由主节点(master)、备份主节点(slave)、多个工作节点(worker)、下载服务节点组成,如图3-1所示,本发明实施例中主要阐述master和worker构建镜像任务的过程:
301、镜像构建系统的主节点从天基系统的Master节点发现是否有升级请求;
如果有升级请求,执行步骤302,否则构建镜像回收任务;
302、镜像构建系统的主节点从配置中心(config store)读取配置信息,并生成镜像构建任务;
其中,配置中心的配置信息是系统管理人员在配置信息输入界面输入的用于应用升级时的操作配置信息。
303、镜像构建系统的主节点决策分配镜像构建任务给抢占任务的工作节点;
此时,如果worker执行镜像任务失败或者worker节点过期失效或非法,则恢复镜像任务重新分配;
304、工作节点采用单进程启动多协程方式抢占镜像构建任务;
305、工作节点下载应用package,将应用按照预设的打包规范进行封装,并保存到镜像存储系统中,生成该镜像应用的meta信息。
需要说明的是,本发明实施例中,主节点分配给工作节点的还可以是镜像回收任务,此时,工作节点删除对应的镜像应用。
306、工作节点报告镜像构建任务结果镜像构建主节点。
需要说明的是,本发明实施例中,镜像构建系统的主节点报告镜像构建任务结果到天基系统的master,以供后续部署决策是否升级该应用。
本发明实施例所述的分布式镜像构建服务系统作为云自动化运维系统中的重要一环,承前启后,具有云端镜像应用的统一构建功能,即根据预设的应用打包规范可以将不同数据源的应用统一构建成一种镜像格式,从而使云自动化运维系统无区别对待所有的镜像应用,统一完成升级;同时,本发明采用基于镜像应用的存储地址(stoarage url)做为资源访问控制协议的抢占式分配策略、工作节点可扩展的分布式架构方法,可以通过增加工作节点来提高构建效率,并高效管理镜像应用,能较好地为云端自动化运维系统升级大规模集群解决前端性能瓶颈问题。
下面对本发明实施例中预设的打包规范进行详细的描述:
本发明实施例中云自动化运维系统中所有的业务集群,其服务应用必须要按照本发明预设的打包规范进行打包,至于该应用所依赖的基础软件包,会通过解析配置信息(Opconfig)去该应用的数据源进行下载。
其中,本发明预设的打包规范包括:
1)服务包格式
例如,服务包采用GNU gzip格式,后缀tar.gz。
2)服务包名称
服务包包名称由小写字母加分隔符构成,含4部分组成,结构如下:
{service}_service_{target}_{mode}_{version}.tar.gz
例如,盘古服务包:apsara.pangu_service_amd64_release_0.13.tar.gz
service:
服务的名称,例如:apsara.pangu。
version:
表明包中服务的版本号,由“.”分割的多个数字组成,例如:0.14.1。
target:
处理器体系结构,支持:amd64,x86,noarch。
mode:
发布模式,支持:release,debug。
3)服务包目录结构
服务包解压后,服务的目录结构如下:
/
|_service_package.yaml
|_(application packages)
service_package.yaml:
描述了服务包的信息。
application package:
服务的应用包,文件名为:{application name}.tar.gz。
application name,及其他application信息,在service_package.yaml中被描述,一个服务可以包含多个应用。
4)service_package.yaml
service_package.yaml描述了服务包的信息,采用UTF8编码,符合TJ-YAML规范。下表1为Service结构体:
下表2为Application结构体:
下表3为ServerRole的结构体:
5)应用目录结构
应用包解压后,应用的目录结构如下:
./
|_conf.tmpl
||_/public.conf
|_(other files)
镜像下载服务节点下载镜像应用安装时,整个应用目录将被复制到:
/app/{Service}/{ServerRoleInst}/{Application}/{Build}
应用目录必须包含conf.tmpl目录和conf.tmpl/public.conf。
conf.tmpl目录:存放应用配置模版。
conf.tmpl/public.conf:用于描述应用如何使用。
图4为本发明实施例中一种Apsara.Pangu服务包的目录结构图,如图4所示,描述了服务包apsara.pangu的目录结构,包含4个应用:pangu_chunk、pangu_master、pangu_sdk_41、pangu_utils。
其中,service_package.yaml内容如下:
本发明实施例中的工作节点按照以上规范打包封装待升级的应用(即构建镜像应用),并将构建的镜像应用保存到进行存储系统中。
下面通过具体实现方式对主节点生成镜像构建任务的过程进行详细的说明:
图5为本发明实施例中主节点生成镜像构建任务的流程示意图,主节点主要负责生成和分配镜像任务,其中,镜像任务又分为镜像构建任务和镜像回收任务。镜像回收任务是通过反向解析镜像应用的storage url而来,本发明实施例不做说明,只说明镜像构建任务,如图5所示,包括:
501、从天基系统的master发现新的升级请求;
其中,每个升级请求由git commit id、构建状态(build_status)、开始(begin_time)、截止时间(end_time)和message组成,格式如下:
git_commit_id | build_status | begin_time | end_time | message |
git_commit_id:git版本管理系统产生的commit id,具有全局唯一性;
build_status:任务构建状态,包括:“”,waiting、doing、done、failed;初始值为“”;
begin_time:构建开始时间,本镜像构建系统读到该升级请求时写入;
end_time:构建结束时间,本镜像构建系统完成该升级请求的所有任务时写入;
message:目前主要用于纪录任务构建失败时的错误信息,方便定位跟踪问题。
502、从配置中心读取该git commit id对应的操作配置信息。
其中,操作配置信息(op config)是以集群名创建的分支,它包含业务集群的应用参数配置、操作系统(OS)配置、服务(service)版本等升级信息,每个业务集群可以含一个或多个服务(service),每个service由多个服务角色(server role)组成,每个serverrole又包含多个应用程序(application),每个application有各自的构建类型(build_type)、下载地址(download_address)和应用版本号(build_id),图6是本发明实施例一种是操作配置信息的配置截图,如图6所示:
其中,每个service下都会有一个yaml格式的version.conf文件,内容格式如下:
例如:
其中,
PanguMaster#这个server role包含两个application:pangu_master和pangu_utils;pangu_master打包于tianteng,下载地址可从本镜像构建系统的配置中读取,buildid为1234;
PanguClient#这个server role包含多个appliation:*和pangu_utils;“*”代表所有,这里的语义是说,除了pangu_utils,这个server role的所有的application都打包于tianteng,下载地址为http://10.101.168.100:80/beiming,duild id为2345。
注意,version.conf中的server role以及application必须出现在service_package.yaml文件中,并保持一致的对应关系。
503、解析每个service的version.conf,为其中每个server role下的每个application生成镜像构建任务;
如果server role与其applicaion的所属关系不在service_package.yaml中,则异常退出本轮任务构建流程。
图7为图5所示实施例中步骤503的具体实现流程示意图,如图7所示,步骤503具体实现时可以参考图7所示的流程示意图,首先解析每个服务的版本信息,得到每个服务角色以及对应的应用,之后循环处理每个应用:
1、根据该待处理的应用所属的服务,版本号,下载地址和服务角色,获取相应的服务包,解析该服务包中该服务角色对应的应用列表;
2、判断该待处理的应用是否在应用列表中,若果没有在应用列表中则异常退出;
3、如果在应用列表中则生成对应的镜像构建任务,
4、进一步判断本次升级是否该待处理的应用所属的服务角色构建配置类型的任务;若是则返回步骤1;否则执行步骤5;
5、生成配置类型镜像任务。
上述镜像构建任务中包含的关键信息如下表4所示:
其中,storage_url格式为:
URL_PREFIX/build_type/build_address_encode/build_id/service_name/application_name
其中,build_address_encode为build_address经过base64编码后的字符串,例如:pangu://localcluster/ib/data/tianteng/aHR0cDovLzEwLjEwMS4xNzIuNDY6ODAvYmVpbWluZy8=/139557/tianji/image_builder。
需要说明的是,本发明实施例中,在为service生成以上镜像构建任务时,还会为该service的每个server role生成一个与业务集群配置信息相关的镜像构建任务,它不是用于集群中application的版本升级,而是用于控制集群的系统运行行为。
其中,有关生成配置信息的镜像任务的过程中,需要确定配置信息的版本号(build id),举例来说,具体包括:
1)读取配置文件services/{service}/tianji/config_dep.conf,获取该service所依赖的services;
2)先删除该service不依赖的service目录services/{service};
3)再删除余下的所有service目录下的tianji目录,即:services/{service}/tianji;
4)计算_tj_config目录下所有文件的meta信息,信息格式如下所示,再计算meta信息的md5,即buildid
上述步骤1)中的文件services/{service}/tianji/config_dep.conf定义了service之间的依赖关系,采用json格式:{"ConfigDep":["tianji","pangu"]},目的是定义service之间升级的依赖关系,例如本次升级pangu的时候,如果pangu不依赖fuxi,本系统为pangu生成的构建镜像信息时就不会考虑fuxi的配置变化,调度系统则不会升级fuxi,而只会升级pangu,从而可以节省系统资源。
如果没有这个文件services/{service}/tianji/config_dep.conf,表示该service不依赖其他service,但是tianji service例外,表示依赖services目录下的所有service;
如果文件内容为{"ConfigDep":[]},表示该service不依赖其他service
如果{"ConfigDep":["*"]},表示该service依赖services目录下的所有service;
其中,service之间的独立性(dependency)不具有传递性,即:如果pangu依赖nuwa,nuwa依赖tianji,那么不能推导出pangu依赖tianji。
图8为本发明实施例中主节点分配镜像任务的流程示意图,主节点master主要是基于storage url做为资源访问控制,如图8所示:
引用加1表示:该storage url被该镜像任务对应的升级请求(git commit id)所应用;
引用减1表示:删除该镜像任务对应的升级请求(git commit id)中该storageurl对应的应用;
其中,master设置两级队列:普通级(normal)和优先级(priority)。worker抢占任务时,master优先分配priority队列的任务。
本发明实施例例如根据以下策略也将任务放入priority队列中:
1)和配置信息更改相关的任务需要先被构建,以达到及时更改系统行为的目的,所以被放入priority队列;
2)普通的镜像任务在失败后需要重新执行,出于公平原则,此时也需要放入priority队列。
其中,队列是先进先出,所以不会出现大量普通任务失败被放入优先队列,而导致配置更改相关的任务不被执行(被饿死的)情况。
其次,master将存储镜像应用的storage_url做为分布式锁资源,来控制镜像任务是否应该被分配给worker节点去构建镜像应用,现实中不是每个镜像任务都需要被重新构建,因为同一个镜像应用在每次升级请求中经常需要重用,比如只是更改了应用配置信息,或者该镜像应用被不同的业务集群引用,针对这些情况,如果不加区分地直接构建镜像任务,会极大浪费时间和系统资源,并可能覆盖别人正在访问的镜像应用,导致读写一致性问题,为此,master会根据storage_url决定是否重新构建镜像任务,在判定是否分配该镜像构建任务给worker节点时,master将锁定该镜像构建任务对应的storage_url。
当发生包括下面几种情况的场景时,可以释放该镜像构建任务对应的storage_url:
1)该镜像构建任务对应的storage url已经正在被构建或者已经被构建完成;
2)worker协程获得镜像构建任务并返回镜像构建任务成功时;
3)worker协程获得镜像构建任务并返回镜像构建任务失败时;
4)worker节点在过期时间内,无心跳汇报且尚未返回镜像构建任务结果时;
释放时,如果该镜像构建任务没被完成,则放入priority队列以待主节点重新分配镜像任务。
本发明实施例中,master节点在分配镜像任务给工作节点之前,需要判断该worker节点的有效性:
1)master节点在周期读取升级请求时,会重新获取天基系统master上的worker节点的IP列表,并备份在内存中,以用于校验worker节点IP是否属于该IP列表。其中校验时刻包括:worker节点发送心跳或者抢占镜像任务时;或者worker节点返回镜像任务结果时;
2)合法的worker节点抢到镜像任务后,master会将这些任务纪录在激活任务图(acive tasks map)中,现实中可能由于硬件或者网络故障,worker节点长时间不能返回任务结果,那么被它占有的任务应该及时得到恢复,被分配给其它的worker节点。对于这种情况,master节点会维护一个worker是否过期的map图,以存储每个worker的上次心跳时间,如果当前时间减去上次心跳时间超过本系统规定的过期时间,master会认为该worker已失效,则master会首先将active tasks map中该worker节点处理的镜像任务重新放回priority队列,并从active tasks map删除该worker节点,然后再释放任务对应的storageurl;如果过期的worker又返回镜像任务结果给master,master则简单丢弃该任务结果。
图9为本发明实施例中工作节点抢占任务具体实现流程图,如图9所示,抢占任务的协程从任务队列中取1个任务,判断该协程是否有空闲,有空闲则启动处理该任务的协程读取任务类型,具体任务类型包括创建或删除任务,如果是删除任务则根据存储地址删除镜像文件,如果是创建任务,则组装下载应用的地址,根据下载应用的地址下载对应的应用包,解压该应用包,构建应用的meta信息,存储镜像,最后返回构建结果给主节点。
其中,worker节点主要流程:抢占镜像构建任务、执行构建任务和存储镜像,存储镜像过程主要是写镜像文件到镜像存储系统的过程,这里不做说明。
其中,抢占镜像构建任务:
每个worker节点有一个镜像任务队列,并有一个单独的协程负责周期地向master节点抢占指定数量的镜像任务,得到任务被放入这个队列。
1)这个抢占任务的协程的心跳周期也就是抢占镜像任务的周期,master节点在这个周期内会收到一次worker请求,并用当前时间更新该worker节点的上次心跳时间,从而保证该worker是非过期的节点。
2)抢占指定数量的镜像任务,每个worker按照配置可以最多启动指定数目的协程,当前该worker的空闲协程数,表示该worker在本周期内最多可以抢占镜像任务的数目。
其中,执行构建任务:
主要包括从数据源下载application对应的package,并封装生成天基系统的镜像源数据(meta)信息,meta信息为json格式,如下所示:
{
“conf.tmpl/ib_master.conf”:{"Path":"conf.tmpl/ib_master.conf","Md5":"30f3df7f36739c180723c6ac97080745","Len":"436","Mode":"lrw-rw-r--","Extra":{“link”:“ib_master.conf”}},
……
}
其中,“Extra”为扩展属性,如“link”表示镜像当前目录下的conf.tmpl/ib_master.conf文件是软链接,指向镜像当前目录下的ib_master.conf。
图10为本发明实施例提供的一种分布式镜像构建任务装置的结构示意图;位于主节点侧执行,如图10,包括:
配置获取模块11,用于根据检测到的升级请求,获取待升级的应用的配置信息;
任务生成模块12,用于根据所述待升级的应用的配置信息,生成所述待升级的应用的镜像构建任务;
任务分配模块13,用于将所述待升级的应用的镜像构建任务发送给工作节点,以使所述工作节点根据所述镜像构建任务,获取所述待升级的应用,按照预设的打包规范封装所述待升级的应用,并将封装后的所述待升级的应用保存到镜像存储系统中。
其中,所述升级请求为通过升级配置界面输入所述待升级的应用的配置信息,并触发的所述待升级的应用的升级请求。
其中,所述任务生成模块12,还用于根据所述待升级的应用的配置信息,确定所述待升级的应用的配置信息的唯一性标识,并生成所述待升级的应用的配置信息的镜像构建任务;
所述任务分配模块13,还用于将所述待升级的应用的配置信息的镜像构建任务发送给工作节点,以使所述工作节点构建所述待升级的应用的配置信息的镜像并保存到镜像存储系统中。
其中,所所述的装置还包括:
设置模块14,用于设置镜像构建任务的优先级,将所述优先级的镜像构建任务优先发送给所述工作节点进行镜像任务的构建。
其中,所述的装置还包括:
地址锁定模块15,用于在将镜像构建任务发送给工作节点之前,锁定镜像存储地址,所述镜像存储地址为所述镜像构建任务中所述待升级的应用在镜像存储系统中的存储地址;
地址释放模块16,用于在确定所述存储地址对应的存储空间中不存在所述镜像构建任务中所述待升级的应用的镜像时释放所述存储地址。
其中,所述的装置还包括:
确定模块17,用于在将镜像构建任务发送给工作节点之前,确定所述工作节点是有效的节点。
其中,所述确定模块17具体用于:
根据工作节点发送的抢占任务请求中包括的所述工作节点的IP地址,若确定所述工作节点的IP地址在合法的工作节点的IP地址列表中,则确定所述工作节点是合法的;
根据所述工作节点的上次心跳时间,若当前时间减去所述工作节点的上次心跳时间未超过预设的过期时间阈值,则确定所述工作节点是有效的,所述工作节点的上次心跳时间为所述工作节点上次发送抢占任务请求的时间。
图10所示装置可以执行图1、7、8所示实施例所述的方法,实现原理和技术效果不再赘述,可以参考上述实施例中的相关描述。
图11为本发明实施例提供的一种分布式镜像构建任务装置的结构示意图,位于工作节点侧执行,如图11所示包括:
接收任务模块21,用于接收主节点发送的镜像构建任务,所述镜像构建任务中包括待升级的应用的下载地址;
应用下载模块22,用于根据所述待升级的应用的下载地址,从所述下载地址指向的数据源下载所述待升级的应用;
镜像任务构建模块23,用于按照预设的打包规范封装所述待升级的应用,并将封装后的所述待升级的应用保存到镜像存储系统中。
其中,
所述镜像任务构建模块23,还用于在所述镜像构建任务中包括所述待升级的应用的配置信息时,构建所述待升级的应用的配置信息的镜像并保存到镜像存储系统中。
其中,所述的装置还包括:
发送模块24,用于向主节点发送抢占任务请求,所述抢占任务请求中包括所述工作节点的IP地址,以使所述主节点根据所述工作节点的IP地址确定所述工作节点是否合法,且根据所述工作节点的上次心跳时间确定所述工作节点是否有效,所述工作节点的上次心跳时间为所述工作节点上次发送抢占任务请求的时间。
其中,所述的装置还包括:
设置模块25,用于设置有镜像构建任务队列,所述镜像构建任务队列中包括所述工作节点最多可以抢占的镜像构建任务的数目;
协程抢占模块26,用于根据所述镜像构建任务队列,开启对应数目的协程抢占镜像构建任务;
检测模块27,用于当检测到所述协程抢占模块中的某一个协程处于空闲状态时,通过所述发送模块向主节点发送抢占任务请求。
其中,所述预设的打包规范包括服务包格式、服务包名称、服务包目录结构、服务包的信息和应用目录结构。
其中,
所述发送模块24,用于向所述主节点发送所述待升级的应用的镜像构建任务结果,所述镜像构建任务结果中包括所述待升级的应用在所述镜像存储系统中的元数据信息。
图11所示装置可以执行图2和图9所示实施例所述的方法,实现原理和技术效果不再赘述,可以参考上述实施例中的相关描述。
上述说明示出并描述了本发明的若干优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
Claims (27)
1.一种分布式镜像构建任务方法,位于主节点侧执行,其特征在于,包括:
主节点根据检测到的升级请求,获取待升级的应用的配置信息;
根据所述待升级的应用的配置信息,生成所述待升级的应用的镜像构建任务;
将所述待升级的应用的镜像构建任务发送给工作节点,以使所述工作节点根据所述镜像构建任务,获取所述待升级的应用的文件,按照预设的打包规范封装所述待升级的应用的文件,并将封装后的所述待升级的应用的文件保存到镜像存储系统中。
2.根据权利要求1所述的方法,其特征在于,主节点根据检测到的升级请求,获取待升级的应用的配置信息之前,包括:
通过升级配置界面输入所述待升级的应用的配置信息,并触发所述待升级的应用的升级请求。
3.根据权利要求1所述的方法,其特征在于,还包括:
根据所述待升级的应用的配置信息,确定所述待升级的应用的配置信息的唯一性标识,并生成所述待升级的应用的配置信息的镜像构建任务;
将所述待升级的应用的配置信息的镜像构建任务发送给工作节点,以使所述工作节点构建所述待升级的应用的配置信息的镜像并保存到镜像存储系统中。
4.根据权利要求1或3所述的方法,其特征在于,还包括:
设置镜像构建任务的优先级,将所述优先级的镜像构建任务优先发送给所述工作节点进行镜像任务的构建。
5.根据权利要求1或3所述的方法,其特征在于,还包括:
在将镜像构建任务发送给工作节点之前,锁定镜像存储地址,所述镜像存储地址为所述镜像构建任务中所述待升级的应用的镜像在镜像存储系统中的存储地址;
在确定所述存储地址对应的存储空间中不存在所述镜像构建任务中所述待升级的应用的镜像时释放所述存储地址。
6.根据权利要求1或3所述的方法,其特征在于,还包括:
在将镜像构建任务发送给工作节点之前,确定所述工作节点是有效的节点。
7.根据权利要求6所述的方法,其特征在于,还包括:
根据工作节点发送的抢占任务请求中包括的所述工作节点的IP地址,若确定所述工作节点的IP地址在合法的工作节点的IP地址列表中,则确定所述工作节点是合法的;
根据所述工作节点的上次心跳时间,若当前时间减去所述工作节点的上次心跳时间未超过预设的过期时间阈值,则确定所述工作节点是未过期的,所述工作节点的上次心跳时间为所述工作节点上次发送抢占任务请求的时间。
8.一种分布式镜像构建任务方法,位于工作节点侧执行,其特征在于,包括:
工作节点接收主节点发送的镜像构建任务,所述镜像构建任务中包括待升级的应用的下载地址;
根据所述待升级的应用的下载地址,从所述下载地址指向的数据源下载所述待升级的应用的文件;
按照预设的打包规范封装所述待升级的应用的文件,并将封装后的所述待升级的应用的文件保存到镜像存储系统中。
9.根据权利要求8所述的方法,其特征在于,还包括:
若所述镜像构建任务中包括所述待升级的应用的配置信息,则构建所述待升级的应用的配置信息的镜像并保存到镜像存储系统中。
10.根据权利要求8或9所述的方法,其特征在于,还包括:
工作节点向主节点发送抢占任务请求,所述抢占任务请求中包括所述工作节点的IP地址,以使所述主节点根据所述工作节点的IP地址确定所述工作节点是否合法,且根据所述工作节点的上次心跳时间确定所述工作节点是否未过期,所述工作节点的上次心跳时间为所述工作节点上次发送抢占任务请求的时间。
11.根据权利要求10所述的方法,其特征在于,还包括:
工作节点设置有镜像构建任务队列,所述镜像构建任务队列中包括所述工作节点最多可以抢占的镜像构建任务的数目;
根据所述镜像构建任务队列,开启对应数目的协程抢占镜像构建任务;
当检测到某一个协程处于空闲状态时,向主节点发送抢占任务请求。
12.根据权利要求8所述的方法,其特征在于,所述预设的打包规范包括服务包格式、服务包名称、服务包目录结构、服务包的信息和应用目录结构。
13.根据权利要求8所述的方法,其特征在于,将所述封装后的所述待升级的应用的文件保存到镜像存储系统中之后,还包括:
向所述主节点发送所述待升级的应用的镜像构建任务结果,所述镜像构建任务结果中包括所述待升级的应用的文件在所述镜像存储系统中的元数据信息。
14.一种分布式镜像构建任务装置,位于主节点侧执行,其特征在于,包括:
配置获取模块,用于根据检测到的升级请求,获取待升级的应用的配置信息;
任务生成模块,用于根据所述待升级的应用的配置信息,生成所述待升级的应用的镜像构建任务;
任务分配模块,用于将所述待升级的应用的镜像构建任务发送给工作节点,以使所述工作节点根据所述镜像构建任务,获取所述待升级的应用的文件,按照预设的打包规范封装所述待升级的应用的文件,并将封装后的所述待升级的应用的文件保存到镜像存储系统中。
15.根据权利要求14所述的装置,其特征在于:
所述升级请求为通过升级配置界面输入所述待升级的应用的配置信息,并触发的所述待升级的应用的升级请求。
16.根据权利要求14所述的装置,其特征在于,还包括:
所述任务生成模块,还用于根据所述待升级的应用的配置信息,确定所述待升级的应用的配置信息的唯一性标识,并生成所述待升级的应用的配置信息的镜像构建任务;
所述任务分配模块,还用于将所述待升级的应用的配置信息的镜像构建任务发送给工作节点,以使所述工作节点构建所述待升级的应用的配置信息的镜像并保存到镜像存储系统中。
17.根据权利要求14或16所述的装置,其特征在于,还包括:
设置模块,用于设置镜像构建任务的优先级,将所述优先级的镜像构建任务优先发送给所述工作节点进行镜像任务的构建。
18.根据权利要求14或16所述的装置,其特征在于,还包括:
地址锁定模块,用于在将镜像构建任务发送给工作节点之前,锁定镜像存储地址,所述镜像存储地址为所述镜像构建任务中所述待升级的应用的镜像在镜像存储系统中的存储地址;
地址释放模块,用于在确定所述存储地址对应的存储空间中不存在所述镜像构建任务中所述待升级的应用的镜像时释放所述存储地址。
19.根据权利要求14或16所述的装置,其特征在于,还包括:
确定模块,用于在将镜像构建任务发送给工作节点之前,确定所述工作节点是有效的节点。
20.根据权利要求19所述的装置,其特征在于,所述确定模块具体用于:
根据工作节点发送的抢占任务请求中包括的所述工作节点的IP地址,若确定所述工作节点的IP地址在合法的工作节点的IP地址列表中,则确定所述工作节点是合法的;
根据所述工作节点的上次心跳时间,若当前时间减去所述工作节点的上次心跳时间未超过预设的过期时间阈值,则确定所述工作节点是未过期的,所述工作节点的上次心跳时间为所述工作节点上次发送抢占任务请求的时间。
21.一种分布式镜像构建任务装置,位于工作节点侧执行,其特征在于,包括:
接收任务模块,用于接收主节点发送的镜像构建任务,所述镜像构建任务中包括待升级的应用的下载地址;
应用下载模块,用于根据所述待升级的应用的下载地址,从所述下载地址指向的数据源下载所述待升级的应用的文件;
镜像任务构建模块,用于按照预设的打包规范封装所述待升级的应用的文件,并将封装后的所述待升级的应用的文件保存到镜像存储系统中。
22.根据权利要求21所述的装置,其特征在于:
所述镜像任务构建模块,还用于在所述镜像构建任务中包括所述待升级的应用的配置信息时,构建所述待升级的应用的配置信息的镜像并保存到镜像存储系统中。
23.根据权利要求21或22所述的装置,其特征在于,还包括:
发送模块,用于向主节点发送抢占任务请求,所述抢占任务请求中包括所述工作节点的IP地址,以使所述主节点根据所述工作节点的IP地址确定所述工作节点是否合法,且根据所述工作节点的上次心跳时间确定所述工作节点是否未过期,所述工作节点的上次心跳时间为所述工作节点上次发送抢占任务请求的时间。
24.根据权利要求23所述的装置,其特征在于,还包括:
设置模块,用于设置有镜像构建任务队列,所述镜像构建任务队列中包括所述工作节点最多可以抢占的镜像构建任务的数目;
协程抢占模块,用于根据所述镜像构建任务队列,开启对应数目的协程抢占镜像构建任务;
检测模块,用于当检测到所述协程抢占模块中的某一个协程处于空闲状态时,通过所述发送模块向主节点发送抢占任务请求。
25.根据权利要求21所述的装置,其特征在于,所述预设的打包规范包括服务包格式、服务包名称、服务包目录结构、服务包的信息和应用目录结构。
26.根据权利要求21所述的装置,其特征在于:
所述发送模块,用于向所述主节点发送所述待升级的应用的镜像构建任务结果,所述镜像构建任务结果中包括所述待升级的应用的文件在所述镜像存储系统中的元数据信息。
27.一种分布式镜像构建任务系统,其特征在于,包括:主节点、多个工作节点;
所述主节点包括如14-20中任一项所述的分布式镜像构建任务装置;
所述工作节点包括如21-26中任一项所述的分布式镜像构建任务装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610391250.1A CN107465709B (zh) | 2016-06-03 | 2016-06-03 | 分布式镜像构建任务方法及装置、系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610391250.1A CN107465709B (zh) | 2016-06-03 | 2016-06-03 | 分布式镜像构建任务方法及装置、系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107465709A true CN107465709A (zh) | 2017-12-12 |
CN107465709B CN107465709B (zh) | 2020-09-01 |
Family
ID=60545846
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610391250.1A Active CN107465709B (zh) | 2016-06-03 | 2016-06-03 | 分布式镜像构建任务方法及装置、系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107465709B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109451051A (zh) * | 2018-12-18 | 2019-03-08 | 百度在线网络技术(北京)有限公司 | 服务请求处理方法、装置、电子设备及存储介质 |
CN109862107A (zh) * | 2019-03-05 | 2019-06-07 | 上海博泰悦臻网络技术服务有限公司 | 多线程调度指定升级方法、服务端及客户端 |
CN111262908A (zh) * | 2020-01-09 | 2020-06-09 | 中国工商银行股份有限公司 | 基于jenkins的任务构建方法及系统 |
CN111966384A (zh) * | 2020-10-20 | 2020-11-20 | 腾讯科技(深圳)有限公司 | 系统更新方法、装置、设备及计算机可读存储介质 |
CN112988905A (zh) * | 2021-04-27 | 2021-06-18 | 北京沃丰时代数据科技有限公司 | 用于集群部署的节点内存同步方法及装置 |
CN114490684A (zh) * | 2021-12-29 | 2022-05-13 | 北京思特奇信息技术股份有限公司 | 一种基于数据库的分布式一致性实现方法 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101496396A (zh) * | 2006-07-24 | 2009-07-29 | 三星电子株式会社 | 软件升级设备、系统和方法 |
CN102103509A (zh) * | 2010-11-23 | 2011-06-22 | Tcl集团股份有限公司 | 一种互联网电视远程自动升级方法 |
CN102520996A (zh) * | 2011-12-07 | 2012-06-27 | 上海市共进通信技术有限公司 | 嵌入式设备中跨平台通用升级镜像信息生成及升级方法 |
CN102779057A (zh) * | 2012-06-29 | 2012-11-14 | 浪潮(北京)电子信息产业有限公司 | 一种基板管理控制器及其自动升级系统和方法 |
US20130064066A1 (en) * | 2011-09-12 | 2013-03-14 | International Business Machines Corporation | Updating a switch software image in a distributed fabric protocol (dfp) switching network |
CN103037002A (zh) * | 2012-12-21 | 2013-04-10 | 中标软件有限公司 | 一种云计算集群环境中服务器集群的部署方法及系统 |
CN103546914A (zh) * | 2013-10-21 | 2014-01-29 | 大唐移动通信设备有限公司 | 一种hss主备管理的方法及装置 |
CN104219099A (zh) * | 2014-09-25 | 2014-12-17 | 浪潮(北京)电子信息产业有限公司 | 一种服务器集群自动部署的方法和装置 |
CN104298532A (zh) * | 2014-11-04 | 2015-01-21 | 上海斐讯数据通信技术有限公司 | 一种软件升级方法及系统 |
WO2015078333A1 (zh) * | 2013-11-26 | 2015-06-04 | 中国银联股份有限公司 | 虚拟机镜像离线升级方法 |
CN105119749A (zh) * | 2015-09-07 | 2015-12-02 | 烽火通信科技股份有限公司 | 一种家庭网关本地批量升级的方法和系统 |
CN105162878A (zh) * | 2015-09-24 | 2015-12-16 | 网宿科技股份有限公司 | 基于分布式存储的文件分发系统及方法 |
-
2016
- 2016-06-03 CN CN201610391250.1A patent/CN107465709B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101496396A (zh) * | 2006-07-24 | 2009-07-29 | 三星电子株式会社 | 软件升级设备、系统和方法 |
CN102103509A (zh) * | 2010-11-23 | 2011-06-22 | Tcl集团股份有限公司 | 一种互联网电视远程自动升级方法 |
US20130064066A1 (en) * | 2011-09-12 | 2013-03-14 | International Business Machines Corporation | Updating a switch software image in a distributed fabric protocol (dfp) switching network |
CN102520996A (zh) * | 2011-12-07 | 2012-06-27 | 上海市共进通信技术有限公司 | 嵌入式设备中跨平台通用升级镜像信息生成及升级方法 |
CN102779057A (zh) * | 2012-06-29 | 2012-11-14 | 浪潮(北京)电子信息产业有限公司 | 一种基板管理控制器及其自动升级系统和方法 |
CN103037002A (zh) * | 2012-12-21 | 2013-04-10 | 中标软件有限公司 | 一种云计算集群环境中服务器集群的部署方法及系统 |
CN103546914A (zh) * | 2013-10-21 | 2014-01-29 | 大唐移动通信设备有限公司 | 一种hss主备管理的方法及装置 |
WO2015078333A1 (zh) * | 2013-11-26 | 2015-06-04 | 中国银联股份有限公司 | 虚拟机镜像离线升级方法 |
CN104219099A (zh) * | 2014-09-25 | 2014-12-17 | 浪潮(北京)电子信息产业有限公司 | 一种服务器集群自动部署的方法和装置 |
CN104298532A (zh) * | 2014-11-04 | 2015-01-21 | 上海斐讯数据通信技术有限公司 | 一种软件升级方法及系统 |
CN105119749A (zh) * | 2015-09-07 | 2015-12-02 | 烽火通信科技股份有限公司 | 一种家庭网关本地批量升级的方法和系统 |
CN105162878A (zh) * | 2015-09-24 | 2015-12-16 | 网宿科技股份有限公司 | 基于分布式存储的文件分发系统及方法 |
Non-Patent Citations (2)
Title |
---|
张容齐: "基于云计算平台的服务自动化部署机制研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
汪源等: "云计算环境下业务自动化部署的设计与实现", 《软件》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109451051A (zh) * | 2018-12-18 | 2019-03-08 | 百度在线网络技术(北京)有限公司 | 服务请求处理方法、装置、电子设备及存储介质 |
CN109862107A (zh) * | 2019-03-05 | 2019-06-07 | 上海博泰悦臻网络技术服务有限公司 | 多线程调度指定升级方法、服务端及客户端 |
CN111262908A (zh) * | 2020-01-09 | 2020-06-09 | 中国工商银行股份有限公司 | 基于jenkins的任务构建方法及系统 |
CN111966384A (zh) * | 2020-10-20 | 2020-11-20 | 腾讯科技(深圳)有限公司 | 系统更新方法、装置、设备及计算机可读存储介质 |
CN112988905A (zh) * | 2021-04-27 | 2021-06-18 | 北京沃丰时代数据科技有限公司 | 用于集群部署的节点内存同步方法及装置 |
CN112988905B (zh) * | 2021-04-27 | 2021-08-10 | 北京沃丰时代数据科技有限公司 | 用于集群部署的节点内存同步方法及装置 |
CN114490684A (zh) * | 2021-12-29 | 2022-05-13 | 北京思特奇信息技术股份有限公司 | 一种基于数据库的分布式一致性实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107465709B (zh) | 2020-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107465709B (zh) | 分布式镜像构建任务方法及装置、系统 | |
CN107515776B (zh) | 业务不间断升级方法、待升级节点和可读存储介质 | |
US10795733B2 (en) | Server farm management | |
US9442813B2 (en) | Replaying jobs at a secondary location of a service | |
US9003141B2 (en) | Enhanced software application platform | |
US11188561B2 (en) | Prioritizing microservices on a container platform for a restore operation | |
US8799453B2 (en) | Managing networks and machines for an online service | |
US11836152B2 (en) | Continuous replication and granular application level replication | |
CN107544783B (zh) | 一种数据更新方法、装置及系统 | |
CN109614167B (zh) | 一种管理插件的方法和系统 | |
US20120102506A1 (en) | Web service patterns for globally distributed service fabric | |
WO2012054160A2 (en) | High availability of machines during patching | |
CN110895484A (zh) | 任务调度方法及装置 | |
WO2012054405A2 (en) | Placing objects on hosts using hard and soft constraints | |
CN110895487B (zh) | 分布式任务调度系统 | |
CN110895488B (zh) | 任务调度方法及装置 | |
CN110895483A (zh) | 任务恢复方法及装置 | |
CN110895486B (zh) | 分布式任务调度系统 | |
WO2012054202A2 (en) | Installing software remotely using a high privilege process | |
CN110895485A (zh) | 任务调度系统 | |
CN117389713B (zh) | 存储系统应用业务数据迁移方法、装置、设备及介质 | |
CN118672845A (zh) | 日志信息处理方法、装置、软件程序、设备及存储介质 | |
CN117193796A (zh) | 一种应用的构建和部署以及辅助运行的系统和方法 | |
CN117931764A (zh) | 提供分布式文件存储服务的方法、装置和系统 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1247740 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |