一种通用的虚拟机收养方法

文档序号:8006471阅读:367来源:国知局
一种通用的虚拟机收养方法
【专利摘要】本发明涉及云计算【技术领域】,特别是指一种通用的虚拟机收养方法。本发明首先获取虚拟机列表;然后根据列表中的虚拟机ID依次获取明细信息;根据该信息在宿主机上准备好xml格式配置文件、创建包含有所属宿主机IP地址的文件;然后定时、依次扫描判断虚拟机是否处于可收养状态;如果处于可收养,则进行IP一致比较,一致则收养。本发明提供了一种通用的虚拟机收养机制,可收养XEN、KVM、VMware等所有适配libvirt的持久化和非持久化虚拟机;可应用于虚拟化尤其是云计算领域里宿主机对虚拟机的管理控制上。
【专利说明】一种通用的虚拟机收养方法
【技术领域】
[0001]本发明涉及云计算【技术领域】,特别是指一种通用的虚拟机收养方法。
【背景技术】
[0002]云计算解决方案中,各个计算节点存在着大量的持久化、非持久化虚拟机。这些虚拟机创建方式又各不相同,有的是在XEN环境下创建,有的是在KVM环境下创建,另外还有Vmware等。除了虚拟化环境不同以外,计算节点上面的虚拟机还存在有的是通过管理平台创建,有的又是管理人员直接从底层创建。面对各种情况下的虚拟机,需要云平台提供一种通用的、简单而有效的虚拟机收养方式,以实现对虚拟机及时有效的管理。
[0003]目前虚拟机的收养,有如下方法:在宿主机上调用hypervisor的命令获取当前注册在宿主机上的虚拟机列表;根据列表中显示的虚拟机ID调用hypervisor命令获取单台虚拟机的明细信息,得到虚拟机的二进制配置文件和虚拟磁盘文件的路径;利用Iinux中内存文件映射mmap将虚拟机二进制文件保存到物理磁盘文件中;虚拟机收养模块读取该二进制文件实现虚拟机的收养。
[0004]这种收养方式存在如下问题:
[0005]一是不方便,虚拟机的收养依赖于一个二进制文件,这个文件对于底层管理人员来说是透明的,我们无法对虚拟机的配置做相应修改,这样就不利于错误的排查;
[0006]二是收养不完整,这种虚拟机收养机制完全依赖于云平台,如果管理人员在底层一不小心将虚拟机的二进制文件删除或者进行了错误操作,那么这样的虚拟机就不能被收养;另外当底层开发人员或是管理人员没有通过云平台而是自己手动创建了虚拟机进行相关的开发试验时,由于这些虚拟机没有保存相应信息的二进制文件,而不能被收养,这样就满足不了开发人员和管理人员的需求;
[0007]三是机制复杂,每一次虚拟机的操作都需要云平台进行mmap内存与文件进行映射,管理人员很难自我管理;
[0008]四是不能很好的支持其他操作,例如虚拟机迁移,我们必须先映射二进制文件至内存,然后修改虚拟机所属宿主机,再把二进制文件映射到磁盘,这个过程比较复杂;
[0009]为了满足管理人员对虚拟机的有效管理,实现对不同虚拟化环境下创建的持续化、非持续化的虚拟机进行收养,实现对虚拟机其他操作的良好支持,需要一种简单方便、完整通用的虚拟机收养机制。

【发明内容】

[0010]本发明解决的技术问题在于提供一种简单通用的虚拟机收养方法,解决目前收养方法所存在的复杂、难控制、收养不全、对其他操作支持不好等问题。
[0011]本发明解决上述技术问题的技术方案是:包括如下步骤:
[0012]步骤1:在宿主机上调用hypervisor命令获取当前注册在宿主机上的虚拟机列表;[0013]步骤2:根据虚拟机列表中的虚拟机ID依次调用hypervisor命令获取虚拟机的明细信息;
[0014]步骤3:根据虚拟机明细信息在宿主机指定目录下生成符合Iibvirt支持的xml格式配置文件,同时创建生成一个包括虚拟机所属宿主机IP的文件;
[0015]步骤4:虚拟机收养模块定时的依次扫描所有虚拟机子目录判断虚拟机是否处于可收养状态;如果不满足可收养状态则跳过该虚拟机收养过程继续下一台虚拟机收养过程,否则读取虚拟机子目录里的配置文件和IP地址文件;
[0016]步骤5:判断读取到的IP地址文件里的IP与当前宿主机使用IP是否一致;如果一致,则进行收养;否则跳过该虚拟机的收养,继续执行步骤4 ;
[0017]步骤6:将进行收养的虚拟机的Iibvirt配置文件读取出来,以反序列化方式解析生成虚拟机对象;
[0018]步骤7:将虚拟机对象添加到虚拟机列表全局变量中或是更新列表中的虚拟机信息供其他服务模块进行操作。
[0019]所述的虚拟机不可收养状态是指虚拟机处于正在被创建、正在被迁移、正在打包等某些操作执行过程中的中间状态。
[0020]所述的虚拟机收养是指云平台将已有的虚拟机纳入到平台管理中,能对其进行查看、删除、停止、重启、修改配置、打包操作;
[0021]所述的云平台是指用于管理控制所有的计算资源、存储资源、对外提供各种云服务的一个云操作系统。
[0022]所述的方法支持如XEN、KVM、VMware等各种虚拟化技术创建的持久化和非持久化适配Iibvirt虚拟机。
[0023]所述宿主机指定目录是指配置好的存放所有用户虚拟机镜像及其Iibvirt配置文件的目录;
[0024]所述的所有用户虚拟机包括步骤利用hypervisor命令获取到的虚拟机和当前没有在宿主机上启动注册而存放在宿主机指定的虚拟机存放目录下面的虚拟机。
[0025]采用本发明的方法,可收养XEN、KVM、VMware等所有适配Iibvirt的持久化和非持久化虚拟机,同时能够满足虚拟机管理人员根据需要修改虚拟机配置信息要求,对虚拟机其他如迁移、打包等操作支持较好。采用本发明的收养机制,可以将虚拟机镜像文件放在共享存储中,然后复制配置文件和IP文件到新宿主机,并修改IP文件里的IP值即可。
【专利附图】

