虚拟机共享镜像文件的方法、装置和设备制造方法及图纸

技术编号:37471376 阅读:22 留言:0更新日期:2023-05-06 09:52
本申请提供一种虚拟机共享镜像文件的方法、装置和设备,用于解决多个虚拟机不能共享同一个虚拟存储设备的技术问题。本申请对镜像文件的格式进行修改,在镜像文件格式中加入虚拟机信息表,扩展镜像文件的访问地址格式,在访问地址中增加虚拟机索引,通过访问地址中的虚拟机索引关联镜像文件中的虚拟机信息表,通过虚拟机信息表关联L1表。本申请通过对镜像文件格式和访问地址的扩展实现了多个虚拟机共享镜像文件的技术效果。享镜像文件的技术效果。享镜像文件的技术效果。

【技术实现步骤摘要】
虚拟机共享镜像文件的方法、装置和设备


[0001]本申请涉及通信及云计算
,尤其涉及一种虚拟机共享镜像文件的方法、装置和设备。

技术介绍

[0002]虚拟机是通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。通过虚拟机软件,可以在一台物理计算机上模拟出一台或多台虚拟的计算机,这些虚拟机完全就像真正的计算机那样进行工作,例如可以安装操作系统、安装应用程序、访问网络资源等等。从用户的角度看,它只是运行在物理计算机上的一个应用程序,但是对于在虚拟机中运行的应用程序而言,它就像是在真正的计算机中进行工作。目前主要的虚拟机平台有VMware/Xen/Hyper

V/KVM等。
[0003]KVM(Kernel

based Virtual Machine)是Linux下x86硬件平台上的全功能虚拟化解决方案,包含一个可加载的虚拟化功能的内核模块kvm.ko,该模块使用Linux自身的调度器进行管理。KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术),是基于硬件的完全虚拟化。
[0004]QEMU(Quick EMUlator)是一种开源的虚拟操作系统模拟器软件,QEMU能模拟不同的硬件设备以便进行虚拟化,QEMU可以模拟虚拟机的外设设备,比如存储设备(例如磁盘)、显卡、USB等,也可以模拟CPU、内存等。
[0005]写时复制(Copy On Write,COW)技术,是一种无锁的快速数据访问机制,使用场景是多个线程或进程读取并且读取操作压力比较大,写操作压力比较小的场合。即多个读操作共享读取同一内存块,但写操作时,复制一份原内存块,在复制的内存块中进行修改。QCOW2镜像格式是QEMU模拟器支持的一种磁盘镜像。它可以用一个文件的形式来表示一块固定大小的块存储设备。
[0006]kvm虚拟机于宿主机中启动,一台kvm虚拟机启动后,相当于启动一个进程。Kvm虚拟机的虚拟磁盘通过宿主机中一个磁盘文件模拟,其内部格式是qcow2格式,虚拟机内部写入的数据,最终会被存入到该用于模拟虚拟机的虚拟磁盘的磁盘文件中。本申请中,用虚拟磁盘来描述通过存储设备上的文件模拟出的为虚拟机提供存储功能的虚拟存储设备,并不是为了将模拟虚拟机虚拟存储设备的文件的存储介质类型限定在磁介质上,而是本领域中的一种惯用称谓,同理,“磁盘文件”也是一种惯用称谓,本申请并不限定模拟虚拟机的虚拟存储设备的文件及物理存储设备的存储介质类型,可以是磁盘,也可以是其它存储介质类型,例如闪存固态硬盘等。
[0007]目前,kvm虚拟机是单个进程,每个虚拟机都独立地对应一个用于模拟虚拟磁盘的磁盘文件,该磁盘文件被该虚拟机独占使用,多个虚拟机不能共享同一个虚拟磁盘。

技术实现思路

