买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种异构虚拟机硬盘托管方法、系统、存储介质及Nova平台_上海市信息网络有限公司_201810634189.8 

申请/专利权人:上海市信息网络有限公司

申请日:2018-06-20

公开(公告)日:2022-02-22

公开(公告)号:CN109032753B

主分类号:G06F9/455(20060101)

分类号:G06F9/455(20060101);G06F9/4401(20180101)

优先权:

专利状态码:有效-授权

法律状态:2022.02.22#授权;2019.01.11#实质审查的生效;2018.12.18#公开

摘要:本发明提供一种异构虚拟机硬盘托管方法、系统、存储介质及Nova平台,包括以下步骤:基于虚拟机托管请求,获取虚拟机配置信息,所述虚拟机配置信息包含硬盘配置信息;基于所述硬盘配置信息发送硬盘托管请求至Cinder,以使Cinder生成硬盘与云盘的映射信息,并获取Cinder发送来的云盘唯一标识码;根据所述虚拟机的配置信息生成虚拟机规格信息,根据所述虚拟机规格信息和所述云盘唯一标识码配置所述虚拟机;发送云盘挂载请求至Cinder,以使Cinder生成云盘与虚拟机的映射信息,并接收Cinder返回的挂载结果。本发明的一种异构虚拟机硬盘托管方法、系统、存储介质及Nova平台,通过对虚拟机硬盘的托管,当进行托管操作时,不影响虚拟机的使用。

主权项:1.一种异构虚拟机硬盘托管方法,其特征在于,包括以下步骤:基于虚拟机托管请求,获取虚拟机配置信息,所述虚拟机配置信息包含硬盘配置信息;基于所述硬盘配置信息发送硬盘托管请求至Cinder,以使Cinder生成硬盘与云盘的映射信息,并获取Cinder发送来的云盘唯一标识码;根据所述虚拟机的配置信息生成虚拟机规格信息,根据所述虚拟机规格信息和所述云盘唯一标识码配置所述虚拟机;发送云盘挂载请求至Cinder,以使Cinder生成云盘与虚拟机的映射信息,并接收Cinder返回的挂载结果;还包括基于云盘与虚拟机的映射信息对硬盘进行解挂,包括以下步骤:发送解挂虚拟机的硬盘请求给Cinder,以使Cinder基于原虚拟机的硬盘信息选择最优的存储池,在所述存储池上创建空壳虚拟机,将硬盘从原虚拟机上解挂,以及拷贝所述硬盘至所述空壳虚拟机的目录下,建立硬盘与空壳虚拟机的映射关系,删除记录于Cinder的云盘和原虚拟机的映射关系;接收Cinder发送的已经删除云盘和原虚拟机的映射关系的应答,删除记录于Nova的云盘和原虚拟机的映射关系。

全文数据:一种异构虚拟机硬盘托管方法、系统、存储介质及Nova平台技术领域[0001]本发明涉及通信技术领域,特别是涉及一种异构虚拟机硬盘托管方法、系统、存储介质及Nova平台。背景技术[0002]OpenStack是目前最活跃的云计算开源平台,许多企业都在尝试用OpenStack将现有数据中心虚拟化平台连接起来,其中最典型的就是OpenStack与虚拟化平台(VMWare的集成。OpenStack框架由核心项目和扩展的项目构成,云计算实验平台中部署了以下6个核心子项目,以协作完成特定的功能:[0003]1计算服务Nova,它是云计算系统的结构控制器,根据用户需求提供虚拟服务,负责管理虚拟机实例的整个生命周期。[0004]2镜像服务Glance,它提供虚拟磁盘镜像的目录分类管理以及镜像库存储管理。[0005]3网络服务Neutron,实现虚拟机的网络资源管理,为OpenStack其他服务提供网络连接服务。[0006]⑷认证服务Keystone,它为OpenStack所有的系统提供统一的授权和身份验证服务。[0007]5块存储服务Cinder,用以实现对块存储的管理,为虚拟机提供云硬盘块设备)服务。[0008]⑹Web界面服务Horizon,它是基于OpenStackAPI接口开发的Web呈现,是用户使用云平台的界面。[0009]现有的方案支持将已有的VMWare集群的虚拟机和硬盘托管到OpenStack,但虚拟机托管和硬盘托管是两个独立的流程,而现有的硬盘托管方法需要中断业务并迀移云盘,且迀移云盘过程比较耗时,业务中断时间较久。迀移云盘时长主要取决于硬盘文件的大小和文件拷贝的速度,而正在使用硬盘的用户一般是不允许业务中断的。发明内容[0010]鉴于以上所述现有技术的缺点,本发明的目的在于提供一种异构虚拟机硬盘托管方法、系统、存储介质及Nova平台,用于解决现有技术中对虚拟机硬盘托管需要中断对硬盘的业务操作的问题。[0011]为实现上述目的及其他相关目的,本发明提供一种,基于虚拟机托管请求,获取虚拟机配置信息,所述虚拟机配置信息包含硬盘配置信息;基于所述硬盘配置信息发送硬盘托管请求至Cinder,以使Cinder生成硬盘与云盘的映射信息,并获取Cinder发送来的云盘唯一标识码;根据所述虚拟机的配置信息生成虚拟机规格信息,根据所述虚拟机规格信息和所述云盘唯一标识码配置所述虚拟机;发送云盘挂载请求至Cinder,以使Cinder生成云盘与虚拟机的映射信息,并接收Cinder返回的挂载结果。[0012]于本发明的一实施例中,还包括向Cinder发送更新云盘状态指令,以使Cinder设置所述云盘状态为使用状态。[0013]于本发明的一实施例中,所述虚拟机配置信息包括虚拟机的唯一标识码、内存、中央处理单元个数、物理位置信息和硬盘配置信息;所述硬盘配置信息包括虚拟机中所有硬盘的路径和名称、硬盘大小、硬盘类型、硬盘适配器类型和共享属性。[0014]于本发明的一实施例中,所述硬盘与云盘的映射信息包括云盘大小、硬盘是否被托管、所述云盘是否可挂载多个虚拟机、云盘类型、适配器类型和硬盘的路径和名称。[0015]于本发明的一实施例中,所述云盘与虚拟机的映射信息包括虚拟机唯一标识码、云盘唯一标识码和云盘挂载点。[0016]于本发明的一实施例中,还包括根据所述挂载结果生成虚拟机与云盘的映射信息,所述虚拟机与云盘的映射信息包括虚拟机唯一标识码、云盘唯一标识码和云盘挂载点。[0017]于本发明的一实施例中,还包括基于云盘与虚拟机的映射信息对硬盘进行解挂,包括以下步骤:发送解挂虚拟机的硬盘请求给Cinder,以使Cinder基于原虚拟机的硬盘信息选择最优的存储池,在所述存储池上创建空壳虚拟机,将硬盘从原虚拟机上解挂,以及拷贝所述硬盘至所述空壳虚拟机的目录下,建立硬盘与空壳虚拟机的映射关系,删除记录于Cinder的云盘和原虚拟机的映射关系;接收Cinder发送的已经删除云盘和原虚拟机的映射关系的应答,删除记录于Nova的β盘和原虚拟机的映射关系。[0018]为实现上述目的,本发明还提供一种异构虚拟机硬盘托管系统,包括接收模块、第一发送模块、创建模块和第二发送模块;所述接收模块用于基于虚拟机托管请求,获取虚拟机配置信息,所述虚拟机配置信息包含硬盘配置信息;所述第一发送模块用于基于所述硬盘配置信息发送硬盘托管请求至Cinder,以使Cinder生成硬盘与云盘的映射信息,并获取Cinder发送来的云盘唯一标识码;所述创建模块用于根据所述虚拟机的配置信息生成虚拟机规格信息,根据所述虚拟机规格信息和所述云盘唯一标识码配置所述虚拟机;所述第二发送模块用于发送云盘挂载请求至Cinder,以使Cinder生成云盘与虚拟机的映射信息,并接收Cinder返回的挂载结果。[0019]为实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述异构虚拟机硬盘托管方法。[0020]为实现上述目的,本发明还提供一种Nova平台,包括:处理器和存储器;所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述Nova平台执行上述异构虚拟机硬盘托管方法。[0021]为实现上述目的,本发明还提供一种异构虚拟机硬盘托管系统,包括上述的Nova平台和Cinder平台;所述Cinder平台用于接收硬盘托管请求时,生成硬盘与云盘的映射信息,并发送云盘唯一标识码至所述Nova平台;所述Cinder平台接收云盘挂载请求时,生成云盘与虚拟机的映射信息并发送挂载结果至所述Nova平台。[0022]如上所述,本发明的一种异构虚拟机硬盘托管方法、系统、存储介质及Nova平台,具有以下有益效果:按照资源映射的方式托管硬盘,在托管硬盘过程中虚拟机无需关机、不解挂、不迀移硬盘,无需中断虚拟机业务,实现了平滑托管。按此硬盘托管方法托管到OpenStack的虚拟机,支持OpenStack除云盘克隆和快照外的其他所有功能。附图说明[0023]图1显示为本发明的异构虚拟机硬盘托管方法于一实施例中的流程图;[0024]图2显示为本发明的异构虚拟机硬盘托管系统于一实施例中的结构示意图;[0025]图3显示为本发明的Nova平台于一实施例中的结构示意图;[0026]图4显示为本发明的异构虚拟机硬盘托管系统于另一实施例中的结构示意图。[0027]元件标号说明[0028]21接收模块[0029]22第一发送模块[0030]23创建模块[0031]24第二发送模块[0032]31处理器[0033]32存储器[0034]41Nova平台[0035]42Cinder平台具体实施方式[0036]以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。[0037]需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。[0038]本发明的异构虚拟机硬盘托管方法、系统、存储介质及Nova平台,基于通过对虚拟机硬盘的托管,当进行托管操作时,不影响虚拟机的使用。按照资源映射的方式托管硬盘,在托管硬盘过程中虚拟机无需关机、不解挂、不迀移硬盘,无需中断虚拟机业务,实现了平滑托管。按此硬盘托管方法托管到OpenStack的虚拟机,支持OpenStack除云盘克隆和快照外的其他所有功能。[0039]如图1所示,于一实施例中,本发明的异构虚拟机硬盘托管方法,包括以下步骤:[0040]步骤SI1、基于虚拟机托管请求,获取虚拟机配置信息,所述虚拟机配置信息包含硬盘配置信息。[0041]于本发明一实施例中,收到虚拟机的托管请求后,基于虚拟机托管请求信息获取虚拟机的相关配置信息,所述配置信息包括虚拟机的唯一标识码UUID、内存、中央处理单元个数、物理位置信息和硬盘配置信息。所述硬盘配置信息包括虚拟机中所有硬盘的路径和名称、硬盘大小、硬盘类型、硬盘适配器类型和共享属性。所述硬盘适配器类型包括IDEIntegrated-Drive-Electronics、LsiLogic、ParaVirtual、LsiLogicsas、BusLogic,所述硬盘类型包括精简、后置备延时置零、后置备立即置零。[0042]具体地,Nova包含Novaapi和Novacompute,由Novaapi接收托管虚拟机的请求,Novaapi根据托管虚拟机的请求获取虚拟机的物理位置,Novaapi根据虚拟机所在的物理位置信息发送托管虚拟机的请求给对应的Novacompute,Novacompute收到请求后根据虚拟机托管请求获取虚拟机的相关配置信息,所述配置信息包括虚拟机的唯一标识码、内存、中央处理单元个数、物理位置信息和硬盘配置信息。所述硬盘配置信息包括虚拟机中所有硬盘的路径和名称、硬盘大小、硬盘类型、硬盘适配器类型和共享属性。[0043]步骤S12、基于所述硬盘配置信息发送硬盘托管请求至Cinder,以使Cinder生成硬盘与云盘的映射信息,并获取Cinder发送来的云盘唯一标识码。[0044]于本发明一实施例中,通过所述硬盘配置信息发送硬盘托管请求至Cinder,使Cinder执行硬盘托管,托管前需要先在OpenStack云平台配置好云盘的三种类型,根据VMWare上硬盘类型匹配相应的云盘类型,所述云盘类型包括import-thin、import-thick、import-eagerZeroedThick,所述import-thin类型的云盘对应精简类型的硬盘,所述import-thick类型的云盘对应后置备延时置零类型的硬盘,所述import-eagerZeroedThick类型的云盘对应后置备立即置零类型的硬盘。匹配完成云盘类型后,Cinder生成硬盘与云盘的映射信息,所述映射信息包括云盘大小、硬盘是否被托管、所述云盘是否为共享盘、云盘类型、适配器类型和硬盘的路径和名称。所述一个硬盘对应的一个云盘生成一个相应的硬盘与云盘的映射信息。获取Cinder发送的与硬盘映射的云盘所对应的唯一标识码。[0045]具体地,Cinder包含Cinderapi和Cindervolume,Novacompute获取所述硬盘配置信息后向Cinderapi发送托管硬盘请求,Cinderapi接收托管硬盘请求后通知Cindervolume执行硬盘托管,即生成硬盘与云盘的映射信息。[0046]步骤S13、根据所述虚拟机的配置信息生成虚拟机规格信息,根据所述虚拟机规格信息和所述云盘唯一标识码配置所述虚拟机。[0047]于本发明一实施例中,通过虚拟机配置信息生成相应虚拟机规格信息(flavor,所述规格信息包括内存大小和中央处理单元个数,根据所述虚拟机规格信息和所述云盘唯一标识码配置所述虚拟机,组织创建虚拟机所需参数,之后调用create接口创建虚拟机。create接口定义如下:[0048][0049][0050]其中与托管相关的参数有:[0051]flavor:通过虚拟机配置信息生成相应虚拟机规格信息flavor。[0052]metadata:值为{"imported〃:True},标记此虚拟机为托管虚拟机。[0053]create_kwargs:以一个硬盘为例,值为[0054][0055]创建虚拟机过程,检查是否为imported虚拟机即metadata的值为{"imported〃:True},即为托管虚拟机。托管虚拟机不调用底层接口创建虚拟机。[0056]具体地,Novacompute通过虚拟机配置信息生成相应虚拟机规格信息flavor,所述规格信息包括内存大小和中央处理单元个数,根据所述虚拟机规格信息和所述云盘唯一标识码配置所述虚拟机,组织创建虚拟机所需参数,之后Novacompute调用create接口创建虚拟机。[0057]步骤S14、发送云盘挂载请求至Cinder,以使Cinder生成云盘与虚拟机的映射信息,并接收Cinder返回的挂载结果。[0058]于本发明一实施例中,发送将云盘挂载给虚拟机的请求至Cinder,Cinder执行挂载,生成云盘与虚拟机的映射信息,所述云盘与虚拟机的映射信息包括虚拟机唯一标识码、云盘唯一标识码和云盘挂载点,虚拟机唯一标识码和云盘唯一标识码对应在同一个表格中,形成云盘与虚拟机的映射,云盘挂载点也称虚拟机盘符名,挂载点就是云盘对应虚拟机的哪个硬盘,即对应硬盘的名称如sda、sdb、sdc等。Cinder返回挂载结果至Nova。[0059]创建虚拟机过程,检查是否为imported虚拟机即metadata:值为{"imported〃:True},即为托管虚拟机,则不调用底层接口创建虚拟机,只生成虚拟机相关信息包括云盘与虚拟机的映射信息。[0060]具体地,Novacompute发送将云盘挂载给虚拟机的请求至Cinderapi,Cinderapi通知Cindervolume执行挂载,Cindervolume生成云盘与虚拟机的映射信息,并返回挂载结果至Cinderapi,Cinderapi返回挂载结果至Novacompute。[0061]于本发明一实施例中,根据Cinder返回的挂载结果生成虚拟机与云盘的映射信息,所述虚拟机与云盘的映射信息包括虚拟机唯一标识码、云盘唯一标识码和云盘挂载点。[0062]具体地,Novacompute根据Cinderapi返回的挂载结果生成虚拟机与云盘的映射信息。[0063]于本发明一实施例中,在Cinder返回的挂载结果后还包括向Cinder发送指令更新云盘状态,将挂载的云盘的状态设置为在使用中。[0064]具体地,Novacompute在接收Cinderapi返回的挂载结果后,向Cinderapi发送指令以更新云盘状态,将挂载的云盘的状态设置为在使用中。[0065]于本发明的一实施例中,还包括基于云盘与虚拟机的映射信息对硬盘进行解挂,包括以下步骤:发送解挂虚拟机的硬盘请求给Cinder,以使Cinder基于原虚拟机的硬盘信息选择最优的存储池,在所述存储池上创建空壳虚拟机,将硬盘从原虚拟机上解挂,以及拷贝所述硬盘至所述空壳虚拟机的目录下,建立硬盘与空壳虚拟机的映射关系,删除记录于Cinder的云盘和原虚拟机的映射关系;接收Cinder发送的已经删除云盘和原虚拟机的映射关系的应答,删除记录于Nova的β盘和原虚拟机的映射关系。[0066]具体地,Nova发送解挂虚拟机的硬盘请求给Cinder;Cinder基于需要解挂的原虚拟机的硬盘信息在VMWare系统上选择最优的存储池,所述硬盘信息包括虚拟机中所有硬盘的路径和名称、硬盘大小、硬盘类型、硬盘适配器类型和共享属性;Cinder在所述存储池上创建空壳虚拟机;Cinder将硬盘从原虚拟机上解挂;Cinder拷贝所述硬盘至所述空壳虚拟机的目录下,建立硬盘与空壳虚拟机的映射关系;删除记录于Cinder的云盘和原虚拟机的映射关系;Nova接收Cinder发送的已经删除云盘和原虚拟机的映射关系的应答,删除记录于Nova的云盘和原虚拟机的映射关系。[0067]如图2所示,于一实施例中,本发明的异构虚拟机硬盘托管系统,包括接收模块21、第一发送模块22、创建模块23和第二发送模块24。[0068]所述接收模块21用于基于虚拟机托管请求,获取虚拟机配置信息,所述虚拟机配置信息包含硬盘配置信息。[0069]于本发明一实施例中,所述所述接收模块21收到虚拟机的托管请求后,基于虚拟机托管请求信息获取虚拟机的相关配置信息,所述配置信息包括虚拟机的唯一标识码UUID、内存、中央处理单元个数、物理位置信息和硬盘配置信息。所述硬盘配置信息包括虚拟机中所有硬盘的路径和名称、硬盘大小、硬盘类型、硬盘适配器类型和共享属性。所述硬盘适配器类型包括IDEIntegrated-Drive-Electronics、LsiLogic、ParaVirtual、LsiLogicsas、BusLogic,所述硬盘类型包括精简、后置备延时置零、后置备立即置零。[0070]所述第一发送模块22用于基于所述硬盘配置信息发送硬盘托管请求至Cinder,以使Cinder生成硬盘与云盘的映射信息,并获取Cinder发送来的云盘唯一标识码。[0071]具体地,所述第一发送模块22通过所述硬盘配置信息发送硬盘托管请求至Cinder,使Cinder执行硬盘托管,托管前需要先在OpenStack云平台配置好云盘的三种类型,根据VMffare上硬盘类型匹配相应的云盘类型,所述云盘类型包括import-thin、import-thick、import-eagerZeroedThick,所述import-thin类型的云盘对应精简类型的硬盘,所述import-thick类型的云盘对应后置备延时置零类型的硬盘,所述import-eagerZeroedThick类型的云盘对应后置备立即置零类型的硬盘。匹配完成云盘类型后,Cinder生成硬盘与云盘的映射信息,所述映射信息包括云盘大小、硬盘是否被托管、所述云盘是否为共享盘、云盘类型、适配器类型和硬盘的路径和名称。所述一个硬盘对应的一个云盘生成一个相应的硬盘与云盘的映射信息。获取Cinder发送的与硬盘映射的云盘所对应的唯一标识码。[0072]所述创建模块23用于根据所述虚拟机的配置信息生成虚拟机规格信息,根据所述虚拟机规格信息和所述云盘唯一标识码配置所述虚拟机。[0073]具体地,所述创建模块23通过虚拟机配置信息生成相应虚拟机规格信息flavor,所述规格信息包括内存大小和中央处理单元个数,根据所述虚拟机规格信息和所述云盘唯一标识码配置所述虚拟机,组织创建虚拟机所需参数,之后调用create接口创建虚拟机。create接口定义如下:[0074][0075][0076]其中与托管相关的参数有:[0077]flavor:通过虚拟机配置信息生成相应虚拟机规格信息flavor。[0078]metadata:值为{"imported〃:True},标记此虚拟机为托管虚拟机。[0079]create_kwargs:以一个硬盘为例,值为[0080][0081]创建虚拟机过程,检查是否为imported虚拟机即metadata的值为{"imported":True},即为托管虚拟机。托管虚拟机不调用底层接口创建虚拟机。[0082]所述第二发送模块24用于发送云盘挂载请求至Cinder,以使Cinder生成云盘与虚拟机的映射信息,并接收Cinder返回的挂载结果。[0083]具体地,所述第二发送模块24用于发送将云盘挂载给虚拟机的请求至Cinder,Cinder执行挂载,生成云盘与虚拟机的映射信息,所述云盘与虚拟机的映射信息包括虚拟机唯一标识码、云盘唯一标识码和云盘挂载点,虚拟机唯一标识码和云盘唯一标识码对应在同一个表格中,形成云盘与虚拟机的映射,云盘挂载点也称虚拟机盘符名,挂载点就是云盘对应虚拟机的哪个硬盘,即对应硬盘的名称如sda、sdb、sdc等。Cinder返回挂载结果至Novaο[0084]创建虚拟机过程,检查是否为imported虚拟机即metadata:值为{"imported〃:True},即为托管虚拟机,则不调用底层接口创建虚拟机,只生成云盘与虚拟机的映射信OO[0085]需要说明的是,应理解以上系统的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,X模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上X模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。[0086]例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路ApplicationSpecificIntegratedCircuit,简称ASIC,或,一个或多个微处理器DigitalSingnalProcessor,简称DSP,或,一个或者多个现场可编程门阵列FieldProgrammableGateArray,简称FPGA等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器CentralProcessingUnit,简称CPU或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统system-on-a-chip,简称S0C的形式实现。[0087]于本发明一实施例中,本发明包括一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述异构虚拟机硬盘托管方法。[0088]本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过计算机程序相关的硬件来完成。前述的计算机程序可以存储于一计算机可读存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。[0089]如图3所示,于一实施例中,本发明的Nova平台包括:处理器31和存储器32;所述存储器32用于存储计算机程序;所述处理器31用于执行所述存储器存储的计算机程序,以使所述Nova平台执行上述异构虚拟机硬盘托管方法。[0090]具体地,所述存储器32包括:ROM、RAM、磁碟、U盘、存储卡或者光盘等各种可以存储程序代码的介质。[0091]优选地,所述处理器31可以是通用处理器,包括中央处理器CentralProcessingUnit,简称CPU、网络处理器(NetworkProcessor,简称NP等;还可以是数字信号处理器DigitalSignalProcessor,简称DSP、专用集成电路(ApplicationSpecificIntegratedCircuit,简称ASIC、现场可编程门阵列(FieldProgrammableGateArray,简称FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。[0092]如图4所示,于一实施例中,本发明的异构虚拟机硬盘托管系统,包括上述的Nova平台41和Cinder平台42;所述Cinder平台42用于接收硬盘托管请求时,生成硬盘与云盘的映射信息,并发送云盘唯一标识码至所述Nova平台41;所述Cinder平台42接收云盘挂载请求时,生成云盘与虚拟机的映射信息并发送挂载结果至所述Nova平台41。[0093]具体地,所述Cinder平台解挂硬盘包括以下步骤:基于需要解挂的原虚拟机的硬盘信息在VMffare系统上选择最优的存储池,所述硬盘信息包括虚拟机中所有硬盘的路径和名称、硬盘大小、硬盘类型、硬盘适配器类型和共享属性;在选中的存储池创建空壳虚拟机;将硬盘从原虚拟机解挂,删除硬盘与原虚拟机的映射关系;拷贝所述硬盘至所述空壳虚拟机的目录下;建立硬盘与空壳虚拟机的映射关系,即硬盘与空壳虚拟机的对应关系。[0094]之所以创建空壳虚拟机是因为VMWare的对象模型中卷硬盘是从属于虚拟机的二级对象,不能独立于虚拟机而存在,所以创建卷在VMffare中不是一个独立的操作,它只能是创建虚拟机的一部分。而OpenStack认为卷是独立的一种对象。因此在VMWare接入OpenStack后,每一个卷都要和一个空壳虚拟机相关联。这个空壳虚拟机是永远也不会启动的,而且对于OpenStack用户也是不可见不可操作的。[0095]综上所述,本发明异构虚拟机硬盘托管方法、系统、存储介质及Nova平台,基于通过对虚拟机硬盘的托管,当进行托管操作时,不影响虚拟机的使用。按照资源映射的方式托管硬盘,在托管硬盘过程中虚拟机无需关机、不解挂、不迀移硬盘,无需中断虚拟机业务,实现了平滑托管。按此硬盘托管方法托管到OpenStack的虚拟机,支持OpenStack除云盘克隆和快照外的其他所有功能。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。[0096]上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。[0097]上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

权利要求:1.一种异构虚拟机硬盘托管方法,其特征在于,包括以下步骤:基于虚拟机托管请求,获取虚拟机配置信息,所述虚拟机配置信息包含硬盘配置信息;基于所述硬盘配置信息发送硬盘托管请求至Cinder,以使Cinder生成硬盘与云盘的映射信息,并获取Cinder发送来的云盘唯一标识码;根据所述虚拟机的配置信息生成虚拟机规格信息,根据所述虚拟机规格信息和所述云盘唯一标识码配置所述虚拟机;发送云盘挂载请求至Cinder,以使Cinder生成云盘与虚拟机的映射信息,并接收Cinder返回的挂载结果。2.根据权利要求1所述的异构虚拟机硬盘托管方法,其特征在于,还包括向Cinder发送更新云盘状态指令,以使Cinder设置所述云盘状态为使用状态。3.根据权利要求1所述的异构虚拟机硬盘托管方法,其特征在于,所述虚拟机配置信息包括虚拟机的唯一标识码、内存、中央处理单元个数、物理位置信息和硬盘配置信息;所述硬盘配置信息包括虚拟机中所有硬盘的路径和名称、硬盘大小、硬盘类型、硬盘适配器类型和共享属性。4.根据权利要求1所述的异构虚拟机硬盘托管方法,其特征在于,所述硬盘与云盘的映射信息包括云盘大小、硬盘是否被托管、所述云盘是否可挂载多个虚拟机、云盘类型、适配器类型和硬盘的路径和名称。5.根据权利要求1所述的异构虚拟机硬盘托管方法,其特征在于,所述云盘与虚拟机的映射信息包括虚拟机唯一标识码、云盘唯一标识码和云盘挂载点。6.根据权利要求1所述的异构虚拟机硬盘托管方法,其特征在于,还包括根据所述挂载结果生成虚拟机与云盘的映射信息,所述虚拟机与云盘的映射信息包括虚拟机唯一标识码、云盘唯一标识码和云盘挂载点。7.根据权利要求1所述的异构虚拟机硬盘托管方法,其特征在于,还包括基于云盘与虚拟机的映射信息对硬盘进行解挂,包括以下步骤:发送解挂虚拟机的硬盘请求给Cinder,以使Cinder基于原虚拟机的硬盘信息选择最优的存储池,在所述存储池上创建空壳虚拟机,将硬盘从原虚拟机上解挂,以及拷贝所述硬盘至所述空壳虚拟机的目录下,建立硬盘与空壳虚拟机的映射关系,删除记录于Cinder的云盘和原虚拟机的映射关系;接收Cinder发送的已经删除云盘和原虚拟机的映射关系的应答,删除记录于Nova的云盘和原虚拟机的映射关系。8.—种异构虚拟机硬盘托管系统,其特征在于,包括接收模块、第一发送模块、创建模块和第二发送模块;所述接收模块用于基于虚拟机托管请求,获取虚拟机配置信息,所述虚拟机配置信息包含硬盘配置信息;所述第一发送模块用于基于所述硬盘配置信息发送硬盘托管请求至Cinder,以使Cinder生成硬盘与云盘的映射信息,并获取Cinder发送来的云盘唯一标识码;所述创建模块用于根据所述虚拟机的配置信息生成虚拟机规格信息,根据所述虚拟机规格信息和所述云盘唯一标识码配置所述虚拟机;所述第二发送模块用于发送云盘挂载请求至Cinder,以使Cinder生成云盘与虚拟机的映射信息,并接收Cinder返回的挂载结果。9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1至6中任一项所述异构虚拟机硬盘托管方法。10.—种Nova平台,其特征在于,包括:处理器和存储器;所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述Nova平台执行如权利要求1至7中任一项所述异构虚拟机硬盘托管方法。11.一种异构虚拟机硬盘托管系统,其特征在于,包括权利要求10所述的Nova平台和Cinder平台;所述Cinder平台用于接收硬盘托管请求时,生成硬盘与云盘的映射信息,并发送云盘唯一标识码至所述Nova平台;所述Cinder平台接收云盘挂载请求时,生成云盘与虚拟机的映射信息并发送挂载结果至所述Nova平台。

百度查询: 上海市信息网络有限公司 一种异构虚拟机硬盘托管方法、系统、存储介质及Nova平台

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。