【附图说明】
[0026]下面结合附图对本发明进一步说明;
[0027]附图为本发明方法流程图。
【具体实施方式】
[0028]本发明首先在宿主机上调用“virsh list—all”获取当前宿主机上面的虚拟机列表:
【权利要求】
1.一种通用的虚拟机收养方法,其特征在于:包括如下步骤; 步骤1:在宿主机上调用hypervisor命令获取当前注册在宿主机上的虚拟机列表; 步骤2:根据虚拟机列表中的虚拟机ID依次调用hypervisor命令获取虚拟机的明细信息; 步骤3:根据虚拟机明细信息在宿主机指定目录下生成符合Iibvirt支持的xml格式配置文件,同时创建生成一个包括虚拟机所属宿主机IP的文件; 步骤4:虚拟机收养模块定时的依次扫描所有虚拟机子目录判断虚拟机是否处于可收养状态;如果不满足可收养状态则跳过该虚拟机收养过程继续下一台虚拟机收养过程,否则读取虚拟机子目录里的配置文件和IP地址文件; 步骤5:判断读取到的IP地址文件里的IP与当前宿主机使用IP是否一致;如果一致,则进行收养;否则跳过该虚拟机的收养,继续执行步骤4 ; 步骤6:将进行收养的虚拟机的Iibvirt配置文件读取出来,以反序列化方式解析生成虚拟机对象; 步骤7:将虚拟机对象添加到虚拟机列表全局变量中或是更新列表中的虚拟机信息供其他服务模块进行操作。
2.根据权利要求1所述的一种通用的虚拟机收养方法,其特征在于;所述的虚拟机不可收养状态是指虚拟机处于正在被创建、正在被迁移、正在打包等某些操作执行过程中的中间状态。
3.根据权利要求1所述的一种通用的虚拟机收养方法,其特征在于:所述的虚拟机收养是指云平台将已有的虚拟机纳入到平台管理中,能对其进行查看、删除、停止、重启、修改配置、打包操作; 所述的云平台是指用于管理控制所有的计算资源、存储资源、对外提供各种云服务的一个云操作系统。
4.根据权利要求2所述的一种通用的虚拟机收养方法,其特征在于:所述的虚拟机收养是指云平台将已有的虚拟机纳入到平台管理中,能对其进行查看、删除、停止、重启、修改配置、打包操作; 所述的云平台是指用于管理控制所有的计算资源、存储资源、对外提供各种云服务的一个云操作系统。
5.根据权利要求1至4任一项所述的一种通用的虚拟机收养方法,其特征在于:所述的方法支持如XEN、KVM、VMware等各种虚拟化技术创建的持久化和非持久化适配Iibvirt虚拟机。
6.根据权利要求求I至4任一项所述的一种通用的虚拟机收养方法,其特征在于:所述宿主机指定目录是指配置好的存放所有用户虚拟机镜像及其Iibvirt配置文件的目录; 所述的所有用户虚拟机包括步骤利用hypervisor命令获取到的虚拟机和当前没有在宿主机上启动注册而存放在宿主机指定的虚拟机存放目录下面的虚拟机。
7.根据权利要求求5所述的一种通用的虚拟机收养方法,其特征在于:所述宿主机指定目录是指配置好的存放所有用户虚拟机镜像及其Iibvirt配置文件的目录; 所述的所有用户虚拟机包括步骤利用hypervisor命令获取到的虚拟机和当前没有在宿主机上启动注册而存放在宿主机指定的虚拟机存放目录下面的虚拟机。
【文档编号】H04L29/08GK103473113SQ201310397427
【公开日】2013年12月25日 申请日期:2013年9月4日 优先权日:2013年9月4日
【发明者】熊梦, 莫展鹏, 杨松, 季统凯 申请人:国云科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1