一种虚拟机的部署方法和装置与流程

文档序号:11133710阅读:322来源:国知局
一种虚拟机的部署方法和装置与制造工艺

本发明涉及互联网技术领域,特别是涉及一种虚拟机的部署方法和一种虚拟机的部署装置。



背景技术:

目前,虚拟化技术在互联网技术领域的应用越来越广泛。随着近年多核系统、集群、网格以及云计算的广泛部署,虚拟化技术在商业应用上的优势日益体现,不仅降低了成本,而且还增强了系统安全性和可靠性,虚拟化的概念也逐渐深入到人们日常的工作与生活中。

虚拟机的硬件(如虚拟CPU,虚拟内存,虚拟磁盘等)可以通过虚拟化技术模拟出来的,其中虚拟磁盘本身是物理主机上的一个文件,被成为虚拟机磁盘镜像文件。所谓虚拟机模板,就是已经安装了基本操作系统的虚拟机镜像文件。在需要部署新的虚拟机时,可以把已有的模板进行复制,生成新的虚拟机镜像文件,然后使用这个镜像文件启动虚拟机。通过这样的方式,在新生成的虚拟机中,已经安装好了基本操作系统,不需要重新使用安装,大大提高了虚拟机的部署速度。

然而,在实际使用虚拟计算环境时,有时需要部署多台互相依赖的虚拟机,组成一个业务单元,共同实现信息系统的功能。在这种情况下,多台虚拟机间需要互联互通,使得虚拟机的部署和调试工作量和难度都会大大增加,部署的时间也会大大增长。

此外,由于互联网行业人员变动较快,大量项目由于交接问题导致虚拟机模块功能、程序设计细节无人了解。虽然通过人工Review检查代码可以从根本上解决问题,但耗时、费力,对于某些紧急情况并不适用。



技术实现要素:

鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种虚拟机的部署方法和相应的一种虚拟机的部署装置。

为了解决上述问题,本发明实施例公开了一种虚拟机的部署方法,包括:

获取产品对象一个或多个功能模块;

分别确定所述一个或多个功能模块配置文件和通信方式;

采用所述一个或多个功能模块,以及所述功能模块相应配置文件和通信方式创建一个或多个虚拟机模板包;

当在物理机上部署虚拟机时,采用所述一个或多个虚拟机模板包进行虚拟机的部署。

优选地,所述采用一个或多个功能模块,以及所述功能模块相应配置文件和通信方式创建一个或多个虚拟机模板包的步骤包括:

创建一个或多个初始虚拟机;

按照所述配置文件搭建所述一个或多个初始虚拟机的基础环境;

将所述功能模块分别安装至所述搭建基础环境后的一个或多个初始虚拟机中;

将安装功能模块后的一个或多个初始虚拟机打包为虚拟机模板包;

根据所述功能模块的通信方式在所述一个或多个虚拟机模板包添加相应的通信参数。

优选地,所述当在物理机上部署虚拟机时,采用所述一个或多个虚拟机模板包进行虚拟机的部署的步骤包括:

在物理机上安装逻辑卷管理器;

在所述物理机上设置存储空间,并基于所述存储空间上创建逻辑卷;

将所述一个或多个虚拟机模板包解压于所述逻辑卷上;

在所述逻辑卷上基于解压的虚拟机模板创建虚拟机;

基于通信参数确定虚拟机是否支持反向代理;

若是,则对支持反向代理的一个或多个虚拟机设置反向代理入口。

优选地,还包括:

在物理机上安装监控插件;

当所述监控插件监测到在所述逻辑卷基于解压的虚拟机模板创建虚拟机失败时,销毁所述虚拟机。

优选地,所述方法还包括:

在反向代理入口处接收到针对所述一个或多个虚拟机的外部请求,所述外部请求包括目标位置信息;

基于所述目标位置信息将所述外部请求转发至相应的虚拟机中。

本发明实施例还公开了一种虚拟机的部署装置,包括:

功能模块获取模块,用于获取产品对象一个或多个功能模块;

配置文件确定模块,用于分别确定所述一个或多个功能模块配置文件和通信方式;

虚拟机模板包创建模块,用于采用所述一个或多个功能模块,以及所述功能模块相应配置文件和通信方式创建一个或多个虚拟机模板包;