[0008]有鉴于此,本申请提供一种虚拟机共享镜像文件的方法、装置和设备,用于解决多
个虚拟机不能共享同一个虚拟存储设备的技术问题。
[0009]基于本申请实施例的一方面,本申请提供了一种虚拟机共享镜像文件的方法,方法包括:
[0010]虚拟化模拟器捕获到虚拟机对扩展镜像文件的I/O请求时,对I/O地址进行扩展,扩展后的I/O地址中包括虚拟机索引,基于扩展后的I/O地址读/写所述扩展镜像文件;所述扩展镜像文件中包括虚拟机信息表,所述虚拟机与所述扩展镜像文件具有绑定关系。
[0011]进一步地,所述方法还包括:通过虚拟机信息表中的虚拟机信息判断所述虚拟机是否是第一次对所述扩展镜像文件进行读/写;在所述虚拟机第一次对所述扩展镜像文件进行读/写时,在所述扩展镜像文件中的虚拟机信息表中写入所述虚拟机的虚拟机信息;所述虚拟机信息表中至少包括虚拟机索引。
[0012]进一步地,所述方法还包括:在接收到I/O请求时,获取扩展镜像文件中的虚拟机信息;所述虚拟机信息还包括宿主机标识、宿主机网络访问地址;
[0013]在根据虚拟机信息表中的虚拟机信息判定还存在其它虚拟机共享所述扩展镜像文件时,根据虚拟机信息表中宿主机标识及宿主机网络访问地址与位于其它宿主机的仲裁模块进行仲裁,以确定更新虚拟机信息表的先后顺序;
[0014]进一步地,所述方法还包括:在扩展镜像文件中还包括互斥锁字段,在虚拟机向扩展镜像文件中的虚拟机信息表写入虚拟机信息时,通过所述互斥锁字段实现对所述扩展镜像文件的互斥更新。
[0015]进一步地,所述方法还包括:在向扩展镜像文件写入发起I/O操作的虚拟机信息前,还包括验证虚拟机与扩展镜像文件的绑定关系的步骤。
[0016]基于本申请实施例的另一方面,本申请还提供了一种虚拟机共享镜像文件的装置,该装置位于虚拟机所在的宿主机,该装置包括:
[0017]请求捕获模块,用于捕获虚拟机对扩展镜像文件的I/O请求;所述扩展镜像文件中包括虚拟机信息表,所述虚拟机与所述扩展镜像文件具有绑定关系;
[0018]地址扩展模块,用于I/O请求的I/O地址进行扩展,扩展后的I/O地址中包括虚拟机索引;
[0019]读/写访问模块,用于基于扩展后的I/O地址读/写所述扩展镜像文件。
[0020]进一步地,所述装置还包括:
[0021]第一判断模块,用于通过虚拟机信息表中的虚拟机信息判断所述虚拟机是否是第一次对所述扩展镜像文件进行读/写;
[0022]虚拟机信息写入模块,用于在所述虚拟机第一次对所述扩展镜像文件进行读/写时,在所述扩展镜像文件中的虚拟机信息表中写入所述虚拟机的虚拟机信息;所述虚拟机信息表中至少包括虚拟机索引。
[0023]进一步地,所述装置还包括:
[0024]互斥模块,用于在接收到I/O请求时,获取扩展镜像文件中的虚拟机信息;所述虚拟机信息还包括宿主机标识、宿主机网络访问地址;在根据虚拟机信息表中的虚拟机信息判定还存在其它虚拟机共享所述扩展镜像文件时,根据虚拟机信息表中宿主机标识及宿主机网络访问地址与位于其它宿主机的仲裁模块进行仲裁,以确定更新虚拟机信息表的先后顺序;或
[0025]在扩展镜像文件中还包括互斥锁字段,在虚拟机向扩展镜像文件中的虚拟机信息表写入虚拟机信息时,通过所述互斥锁字段实现对所述扩展镜像文件的互斥更新。
[0026]基于本申请实施例的另一方面,本申请还提供一种电子设备,该电子设备包括处理器、通信接口、存储介质和通信总线,其中,处理器、通信接口、存储介质通过通信总线完成相互间的通信;
[0027]存储介质,用于存放计算机程序;
[0028]处理器,用于执行存储介质上所存放的计算机程序时,实施权本申请提出的虚拟机共享镜像文件的方法步骤。
[0029]需要说明的是,本申请的方法可以由单个设备执行,也可以由多台设备相互配合来完成,多台设备中的一台设备可以只执行本申请的方法中的某一个或多个步骤,多台设备相互之间进行交互以共同完成本申请提出的方法以实现本申请的专利技术目的,多台设备之间相互之间构成相互的指挥和控制关系。完成本申请本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种虚拟机共享镜像文件的方法,其特征在于,该方法包括:虚拟化模拟器捕获到虚拟机对扩展镜像文件的I/O请求时,对I/O地址进行扩展,扩展后的I/O地址中包括虚拟机索引,基于扩展后的I/O地址读/写所述扩展镜像文件;所述扩展镜像文件中包括虚拟机信息表,所述虚拟机与所述扩展镜像文件具有绑定关系。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:通过虚拟机信息表中的虚拟机信息判断所述虚拟机是否是第一次对所述扩展镜像文件进行读/写;在所述虚拟机第一次对所述扩展镜像文件进行读/写时,在所述扩展镜像文件中的虚拟机信息表中写入所述虚拟机的虚拟机信息;所述虚拟机信息表中至少包括虚拟机索引。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:在接收到I/O请求时,获取扩展镜像文件中的虚拟机信息;所述虚拟机信息还包括宿主机标识、宿主机网络访问地址;在根据虚拟机信息表中的虚拟机信息判定还存在其它虚拟机共享所述扩展镜像文件时,根据虚拟机信息表中宿主机标识及宿主机网络访问地址与位于其它宿主机的仲裁模块进行仲裁,以确定更新虚拟机信息表的先后顺序。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:在扩展镜像文件中还包括互斥锁字段,在虚拟机向扩展镜像文件中的虚拟机信息表写入虚拟机信息时,通过所述互斥锁字段实现对所述扩展镜像文件的互斥更新。5.根据权利要求1所述的方法,其特征在于,在向扩展镜像文件写入发起I/O操作的虚拟机信息前,还包括验证虚拟机与扩展镜像文件的绑定关系的步骤。6.一种虚拟机共享镜像文件的装置,其特征在于,该装置位于虚拟机所在的宿主机,该装置包括:请求捕获模块,用于捕获虚拟机对扩展镜像文件的I/O请求;所述扩展镜像文件中包括虚拟机信息表,所述虚...

【专利技术属性】
技术研发人员:高亮
申请(专利权)人:新华三技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1