一种虚拟机管理功能动态扩展的管理方法
技术领域
本发明涉及虚拟机管理领域,具体涉及一种支持虚拟机管理功能动态扩展的方法。
背景技术
目前业界有多种虚拟机技术,包括VMware、Xen、Hyper-V、KVM等。这些虚拟机的管理接口不同,提供的功能也不同。第三方软件系统要实现对虚拟机的管理,需要在软件系统设计时定义好系统所支持的虚拟机的类型,并定义好该虚拟机管理提供哪些具体的功能。
出于不同原因的考虑,系统初期只支持部分的管理功能。这些原因可能是:
目前该虚拟机本身不支持某种功能,会在后续的版本中进行改进;
该虚拟机支持的某种功能,软件管理系统暂时不支持,会在后续的版本中进行改进;
软件系统需要在后期对新的功能进行支持,若初期没有为此功能定义好接口,或很难预定义接口,则后期的设计开发会对之前的系统有较大影响。系统需要重新设计这部分内容,开发完成后,也需要用新的系统替代原有的系统,无法实现对系统预定义之外的虚拟机管理新功能的动态扩展支持。
发明内容
为解决现有的虚拟机管理软件系统中,必须预定义好所有支持的虚拟机管理功能接口的缺陷,本发明提供了一种无需预定义虚拟机管理接口,可以动态添加新的虚拟机管理功能的方法。
一种虚拟机管理功能动态扩展的管理方法,将虚拟机管理功能模块根据系统定义的虚拟机功能模块接口重新编写,并通过系统定义的平台注册方法和系统管理接口将重新编写管理功能模块部署到系统指定位置,修改虚拟机配置信息;
包括以下步骤:
A1、系统客户端向系统服务端发送对虚拟机操作的请求信息;
B1、系统服务端接收到请求信息后,对信息内容进行分析,分别获取到虚拟机平台(即Hypervisor)信息、虚拟机信息及操作信息;
C1、系统服务端根据虚拟机平台信息,定位虚拟机平台类型,若系统支持该类型的虚拟机平台,则执行步骤4;否则提示出错并返回给系统客户端;
D1、系统服务端根据虚拟机信息,定位具体的虚拟机平台及虚拟机,若系统定位成功,则执行步骤5;否则提示出错并返回给系统客户端;
E1、系统服务端根据操作信息,定位具体的虚拟机管理功能模块,若系统定位成功,则执行步骤6;否则提示出错并返回给系统客户端;
F1、对虚拟机执行具体的操作,若系统服务端执行操作成功,则将操作结果返回给系统客户端;否则提示出错并返回给系统客户端。
优选的,所述系统客户端与系统服务端,分别指B/S架构及C/S架构软件系统的客户端与服务端。
优选的,步骤B1中所述虚拟机平台信息是指系统定义的用于标识虚拟机平台的类型的全局唯一ID。
优选的,步骤B1中所述虚拟机信息是指系统定义的用于标识虚拟机的信息,包括虚拟机的全局唯一ID、虚拟机名称、虚拟机类型、虚拟机所属的虚拟机平台ID。
优选的,步骤C1中所述定位虚拟机平台类型是根据虚拟机平台类型ID,在系统中查找已注册的虚拟机平台类型,查找成功则表示系统支持该类型的虚拟机平台。
优选的,步骤D1中所述定位具体的虚拟机平台及虚拟机是根据虚拟机类型及虚拟机所属的虚拟机平台ID,在系统中查找具体的运行该虚拟机的平台,再根据虚拟机ID及虚拟机名称,在系统中查找具体的虚拟机。
优选的,步骤E1中所述定位具体虚拟机管理功能模块是根据操作信息,在系统中查找具体的该操作所属的功能模块。
优选的,所述模块接口是针对所有虚拟机平台抽象出的通用接口。
本发明对新的虚拟机管理功能的支持可以实现动态扩展,无需终止软件管理系统的运行,无需对原有系统的代码进行改动;可以支持不同类型虚拟机。
附图说明
图1是本发明虚拟机架构图
具体实施方式
系统基于动态可扩展的架构进行设计,以模块为单位进行功能的划分及实现。系统在运行时,各模块之间可通过全局唯一ID进行查找并访问模块定义的接口,组织起系统内部的信息流。系统设计时定义好功能扩展接口及注册服务管理接口,为系统动态扩展新的虚拟机管理功能提供机制;将不同的管理功能划分成不同的管理功能模块实现,新的功能采用新的功能模块实现。
虚拟机管理功能动态扩展包括以下步骤:
步骤1)、根据系统定义的虚拟机功能模块接口,编写新的虚拟机管理功能模块。
步骤2)、根据系统定义的虚拟机平台注册方法,通过系统管理接口,将上述模块部署到系统指定位置,并修改虚拟机配置信息。
上述技术方案中,模块是指系统定义的编程单元,即满足一定条件的计算机代码的集合。模块接口是指系统定义的模块所要实现的功能的描述,但不需要定义功能的实现过程。
上述功能模块接口是对虚拟机各种管理功能抽象的通用接口,不针对某种具体类型的虚拟机管理功能。
系统对某个虚拟机的管理流程包括以下步骤:
步骤1)、系统客户端向系统服务端发送对虚拟机操作的请求信息。
步骤2)、系统服务端接收到请求信息后,对信息内容进行分析,分别获取到虚拟机平台(即Hypervisor)信息、虚拟机信息及操作信息。
步骤3)、系统服务端根据虚拟机平台信息,定位虚拟机平台类型。若系统支持该类型的虚拟机平台,则执行步骤4;否则提示出错并返回给系统客户端。
步骤4)、系统服务端根据虚拟机信息,定位具体的虚拟机平台及虚拟机。若系统定位成功,则执行步骤5;否则提示出错并返回给系统客户端。
步骤5)、系统服务端根据操作信息,定位具体的虚拟机管理功能模块。若系统定位成功,则执行步骤6;否则提示出错并返回给系统客户端。
步骤6)、对虚拟机执行具体的操作。若系统服务端执行操作成功,则将操作结果返回给系统客户端;否则提示出错并返回给系统客户端。
上述系统客户端与系统服务端,分别指B/S架构及C/S架构软件系统的客户端与服务端。
上述步骤2所述虚拟机平台信息是指系统定义的用于标识虚拟机平台的类型的全局唯一ID。采用字符串格式定义。字符串长度不限。
上述步骤2所述虚拟机信息是指系统定义的用于标识虚拟机的信息,包括虚拟机的全局唯一ID、虚拟机名称、虚拟机类型、虚拟机所属的虚拟机平台ID。
上述步骤2所述操作信息是指对虚拟机操作的内容,包括具体操作类型,操作参数。
上述步骤3所述定位虚拟机平台类型,是指根据虚拟机平台类型ID,在系统中查找已注册的虚拟机平台类型。查找成功则表示系统支持该类型的虚拟机平台。
上述步骤4所述定位具体的虚拟机平台及虚拟机,是指根据虚拟机类型及虚拟机所属的虚拟机平台ID,在系统中查找具体的运行该虚拟机的平台,再根据虚拟机ID及虚拟机名称,在系统中查找具体的虚拟机。
上述步骤5所述定位具体虚拟机管理功能模块,是指根据操作信息,在系统中查找具体的该操作所属的功能模块。
上述步骤6所述对虚拟机执行具体操作,是指根据操作类型及操作参数,对虚拟机执行管理操作。
图1表示系统运行时各个模块之间的层次关系图。系统服务端接收到请求时,各个模块之间的调用关系是自上而下的依次调用,来实现对虚拟机的管理功能。图中Hypervisor插件管理对象负责接收请求并分析信息,选择不同的虚拟机平台对象,即Hypervisor插件对象。Hypervisor插件对象根据请求信息中的虚拟机信息选择相应的虚拟机对象,并根据请求信息中的操作信息选择相应的管理功能模块执行具体的虚拟机管理操作。Hypervisor连接管理对象是系统实现对虚拟机管理的辅助模块。