虚拟机部署模块,用于当在物理机上部署虚拟机时,采用所述一个或多个虚拟机模板包进行虚拟机的部署。

优选地,所述虚拟机模板包创建模块包括:

初始虚拟机创建子模块,用于创建一个或多个初始虚拟机;

基础环境搭建子模块,用于按照所述配置文件搭建所述一个或多个初始虚拟机的基础环境;

功能模块安装子模块,用于将所述功能模块分别安装至所述搭建基础环境后的一个或多个初始虚拟机中;

初始虚拟机打包子模块,用于将安装功能模块后的一个或多个初始虚拟机打包为虚拟机模板包;

通信参数添加子模块,用于根据所述功能模块的通信方式在所述一个或多个虚拟机模板包添加相应的通信参数。

优选地,所述虚拟机部署模块包括:

逻辑卷管理器安装子模块,用于在物理机上安装逻辑卷管理器;

逻辑卷创建子模块,用于在所述物理机上设置存储空间,并基于所述存储空间上创建逻辑卷;

虚拟机模板包解压子模块,用于将所述一个或多个虚拟机模板包解压于所述逻辑卷上;

虚拟机创建子模块,用于在所述逻辑卷上基于解压的虚拟机模板创建虚拟机;

反向代理确定子模块,用于基于通信参数确定虚拟机是否支持反向代理;若支持反向代理,则调用反向代理入口设置子模块;

反向代理入口设置子模块,用于对支持反向代理的一个或多个虚拟机设置反向代理入口。

优选地,还包括:

监控插件安装模块,用于在物理机上安装监控插件;

虚拟机销毁模块,用于当所述监控插件监测到在所述逻辑卷基于解压的虚拟机模板创建虚拟机失败时,销毁所述虚拟机。

优选地,所述方法还包括:

外部请求接收模块,用于在反向代理入口处接收到针对所述一个或多个虚拟机的外部请求,所述外部请求包括目标位置信息;

外部请求转发模块,用于基于所述目标位置信息将所述外部请求转发至相应的虚拟机中。

本发明实施例包括以下优点:

本发明实施例对于在产品对象完成时,对于产品对象的各个功能模块进行划分,并针对各个功能模块确定相应的配置文件和通信方式,然后再基于功能模块,以及功能模块相应的配置文件和通信方式创建虚拟机模板包,当需要部署虚拟机时,可以根据已创建的虚拟机模板包进行虚拟机的部署。本发明实施例中将各个功能模块打包为独立的虚拟机模板包,通过将各个功能模块打包为虚拟机模板包使得各个功能模块黑盒化,当需要进行虚拟机部署时,选择所需的虚拟机模板包进行各个功能模块的部署,这样,可以规避因操作人员对系统不了解装错插件的风险。本发明实施例的功能模块间通信端口可调,以保证功能模块安装后,系统可以正常运行。

附图说明

图1是本发明的一种虚拟机的部署方法实施例的步骤流程图;

图2是本发明的一种物理机上存储空间使用的示意图;

图3是本发明的一种虚拟机反向代理连接示意图;

图4是本发明的一种添加判断条件后的虚拟机反向代理连接示意图;

图5是本发明的一种物理机上虚拟机的结构示意图;

图6是本发明的一种功能模块的打包过程示意图;

图7是本发明的一种功能模块分层次打包的示意图;

图8是本发明的一种虚拟机的部署装置实施例的结构框图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

本发明实施例是基于xen虚拟化的模块化部署方案,目的在于将系统做成黑盒,运维部署时不再关心系统内部各个功能模块之间的关系,仅考虑整体硬件资源的使用,节省人力时间。同时,也方便工作交接,缩短后续接手人员的系统学习周期,能够快速上手,开始工作。本发明实施例的核心构思之一在于,将不同功能模块打包成独立虚拟机,转换为虚拟机模板包——黑盒化——基于虚拟机模板包进行模块式的部署。以此规避因人员对系统不了解装错插件的风险。实施前提是保证各个虚拟机模板包中功能模块的通信端口可调,以保证虚拟机模板包安装后,系统可以正常运行。

参照图1,示出了本发明的一种虚拟机的部署方法实施例的步骤流程图,具体可以包括如下步骤:

步骤101,获取产品对象一个或多个功能模块;

在具体实现中,产品对象可以是指软件产品,而软件产品可以被看作是由一系列具有特定功能的组件组成,作为一个完整的系统也可以被分解成一系列功能模块,这些功能模块之间的相互作用就形成了系统的所有功能。

在软件产品完成时,本发明实施例将根据其系统设计,将各个功能模块进行区分、合并,保证一个包内的功能模块互不冲突。

步骤102,分别确定所述一个或多个功能模块配置文件和通信方式;

本发明实施例会根据该产品对象的系统设计对于各个功能模块进行规划,例如需要确定产品对象各个功能模块的通信端口,以及配置文件文件等等,此外,还需要确定各个功能模块的通信方式,例如是否可通过反向代理进行消息的转发。具体地,需要考虑到该功能模块的基础使用场景,以及使用的端口号。当然,这些参数都是可以根据实际现场环境修改,在打包为虚拟机模板包之前或者之后均可。

步骤103,采用所述一个或多个功能模块,以及所述功能模块相应配置文件和通信方式创建一个或多个虚拟机模板包;

在确定各个功能模块的配置文件,通信端口等参数后,将根据这些参数将功能模块打包为一个虚拟机模板包。

在本发明的一种优选实施例中,所述步骤103可以包括如下子步骤:

子步骤S11,创建一个或多个初始虚拟机;

子步骤S12,按照所述配置文件搭建所述一个或多个初始虚拟机的基础环境;

子步骤S13,将所述功能模块分别安装至所述搭建基础环境后的一个或多个初始虚拟机中;

子步骤S14,将安装功能模块后的一个或多个初始虚拟机打包为虚拟机模板包;

子步骤S15,根据所述功能模块的通信方式在所述一个或多个虚拟机模板包添加相应的通信参数。

按照在产品对象完成时所做的规划,在虚拟机上进行部署。首先搭建初始虚拟机,然后在初始虚拟机上根据配置文件进行基础环境的搭建,并将功能模块安装至该初始虚拟机上,最后打包为虚拟机模板包。在本发明实施例中,对于虚拟机模板包还会添加通信参数,使得能够快速获知该虚拟机模板包的通信方式,例如是否支持反向代理,这样方便需要进行虚拟机部署时,操作人员可以快速获得虚拟机模板包的功能模块的通信方式。

需要说明的是,本发明实施例的虚拟机模板包的打包过程应该在产品对象完成时及时进行,以保证虚拟机模板包的绝对正确。这样后续在需要部署虚拟机时能够以此为准。

在本发明实施例中,可以对于虚拟机模板包进行可变参数的设置,可变参数的设置可以在虚拟机模板包的打包过程,也可以是在后续使用虚拟机模板包部署虚拟机的过程。

具体来说,可变参数是指会随着搭建环境不同而不同的各类参数,包括设备本身、网络环境等必须同实际对应的参数。

系统层面:CPU、内存、硬盘、IP地址。

业务层面:通信参数配置,对于可以添加反向代理的虚拟机模板包,一律通过反向代理进行消息转发;不可以的添加反向代理的虚拟机模板包,单独对待,即这类虚拟机模板包实行独立部署。

本发明实施例的虚拟机模板包中安装有各个功能模块,基于该功能模块能够实现不同的功能。本发明实施例的虚拟机模板包中,不仅包含了基本操作系统和部分公用软件(如基础运行环境,中间件等等),还包含需要使用的功能模块。公知的是,在部署虚拟机时需要安装的功能各不相同,而本发明实施例在部署虚拟机模板包时,已经安装有系统的功能模块,故减少虚拟机的部署时间。

步骤104,当在物理机上部署虚拟机时,采用所述一个或多个虚拟机模板包进行虚拟机的部署。

在本发明的一种优选实施例中,所述步骤104可以包括如下子步骤:

子步骤S21,在物理机上安装逻辑卷管理器;

子步骤S22,在所述物理机上设置存储空间,并基于所述存储空间上创建逻辑卷;

子步骤S23,将所述一个或多个虚拟机模板包解压于所述逻辑卷上;

子步骤S24,在所述逻辑卷上基于解压的虚拟机模板创建虚拟机;

子步骤S25,基于通信参数确定虚拟机是否支持反向代理,若是,则执行子步骤S26;

子步骤S26,对支持反向代理的一个或多个虚拟机设置反向代理入口。

