分布式环境下模板定制的云平台动态蔓延部署方法
【专利摘要】一种分布式环境下模板定制的云平台动态蔓延部署方法,包括:构建基础部署环境;根据输入定制不同的模板;中央节点分发定制好的模板,管理集群;种子节点基于模板,根据动态蔓延规则选择最优部署子节点,快速部署集群;节点之间的分布式状态侦测和容错机制。本发明基于分布式环境中已部署的中央节点,动态生成新的“源”节点,将中央节点的分发负载不断分摊开来,允许新部署子节点从一个或多个源取得自身部署所需的内容,从而大大提高了云平台在分布式环境下部署的效率。
【专利说明】分布式环境下模板定制的云平台动态蔓延部署方法
【技术领域】
[0001]本发明涉及云计算技术,特别涉及一种分布式环境下模板定制的云平台动态蔓延部署方法。
【背景技术】
[0002]云计算技术的普及极大地提高了管理人员对IT资源的配置和交付能力。通过将底层基础设施映射为逻辑层面的资源池,管理人员可以从全局出发,统筹制定和修改资源配置方案。与此同时,用户对IT资源管理的灵活性提出了更高的要求,需要资源配置方案能够快速、动态地响应应用和市场的变化。这无疑需要配置方案选型后,云平台部署能够快速、高效地完成。不同于传统应用,云平台部署需要针对异构性极大的底层设施,对数量庞大且依赖关系复杂的系统组件进行配置,这无疑是一项繁重的工作。另一方面,云平台部署往往需要对分布式环境下的多个主机配置基础组件和容错方案,重复劳动量巨大。因此,传统的人工部署对于云平台暴露出效率地下、出错率高等诸多问题,是大规模推广云计算技术过程中急需解决的问题。
[0003]为此,面向云平台的自动化部署技术应运而生,涌现了 Puppet、Ansible、Chef、Salt等大量的解决方案。这类技术的基本思想是提供一种递归式的模板化语言,帮助管理人员方便清晰地描述各个系统组件的配置方案和依赖关系,然后由自动部署机制接管所有的安装配置过程,解决底层体系的异构问题,使云平台的所有组件和依赖关系的最终状态符合用户配置方案的预期。同时,在分布式环境下,现有自动化部署技术使用“主/代理(Master/Agent) ”模式和统一的通讯协议构筑多主机部署环境。用户可以在主节点订制不同的配置方案,然后将其分发给特定的代理节点进行自动化部署,从而实现了分布式环境下云平台部署的集中式管理。这些特性在排除了人为部署的疏漏和错误的同时,很大程度提高了云计算平台的部署效率。
[0004]尽管如此,现有的云平台部署技术仍然存在较大缺陷。总体来说,基于“主/代理”模式的分布式部署策略在一定程度上限制了现有方法的伸缩性。所有参与部署云平台的物理主机(节点)都需要事先纳入考虑,定义好其在分布式环境中的角色,在安装好一致的代理程序后,使用统一的通讯协议进行自动化部署工作。在整个部署生命周期中,各个节点的角色很难动态调整,新加入的物理主机也缺少一种机制被动态发现和纳入部署方案中。另一方面,在大规模分布式环境下,节点的数量庞大,单纯依靠现有“主/代理”模式的扁平化拓扑结构,很难快速高效地实现部署方案。
【发明内容】
[0005]本发明解决的问题是提供一种分布式环境下模板定制的云平台动态蔓延部署方法,能大大提高了云平台在分布式环境下部署的效率。
[0006]为解决上述问题,本发明实施例提供了一种分布式环境下模板定制的云平台动态蔓延部署方法,包括:构建基础部署环境;根据输入定制不同的模板;中央节点分发定制好的模板,管理集群;种子节点基于模板,根据动态蔓延规则选择最优部署子节点,快速部署集群;节点之间的分布式状态侦测和容错机制。
[0007]可选的,构建基础部署环境的方法包括:
[0008]搭建中央节点;
[0009]通过固定模板自动化部署一到N个种子节点。
[0010]可选的,所述中央节点包含pxe+kickstart自动化物理环境部署组件,模板定义组件,模板分为发组件、源组件以及主系统。
[0011]可选的,在搭建中央节点完成之后,选择1-N个中央节点作为初始的种子节点,通过中央节点分发种子节点角色的模板,通过自动化部署完成种子节点搭建。
[0012]可选的,当根据输入定制不同的模板,生成的模板属性包括角色、服务、物理节点,根据输入建立模板,模板使用角色命名,角色是多个服务的集合,服务之间存在依赖关系,存放在图结构中,在建立模板时通过图结构过滤,不存在依赖关系反转的则表示通过,否则即失败。
[0013]可选的,中央节点分发定制好的模板,管理集群的具体实施方法包括:
[0014]中央节点维护着一张所有种子节点的状态的信息表,关系型数据库表,根据这张表来同步种子节点的源和模板信息,通过中央节点接受到的输入建立基础模板,并根据动态蔓延规则分发至种子节点;
[0015]种子节点会去子节点上获取信息,并替换掉模板中的属性,然后进行最后一次的分发;
[0016]子节点在接受到自己的角色之后,通过动态蔓延规则选择合适的源,并执行该角色动作,执行成功后,返回成功标示至种子节点;
[0017]当种子节点负载到达一定的程度,并把状态信息报告给中央节点之后,中央节点会发送选举命令,并产生一个或者多个新的种子节点。
[0018]可选的,所述动态蔓延规则具体如下:
[0019]源的选择,当一个被定义的模板在物理机上执行的时候,通过源机器的响应速度、链接的稳定性、源节点的权重,来选择源;
[0020]状态的维护,当一个物理机安装完毕之后,物理机把状态推送给父节点,若父节点的上层节点不是中央节点则继续推送;
[0021]边界的确定,通过节点的层级来构建树,根据节点的深度和节点的子树的数量来确定边界。
[0022]可选的,分布式状态侦测分为两部分,一部分为一致性状态侦测,这部分建立在种子节点之间,或者是中央节点和种子节点之间,另外一部分为可用性状态侦测,这部分建立在种子节点和子节点之间、种子节点与中央节点之间;
[0023]一致性状态侦测,当2个种子节点的源出现不一致的情况时,会根据中央节点的状态表中记录的2个种子节点上一次同步的时间戳来进行回滚操作,把近期操作过的种子节点回滚到该节点上一次正确操作时的状态;
[0024]可用性状态侦测,采用被动接受的方式,每一个子节点会推送当前的状态给自己的父节点,父节点如果是中央节点则记录,如果不是则再向上推送,所述推送是一个建立连接的过程,如果连接没有建立成功,则广播。
[0025]与现有技术相比,本技术方案具有以下优点:
[0026]使用该方法,用户仅需要通过一种分布式环境下模板方法描述资源配置的预期,部署系统会自主发现网络中的未部署节点,动态分配角色和分发配置方案。同时,本发明基于分布式环境中已部署的中央节点,动态生成新的“源”节点,将中央节点的分发负载不断分摊开来,允许新部署子节点从一个或多个源取得自身部署所需的内容,从而大大提高了云平台在分布式环境下部署的效率。
【专利附图】
【附图说明】
[0027]图1是本发明实施例的分布式环境下模板订制的云平台动态蔓延部署方法的流程不意图;
[0028]图2是本发明实施例的云平台动态蔓延部署工作原理示意图。
【具体实施方式】
[0029]发明人发现,之所以现有技术很难快速高效地实现部署方案,主要由于部署代理节点的所有角色定义、配置方案和软件包都需要从中心的主节点取得,使得整个分布式环境下云平台部署的推进速度受制于主及节点的处理能力和网络带宽,且容易出现单点故障的风险。要解决此类问题,需要充分利用分布式环境自身的拓扑资源构建高效的部署方案分发机制,缓解主节点的复杂。
[0030]针对以上问题,本发明提供一种分布式环境下模板订制的云平台动态蔓延部署方法,使用该方法,用户仅需要通过一种分布式环境下模板方法描述资源配置的预期,部署系统会自主发现网络中的未部署节点,动态分配角色和分发配置方案。同时,本发明基于分布式环境中已部署节点,动态生成新的“源”节点,将中心主节点的分发负载不断分摊开来,允许新部署节点从一个或多个源取得自身部署所需的内容,从而大大提高了云平台在分布式环境下部署的效率。
[0031]下面结合附图,通过具体实施例,对本发明的技术方案进行清楚、完整的描述。
[0032]请参考图1和图2,为本发明实施例的分布式环境下模板订制的云平台动态蔓延部署方法的流程示意图,包括:
[0033]步骤SlOl,构建基础部署环境;
[0034]步骤S102,根据输入定制不同的模板;
[0035]步骤S103,中央节点分发定制好的模板,管理集群;
[0036]步骤S104,种子节点基于模板,根据动态蔓延规则选择最优部署子节点,快速部署集群;
[0037]步骤S105,节点之间的分布式状态侦测和容错机制。
[0038]具体的,执行步骤S101,构建基础部署环境,首先是搭建中央节点,其次通过固定模板自动化部署一到N个种子节点,以提供快速可靠的源服务。
[0039]所述中央节点包含pxe+kickstart自动化物理环境部署组件,模板定义组件,模板分发组件,源组件以及主系统。pxe-kickstart采用了 pxe的启动方式,通过dhcp获取ip,在和主机端建立三层的链路,物理机从网络启动并自安装经过定制的系统,从而实现自动化物理环境搭建。
[0040]在搭建中央节点完成之后,选择1-N中央节点作为初始的种子节点,通过中央节点分发种子节点角色的模板,通过自动化部署完成种子节点搭建。种子节点包含pxe-kickstart自动化物理环境部署组件,模板分发组件,源组件以及种子系统。
[0041]如果只部署了单一种子节点,则可以选择中央节点本身可以作为种子节点,同种子节点形成组成一个容灾的系统。多种子节点则不需要这么处理,种子节点之间形成一个闻可用系统。
[0042]执行步骤S102,系统需要根据输入定制不同的模板,在整个系统中由角色、服务、物理节点组成,它们之间存在n:m:k的关系,并且服务和服务之间有依赖关系,所以需要设定规则来规避依赖关系破裂,由于自动化部署系统的元数据分为云平台系统或者自动化部署系统中所扮演的角色,云平台系统或者自动化部署系统中所使用的服务、物理节点,根据输入建立模板,模板使用角色命名,角色是多个服务的集合,服务之间存在依赖关系,存放在图结构中,在建立模板时通过图结构过滤,不存在依赖关系反转的则表示通过,否则即失败。
[0043]所述步骤SlOl和步骤S102的顺序可互换。
[0044]执行步骤S103,中央节点分发定制好的模板,管理集群。
[0045]中央节点维护着所有种子节点的状态,同时还协调着种子节点的源和模板的同步和分发。中央节点根据规则选择并分发已定制的模板至种子节点,通过种子节点蔓延部署子节点,种子节点和子节点都可以被赋予云平台的角色。
[0046]由于模板中的特殊属性是根据目标物理节点的基本信息决定的,种子节点会去子节点上获取信息,并替换掉模板中的属性,然后进行最后一次的分发。
[0047]当子节点在接受到自己的角色之后,通过动态蔓延规则选择合适的源,并执行该角色动作,执行成功后,返回成功标示至种子节点。
[0048]当种子节点负载到达一定的程度,并把状态信息报告给中央节点之后,中央节点会发送选举命令,并产生一个或者多个新的种子节点。这些新的种子节点会分担老种子节点的流量,从而降低其他种子节点的负载,同时提高系统的性能。
[0049]执行步骤S104,种子节点基于模板,根据动态蔓延规则选择最优部署子节点,快速部署集群。
[0050]其中的根据动态蔓延规则快速部署集群是以一个或者多个节点为基点,快速辐射出多个子节点,再以父节点或者子节点快速的辐射出更多的孙节点。
[0051]所述动态蔓延规则包括:源的选择,当一个被定义的模板在物理机上执行的时候,必然涉及源的选择,策略通过源机器的响应速度、链接的稳定性、源节点的权重,来选择源;状态的维护,当一个物理机安装完毕之后,物理机把状态推送给父节点,父节点的上层节点不是中央节点则继续推送;边界的确定,蔓延部署固然是快速但是不得不面临边界的问题,我们通过节点的层级来构建树,根据节点的深度和节点的子树的数量来确定边界。
[0052]执行步骤S105,节点之间的分布式状态侦测和容错机制。
[0053]由于状态的侦测是为了更好的维护每一个节点,也是容错机制组成的重要一部分。
[0054]在本实施例中,所述状态侦测分为两部分,一部分为一致性状态侦测,这部分建立在种子节点之间,或者是中央节点和种子节点之间,目的是为了保证源一致性。另外一部分为可用性状态侦测,这部分建立在种子节点和子节点之间、种子节点与中央节点之间,目的是为了保证节点的之间的可用性。
[0055]所述一致性状态侦测具体为:当2个种子节点的源出现不一致的情况时,会根据中央节点的状态表中记录的2个种子节点上一次同步的时间戳来进行回滚操作,把近期操作过的种子节点回滚到该节点上一次正确操作时的状态。
[0056]所述可用性状态侦测具体为:采用被动接受的方式,每一个子节点会推送当前的状态给自己的父节点,父节点如果是中央节点则记录,如果不是则再向上推送。推送是一个建立连接的过程,如果连接没有建立成功,则广播。记录的方式采用COW原则,即当接受到子节点状态时,写入状态到结构化数据库表中,同时拷贝一份到别的节点上,如果没有拷贝成功则写失败,触发重写、转发或者主动请求。这样的话就可以保证集群状态的高可用。
[0057]而在集群状态高可用中,关键是需要保证中央节点的高可用,在本实施例中对于中央节点采用主备模式来实现,通过corosync与备节点做心跳保证中央节点服务高可用,另外利用drbd保证与备节点实现数据的持久化同步,最终达到中央节点的高可用。
[0058]本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。
【权利要求】
1.一种分布式环境下模板定制的云平台动态蔓延部署方法,其特征在于,包括: 构建基础部署环境; 根据输入定制不同的模板; 中央节点分发定制好的模板,管理集群; 种子节点基于模板,根据动态蔓延规则选择最优部署子节点,快速部署集群; 节点之间的分布式状态侦测和容错机制。
2.根据权利要求1所述的一种分布式环境下模板定制的云平台动态蔓延部署方法,其特征在于,构建基础部署环境的方法包括: 搭建中央节点; 通过固定模板自动化部署一到N个种子节点。
3.根据权利要求2所述的一种分布式环境下模板定制的云平台动态蔓延部署方法,其特征在于,所述中央节点包含pxe+kickstart自动化物理环境部署组件,模板定义组件,模板分为发组件、源组件以及主系统。
4.根据权利要求2所述的一种分布式环境下模板定制的云平台动态蔓延部署方法,其特征在于,在搭建中央节点完成之后,选择1-N个中央节点作为初始的种子节点,通过中央节点分发种子节点角色的模板,通过自动化部署完成种子节点搭建。
5.根据权利要求1所述的一种分布式环境下模板定制的云平台动态蔓延部署方法,其特征在于,当根据输入定制不同的模板,生成的模板属性包括角色、服务、物理节点,根据输入建立模板,模板使用角色命名,角色是多个服务的集合,服务之间存在依赖关系,存放在图结构中,在建立模板时通过图结构过滤,不存在依赖关系反转的则表示通过,否则即失败。
6.根据权利要求1所述的一种分布式环境下模板定制的云平台动态蔓延部署方法,其特征在于,中央节点分发定制好的模板,管理集群的具体实施方法包括: 中央节点维护着一张所有种子节点的状态的信息表,关系型数据库表,根据这张表来同步种子节点的源和模板信息,通过中央节点接受到的输入建立基础模板,并根据动态蔓延规则分发至种子节点; 种子节点会去子节点上获取信息,并替换掉模板中的属性,然后进行最后一次的分发; 子节点在接受到自己的角色之后,通过动态蔓延规则选择合适的源,并执行该角色动作,执行成功后,返回成功标示至种子节点; 当种子节点负载到达一定的程度,并把状态信息报告给中央节点之后,中央节点会发送选举命令,并产生一个或者多个新的种子节点。
7.根据权利要求1所述的一种分布式环境下模板定制的云平台动态蔓延部署方法,其特征在于,所述动态蔓延规则具体如下: 源的选择,当一个被定义的模板在物理机上执行的时候,通过源机器的响应速度、链接的稳定性、源节点的权重,来选择源; 状态的维护,当一个物理机安装完毕之后,物理机把状态推送给父节点,若父节点的上层节点不是中央节点则继续推送; 边界的确定,通过节点的层级来构建树,根据节点的深度和节点的子树的数量来确定边界。
8.根据权利要求1所述的一种分布式环境下模板定制的云平台动态蔓延部署方法,其特征在于,分布式状态侦测分为两部分,一部分为一致性状态侦测,这部分建立在种子节点之间,或者是中央节点和种子节点之间,另外一部分为可用性状态侦测,这部分建立在种子节点和子节点之间、种子节点与中央节点之间; 一致性状态侦测,当2个种子节点的源出现不一致的情况时,会根据中央节点的状态表中记录的2个种子节点上一次同步的时间戳来进行回滚操作,把近期操作过的种子节点回滚到该节点上一次正确操作时的状态; 可用性状态侦测,采用被动接受的方式,每一个子节点会推送当前的状态给自己的父节点,父节点如果是中央节点则记录,如果不是则再向上推送,所述推送是一个建立连接的过程,如果连接没有建立成功,则广播。
9.根据权利要求1所述的一种分布式环境下模板定制的云平台动态蔓延部署方法,其特征在于,保证整体集群状态的高可用,采用COW原则进行记录,即当接受到子节点状态时,写入状态到结构化数据库表中,同时拷贝一份到别的节点上,如果没有拷贝成功则写失败,触发重写、转发或者主动请求,同时针对性地加强中央节点的高可用,采用主备模式来实现,通过corosync与备节点做心跳,通过drbd与备节点来同步持久化的数据。
【文档编号】H04L29/08GK104184820SQ201410437491
【公开日】2014年12月3日 申请日期:2014年8月29日 优先权日:2014年8月29日
【发明者】郁强, 吴庆九, 曹晖 申请人:城云科技(杭州)有限公司