一种虚拟机虚拟硬盘的升级方法及电子设备与流程

文档序号:12034396阅读:222来源:国知局
一种虚拟机虚拟硬盘的升级方法及电子设备与流程

本申请涉及虚拟机技术领域,特别涉及一种虚拟机虚拟硬盘的升级方法及电子设备。



背景技术:

目前广泛使用云计算基础架构平台(infrastructureasaserviceplatform,iaasplatform)来管理虚拟机(virtualmachine,vm)。当启动虚拟机的时候,一般是以通用操作系统镜像硬盘文件(commonoshdimage)为模板,创建一个vm运行硬盘镜像(virtualmachineoperationsystemhdimage,vmoshdimage)文件,用来启动vm。在vm里面,vmoshdimage就是vm看到的虚拟硬盘(virtualharddisk,vhd)。

随着私有云平台的发展,往往以同一个commonoshdimage为基础,要创建很多vmoshdimage,甚至采用批量创建的办法,一次指定创建很多个vmoshdimage。

在实际使用过程中,随着vmos的运行,vmoshdimage会做很多修改,这里的修改就是指随着vmos对vhd的写入,修改了vmoshdimage。其中,很多修改是希望推广到其他vmoshdimage里面,尤其是以相同commonoshdimage批量创建的vmoshdimage,如对vmos的升级包括vmos里面应用的配置等,这类修改本文统称为对vmoshdimage的升级。

目前,升级vmoshdimage通常采用修改commonoshdimage后,再重新创建vmoshdimage的方案。

但这种方案中,如果在修改commonoshdimage后重新创建vmoshdimage,需要较长的时间来重新创建vmoshdimage,升级效率较低。



技术实现要素:

有鉴于此,本申请的目的是提供一种虚拟机虚拟硬盘的升级方法及电子设备,用以解决现有技术中虚拟硬盘升级效率较低的技术问题。

本申请提供了一种虚拟机虚拟硬盘的升级方法,包括:

虚拟机获得主机的升级文件列表,所述升级文件列表对应至少一个待更新的更新文件;

虚拟机基于所述更新文件,对所述虚拟机的虚拟硬盘进行更新。

上述方法,优选的,获得主机的升级文件列表,包括:

建立与所述主机之间的共享内存,所述共享内存中至少存储有所述主机的升级文件列表;

基于所述共享内存,获得所述升级文件列表。

上述方法,优选的,获得主机的升级文件列表,包括:

获得主机通过网络发送的升级文件列表。

上述方法,优选的,基于所述更新文件,对所述虚拟机的虚拟硬盘进行更新,包括:

对所述更新文件的文件类型进行划分,至少得到第一类型文件与第二类型文件;

对所述第一类型文件采用预设的第一更新方式进行更新;

对所述第二类型文件采用预设的第二更新方式进行更新,所述第一更新方式与所述第二更新方式不同。

上述方法,优选的,所述第一类型文件为可写入虚拟硬盘的文件,其中:

所述对所述第一类型文件采用预设的第一更新方式进行更新,包括:

将所述第一类型文件覆盖写入到所述虚拟机的虚拟硬盘中。

上述方法,优选的,所述第二类型文件为不可写入到虚拟硬盘的文件,其中:

所述对所述第二类型文件采用预设的第二更新方式进行更新,包括:

基于所述第二类型文件,建立目标虚拟文件系统,所述目标虚拟文件系统与所述第二类型文件相关联,且所述目标虚拟文件系统与所述虚拟机的原有虚拟文件系统不同;

基于所述目标虚拟文件系统,更新所述虚拟机的原有虚拟文件系统。

上述方法,优选的,基于所述目标虚拟文件系统,更新所述虚拟机的原有虚拟文件系统,包括:

将所述目标虚拟文件系统与所述虚拟机的原有虚拟文件系统合并。

上述方法,优选的,还包括:

接收对虚拟硬盘的文件访问请求,所述文件访问请求与待访问的目标文件相对应;

基于所述目标文件的文件类型,采用预设的访问方式进行访问。

上述方法,优选的,基于所述目标文件的文件类型,采用预设的访问方式进行访问,包括:

对于可写入到虚拟硬盘的目标文件,通过所述虚拟机的原有虚拟文件系统访问所述目标文件。

上述方法,优选的,基于所述目标文件的文件类型,采用预设的访问方式进行访问,包括:

对于不可写入到虚拟硬盘的目标文件,通过所述虚拟机的目标虚拟文件系统访问所述目标文件。

本申请还提供了另一种虚拟机虚拟硬盘的升级方法,包括:

主机接收虚拟机发送的升级请求并创建与所述升级请求相对应的升级文件列表,所述升级文件列表对应至少一个待更新的更新文件;

