云计算平台中快速部署和更新虚拟环境系统及其方法_3

文档序号:8380771阅读:来源:国知局
的软件包,由系统默认提供,或用户手动注册;用户希望将webl安装在虚拟机serverl上,dbl安装在虚拟机server2上,并且webl是依赖于dbl的,即配置webl时需要将配置中dbconnect1n的值修改为dbl所提供的数据库服务地址,上述工作由软件操作执行模块完成。
[0072]上述虚拟环境在部署完成后可以进行更新,例如更新为图5所示的虚拟环境时,模型差异计算模块会计算从图4到图5的模型差异,计算完成后的M集合为{serverf,dbl,(webl, dbl), (dbl, server2)}, N 集合为{server3, server4, hi, webl, web2, (hi, server3)
,(webl, serverl), (web2, server4), (hi, webl), (hi, web2), (web2, dbl) },D 集合为空,C 集合为{serverl},其所表示的操作集合为:
[0073]将serverl从Typel转换为Type2,创建类型为Type2的虚拟机server3和server4,在server3上安装HAProxy类型软件包hl,在serverl上安装Web类型软件包webl,在server4上安装Web类型软件包web2,修改hi配置使其依赖于webl和web2,修改web2配置使其依赖于dbl ο
[0074]本实施例中,操作执行模块接收模型差异计算模块生成的操作集合后,调用操作排序模块并根据操作对象在模型形成的图中的拓扑序进行反向排序并输出,按照排序结果,依次调用硬件操作执行模块执行虚拟机相关的操作以及软件操作执行模块执行软件包相关的操作。
[0075]而硬件操作执行模块与硬件资源池模块紧密关联,如图6(a)所示,在新增虚拟机时,首先使用资源池中的可用资源,只有在没有可用资源时才调用云计算平台提供的编程接口发出指令生成新的虚拟机,如图6(b)所示,在删除虚拟机时,将虚拟机放入资源池空闲位置,只有在资源池已达最大限制容量时才真正销毁该虚拟机。软件操作执行模块软件包注册模块以及自动化软件配置管理工具紧密相关,在安装、删除、修改软件包时利用自动化软件配置管理工具已有的功能进行实施。
[0076]如图7和图8所示,上述云计算平台中快速部署和更新虚拟环境系统的方法,包括以下步骤:
[0077](I)用户按照虚拟环境配置描述规约描述所需虚拟环境,形成配置文件;其中,虚拟环境包括虚拟机硬件资源和软件系统,以及相互之间的关系,并且该配置文件只描述期望得到的虚拟环境的各组成部分和关联关系;
[0078](2)解析上述所得的配置文件生成模型,模型由顶点和边形成有向图,顶点表示虚拟机和软件包,边表示顶点之间的关系,有向图整体表示所需虚拟环境;
[0079](3)进行模型差异计算得到部署或更新时需要执行的操作集合,并对该操作集合进行排序形成工作流,其中,所述操作集合中的操作包括对顶点和边的增加、删除和修改;在首次部署时使用空模型作为旧模型,后续更新时使用前一次配置作为旧模型,用户最新提交的配置文件解析成的模型是新模型;
[0080](4)生成硬件资源池,在实际部署前创建虚拟机硬件资源,减少部署和更新时等待创建虚拟硬件所需的时间;并使用该硬件资源池和云计算平台提供的编程接口执行硬件相关操作;
[0081](5)将部署和更新所涉及的软件在自动化软件配置管理工具上注册为软件包,注册后的软件包中包括有安装文件、安装方法、卸载方法和配置修改方法,且该软件包用于本次部署和后续更新以及其他部署和更新;
[0082](6)使用自动化软件配置管理工具提供的编程接口和已注册的软件包执行软件相关操作,对软件进行安装、卸载和修改;
[0083](7)按照步骤(3)所得工作流顺序,执行所述硬件相关操作和所述软件相关操作后获得虚拟环境;
[0084](8)修改配置文件并再次提交可以重复上述过程更新已部署的虚拟环境。
[0085]所述步骤(I)中配置文件的描述规约包括:
[0086]使用kindOf关键词声明虚拟机类型和软件包类型,在语句末尾使用with关键词添加属性描述具体配置;
[0087]使用hostOn关键词声明某软件包安装于某虚拟机;
[0088]使用cbpengOn关键词声明软件包与软件包之间的依赖关系,在语句末尾使用at关键词声明所涉及的软件包配置项,未指定配置项的使用缺省配置项。
[0089]所述步骤(2)中,边表示的关系包括软件包与虚拟机之间的hostOn、软件包与软件包之间的dependOn关系;
[0090]所述各个顶点和边的属性集为:顶点的属性表示虚拟机的名字、配置类型以及软件包的名字、类型、版本和具体配置;边的属性表示仅用于软件包与软件包之间的dependOn关系以及该dependOn关系所涉及的具体配置,软件包与虚拟机之间的hostOn关系不带属性。
[0091]所述步骤(3)中,进行模型差异计算输出从模型A转换到模型B所需的操作集合,其具体计算过程包括:
[0092]设定四个集合,匹配集合M、新增集合N、删除集合D和修改集合C,集合M表示完全一致不需要进行操作,集合N表示需要创建新的虚拟机或安装新的软件包,集合D表示删除虚拟机或软件包,集合C表示修改软件包的配置或将虚拟机的类型进行更改,且修改虚拟机的类型由删除原虚拟机和创建新虚拟机组成;
[0093]对比模型A和模型B,利用顶点的名字匹配各顶点,利用边的起始点、终止点和属性集匹配各边,将所有匹配的对放入集合M ;
[0094]扫描所有模型A中不存在但在模型B中存在的顶点和边,放入集合N,即这些顶点和边需要新建;
[0095]扫描所有模型A中存在但在模型B中不存在的顶点和边,放入集合D,即这些顶点和边需要删除;
[0096]扫描M集合中所有匹配的对,将任何有属性更改的对放入集合C并标明修改之处,即这些顶点和边的属性需要修改;
[0097]扫描集合M和集合C中初始点是软件包、终止点是虚拟机的边,如果该虚拟机处于集合N、D或C中,即该虚拟机已经不是原来的那台,则说明软件包从原来所处的虚拟机上移动了新创建的虚拟机上,应将该软件包顶点和该边放入集合N,表示在新创建的虚拟机上安装该软件包;
[0098]最后,为集合N中元素生成新建操作,为集合D中元素生成删除操作,为集合C中元素生成修改操作,忽略集合M中元素。
[0099]所述步骤(3)中,所述工作流具体是指,将操作集合中的操作按照操作对象在模型有向图上的拓扑序即依赖关系进行反向排序:从拓扑序最大、依赖关系最深的对象开始依次执行到拓扑序最小、依赖关系最浅的对象,保证操作对象的依赖对象会先于本操作对象被创建。
[0100]所述步骤(4)中,生成硬件资源池后设定资源池容量的最大值和最小值,调用云计算平台提供的编程接口发出指令生成虚拟机直至达到最大容量,硬件资源池中的虚拟机在部署和更新时被优先使用,其中,硬件资源池容量的最大值和最小值是一组键值对,表示不同虚拟机配置类型所对应的容量;
[0101]在执行硬件相关操作时,若需新建硬件资源,优先使用硬件资源池中的资源,硬件资源池中资源无法满足执行操作时,向云计算平台提供的编程接口发出指令创建资源;若需删除资源,优先将资源放入硬件资源池中,除非硬件资源池中相应类型资源数量以达最大值,这种情况下将销毁该资源;使用过硬件资源池中的资源后,若资源池中相应资源的数量少于规定的最小值,则会向云计算平台提供的编程接口发出指令创建一定量资源满足最小值。
[0102]上述云计算平台中快速部署和更新虚拟环境系统的方法,如图7所示,简而言之即是:编写虚拟环境的配置文件,提交配置文件,解析配置文件生成模型,查询模型存储数据库,若是首次部署,则在进行模型差异计算时使用空模型与当前模型进行比较,若不是首次部署即这是一次更新操作,则在进行模型差异计算时使用距离当前最近的旧模型与当前模型进行比较,对模型差异算法输出的操作集合按照拓扑序进行反向排序形成工作流,
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1