CN109032753B - 一种异构虚拟机硬盘托管方法、***、存储介质及Nova平台 - Google Patents
一种异构虚拟机硬盘托管方法、***、存储介质及Nova平台 Download PDFInfo
- Publication number
- CN109032753B CN109032753B CN201810634189.8A CN201810634189A CN109032753B CN 109032753 B CN109032753 B CN 109032753B CN 201810634189 A CN201810634189 A CN 201810634189A CN 109032753 B CN109032753 B CN 109032753B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- hard disk
- disk
- cloud
- hosting
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供一种异构虚拟机硬盘托管方法、***、存储介质及Nova平台,包括以下步骤:基于虚拟机托管请求,获取虚拟机配置信息,所述虚拟机配置信息包含硬盘配置信息;基于所述硬盘配置信息发送硬盘托管请求至Cinder,以使Cinder生成硬盘与云盘的映射信息,并获取Cinder发送来的云盘唯一标识码;根据所述虚拟机的配置信息生成虚拟机规格信息,根据所述虚拟机规格信息和所述云盘唯一标识码配置所述虚拟机;发送云盘挂载请求至Cinder,以使Cinder生成云盘与虚拟机的映射信息,并接收Cinder返回的挂载结果。本发明的一种异构虚拟机硬盘托管方法、***、存储介质及Nova平台,通过对虚拟机硬盘的托管,当进行托管操作时,不影响虚拟机的使用。
Description
技术领域
本发明涉及通信技术领域,特别是涉及一种异构虚拟机硬盘托管方法、***、存储介质及Nova平台。
背景技术
OpenStack是目前最活跃的云计算开源平台,许多企业都在尝试用OpenStack将现有数据中心虚拟化平台连接起来,其中最典型的就是OpenStack与虚拟化平台(VMWare)的集成。 OpenStack框架由核心项目和扩展的项目构成,云计算实验平台中部署了以下6个核心子项目,以协作完成特定的功能:
(1)计算服务Nova,它是云计算***的结构控制器,根据用户需求提供虚拟服务,负责管理虚拟机实例的整个生命周期。
(2)镜像服务Glance,它提供虚拟磁盘镜像的目录分类管理以及镜像库存储管理。
(3)网络服务Neutron,实现虚拟机的网络资源管理,为OpenStack其他服务提供网络连接服务。
(4)认证服务Keystone,它为OpenStack所有的***提供统一的授权和身份验证服务。
(5)块存储服务Cinder,用以实现对块存储的管理,为虚拟机提供云硬盘(块设备)服务。
(6)Web界面服务Horizon,它是基于OpenStack API接口开发的Web呈现,是用户使用云平台的界面。
现有的方案支持将已有的VMWare集群的虚拟机和硬盘托管到OpenStack,但虚拟机托管和硬盘托管是两个独立的流程,而现有的硬盘托管方法需要中断业务并迁移云盘,且迁移云盘过程比较耗时,业务中断时间较久。迁移云盘时长主要取决于硬盘文件的大小和文件拷贝的速度,而正在使用硬盘的用户一般是不允许业务中断的。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种异构虚拟机硬盘托管方法、***、存储介质及Nova平台,用于解决现有技术中对虚拟机硬盘托管需要中断对硬盘的业务操作的问题。
为实现上述目的及其他相关目的,本发明提供一种,基于虚拟机托管请求,获取虚拟机配置信息,所述虚拟机配置信息包含硬盘配置信息;基于所述硬盘配置信息发送硬盘托管请求至Cinder,以使Cinder生成硬盘与云盘的映射信息,并获取Cinder发送来的云盘唯一标识码;根据所述虚拟机的配置信息生成虚拟机规格信息,根据所述虚拟机规格信息和所述云盘唯一标识码配置所述虚拟机;发送云盘挂载请求至Cinder,以使Cinder生成云盘与虚拟机的映射信息,并接收Cinder返回的挂载结果。
于本发明的一实施例中,还包括向Cinder发送更新云盘状态指令,以使Cinder设置所述云盘状态为使用状态。
于本发明的一实施例中,所述虚拟机配置信息包括虚拟机的唯一标识码、内存、中央处理单元个数、物理位置信息和硬盘配置信息;所述硬盘配置信息包括虚拟机中所有硬盘的路径和名称、硬盘大小、硬盘类型、硬盘适配器类型和共享属性。
于本发明的一实施例中,所述硬盘与云盘的映射信息包括云盘大小、硬盘是否被托管、所述云盘是否可挂载多个虚拟机、云盘类型、适配器类型和硬盘的路径和名称。
于本发明的一实施例中,所述云盘与虚拟机的映射信息包括虚拟机唯一标识码、云盘唯一标识码和云盘挂载点。
于本发明的一实施例中,还包括根据所述挂载结果生成虚拟机与云盘的映射信息,所述虚拟机与云盘的映射信息包括虚拟机唯一标识码、云盘唯一标识码和云盘挂载点。
于本发明的一实施例中,还包括基于云盘与虚拟机的映射信息对硬盘进行解挂,包括以下步骤:发送解挂虚拟机的硬盘请求给Cinder,以使Cinder基于原虚拟机的硬盘信息选择最优的存储池,在所述存储池上创建空壳虚拟机,将硬盘从原虚拟机上解挂,以及拷贝所述硬盘至所述空壳虚拟机的目录下,建立硬盘与空壳虚拟机的映射关系,删除记录于Cinder的云盘和原虚拟机的映射关系;接收Cinder发送的已经删除云盘和原虚拟机的映射关系的应答,删除记录于Nova的云盘和原虚拟机的映射关系。
为实现上述目的,本发明还提供一种异构虚拟机硬盘托管***,包括接收模块、第一发送模块、创建模块和第二发送模块;所述接收模块用于基于虚拟机托管请求,获取虚拟机配置信息,所述虚拟机配置信息包含硬盘配置信息;所述第一发送模块用于基于所述硬盘配置信息发送硬盘托管请求至Cinder,以使Cinder生成硬盘与云盘的映射信息,并获取Cinder发送来的云盘唯一标识码;所述创建模块用于根据所述虚拟机的配置信息生成虚拟机规格信息,根据所述虚拟机规格信息和所述云盘唯一标识码配置所述虚拟机;所述第二发送模块用于发送云盘挂载请求至Cinder,以使Cinder生成云盘与虚拟机的映射信息,并接收Cinder返回的挂载结果。
为实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述异构虚拟机硬盘托管方法。
为实现上述目的,本发明还提供一种Nova平台,包括:处理器和存储器;所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述Nova 平台执行上述异构虚拟机硬盘托管方法。
为实现上述目的,本发明还提供一种异构虚拟机硬盘托管***,包括上述的Nova平台和Cinder平台;所述Cinder平台用于接收硬盘托管请求时,生成硬盘与云盘的映射信息,并发送云盘唯一标识码至所述Nova平台;所述Cinder平台接收云盘挂载请求时,生成云盘与虚拟机的映射信息并发送挂载结果至所述Nova平台。
如上所述,本发明的一种异构虚拟机硬盘托管方法、***、存储介质及Nova平台,具有以下有益效果:按照资源映射的方式托管硬盘,在托管硬盘过程中虚拟机无需关机、不解挂、不迁移硬盘,无需中断虚拟机业务,实现了平滑托管。按此硬盘托管方法托管到OpenStack的虚拟机,支持OpenStack除云盘克隆和快照外的其他所有功能。
附图说明
图1显示为本发明的异构虚拟机硬盘托管方法于一实施例中的流程图;
图2显示为本发明的异构虚拟机硬盘托管***于一实施例中的结构示意图;
图3显示为本发明的Nova平台于一实施例中的结构示意图;
图4显示为本发明的异构虚拟机硬盘托管***于另一实施例中的结构示意图。
元件标号说明
21 接收模块
22 第一发送模块
23 创建模块
24 第二发送模块
31 处理器
32 存储器
41 Nova平台
42 Cinder平台
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
本发明的异构虚拟机硬盘托管方法、***、存储介质及Nova平台,基于通过对虚拟机硬盘的托管,当进行托管操作时,不影响虚拟机的使用。按照资源映射的方式托管硬盘,在托管硬盘过程中虚拟机无需关机、不解挂、不迁移硬盘,无需中断虚拟机业务,实现了平滑托管。按此硬盘托管方法托管到OpenStack的虚拟机,支持OpenStack除云盘克隆和快照外的其他所有功能。
如图1所示,于一实施例中,本发明的异构虚拟机硬盘托管方法,包括以下步骤:
步骤S11、基于虚拟机托管请求,获取虚拟机配置信息,所述虚拟机配置信息包含硬盘配置信息。
于本发明一实施例中,收到虚拟机的托管请求后,基于虚拟机托管请求信息获取虚拟机的相关配置信息,所述配置信息包括虚拟机的唯一标识码(UUID)、内存、中央处理单元个数、物理位置信息和硬盘配置信息。所述硬盘配置信息包括虚拟机中所有硬盘的路径和名称、硬盘大小、硬盘类型、硬盘适配器类型和共享属性。所述硬盘适配器类型包括IDE(Integrated-Drive-Electronics)、Lsi Logic、Para Virtual、Lsi Logicsas、Bus Logic,所述硬盘类型包括精简、后置备延时置零、后置备立即置零。
具体地,Nova包含Nova api和Nova compute,由Nova api接收托管虚拟机的请求,Nova api根据托管虚拟机的请求获取虚拟机的物理位置,Nova api根据虚拟机所在的物理位置信息发送托管虚拟机的请求给对应的Nova compute,Nova compute收到请求后根据虚拟机托管请求获取虚拟机的相关配置信息,所述配置信息包括虚拟机的唯一标识码、内存、中央处理单元个数、物理位置信息和硬盘配置信息。所述硬盘配置信息包括虚拟机中所有硬盘的路径和名称、硬盘大小、硬盘类型、硬盘适配器类型和共享属性。
步骤S12、基于所述硬盘配置信息发送硬盘托管请求至Cinder,以使Cinder生成硬盘与云盘的映射信息,并获取Cinder发送来的云盘唯一标识码。
于本发明一实施例中,通过所述硬盘配置信息发送硬盘托管请求至Cinder,使Cinder执行硬盘托管,托管前需要先在OpenStack云平台配置好云盘的三种类型,根据VMWare上硬盘类型匹配相应的云盘类型,所述云盘类型包括import-thin、import-thick、import-eagerZeroedThick,所述import-thin类型的云盘对应精简类型的硬盘,所述import-thick类型的云盘对应后置备延时置零类型的硬盘,所述import-eagerZeroedThick类型的云盘对应后置备立即置零类型的硬盘。匹配完成云盘类型后,Cinder生成硬盘与云盘的映射信息,所述映射信息包括云盘大小、硬盘是否被托管、所述云盘是否为共享盘、云盘类型、适配器类型和硬盘的路径和名称。所述一个硬盘对应的一个云盘生成一个相应的硬盘与云盘的映射信息。获取Cinder发送的与硬盘映射的云盘所对应的唯一标识码。
具体地,Cinder包含Cinder api和Cinder volume,Nova compute获取所述硬盘配置信息后向Cinder api发送托管硬盘请求,Cinder api接收托管硬盘请求后通知Cindervolume执行硬盘托管,即生成硬盘与云盘的映射信息。
步骤S13、根据所述虚拟机的配置信息生成虚拟机规格信息,根据所述虚拟机规格信息和所述云盘唯一标识码配置所述虚拟机。
于本发明一实施例中,通过虚拟机配置信息生成相应虚拟机规格信息(flavor),所述规格信息包括内存大小和中央处理单元个数,根据所述虚拟机规格信息和所述云盘唯一标识码配置所述虚拟机,组织创建虚拟机所需参数,之后调用create接口创建虚拟机。create接口定义如下:
其中与托管相关的参数有:
flavor:通过虚拟机配置信息生成相应虚拟机规格信息(flavor)。
metadata:值为{"imported":True},标记此虚拟机为托管虚拟机。
create_kwargs:以一个硬盘为例,值为
创建虚拟机过程,检查是否为imported虚拟机即metadata的值为{"imported":True},即为托管虚拟机。托管虚拟机不调用底层接口创建虚拟机。
具体地,Nova compute通过虚拟机配置信息生成相应虚拟机规格信息(flavor),所述规格信息包括内存大小和中央处理单元个数,根据所述虚拟机规格信息和所述云盘唯一标识码配置所述虚拟机,组织创建虚拟机所需参数,之后Nova compute调用create接口创建虚拟机。
步骤S14、发送云盘挂载请求至Cinder,以使Cinder生成云盘与虚拟机的映射信息,并接收Cinder返回的挂载结果。
于本发明一实施例中,发送将云盘挂载给虚拟机的请求至Cinder,Cinder执行挂载,生成云盘与虚拟机的映射信息,所述云盘与虚拟机的映射信息包括虚拟机唯一标识码、云盘唯一标识码和云盘挂载点,虚拟机唯一标识码和云盘唯一标识码一一对应在同一个表格中,形成云盘与虚拟机的映射,云盘挂载点也称虚拟机盘符名,挂载点就是云盘对应虚拟机的哪个硬盘,即对应硬盘的名称如sda、sdb、sdc等。Cinder返回挂载结果至Nova。
创建虚拟机过程,检查是否为imported虚拟机即metadata:值为{"imported":True},即为托管虚拟机,则不调用底层接口创建虚拟机,只生成虚拟机相关信息包括云盘与虚拟机的映射信息。
具体地,Nova compute发送将云盘挂载给虚拟机的请求至Cinder api,Cinderapi通知 Cinder volume执行挂载,Cinder volume生成云盘与虚拟机的映射信息,并返回挂载结果至 Cinder api,Cinder api返回挂载结果至Nova compute。
于本发明一实施例中,根据Cinder返回的挂载结果生成虚拟机与云盘的映射信息,所述虚拟机与云盘的映射信息包括虚拟机唯一标识码、云盘唯一标识码和云盘挂载点。
具体地,Nova compute根据Cinder api返回的挂载结果生成虚拟机与云盘的映射信息。
于本发明一实施例中,在Cinder返回的挂载结果后还包括向Cinder发送指令更新云盘状态,将挂载的云盘的状态设置为在使用中。
具体地,Nova compute在接收Cinder api返回的挂载结果后,向Cinder api发送指令以更新云盘状态,将挂载的云盘的状态设置为在使用中。
于本发明的一实施例中,还包括基于云盘与虚拟机的映射信息对硬盘进行解挂,包括以下步骤:发送解挂虚拟机的硬盘请求给Cinder,以使Cinder基于原虚拟机的硬盘信息选择最优的存储池,在所述存储池上创建空壳虚拟机,将硬盘从原虚拟机上解挂,以及拷贝所述硬盘至所述空壳虚拟机的目录下,建立硬盘与空壳虚拟机的映射关系,删除记录于Cinder的云盘和原虚拟机的映射关系;接收Cinder发送的已经删除云盘和原虚拟机的映射关系的应答,删除记录于Nova的云盘和原虚拟机的映射关系。
具体地,Nova发送解挂虚拟机的硬盘请求给Cinder;Cinder基于需要解挂的原虚拟机的硬盘信息在VMWare***上选择最优的存储池,所述硬盘信息包括虚拟机中所有硬盘的路径和名称、硬盘大小、硬盘类型、硬盘适配器类型和共享属性;Cinder在所述存储池上创建空壳虚拟机;Cinder将硬盘从原虚拟机上解挂;Cinder拷贝所述硬盘至所述空壳虚拟机的目录下,建立硬盘与空壳虚拟机的映射关系;删除记录于Cinder的云盘和原虚拟机的映射关系; Nova接收Cinder发送的已经删除云盘和原虚拟机的映射关系的应答,删除记录于Nova的云盘和原虚拟机的映射关系。
如图2所示,于一实施例中,本发明的异构虚拟机硬盘托管***,包括接收模块21、第一发送模块22、创建模块23和第二发送模块24。
所述接收模块21用于基于虚拟机托管请求,获取虚拟机配置信息,所述虚拟机配置信息包含硬盘配置信息。
于本发明一实施例中,所述所述接收模块21收到虚拟机的托管请求后,基于虚拟机托管请求信息获取虚拟机的相关配置信息,所述配置信息包括虚拟机的唯一标识码(UUID)、内存、中央处理单元个数、物理位置信息和硬盘配置信息。所述硬盘配置信息包括虚拟机中所有硬盘的路径和名称、硬盘大小、硬盘类型、硬盘适配器类型和共享属性。所述硬盘适配器类型包括IDE(Integrated-Drive-Electronics)、Lsi Logic、Para Virtual、Lsi Logicsas、Bus Logic,所述硬盘类型包括精简、后置备延时置零、后置备立即置零。
所述第一发送模块22用于基于所述硬盘配置信息发送硬盘托管请求至Cinder,以使 Cinder生成硬盘与云盘的映射信息,并获取Cinder发送来的云盘唯一标识码。
具体地,所述第一发送模块22通过所述硬盘配置信息发送硬盘托管请求至Cinder,使 Cinder执行硬盘托管,托管前需要先在OpenStack云平台配置好云盘的三种类型,根据 VMWare上硬盘类型匹配相应的云盘类型,所述云盘类型包括import-thin、import-thick、 import-eagerZeroedThick,所述import-thin类型的云盘对应精简类型的硬盘,所述 import-thick类型的云盘对应后置备延时置零类型的硬盘,所述import-eagerZeroedThick类型的云盘对应后置备立即置零类型的硬盘。匹配完成云盘类型后,Cinder生成硬盘与云盘的映射信息,所述映射信息包括云盘大小、硬盘是否被托管、所述云盘是否为共享盘、云盘类型、适配器类型和硬盘的路径和名称。所述一个硬盘对应的一个云盘生成一个相应的硬盘与云盘的映射信息。获取Cinder发送的与硬盘映射的云盘所对应的唯一标识码。
所述创建模块23用于根据所述虚拟机的配置信息生成虚拟机规格信息,根据所述虚拟机规格信息和所述云盘唯一标识码配置所述虚拟机。
具体地,所述创建模块23通过虚拟机配置信息生成相应虚拟机规格信息(flavor),所述规格信息包括内存大小和中央处理单元个数,根据所述虚拟机规格信息和所述云盘唯一标识码配置所述虚拟机,组织创建虚拟机所需参数,之后调用create接口创建虚拟机。create 接口定义如下:
其中与托管相关的参数有:
flavor:通过虚拟机配置信息生成相应虚拟机规格信息(flavor)。
metadata:值为{"imported":True},标记此虚拟机为托管虚拟机。
create_kwargs:以一个硬盘为例,值为
创建虚拟机过程,检查是否为imported虚拟机即metadata的值为{"imported":True},即为托管虚拟机。托管虚拟机不调用底层接口创建虚拟机。
所述第二发送模块24用于发送云盘挂载请求至Cinder,以使Cinder生成云盘与虚拟机的映射信息,并接收Cinder返回的挂载结果。
具体地,所述第二发送模块24用于发送将云盘挂载给虚拟机的请求至Cinder,Cinder执行挂载,生成云盘与虚拟机的映射信息,所述云盘与虚拟机的映射信息包括虚拟机唯一标识码、云盘唯一标识码和云盘挂载点,虚拟机唯一标识码和云盘唯一标识码一一对应在同一个表格中,形成云盘与虚拟机的映射,云盘挂载点也称虚拟机盘符名,挂载点就是云盘对应虚拟机的哪个硬盘,即对应硬盘的名称如sda、sdb、sdc等。Cinder返回挂载结果至Nova。
创建虚拟机过程,检查是否为imported虚拟机即metadata:值为{"imported":True},即为托管虚拟机,则不调用底层接口创建虚拟机,只生成云盘与虚拟机的映射信息。
需要说明的是,应理解以上***的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,x模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上x模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(Digital Singnal Processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central Processing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上***(system-on-a-chip,简称SOC)的形式实现。
于本发明一实施例中,本发明包括一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述异构虚拟机硬盘托管方法。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过计算机程序相关的硬件来完成。前述的计算机程序可以存储于一计算机可读存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
如图3所示,于一实施例中,本发明的Nova平台包括:处理器31和存储器32;所述存储器32用于存储计算机程序;所述处理器31用于执行所述存储器存储的计算机程序,以使所述Nova平台执行上述异构虚拟机硬盘托管方法。
具体地,所述存储器32包括:ROM、RAM、磁碟、U盘、存储卡或者光盘等各种可以存储程序代码的介质。
优选地,所述处理器31可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称 ASIC)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
如图4所示,于一实施例中,本发明的异构虚拟机硬盘托管***,包括上述的Nova平台41和Cinder平台42;所述Cinder平台42用于接收硬盘托管请求时,生成硬盘与云盘的映射信息,并发送云盘唯一标识码至所述Nova平台41;所述Cinder平台42接收云盘挂载请求时,生成云盘与虚拟机的映射信息并发送挂载结果至所述Nova平台41。
具体地,所述Cinder平台解挂硬盘包括以下步骤:基于需要解挂的原虚拟机的硬盘信息在VMWare***上选择最优的存储池,所述硬盘信息包括虚拟机中所有硬盘的路径和名称、硬盘大小、硬盘类型、硬盘适配器类型和共享属性;在选中的存储池创建空壳虚拟机;将硬盘从原虚拟机解挂,删除硬盘与原虚拟机的映射关系;拷贝所述硬盘至所述空壳虚拟机的目录下;建立硬盘与空壳虚拟机的映射关系,即硬盘与空壳虚拟机的对应关系。
之所以创建空壳虚拟机是因为VMWare的对象模型中卷(硬盘)是从属于虚拟机的二级对象,不能独立于虚拟机而存在,所以创建卷在VMWare中不是一个独立的操作,它只能是创建虚拟机的一部分。而OpenStack认为卷是独立的一种对象。因此在VMWare接入OpenStack后,每一个卷都要和一个空壳虚拟机相关联。这个空壳虚拟机是永远也不会启动的,而且对于OpenStack用户也是不可见不可操作的。
综上所述,本发明异构虚拟机硬盘托管方法、***、存储介质及Nova平台,基于通过对虚拟机硬盘的托管,当进行托管操作时,不影响虚拟机的使用。按照资源映射的方式托管硬盘,在托管硬盘过程中虚拟机无需关机、不解挂、不迁移硬盘,无需中断虚拟机业务,实现了平滑托管。按此硬盘托管方法托管到OpenStack的虚拟机,支持OpenStack除云盘克隆和快照外的其他所有功能。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (10)
1.一种异构虚拟机硬盘托管方法,其特征在于,包括以下步骤:
基于虚拟机托管请求,获取虚拟机配置信息,所述虚拟机配置信息包含硬盘配置信息;
基于所述硬盘配置信息发送硬盘托管请求至Cinder,以使Cinder生成硬盘与云盘的映射信息,并获取Cinder发送来的云盘唯一标识码;
根据所述虚拟机的配置信息生成虚拟机规格信息,根据所述虚拟机规格信息和所述云盘唯一标识码配置所述虚拟机;
发送云盘挂载请求至Cinder,以使Cinder生成云盘与虚拟机的映射信息,并接收Cinder返回的挂载结果;
还包括基于云盘与虚拟机的映射信息对硬盘进行解挂,包括以下步骤:
发送解挂虚拟机的硬盘请求给Cinder,以使Cinder基于原虚拟机的硬盘信息选择最优的存储池,在所述存储池上创建空壳虚拟机,将硬盘从原虚拟机上解挂,以及拷贝所述硬盘至所述空壳虚拟机的目录下,建立硬盘与空壳虚拟机的映射关系,删除记录于Cinder的云盘和原虚拟机的映射关系;
接收Cinder发送的已经删除云盘和原虚拟机的映射关系的应答,删除记录于Nova的云盘和原虚拟机的映射关系。
2.根据权利要求1所述的异构虚拟机硬盘托管方法,其特征在于,还包括向Cinder发送更新云盘状态指令,以使Cinder设置所述云盘状态为使用状态。
3.根据权利要求1所述的异构虚拟机硬盘托管方法,其特征在于,所述虚拟机配置信息包括虚拟机的唯一标识码、内存、中央处理单元个数、物理位置信息和硬盘配置信息;所述硬盘配置信息包括虚拟机中所有硬盘的路径和名称、硬盘大小、硬盘类型、硬盘适配器类型和共享属性。
4.根据权利要求1所述的异构虚拟机硬盘托管方法,其特征在于,所述硬盘与云盘的映射信息包括云盘大小、硬盘是否被托管、所述云盘是否可挂载多个虚拟机、云盘类型、适配器类型和硬盘的路径和名称。
5.根据权利要求1所述的异构虚拟机硬盘托管方法,其特征在于,所述云盘与虚拟机的映射信息包括虚拟机唯一标识码、云盘唯一标识码和云盘挂载点。
6.根据权利要求1所述的异构虚拟机硬盘托管方法,其特征在于,还包括根据所述挂载结果生成虚拟机与云盘的映射信息,所述虚拟机与云盘的映射信息包括虚拟机唯一标识码、云盘唯一标识码和云盘挂载点。
7.一种异构虚拟机硬盘托管***,其特征在于,包括接收模块、第一发送模块、创建模块和第二发送模块;
所述接收模块用于基于虚拟机托管请求,获取虚拟机配置信息,所述虚拟机配置信息包含硬盘配置信息;
所述第一发送模块用于基于所述硬盘配置信息发送硬盘托管请求至Cinder,以使Cinder生成硬盘与云盘的映射信息,并获取Cinder发送来的云盘唯一标识码;
所述创建模块用于根据所述虚拟机的配置信息生成虚拟机规格信息,根据所述虚拟机规格信息和所述云盘唯一标识码配置所述虚拟机;
所述第二发送模块用于发送云盘挂载请求至Cinder,以使Cinder生成云盘与虚拟机的映射信息,并接收Cinder返回的挂载结果;
还包括解挂模块用于基于云盘与虚拟机的映射信息对硬盘进行解挂,包括:
发送解挂虚拟机的硬盘请求给Cinder,以使Cinder基于原虚拟机的硬盘信息选择最优的存储池,在所述存储池上创建空壳虚拟机,将硬盘从原虚拟机上解挂,以及拷贝所述硬盘至所述空壳虚拟机的目录下,建立硬盘与空壳虚拟机的映射关系,删除记录于Cinder的云盘和原虚拟机的映射关系;
接收Cinder发送的已经删除云盘和原虚拟机的映射关系的应答,删除记录于Nova的云盘和原虚拟机的映射关系。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1至6中任一项所述异构虚拟机硬盘托管方法。
9.一种Nova平台,其特征在于,包括:处理器和存储器;
所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述Nova平台执行如权利要求1至6中任一项所述异构虚拟机硬盘托管方法。
10.一种异构虚拟机硬盘托管***,其特征在于,包括权利要求9所述的Nova平台和Cinder平台;
所述Cinder平台用于接收硬盘托管请求时,生成硬盘与云盘的映射信息,并发送云盘唯一标识码至所述Nova平台;所述Cinder平台接收云盘挂载请求时,生成云盘与虚拟机的映射信息并发送挂载结果至所述Nova平台。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810634189.8A CN109032753B (zh) | 2018-06-20 | 2018-06-20 | 一种异构虚拟机硬盘托管方法、***、存储介质及Nova平台 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810634189.8A CN109032753B (zh) | 2018-06-20 | 2018-06-20 | 一种异构虚拟机硬盘托管方法、***、存储介质及Nova平台 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109032753A CN109032753A (zh) | 2018-12-18 |
CN109032753B true CN109032753B (zh) | 2022-02-22 |
Family
ID=64609600
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810634189.8A Active CN109032753B (zh) | 2018-06-20 | 2018-06-20 | 一种异构虚拟机硬盘托管方法、***、存储介质及Nova平台 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109032753B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110445841B (zh) * | 2019-07-12 | 2022-04-22 | 苏州浪潮智能科技有限公司 | 一种云物理机挂载云盘的方法、设备以及存储介质 |
CN111240800B (zh) * | 2020-01-03 | 2022-12-27 | 华云数据有限公司 | 硬件加速设备挂载方法及云平台 |
CN113504872B (zh) * | 2021-05-14 | 2023-11-03 | 济南浪潮数据技术有限公司 | 一种云物理机挂载虚拟磁盘的方法、***、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103475677A (zh) * | 2012-06-07 | 2013-12-25 | 中兴通讯股份有限公司 | 一种PaaS云平台中管理虚拟节点的方法、装置及*** |
CN106708430A (zh) * | 2016-11-30 | 2017-05-24 | 浪潮软件集团有限公司 | 一种云计算架构下的云硬盘实现方法 |
CN107566511A (zh) * | 2017-09-20 | 2018-01-09 | 郑州云海信息技术有限公司 | 一种实现云存储的方法及云存储*** |
CN107888689A (zh) * | 2017-11-16 | 2018-04-06 | 无锡地铁集团有限公司 | 基于共享存储的加锁资源配置方法 |
CN109254825A (zh) * | 2017-07-12 | 2019-01-22 | 中兴通讯股份有限公司 | 一种纳管虚拟机硬盘的方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8495356B2 (en) * | 2010-12-31 | 2013-07-23 | International Business Machines Corporation | System for securing virtual machine disks on a remote shared storage subsystem |
CN107003893B (zh) * | 2016-02-03 | 2019-11-12 | 华为技术有限公司 | 虚拟机备份方法、备份装置及宿主机 |
-
2018
- 2018-06-20 CN CN201810634189.8A patent/CN109032753B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103475677A (zh) * | 2012-06-07 | 2013-12-25 | 中兴通讯股份有限公司 | 一种PaaS云平台中管理虚拟节点的方法、装置及*** |
CN106708430A (zh) * | 2016-11-30 | 2017-05-24 | 浪潮软件集团有限公司 | 一种云计算架构下的云硬盘实现方法 |
CN109254825A (zh) * | 2017-07-12 | 2019-01-22 | 中兴通讯股份有限公司 | 一种纳管虚拟机硬盘的方法及装置 |
CN107566511A (zh) * | 2017-09-20 | 2018-01-09 | 郑州云海信息技术有限公司 | 一种实现云存储的方法及云存储*** |
CN107888689A (zh) * | 2017-11-16 | 2018-04-06 | 无锡地铁集团有限公司 | 基于共享存储的加锁资源配置方法 |
Non-Patent Citations (2)
Title |
---|
Virtual Disk Image Reclamation for Software;Bin Chen;《2009 IEEE International Conference on Networking, Architecture, and Storage》;20090807;第43-50页 * |
云环境下虚拟机数据持久化存储***;陈辉;《中国优秀硕士学位论文全文数据库》;20140609;I137-94 * |
Also Published As
Publication number | Publication date |
---|---|
CN109032753A (zh) | 2018-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11960915B2 (en) | Method and apparatus for creating virtual machine based on parameter information of a virtual network interface card | |
US8972990B2 (en) | Providing a seamless transition for resizing virtual machines from a development environment to a production environment | |
US11392422B1 (en) | Service-managed containers for container orchestration service | |
US11422844B1 (en) | Client-specified network interface configuration for serverless container management service | |
US10324754B2 (en) | Managing virtual machine patterns | |
CN109254825A (zh) | 一种纳管虚拟机硬盘的方法及装置 | |
CN109032753B (zh) | 一种异构虚拟机硬盘托管方法、***、存储介质及Nova平台 | |
US10678657B1 (en) | Reversion operations for virtual computing environments | |
CN108073423B (zh) | 一种加速器加载方法、***和加速器加载装置 | |
US11636139B2 (en) | Centralized database system with geographically partitioned data | |
US11977559B2 (en) | Providing instant and distributed access to a source blob via copy-on-read blobs and link blobs | |
CN109905258B (zh) | PaaS的管理方法、装置及存储介质 | |
CN110290172B (zh) | 容器应用克隆方法、装置、计算机设备及存储介质 | |
US11734136B1 (en) | Quick disaster recovery in distributed computing environment | |
US20230021104A1 (en) | Methods and systems for scheduling a workflow | |
CN115037757A (zh) | 一种多集群服务管理*** | |
CN112015515B (zh) | 一种虚拟网络功能的实例化方法及装置 | |
CN113760446A (zh) | 资源调度方法、装置、设备及介质 | |
WO2023274014A1 (zh) | 容器集群的存储资源管理方法、装置及*** | |
WO2023061199A1 (zh) | Vnf实例生成方法、vnf蓝图生成方法、nfvo及存储介质 | |
US20240267356A1 (en) | System and method for automated static ip configuration | |
WO2024055670A1 (zh) | 基于云计算技术的数据迁移方法及云管理平台 | |
US20240241756A1 (en) | Restart processing of an application manager component of a device | |
US20240248776A1 (en) | Inventory management system for managing functions, resources and services of a telecommunications network | |
KR20230165571A (ko) | 컨테이너 환경에 볼륨을 제공하기 위한 방법 및 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |