CN115390991A - 虚拟机的导入导出方法、装置、设备及存储介质 - Google Patents
虚拟机的导入导出方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115390991A CN115390991A CN202211043315.5A CN202211043315A CN115390991A CN 115390991 A CN115390991 A CN 115390991A CN 202211043315 A CN202211043315 A CN 202211043315A CN 115390991 A CN115390991 A CN 115390991A
- Authority
- CN
- China
- Prior art keywords
- disk
- virtual machine
- computing node
- image file
- metadata
- 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.)
- Pending
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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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/4557—Distribution of virtual machine instances; Migration and load balancing
-
- 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/45579—I/O management, e.g. providing access to device drivers or storage
-
- 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
Abstract
本申请是关于一种虚拟机的导入导出方法、装置、设备及存储介质,具体涉及云计算技术领域。该方法包括:响应于针对第一计算节点上的第一虚拟机的导出请求,挂载计算节点获取第一虚拟机的虚拟机元数据;挂载计算节点对第一磁盘进行远程挂载;挂载计算节点在NFS目录中保存虚拟机元数据和第一磁盘的镜像文件;响应于针对第一虚拟机的导入请求,挂载计算节点读取NFS目录下的虚拟机元数据;基于虚拟机元数据,创建空的第二磁盘,并在第二计算节点上创建第二磁盘对应的第二虚拟机;第二计算节点对NFS目录中的第一磁盘的镜像文件进行远程挂载,并将第一磁盘的镜像文件保存在第二磁盘中。
Description
技术领域
本申请涉及云计算技术领域,具体涉及一种虚拟机的导入导出方法、装置、设备及存储介质。
背景技术
随着云计算技术的普及,虚拟机的使用范围越来广泛。在虚拟机的使用过程中,存在一些对虚拟机进行导入、导出的需求,比如:对虚拟机进行备份、对虚拟机进行迁移。
相关技术中,若一个计算节点上的虚拟机需要导出,则在本地将该计算节点上的虚拟机的有关数据保存在网络文件系统(Network File System,NFS)目录中,其他计算节点可以通过NFS目录获取该虚拟机的有关数据,从而将该虚拟机导入至其他计算节点。
基于上述技术方案,每个计算节点都需要挂载NFS目录,才能实现虚拟机的导入导出,配置开销比较大。
发明内容
本申请提供了一种虚拟机的导入导出方法、装置、设备及存储介质。该技术方案如下。
一方面,提供了一种虚拟机的导入导出方法,所述方法包括:
响应于针对第一计算节点上的第一虚拟机的导出请求,挂载计算节点获取所述第一虚拟机的虚拟机元数据,所述挂载计算节点是在计算节点集群中,挂载有NFS目录的一个计算节点;
所述挂载计算节点对第一磁盘进行远程挂载,所述第一磁盘是所述第一虚拟机对应的虚拟机磁盘;
所述挂载计算节点在所述NFS目录中保存所述虚拟机元数据和所述第一磁盘的镜像文件,以使得将所述第一虚拟机导出所述第一计算节点;
响应于针对所述第一虚拟机的导入请求,所述挂载计算节点读取所述NFS目录下的所述虚拟机元数据;
基于所述虚拟机元数据,创建空的第二磁盘,并在第二计算节点上创建所述第二磁盘对应的第二虚拟机;
所述第二计算节点对所述NFS目录中的所述第一磁盘的镜像文件进行远程挂载,并将所述第一磁盘的镜像文件保存在所述第二磁盘中,以使得将所述第一虚拟机以所述第二虚拟机的形式导入所述第二计算节点。
再一方面,提供了一种虚拟机的导入导出装置,所述装置包括:
导出请求模块,用于供挂载计算节点响应于针对第一计算节点上的第一虚拟机的导出请求,获取所述第一虚拟机的虚拟机元数据,所述挂载计算节点是在计算节点集群中,挂载有NFS目录的一个计算节点;
虚拟机导出模块,用于供所述挂载计算节点对第一磁盘进行远程挂载,所述第一磁盘是所述第一虚拟机对应的虚拟机磁盘;所述挂载计算节点在所述NFS目录中保存所述虚拟机元数据和所述第一磁盘的镜像文件,以使得将所述第一虚拟机导出所述第一计算节点;
导入请求模块,用于供所述挂载计算节点响应于针对所述第一虚拟机的导入请求,读取所述NFS目录下的所述虚拟机元数据;
虚拟机导入模块,用于基于所述虚拟机元数据,创建空的第二磁盘,并在第二计算节点上创建所述第二磁盘对应的第二虚拟机;所述第二计算节点对所述NFS目录中的所述第一磁盘的镜像文件进行远程挂载,并将所述第一磁盘的镜像文件保存在所述第二磁盘中,以使得将所述第一虚拟机以所述第二虚拟机的形式导入所述第二计算节点。
再一方面,提供了一种计算机设备,所述计算机设备中包含处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述虚拟机的导入导出方法。
再一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现上述的虚拟机的导入导出方法。
再一方面,提供了一种计算机程序产品还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的虚拟机的导入导出方法。
本申请提供的技术方案可以包括以下有益效果:
利用挂载有NFS目录的挂载计算节点,将第一计算节点上的第一虚拟机对应的第一磁盘远程挂载于挂载计算节点,以将第一虚拟机的虚拟机元数据、第一磁盘的镜像文件通过挂载计算节点保存于NFS目录中,实现第一虚拟机的导出;后续基于NFS目录中的虚拟机元数据,为第二计算节点创建空的第二磁盘以及第二虚拟机,将NFS目录中的第一磁盘的镜像文件远程挂载于第二计算节点,从而将第一磁盘的镜像文件保存于第二磁盘,实现在第二计算节点以第二虚拟机的形式导入第一虚拟机。基于上述技术方案,NFS目录只需要挂载在挂载计算节点即可实现虚拟机的导入导出,NFS目录无需挂载在所有的计算节点上,从而减少了系统中的配置开销。
附图说明
为了更清楚地说明本申请具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的虚拟机的导入导出系统的示意图。
图2是根据一示例性实施例示出的虚拟机的导入导出方法的方法流程图。
图3是根据一示例性实施例示出的虚拟机的导入导出方法的方法流程图。
图4是根据一示例性实施例示出的一种虚拟机的导出流程的示意图。
图5是根据一示例性实施例示出的一种虚拟机的导入流程的示意图。
图6是根据一示例性实施例示出的一种虚拟机的导入导出装置的结构方框图。
图7是根据一示例性实施例提供的一种计算机设备的示意图。
具体实施方式
下面将结合附图对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应理解,在本申请的实施例中提到的“指示”可以是直接指示,也可以是间接指示,还可以是表示具有关联关系。举例说明,A指示B,可以表示A直接指示B,例如B可以通过A获取;也可以表示A间接指示B,例如A指示C,B可以通过C获取;还可以表示A和B之间具有关联关系。
在本申请实施例的描述中,术语“对应”可表示两者之间具有直接对应或间接对应的关系,也可以表示两者之间具有关联关系,也可以是指示与被指示、配置与被配置等关系。
本申请实施例中,“预定义”可以通过在设备(例如,包括终端设备和网络设备)中预先保存相应的代码、表格或其他可用于指示相关信息的方式来实现,本申请对于其具体的实现方式不做限定。
下面,结合如下实施例,对本申请提供的技术方案进行说明。
图1是根据一示例性实施例示出的一种虚拟机的导入导出系统的结构示意图。
该虚拟机的导入导出系统包括:计算节点集群和NFS存储,计算节点集群中至少包括:第一计算节点、第二计算节点。
在本申请实施例中,旨在对第一计算节点上运行的第一虚拟机进行导出,将该第一虚拟机以第二虚拟机的形式导入到第二计算节点上。在此过程中,将NFS存储作为第一虚拟机进行导入导出的中间存储。
计算节点集群中存在挂载计算节点,挂载计算节点挂载有NFS目录,通过该NFS目录挂载远程的NFS存储。利用该挂载计算节点,在将第一虚拟机进行导出之后,存储于NFS存储中,再进行该第一虚拟机的导入。
可以理解的是,挂载计算节点可以是上述的第一计算节点,也可以是上述的第二计算节点,还可以是计算节点集群中除第一计算节点、第二计算节点之外的任意计算节点。
图2是根据一示例性实施例示出的虚拟机的导入导出方法的方法流程图。该方法由计算机设备执行,如图2所示,该虚拟机的导入导出方法可以包括如下步骤:
步骤201,响应于针对第一计算节点上的第一虚拟机的导出请求,挂载计算节点获取第一虚拟机的虚拟机元数据。
其中,挂载计算节点是在计算节点集群中,挂载有NFS目录的一个计算节点。NFS目录是NFS存储在挂载计算节点的挂载点。在本申请实施例中,对虚拟机的导出请求或者导入请求先传递给挂载计算节点进行处理。
在第一计算节点上运行有第一虚拟机,在挂载计算节点接收到针对该第一虚拟机的导出请求的情况下,挂载计算节点从第一计算节点获取该第一虚拟机的虚拟机元数据。
其中,虚拟机元数据是用于对虚拟机的属性进行描述的数据。在下文实施例中,将对虚拟机元数据的具体内容进行说明。
步骤202,挂载计算节点对第一磁盘进行远程挂载。
其中,第一磁盘是第一虚拟机对应的虚拟机磁盘。
在一种可能的实现方式中,通过网络块设备(Network Block Device,NBD)功能实现第一磁盘的远程挂载。比如:在挂载计算节点上具有NBD客户端(可记为nbd-client),调用nbd-client连接第一磁盘,从而将第一磁盘远程挂载在挂载计算节点上。
步骤203,挂载计算节点在NFS目录中保存虚拟机元数据和第一磁盘的镜像文件,以使得将第一虚拟机导出第一计算节点。
在完成第一磁盘的远程挂载之后,挂载计算节点将虚拟机元数据和第一磁盘的镜像文件保存在NFS目录中。
其中,第一磁盘的镜像文件是用于模拟第一磁盘的文件。也即,在NFS目录中,第一磁盘以上述镜像文件的形式进行保存。
此时,由于NFS目录中所存储的虚拟机元数据和第一磁盘的镜像文件,可以用于重新构建一个与第一虚拟机相同或者类似的虚拟机,因此,在完成虚拟机元数据和第一磁盘的镜像文件的存储后,可以认为是完成了第一虚拟机的导出。
步骤204,响应于针对第一虚拟机的导入请求,挂载计算节点读取NFS目录下的虚拟机元数据。
在完成第一虚拟机的导出之后,在接收到针对该第一虚拟机的导入请求的情况下,挂载计算节点从NFS目录中读取虚拟机元数据。
在一种可能的实现方式中,导入请求中携带NFS目录作为参数,则挂载计算节点读取导入请求所传递的NFS目录,从而获取相应的虚拟机元数据。
步骤205,基于虚拟机元数据,创建空的第二磁盘,并在第二计算节点上创建第二磁盘对应的第二虚拟机。
挂载计算节点根据读取的第一虚拟机的虚拟机元数据,通过远程调用的方式,创建一个空的第二磁盘,以及通过该第二磁盘在第二计算节点上创建第二虚拟机。
其中,第二磁盘是第二虚拟机对应的虚拟机磁盘。由于该第二虚拟机处于第二计算节点,因此,第二计算节点可以认为是需要导入第一虚拟机的计算节点。
在一种可能的实现方式中,挂载计算节点通过api服务来处理第一虚拟机的导入请求,创建空的第二磁盘,以及在第二计算节点上创建第二虚拟机,第二磁盘挂载为第二虚拟机的虚拟机磁盘。可以理解的是,第一虚拟机的导入请求中包含了需要导入该第一虚拟机的目标计算节点的地址,在本实施方式中的第二计算节点即为需要导入第一虚拟机的目标计算节点,api服务根据导入请求中的目标计算节点的地址,在第二计算节点上创建第二虚拟机,以及创建一个空的第二磁盘,该第二磁盘是第二虚拟机对应的虚拟机磁盘。
步骤206,第二计算节点对NFS目录中的第一磁盘的镜像文件进行远程挂载。
在一种可能的实现方式中,通过NBD功能实现第一磁盘的镜像文件的远程挂载。比如:在第二计算节点上具有NBD客户端(可记为nbd-client),调用nbd-client连接第一磁盘的镜像文件,从而将第一磁盘的镜像文件远程挂载在第二计算节点上。
步骤207,第二计算节点将第一磁盘的镜像文件保存在第二磁盘中,以使得将第一虚拟机以第二虚拟机的形式导入第二计算节点。
在完成第二磁盘以及第二虚拟机的创建之后,将NFS目录中的第一磁盘的镜像文件远程挂载在第二计算节点上,进而将第一磁盘的镜像文件保存在第二磁盘中。
此时,由于第二磁盘以及第二计算节点上运行的第二虚拟机是基于第一虚拟机的虚拟机元数据创建的,且第二磁盘中保存有第一磁盘的镜像文件,因此,在将第一磁盘的镜像文件保存到第二磁盘中之后,可以认为是将第一虚拟机以第二虚拟机的形式导入进了第二计算节点。
在一种可能的实现方式中,在对第二虚拟机关机后,第二计算节点执行将第一磁盘的镜像文件保存在第二磁盘中的过程。
可以理解的是,上述步骤中仅以对第一计算节点上的第一虚拟机进行导入导出进行了说明,在具体实施时,可以同时对第一计算节点上的多个虚拟机同时进行导出,再将这些虚拟机导入到相同或不同的计算节点上。对各个虚拟机进行导入导出的具体实施过程,可以类似地参照对第一虚拟机的导入导出过程,在此不再赘述。
综上所述,本实施例提供的虚拟机的导入导出方法,利用挂载有NFS目录的挂载计算节点,将第一计算节点上的第一虚拟机对应的第一磁盘远程挂载于挂载计算节点,以将第一虚拟机的虚拟机元数据、第一磁盘的镜像文件通过挂载计算节点保存于NFS目录中,实现第一虚拟机的导出;后续基于NFS目录中的虚拟机元数据,为第二计算节点创建空的第二磁盘以及第二虚拟机,将NFS目录中的第一磁盘的镜像文件远程挂载于第二计算节点,从而将第一磁盘的镜像文件保存于第二磁盘,实现在第二计算节点以第二虚拟机的形式导入第一虚拟机。基于上述技术方案,NFS目录只需要挂载在挂载计算节点即可实现虚拟机的导入导出,NFS目录无需挂载在所有的计算节点上,从而减少了系统中的配置开销。
在示意性实施例中,第一磁盘和第二磁盘可以对应于不同的存储类型,从而实现跨存储的虚拟机的导入导出。
图3是根据一示例性实施例示出的虚拟机的导入导出方法的方法流程图。该方法由计算机设备执行。如图3所示,该虚拟机的导入导出方法可以包括如下步骤:
步骤301,响应于针对第一计算节点上的第一虚拟机的导出请求,挂载计算节点获取第一虚拟机的虚拟机元数据,虚拟机元数据包括:第一磁盘的磁盘信息、第一虚拟机的虚拟机规格信息。
其中,磁盘信息可以包括:磁盘的大小、磁盘的存储类型、磁盘的存储路径;虚拟机规格信息可以包括:虚拟机中央处理器(Central Processing Unit,CPU)、内存、网络。
步骤302,第一计算节点将第一磁盘的地址暴露给挂载计算节点。
步骤303,挂载计算节点基于第一磁盘的地址查找第一磁盘,并对第一磁盘进行远程挂载,以使得第一磁盘成为挂载计算节点的本地设备。
第一计算节点对第一磁盘的地址进行暴露,以使得挂载计算节点连接第一磁盘,将第一磁盘远程挂载在挂载计算节点上,第一磁盘成为挂载计算节点的本地设备。
在一种可能的实现方式中,第一磁盘的地址指的是第一磁盘的IP地址、端口号。比如:第一计算节点调用qemu-nbd命令将第一磁盘以IP地址、端口号的方式暴露出去,使得挂载计算节点在接收到此信息后,调用nbd-client去连接该第一磁盘,从而将第一磁盘远程挂载在挂载计算节点上。
步骤304,挂载计算节点将作为本地设备的第一磁盘转化为镜像文件,并保存在NFS目录;将虚拟机元数据保存在相同的NFS目录中。
由于挂载计算节点挂载有NFS目录,在将第一磁盘挂载在挂载计算节点上,成为挂载计算节点的本地设备之后,先将作为本地设备的第一磁盘转化为镜像文件,再将该镜像文件保存在NFS目录,并后续将虚拟机元数据保存在相同的NFS目录中。
在一种可能的实现方式中,挂载计算节点通过qemu-img convert命令将作为本地设备的第一磁盘转为qcow2形式的镜像文件。
步骤305,响应于针对第一虚拟机的导入请求,挂载计算节点读取NFS目录以获取虚拟机元数据。
步骤306,基于第一磁盘的磁盘信息,创建与第一磁盘相同大小的第二磁盘,且第二磁盘为空的磁盘;基于第一虚拟机的虚拟机规格信息,在第二计算节点上创建第二虚拟机。
在一种可能的实现方式中,在读取到虚拟机元数据之后,基于虚拟机元数据中的第一磁盘的磁盘信息,调用cinder接口创建与第一磁盘相同大小的第二磁盘,并在此基础上,基于虚拟机元数据中的虚拟机规格信息,在第二计算节点上创建与第一虚拟机的规格相同或类似的第二虚拟机。
步骤307,挂载计算节点将NFS目录中的第一磁盘的镜像文件的地址暴露给第二计算节点。
步骤308,第二计算节点基于第一磁盘的镜像文件的地址查找第一磁盘的镜像文件,并对第一磁盘的镜像文件进行远程挂载,以使得第一磁盘的镜像文件成为第二计算节点的本地设备文件。
在一种可能的实现方式中,第一磁盘的镜像文件的地址指的是第一磁盘的镜像文件的IP地址、端口号。比如:挂载计算节点调用qemu-nbd命令将第一磁盘的镜像文件以IP地址、端口号的方式暴露出去,使得第二计算节点在接收到此信息后,调用nbd-client去连接该第一磁盘的镜像文件,从而将第一磁盘的镜像文件远程挂载在第二计算节点上。
步骤309,第二计算节点将作为本地设备文件的第一磁盘的镜像文件保存在第二磁盘中,以使得将第一虚拟机以第二虚拟机的形式导入第二计算节点。
由于第二计算节点上运行的第二虚拟机对应于第二磁盘,在将第一磁盘的镜像文件挂载在第二计算节点上,成为第二计算节点的本地设备文件之后,将该镜像文件保存在第二磁盘。
在一种可能的实现方式中,第二计算节点通过qemu-img convert命令将作为本地设备文件的第一磁盘的镜像文件写入第二磁盘。
在相关技术中,一般以原生存储的方式进行导出,比如:将ceph存储类型的磁盘通过rbd命令导出,导入的时候还通过rbd命令将这个磁盘导入到新的ceph存储中。而在本申请实施例中,将对应于第一存储类型的第一磁盘导出为镜像文件,再将第二存储类型的存储划出部分作为第二磁盘,将第二磁盘挂载到新建的第二虚机所在的第二计算节点上,再将导出的镜像文件转换到新建的第二磁盘上,以使得导出的第一磁盘对应第一存储类型,导入的第二磁盘对应第二存储类型,实现跨存储的导入导出。
可以理解的是,除了上述第一磁盘的存储类型与第二磁盘的存储类型不同的实现方式以外,第一磁盘的存储类型也可以与第二磁盘的存储类型相同。
综上所述,本实施例提供的虚拟机的导入导出方法,在进行虚拟机导入时,新建一个第二磁盘,并将第一虚拟机对应的第一磁盘的镜像文件保存入第二磁盘,第一磁盘与第二磁盘的存储类型可以不同,从而实现跨存储的虚拟机的导入导出。
在本申请实施例中,虚拟机的导入导出方法可以适用于如下场景:
·在三节点场景下执行虚拟机的导入导出方法。
此时,挂载计算节点是计算节点集群中,除第一计算节点、第二计算节点以外的任意计算节点。
比如:在导出第一计算节点上运行的第一虚拟机时,通过第三计算节点将第一虚拟机的虚拟机元数据以及第一磁盘的镜像文件保存到NFS存储中,再利用这些信息,将第一虚拟机以第二虚拟机的形式导入到第二计算节点中。
·在二节点场景下执行虚拟机的导入导出方法。
此时,挂载计算节点是第一计算节点;或,挂载计算节点是第二计算节点。
比如:在导出第一计算节点上运行的第一虚拟机时,通过该第一计算节点将第一虚拟机的虚拟机元数据以及第一磁盘的镜像文件保存到NFS存储中,再利用这些信息,将第一虚拟机以第二虚拟机的形式导入到第二计算节点中。
比如:在导出第一计算节点上运行的第一虚拟机时,通过第二计算节点将第一虚拟机的虚拟机元数据以及第一磁盘的镜像文件保存到NFS存储中,再利用这些信息,将第一虚拟机以第二虚拟机的形式导入到该第二计算节点中。
下面,结合参考图4,对本申请所提供的虚拟机的导入导出方法中的虚拟机导出的过程进行示例性的说明。
在导出虚拟机之前,计算节点1上运行有第一虚拟机,第一磁盘挂载为第一虚拟机的虚拟机磁盘;计算节点2是外接有NFS存储的计算节点,计算节点2中的NFS存储的挂载点为/nfs。
(1)用户调用Nova接口发出针对第一虚拟机的导出请求,该导出请求下发到计算节点2。
(2)在计算节点2对导出请求进行解析,并通过调用接口获取到第一虚拟机运行在计算节点1上,通过消息队列将导出请求转发到计算节点1上,通过Nova接口获取第一虚拟机的虚拟机元数据。
其中,虚拟机元数据包括:第一磁盘的磁盘信息、第一虚拟机的虚拟机规格信息。磁盘信息可以包括:磁盘的大小、磁盘的存储类型、磁盘的存储路径;虚拟机规格信息可以包括:虚拟机CPU、内存、网络。
其中,第一磁盘的存储类型为san存储。
(3)在计算节点1上,Nova调用qemu-nbd命令将第一磁盘以IP+端口号的方式暴露出去,并将该信息通过消息队列返回给计算节点2。
(4)计算节点2通过Nova调用nbd-client连接远程的第一磁盘作为一个本地设备:/dev/nbd0。
(5)计算节点2通过qemu-img convert命令将本地设备转为qcow2的镜像文件,并保存在NFS目录。
(6)计算节点2将虚拟机元数据也保存在和镜像文件相同的NFS目录下。
在本实施例中,以采用Nova进行虚拟机的管理进行了说明,在实际中,也可以采用其他类型的服务。
下面,结合参考图5,对本申请所提供的虚拟机的导入导出方法中的虚拟机导入的过程进行示例性的说明。
在导入虚拟机之后,计算节点3上运行有第二虚拟机,第二磁盘挂载为第二虚拟机的虚拟机磁盘;计算节点2是外接有NFS存储的计算节点,计算节点2中的NFS存储的挂载点为/nfs。
(1)用户调用Nova接口发出针对第一虚拟机的导入请求,该导入仪请求下发到计算节点2,导入请求中携带NFS目录作为参数。
(2)计算节点2对导入请求进行解析,读取NFS目录以获取第一虚拟机的虚拟机元数据。
其中,虚拟机元数据包括:第一磁盘的磁盘信息、第一虚拟机的虚拟机规格信息。磁盘信息可以包括:磁盘的大小、磁盘的存储类型、磁盘的存储路径;虚拟机规格信息可以包括:虚拟机CPU、内存、网络。
其中,第一磁盘的存储类型为san存储。
(3)根据读取的虚拟机元数据,调用cinder接口创建同样大小的空的第二磁盘,并通过该第二磁盘创建第二虚拟机,第二虚拟机处于计算节点3上。
其中,第二磁盘的存储类型为ceph存储。
(4)在计算节点2上,Nova调用qemu-nbd命令将第一磁盘的镜像文件以IP+端口号的方式暴露出去,并将该信息通过消息队列返回给计算节点3。
(5)计算节点3通过Nova调用nbd-client连接远程的第一磁盘的镜像文件作为一个本地设备文件:/dev/nbd0。
(6)对计算节点3上的第二虚拟机执行关机。
(7)计算节点3通过qemu-img convert命令将本地设备文件保存在第二磁盘。
在本实施例中,以采用Nova进行虚拟机的管理进行了说明,在实际中,也可以采用其他类型的服务。
需要说明的是,上述方法实施例可以单独实施例,也可以组合实施,本申请对此不加以限制。
图6是根据一示例性实施例示出的一种虚拟机的导入导出装置的结构方框图。所述装置包括:
导出请求模块601,用于供挂载计算节点响应于针对第一计算节点上的第一虚拟机的导出请求,获取所述第一虚拟机的虚拟机元数据,所述挂载计算节点是在计算节点集群中,挂载有网络文件系统NFS目录的一个计算节点;
虚拟机导出模块602,用于供所述挂载计算节点对第一磁盘进行远程挂载,所述第一磁盘是所述第一虚拟机对应的虚拟机磁盘;所述挂载计算节点在所述NFS目录中保存所述虚拟机元数据和所述第一磁盘的镜像文件,以使得将所述第一虚拟机导出所述第一计算节点;
导入请求模块603,用于供所述挂载计算节点响应于针对所述第一虚拟机的导入请求,读取所述NFS目录下的所述虚拟机元数据;
虚拟机导入模块604,用于基于所述虚拟机元数据,创建空的第二磁盘,并在第二计算节点上创建所述第二磁盘对应的第二虚拟机;所述第二计算节点对所述NFS目录中的所述第一磁盘的镜像文件进行远程挂载,并将所述第一磁盘的镜像文件保存在所述第二磁盘中,以使得将所述第一虚拟机以所述第二虚拟机的形式导入所述第二计算节点。
在一种可能的实现方式中,所述第一磁盘远程挂载在所述挂载计算节点上后,所述第一磁盘成为所述挂载计算节点的本地设备;
所述虚拟机导出模块602,还用于:
所述挂载计算节点将作为本地设备的所述第一磁盘转化为所述镜像文件,并保存在所述NFS目录;
所述挂载计算节点将所述虚拟机元数据保存在相同的所述NFS目录中。
在一种可能的实现方式中,所述虚拟机导出模块602,还用于:
所述第一计算节点将所述第一磁盘的地址暴露给所述挂载计算节点;
所述挂载计算节点基于所述第一磁盘的地址查找所述第一磁盘,并对所述第一磁盘进行远程挂载。
在一种可能的实现方式中,所述虚拟机元数据包括:所述第一磁盘的磁盘信息、所述第一虚拟机的虚拟机规格信息;
所述虚拟机导入模块604,还用于:
基于所述第一磁盘的磁盘信息,创建与所述第一磁盘相同大小的所述第二磁盘,且所述第二磁盘为空的磁盘;
基于所述第一虚拟机的虚拟机规格信息,在所述第二计算节点上创建所述第二虚拟机。
在一种可能的实现方式中,所述第一磁盘的存储类型与所述第二磁盘的存储类型不同或相同。
在一种可能的实现方式中,所述第一磁盘的镜像文件远程挂载在所述第二计算节点上后,所述第一磁盘成为所述第二计算节点的本地设备文件;
所述虚拟机导入模块604,还用于:
所述第二计算节点将作为本地设备文件的所述第一磁盘的镜像文件保存在所述第二磁盘中。
在一种可能的实现方式中,所述虚拟机导入模块604,还用于:
所述挂载计算节点将所述NFS目录中的所述第一磁盘的镜像文件的地址暴露给所述第二计算节点;
所述第二计算节点基于所述第一磁盘的镜像文件的地址查找所述第一磁盘的镜像文件,并对所述第一磁盘的镜像文件进行远程挂载。
在一个可能的实现方式中,所述挂载计算节点是所述第一计算节点;
或,所述挂载计算节点是所述第二计算节点;
或,所述挂载计算节点是在所述计算节点集群中,除所述第一计算节点、所述第二计算节点以外的任意计算节点。
需要说明的是:上述实施例提供的虚拟机的导入导出装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参阅图7,其是根据本申请一示例性实施例提供的一种计算机设备的示意图,所述计算机设备包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的虚拟机的导入导出方法。
其中,处理器可以为中央处理器(Central Processing Unit,CPU)。处理器还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本申请实施方式中的方法对应的程序指令/模块。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施方式中的方法。
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
在一示例性实施例中,还提供了一种计算机可读存储介质,用于存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行以实现上述方法中的全部或部分步骤。例如,该计算机可读存储介质可以是只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (11)
1.一种虚拟机的导入导出方法,其特征在于,所述方法包括:
响应于针对第一计算节点上的第一虚拟机的导出请求,挂载计算节点获取所述第一虚拟机的虚拟机元数据,所述挂载计算节点是在计算节点集群中,挂载有网络文件系统NFS目录的一个计算节点;
所述挂载计算节点对第一磁盘进行远程挂载,所述第一磁盘是所述第一虚拟机对应的虚拟机磁盘;
所述挂载计算节点在所述NFS目录中保存所述虚拟机元数据和所述第一磁盘的镜像文件,以使得将所述第一虚拟机导出所述第一计算节点;
响应于针对所述第一虚拟机的导入请求,所述挂载计算节点读取所述NFS目录下的所述虚拟机元数据;
基于所述虚拟机元数据,创建空的第二磁盘,并在第二计算节点上创建所述第二磁盘对应的第二虚拟机;
所述第二计算节点对所述NFS目录中的所述第一磁盘的镜像文件进行远程挂载,并将所述第一磁盘的镜像文件保存在所述第二磁盘中,以使得将所述第一虚拟机以所述第二虚拟机的形式导入所述第二计算节点。
2.根据权利要求1所述的方法,其特征在于,所述第一磁盘远程挂载在所述挂载计算节点上后,所述第一磁盘成为所述挂载计算节点的本地设备;
所述挂载计算节点在所述NFS目录中保存所述虚拟机元数据和所述第一磁盘的镜像文件,包括:
所述挂载计算节点将作为本地设备的所述第一磁盘转化为所述镜像文件,并保存在所述NFS目录;
所述挂载计算节点将所述虚拟机元数据保存在相同的所述NFS目录中。
3.根据权利要求2所述的方法,其特征在于,所述挂载计算节点对第一磁盘进行远程挂载,包括:
所述第一计算节点将所述第一磁盘的地址暴露给所述挂载计算节点;
所述挂载计算节点基于所述第一磁盘的地址查找所述第一磁盘,并对所述第一磁盘进行远程挂载。
4.根据权利要求1所述的方法,其特征在于,所述虚拟机元数据包括:所述第一磁盘的磁盘信息、所述第一虚拟机的虚拟机规格信息;
所述基于所述虚拟机元数据,创建空的第二磁盘,并在第二计算节点上创建所述第二磁盘对应的第二虚拟机,包括:
基于所述第一磁盘的磁盘信息,创建与所述第一磁盘相同大小的所述第二磁盘,且所述第二磁盘为空的磁盘;
基于所述第一虚拟机的虚拟机规格信息,在所述第二计算节点上创建所述第二虚拟机。
5.根据权利要求1所述的方法,其特征在于,
所述第一磁盘的存储类型与所述第二磁盘的存储类型不同或相同。
6.根据权利要求1所述的方法,其特征在于,所述第一磁盘的镜像文件远程挂载在所述第二计算节点上后,所述第一磁盘成为所述第二计算节点的本地设备文件;
所述第二计算节点将所述第一磁盘的镜像文件保存在所述第二磁盘中,包括:
所述第二计算节点将作为本地设备文件的所述第一磁盘的镜像文件保存在所述第二磁盘中。
7.根据权利要求6所述的方法,其特征在于,所述第二计算节点对所述NFS目录中的所述第一磁盘的镜像文件进行远程挂载,包括:
所述挂载计算节点将所述NFS目录中的所述第一磁盘的镜像文件的地址暴露给所述第二计算节点;
所述第二计算节点基于所述第一磁盘的镜像文件的地址查找所述第一磁盘的镜像文件,并对所述第一磁盘的镜像文件进行远程挂载。
8.根据权利要求1所述的方法,其特征在于,
所述挂载计算节点是所述第一计算节点;
或,所述挂载计算节点是所述第二计算节点;
或,所述挂载计算节点是所述计算节点集群中除所述第一计算节点、所述第二计算节点以外的任意计算节点。
9.一种虚拟机的导入导出装置,其特征在于,所述装置包括:
导出请求模块,用于供挂载计算节点响应于针对第一计算节点上的第一虚拟机的导出请求,获取所述第一虚拟机的虚拟机元数据,所述挂载计算节点是在计算节点集群中,挂载有网络文件系统NFS目录的一个计算节点;
虚拟机导出模块,用于供所述挂载计算节点对第一磁盘进行远程挂载,所述第一磁盘是所述第一虚拟机对应的虚拟机磁盘;所述挂载计算节点在所述NFS目录中保存所述虚拟机元数据和所述第一磁盘的镜像文件,以使得将所述第一虚拟机导出所述第一计算节点;
导入请求模块,用于供所述挂载计算节点响应于针对所述第一虚拟机的导入请求,读取所述NFS目录下的所述虚拟机元数据;
虚拟机导入模块,用于基于所述虚拟机元数据,创建空的第二磁盘,并在第二计算节点上创建所述第二磁盘对应的第二虚拟机;所述第二计算节点对所述NFS目录中的所述第一磁盘的镜像文件进行远程挂载,并将所述第一磁盘的镜像文件保存在所述第二磁盘中,以使得将所述第一虚拟机以所述第二虚拟机的形式导入所述第二计算节点。
10.一种计算机设备,其特征在于,所述计算机设备中包含处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由所述处理器加载并执行以实现如权利要求1至8任一所述的虚拟机的导入导出方法。
11.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现如权利要求1至8任一所述的虚拟机的导入导出方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211043315.5A CN115390991A (zh) | 2022-08-29 | 2022-08-29 | 虚拟机的导入导出方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211043315.5A CN115390991A (zh) | 2022-08-29 | 2022-08-29 | 虚拟机的导入导出方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115390991A true CN115390991A (zh) | 2022-11-25 |
Family
ID=84122435
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211043315.5A Pending CN115390991A (zh) | 2022-08-29 | 2022-08-29 | 虚拟机的导入导出方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115390991A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116301593A (zh) * | 2023-02-09 | 2023-06-23 | 安超云软件有限公司 | 在云平台下跨集群跨存储拷贝块数据的方法及应用 |
CN116755835A (zh) * | 2023-06-05 | 2023-09-15 | 广州鼎甲计算机科技有限公司 | 迁移虚拟机的方法、装置、计算机设备、介质和程序产品 |
CN116755835B (zh) * | 2023-06-05 | 2024-05-14 | 广州鼎甲计算机科技有限公司 | 迁移虚拟机的方法、装置、计算机设备、介质和程序产品 |
-
2022
- 2022-08-29 CN CN202211043315.5A patent/CN115390991A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116301593A (zh) * | 2023-02-09 | 2023-06-23 | 安超云软件有限公司 | 在云平台下跨集群跨存储拷贝块数据的方法及应用 |
CN116301593B (zh) * | 2023-02-09 | 2024-02-02 | 安超云软件有限公司 | 在云平台下跨集群跨存储拷贝块数据的方法及应用 |
CN116755835A (zh) * | 2023-06-05 | 2023-09-15 | 广州鼎甲计算机科技有限公司 | 迁移虚拟机的方法、装置、计算机设备、介质和程序产品 |
CN116755835B (zh) * | 2023-06-05 | 2024-05-14 | 广州鼎甲计算机科技有限公司 | 迁移虚拟机的方法、装置、计算机设备、介质和程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110968331B (zh) | 应用程序运行的方法和装置 | |
CN111400246B (zh) | 异步导入文件方法、装置、计算机设备和存储介质 | |
CN111651219A (zh) | 一种多模块项目配置文件管理的方法及设备 | |
CN112416964A (zh) | 一种数据处理的方法、装置、系统、计算机设备及计算机可读存储介质 | |
CN111641676A (zh) | 一种第三方云监控服务的构建方法及装置 | |
CN113268308B (zh) | 信息处理方法、装置以及存储介质 | |
CN115390991A (zh) | 虚拟机的导入导出方法、装置、设备及存储介质 | |
CN116126742A (zh) | 内存访问方法、装置、服务器及存储介质 | |
CN108234551B (zh) | 一种数据处理方法及装置 | |
CN113448690B (zh) | 监测方法及装置 | |
CN113051102A (zh) | 文件备份方法、装置、系统、存储介质和计算机设备 | |
CN109842498B (zh) | 一种客户端配置方法、服务器、客户端及电子设备 | |
CN116755788A (zh) | 一种线上规则修改方法、装置、设备及存储介质 | |
CN112491943A (zh) | 数据请求方法、装置、存储介质和电子设备 | |
CN113626099B (zh) | 应用程序的启动方法、装置及电子设备 | |
CN115062340A (zh) | 设备访问方法、接口处理方法及设备 | |
CN111399896B (zh) | 补丁获取方法、装置、设备及存储介质 | |
CN110968471A (zh) | 一种程序崩溃问题上报方法、存储介质、电子设备及系统 | |
CN112597406A (zh) | 一种文件传输方法、装置、终端设备及存储介质 | |
CN113923257A (zh) | 容器组实例终止和创建方法、装置、电子设备和存储介质 | |
CN113805854A (zh) | 基于Linux系统的应用层Hook实现方法、系统、装置及存储介质 | |
CN110309365B (zh) | 一种基于Mybatis实现的openstack数据查询方法与装置 | |
WO2024099274A1 (zh) | 数据处理方法、设备和存储介质 | |
CN114978786B (zh) | 一种将第三方接口转化为系统标准接口的方法及装置 | |
CN112134910B (zh) | 网络请求调试方法、装置、设备及存储介质 |
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 |