主机将所述升级文件列表传输给所述虚拟机。

上述方法,优选的,将所述升级文件列表传输给所述虚拟机,包括:

建立与所述虚拟机之间的共享内存;

将所述升级文件列表置于所述共享内存中,使得所述虚拟机从所述共享内存中获取所述升级文件列表。

上述方法,优选的,将所述升级文件列表传输给所述虚拟机,包括:

将所述升级文件列表通过网络传输给所述虚拟机。

本申请还提供了一种电子设备,包括:

存储器,用于存储应用程序与应用程序运行所产生的数据;

处理器,用于运行所述应用程序以在所述电子设备建立虚拟机,使得所述虚拟机获得主机的升级文件列表,所述升级文件列表对应至少一个待更新的更新文件,再基于所述更新文件,对所述虚拟机的虚拟硬盘进行更新。

由上述方案可知,本申请提供的一种虚拟机虚拟硬盘的升级方法及电子设备中,虚拟机通过获取主机发送的升级文件列表之后,基于升级文件列表中的更新文件,对虚拟机的虚拟硬盘进行更新。由此,本申请不需要停止虚拟机的运行,也不需要修改通用操作系统镜像硬盘文件进而需要重建虚拟机的虚拟硬盘,就可以升级虚拟硬盘,实现在线升级并提高升级效率。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种虚拟机虚拟硬盘的升级方法的流程图;

图2~图4分别为本申请实施例的部分流程图;

图5及图6分别为本申请实施例的应用示例图;

图7为本申请实施例的另一部分流程图;

图8为本申请实施例提供的一种虚拟机虚拟硬盘的升级方法的流程图;

图9为本申请实施例提供的一种电子设备的结构示意图;

图10为本申请实施例的另一应用示例图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

参考图1,为本申请实施例提供的一种虚拟机虚拟硬盘的升级方法的实现流程图,应用于主机中所运行的虚拟机内,而虚拟机对应有虚拟硬盘,本实施例中的升级方法可以包括以下步骤:

步骤101:虚拟机获得主机的升级文件列表。

其中,升级文件列表对应至少一个待更新的更新文件。

需要说明的是,更新文件可以是虚拟机向主机发送升级请求之后,主机所确定的与升级请求相对应的更新文件。如图2中所示,虚拟机为主机上所创建,且虚拟机能够运行在主机中,虚拟机向主机发送升级请求,主机在接收到升级请求之后可以根据升级请求如所需要升级的文件标识等创建升级文件列表,该升级文件列表中对应于至少一个待更新的更新文件,之后,主机将该升级文件列表传输给虚拟机。

其中,虚拟机并不是在此时直接获得升级文件列表中对应的更新文件的,而是在后续中基于更新文件自身的特点进行文件更新的,具体以下所述。此时,更新文件仍然处于主机的存储空间中。

步骤102:虚拟机基于更新文件,对虚拟机的虚拟硬盘进行更新。

也就是说,本实施例中并不是对通用虚拟硬盘镜像进行修改从而重建虚拟硬盘来实现虚拟硬盘更新,而是针对更新文件自身的特点,对虚拟机的虚拟硬盘进行更新。

其中,以上虚拟机的执行操作可以由虚拟机中的升级驱动(updatedriver,ud)具体实现。

由上述方案可知,本申请实施例提供的一种虚拟机虚拟硬盘的升级方法,虚拟机通过获取主机发送的升级文件列表之后,基于升级文件列表中的更新文件,对虚拟机的虚拟硬盘进行更新。由此,本实施例不需要停止虚拟机的运行,也不需要修改通用操作系统镜像硬盘文件进而需要重建虚拟机的虚拟硬盘,就可以升级虚拟硬盘,实现在线升级并提高升级效率。

在一种实现方式中,本实施例的虚拟机在获得主机的升级文件列表时,可以通过以下步骤实现,如图2中所示:

步骤201:虚拟机建立与主机之间的共享内存。

其中,虚拟机建立共享内存可以是在对虚拟硬盘进行更新之间的预设操作。

步骤202:虚拟机基于共享内存,获得升级文件列表。

需要说明的是,主机在应虚拟机的升级请求创建升级文件列表之后,将升级文件列表存储到虚拟机与主机之间的共享内存中,之后,虚拟机就可以在共享内存中读取到主机存储的升级文件列表。

或者,在另一种实现方式中,本实施例的虚拟机在获得主机的升级文件列表时,还可以通过获得网络实现,也就是说,主机通过网络发送其创建的升级文件列表,之后,虚拟机能够获得主机所发送的升级文件列表。

需要说明的是,这里的网络可以为虚拟机与主机之间的总线网络或者虚拟数据网络。

另外,本实施例的虚拟机在基于更新文件对虚拟机的虚拟硬盘进行更新时,可以通过以下步骤实现,如图3中所示:

步骤301:对更新文件的文件类型进行划分,至少得到第一类型文件与第二类型文件。

需要说明的是,本实施例中,虚拟机对更新文件的文件类型分类时,可以是文中的两种类型的文件,甚至是更多类型的文件,更多类型的文件的更新方式类似与本实施例中两种类型的文件的更新方式,在具体实现中可以参考本案中所述方案,更多类型的文件的更新方式同样在本申请的保护范围内。

例如,虚拟机对更新文件的文件类型进行分类,可以基于更新文件是否可以或者需要直接写入虚拟硬盘进行分类,从而分类为两种类型文件,第一类型文件为:可写入虚拟硬盘的文件,第二类型文件为:不可写入到虚拟硬盘的文件。

需要说明的是,不可写入虚拟硬盘的文件包含两种含义:一种是不受文件数据格式的限制能够写入到虚拟硬盘的文件但不需要写入到虚拟硬盘的文件,如普通数据文件,另一种是受文件数据格式的限制不能直接写入到虚拟硬盘的文件,如只读文件、内存参数文件等。

步骤302:对第一类型文件采用预设的第一更新方式进行更新。

步骤303:对第二类型文件采用预设的第二更新方式进行更新。

其中,第一更新方式与第二更新方式不同。

也就是说,本实施例的虚拟机在对更新文件进行更新时,是基于更新文件的文件类型采用不同的更新方式进行更新的。

在一种实现方式中,第一类型文件为可写入虚拟硬盘的文件,此时虚拟机在采用第一更新方式对第一类型文件进行更新时,可以将第一类型文件直接覆盖写入到虚拟机的虚拟硬盘中,被覆盖写入的虚拟磁盘中的文件仍然关联在虚拟机的虚拟文件系统中,后续在对虚拟硬盘中的文件进行读取时,可以直接利用虚拟机的虚拟文件系统找到虚拟硬盘中的文件。

在另一种实现方式中,第二类型文件为不可写入到虚拟硬盘的文件,此时虚拟机在采用第二更新方式对第二类型文件进行更新时,可以采用以下步骤实现,如图4中所示:

步骤401:基于第二类型文件,建立目标虚拟文件系统。

其中,目标虚拟文件系统与第二类型文件相关联,且目标虚拟文件系统与虚拟机的原有虚拟文件系统不同。

如图5中所示,本实施例中虚拟机所建立的目标虚拟文件系统是独立于虚拟机原有虚拟文件系统的,而目标虚拟机文件系统与需要更新的第二类型文件相关联,虚拟机原有虚拟文件系统与虚拟机的虚拟硬盘中的文件相关联。

步骤402:基于目标虚拟机文件系统,更新虚拟机的原有虚拟文件系统。

在具体实现中,虚拟机可以直接将目标虚拟文件系统与虚拟机的原有虚拟文件系统合并,如图6中所示,形成新的虚拟文件系统。

由此可知,不可写入到虚拟硬盘的文件仍然留在主机中,而在虚拟机中通过建立相关联的目标虚拟文件系统即可完成在虚拟机中对虚拟硬盘的更新,从而在后续虚拟机需要访问这部分文件时,能够通过目标虚拟文件系统中这部分文件的路径从主机中读取到这部分文件。

以上方案中,虚拟机通过对更新文件进行文件类型的划分,从而对不同类型的文件类型进行不同更新方式的操作,实现对虚拟机虚拟硬盘的更新操作。

在实际应用中,虚拟机在完成虚拟硬盘的文件更新之后,通常需要对更新后的文件进行访问,此时可以根据被访问文件的文件类型以相应的方式进行访问,如图7中所示:

步骤701:接收对虚拟硬盘的文件访问请求。

其中,文件访问请求是与待访问的目标文件相对应的,如该文件访问请求中包含目标文件的文件类型、文件标识或名称等信息。

步骤702:基于目标文件的文件类型,采用预设的访问方式进行访问。

在一种实现方式中,该目标文件的文件类型为可写入到虚拟硬盘的文件类型,此时,虚拟机对于这种可写入到虚拟硬盘的目标文件,可以通过虚拟机的原有虚拟文件系统实现访问。

而在另一种实现方式中,该目标文件的文件类型为不可写入到虚拟硬盘的文件类型,此时,虚拟机对于这种不可写入到虚拟硬盘的目标文件,可以通过虚拟机中新建立的目标虚拟文件系统实现访问。

参考图8,为本申请实施例提供的一种虚拟机虚拟硬盘的升级方法的实现流程图,适用于运行有虚拟机的主机中,本实施例中,该升级方法可以包括以下步骤:

步骤801:主机接收虚拟发送的升级请求。