当需要进行虚拟机的部署时,可以在服务器进行xen的虚拟化。xen是一个虚拟化软件,xen无需特殊硬件支持,就能达到高性能的虚拟化。

本发明实施例的虚拟机部署通过xen的命令进行。例如,创建新的主机:xl create主机配置文件。

具体地,首先在服务器上安装LVM(逻辑卷管理器,Logical Volume Manager),使得服务器支持创建逻辑卷。LVM是对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。通过LVM可以轻松管理服务器上的磁盘分区。

本发明实施例在服务器上准备存储空间,并在准备好的存储空间上创建一个或多个的逻辑卷,之后虚拟机模板包就可以解压于新建的逻辑卷上,完成虚拟机的创建。其中,对于物理机上各个逻辑卷的虚拟机使用的存储空间,可以参照图2所示。

本发明实施例对于能够通过反向代理转发消息的虚拟机,将在前端为这些虚拟机设置统一反向代理入口,如果有外部请求过来,那么将首先在反向代理入口接收到,然后再由反向代理入口来进行外部请求的分发操作,以将外部请求转发到目标虚拟机上。

在本发明的一种优选实施例中,所述的方法还可以包括如下步骤:

在反向代理入口处接收到针对所述一个或多个虚拟机的外部请求,所述外部请求包括目标位置信息;

基于所述目标位置信息将所述外部请求转发至相应的虚拟机中。

参照图3所示,在创建虚拟机过程中,很可能将某些串行请求的虚拟机组合在一起,此时为了保证各个虚拟机之间互不干扰,必然会设成不同的端口号,以分别接收外部来的请求。可以理解,这样势必造成虚拟机不能够自由进行组合。故在本发明实施例中为虚拟机在前端添加反向代理。

参照图4所示,本发明实施例设置了反向代理接口进行请求的分发操作,通过反向代理判断将请求分发至何处。具体地,每一个虚拟机上都部署有反向代理,发向虚拟机的所有请求都以反向代理为入口,可以节约端口资源,更重要的是,对于后端写死端口的服务,可通过反向代理进行一定程度分流。

当在反向代理的入口接收到请求端发送的外部请求时,根据外部请求中携带的域名、端口和IP地址等目标位置信息,对应外部请求分类,然后再分发到后端相应的虚拟机中。通过反向代理设置,解决了虚拟机重组的问题,使得本发明实施例对于虚拟机的部署变得标准化、自由化。

在本发明的一种优选实施例中,所述的方法还可以包括如下步骤:

在物理机上安装监控插件;

当所述监控插件监测到在所述逻辑卷基于解压的虚拟机模板创建虚拟机失败时,销毁所述虚拟机。

本发明实施例可以在虚拟机的安装部署过程中,安装监控插件。一但在虚拟机的安装部署过程中出现宕机,或者业务不明原因的中断导致虚拟机安装部署失败时,可以直接销毁虚拟机重建一个。由于xen的虚机在建立时,对于存储设备没有特殊要求,只要有就行,即可以使用原有逻辑卷重建,且数据不会丢失。

参照图5,从物理层面(physical machine)上,虚拟机内的功能模块原则上保持一虚拟机一功能模块,以保证功能模块组合的灵活性。在虚拟机组合(virtual-1,virtual-2……virtual-n)中的各个虚拟机的功能模块,都将通过反向代理来转发消息,可以节约端口资源,当接收到外部来的请求时,将根据请求中携带的目标位置信息转发到对应的虚拟机的功能模块。

需要说明的是,反向代理的位置可以设置虚拟机上,也可以设置物理机上,具体的设置方式取决于对外接口设置。比方说,如果使用物理机提供对外的网络访问,那么可以将反向代理设置在物理机上,如果分成多个网络接口,那么就可以将反向代理设置在虚拟机上,在实际应用中根据需求设置即可,本发明实施例对此不加以限制。

本发明实施例对于在产品对象完成时,对于产品对象的各个功能模块进行划分,并针对各个功能模块确定相应的配置文件和通信方式,然后再基于功能模块,以及功能模块相应的配置文件和通信方式创建虚拟机模板包,当需要部署虚拟机时,可以根据已创建的虚拟机模板包进行虚拟机的部署。本发明实施例中将各个功能模块打包为独立的虚拟机模板包,通过将各个功能模块打包为虚拟机模板包使得各个功能模块黑盒化,当需要进行虚拟机部署时,选择所需的虚拟机模板包进行各个功能模块的部署,这样,可以规避因操作人员对系统不了解装错插件的风险。本发明实施例的功能模块间通信端口可调,以保证功能模块安装后,系统可以正常运行。