步骤802:主机基于升级请求,创建与升级请求相对应的升级文件类别。

其中,升级文件列表对应至少一个待更新的更新文件。

步骤803:主机将升级文件列表传输给虚拟机。

之后,由虚拟机在获得主机的升级文件列表之后,基于升级文件列表中所对应的更新文件,对虚拟机的虚拟硬盘进行更新。

由上述方案可知,本申请实施例提供的一种虚拟机虚拟硬盘的升级方法,主机通过基于虚拟机需要更新的文件创建升级文件列表之后,再将升级文件列表发送给虚拟机,而虚拟机在接收到主机发送的升级文件列表之后,基于升级文件列表中的更新文件,对虚拟机的虚拟硬盘进行更新。由此,本实施例不需要停止虚拟机的运行,也不需要修改通用操作系统镜像硬盘文件进而需要重建虚拟机的虚拟硬盘,就可以升级虚拟硬盘,实现在线升级并提高升级效率。

在一种实现方式中,主机将升级文件列表传输给虚拟机时,可以通过预先建立与虚拟机之间的共享内存,并将升级文件列表存储在共享内存中,从而使得虚拟机能够从共享内存中获得升级文件列表;或者,主机也可以通过网络将升级文件列表传输给虚拟机。

参考图9,为本申请实施例提供的一种电子设备的结构示意图,该电子设备中可以包括以下结构:

存储器901,用于存储应用程序与应用程序运行所产生的数据。

处理器902,用于运行存储器中存储的应用程序以在电子设备中建立虚拟机,使得虚拟机获得主机的升级文件列表,所述升级文件列表对应至少一个待更新的更新文件,再基于所述更新文件,对所述虚拟机的虚拟硬盘进行更新。

以下对电子设备中处理器所建立的主机和虚拟机之间进行交互并实现虚拟硬盘更新进行说明:

1、主机host的操作系统(operatingsystem,os)端管理升级文件列表:

hostos端接收到vmos升级数据文件的请求;其中,hostos根据升级数据文件的请求修改vmos待升级的更新文件;

hostos端创建“升级文件列表”,发送到vmos端的升级驱动。

2、vmos处理文件升级请求:

vmos升级驱动收到hostos“升级文件列表”;

对“升级文件列表”中可读写vhd的文件,vmos端升级驱动从hostos接收可读写vhd文件后,更新本地vhd文件;

对vmos端vhd只读文件,更新vmos“升级虚拟文件系统(virtualfilesystem,vfs)”。

3、vmos读取文件流程:

vmos中的应用需要读取文件时生成请求,vmos根据读取文件的请求检查“升级vfs”中文件;

如需要读取的文件是“升级vfs”中对应的文件,则通过升级vfs读取文件;

如果需要读取的文件不是“升级vfs”中对应的文件,则读取本地文件;

之后,hostos收到vmos通过升级vfs读取文件的请求时,传送对应的升级文件。

以图10为例,对以上方案的具体实现进行详细说明:

1、建立升级文件列表:

host端通过升级程序维护升级文件(更新文件)和升级文件列表;

host端升级程序负责管理host端升级文件列表和升级文件:如果升级文件发生更新,host端升级程序负责维护host端升级文件列表和升级文件。

2、vmos端获取升级文件列表:

vm端有ud,能获取host升级文件列表;

vmosud同host端升级程序建立前后端联系,使vmos和host能进行通讯。例如,通过内存共享(或者网络发送/接受也可以)等方式,获得host端升级文件列表。

3、vmosud更新升级文件:

ud对升级文件列表做两种处理:

一种:可以更新到vhd里面的文件,将直接更新到vhd里面(直接写入覆盖);

另一种:对不能更新到vhd里面的文件,在vmos的vfs里面,建立升级vfs。(一般vmos内存中有vhd文件系统对应的vfs,vfs是数据链表结构。而升级vfs对应需要升级文件的数据链表节点,替换了vfs中对应的文件节点)。

4、vmos访问升级文件:

对由ud直接更新了的升级文件,vmos正常访问原有vfs就可以访问到在vhd中更新或升级的文件(因为已经替换了vhd中对应的文件);

对不能直接更新到vhd的文件,vmos在访问vfs时,被升级vfs引导直接读取host端文件,如图10中所示。

5、对其他vm升级按同样采用以上方式实现。

由此,由上述方案可知,本实施例在实际应用中,管理员可以在线升级云平台或其他设备上的虚拟机,例如对于只读数据文件内存参数文件等提供在线升级,实现热升级。而对与成批升级虚拟机的虚拟硬盘时,可以提供成批创建虚拟机时所配置的的成批vm的参数接口从而实现成批更新或升级。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本发明所提供的一种虚拟机虚拟硬盘的升级方法及电子设备进行了详细介绍,对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1