为了使本领域技术人员更好地理解本发明实施例,以下对于本发明实施例的虚拟机模板包的打包进行说明。

参照图6,将系统的各个功能模块打包的过程可以概述为:系统模块化,操作系统虚拟化,分功能模块进行虚拟机的部署,确定功能模块的通信方式(例如是否支持反向代理),最终将安装到虚拟机的功能模块打包,至此完成对于虚拟机模板包的制作过程。当需要进行虚拟机部署时,相关人员可以利用这些虚拟机模板包来快速进行部署。

本发明实施例中对于功能模块是分层次打包,具体可以参照图7所示:

系统层面打包:包含基础环境的tar压缩包。

业务层面打包:业务部署完成后,制作的tar压缩包。

整个系统打包:根据实际现场环境,在业务层面打包的基础上,修改相应参数,使压缩包具有直接移植的属性。

本发明实施例这种分层次的打包方式,使得虚拟机的功能模块从开发到部署,各个阶段的相关人员都能找到适应于自身使用的模板包,加速环境搭建、简化搭建开发前置环境的步骤,同时保证操作的可复制性,无论谁,都可在简单的培训后参与实际虚拟机部署工作。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。

参照图8,示出了本发明的一种虚拟机的部署装置实施例的结构框图,具体可以包括如下模块:

功能模块获取模块201,用于获取产品对象一个或多个功能模块;

配置文件确定模块202,用于分别确定所述一个或多个功能模块配置文件和通信方式;

虚拟机模板包创建模块203,用于采用所述一个或多个功能模块,以及所述功能模块相应配置文件和通信方式创建一个或多个虚拟机模板包;

在本发明的一种优选实施例中,所述虚拟机模板包创建模块203可以包括如下子模块:

初始虚拟机创建子模块,用于创建一个或多个初始虚拟机;

基础环境搭建子模块,用于按照所述配置文件搭建所述一个或多个初始虚拟机的基础环境;

功能模块安装子模块,用于将所述功能模块分别安装至所述搭建基础环境后的一个或多个初始虚拟机中;

初始虚拟机打包子模块,用于将安装功能模块后的一个或多个初始虚拟机打包为虚拟机模板包;

通信参数添加子模块,用于根据所述功能模块的通信方式在所述一个或多个虚拟机模板包添加相应的通信参数。

虚拟机部署模块204,用于当在物理机上部署虚拟机时,采用所述一个或多个虚拟机模板包进行虚拟机的部署。

在本发明的一种优选实施例中,所述虚拟机部署模块204可以包括如下子模块:

逻辑卷管理器安装子模块,用于在物理机上安装逻辑卷管理器;

逻辑卷创建子模块,用于在所述物理机上设置存储空间,并基于所述存储空间上创建逻辑卷;

虚拟机模板包解压子模块,用于将所述一个或多个虚拟机模板包解压于所述逻辑卷上;

虚拟机创建子模块,用于在所述逻辑卷上基于解压的虚拟机模板创建虚拟机;

反向代理确定子模块,用于基于通信参数确定虚拟机是否支持反向代理;若支持反向代理,则调用反向代理入口设置子模块;

反向代理入口设置子模块,用于对支持反向代理的一个或多个虚拟机设置反向代理入口。

在本发明的一种优选实施例中,所述装置还可以包括如下模块:

监控插件安装模块,用于在物理机上安装监控插件;

虚拟机销毁模块,用于当所述监控插件监测到在所述逻辑卷基于解压的虚拟机模板创建虚拟机失败时,销毁所述虚拟机。

在本发明的一种优选实施例中,所述装置还可以包括如下模块:

外部请求接收模块,用于在反向代理入口处接收到针对所述一个或多个虚拟机的外部请求,所述外部请求包括目标位置信息;

外部请求转发模块,用于基于所述目标位置信息将所述外部请求转发至相应的虚拟机中。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本发明所提供的一种虚拟机的部署方法和一种虚拟机的部署装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1