虚拟机升级方法及装置与流程

文档序号:11917637阅读:382来源:国知局
虚拟机升级方法及装置与流程

本发明涉及通信领域,具体而言,涉及一种虚拟机升级方法及装置。



背景技术:

在类似学生机房、图书馆查询电脑的场景中,经常需要给所有的虚拟机升级应用软件,最原始的方式是分别进入所有的虚机,依次安装升级软件,这种方式比较保险,但是花费时间很长,非常繁琐。第二种方式,就是通过虚拟机代理,批量安装指定的软件。需要从管理门户上,向所有的虚拟机代理发送指令,最理想的情况下只需要发送一次,就能成功升级所有虚机。但是这种方式最大的弊端就是需要所有的虚拟机都处于正常运行状态,并且要保证所有虚拟机都能安装成功,然而消息发送过程中有可能会因为网络等原因导致虚拟机内部代理无法正常接收到安装指令,另外即便收到消息之后,虚机内部也有可能因为各种原因安装失败。

由此可见,在相关技术中,无论是上述的第一种方式还是第二种方式,均需要对一个或者多个虚拟机依次进行升级操作,造成虚拟机升级过程繁琐,浪费大量的人工时间。

针对相关技术中,存在多台虚拟机时,需要对多台虚拟机依次执行升级操作,造成虚拟机升级效率低的问题,尚未提出有效的解决方案。



技术实现要素:

本发明提供了一种虚拟机升级方法及装置,以至少解决相关技术中存在多台虚拟机时,需要对多台虚拟机依次执行升级操作,造成虚拟机升级效率低的问题。

根据本发明的一个方面,提供了一种虚拟机升级方法,包括:对升级前的虚拟机模板进行升级,得到升级后的虚拟机模板,其中,所述升级后的虚拟机模板中记录升级后的模板磁盘文件;查找由所述升级前的虚拟机模板创建出的虚拟机;使用所述升级后的模板磁盘文件更新所述虚拟机中的磁盘文件,以得到升级后的所述虚拟机。

可选地,所述对升级前的虚拟机模板进行升级,得到升级后的虚拟机模板包括:将升级前的所述虚拟机模板转换为目标虚拟机;对目标虚拟机进行软件升级,以得到所述升级后的模板磁盘文件,其中,所述升级后的模板磁盘文件中记录了升级后的数据;将进行完所述软件升级之后的目标虚拟机转换为所述升级后的虚拟机模板,其中,所述升级后的虚拟机模板中记录升级后的模板磁盘文件。

可选地,所述虚拟机包括一个或者多个虚拟机,其中,所述使用所述升级后的模板 磁盘文件更新所述虚拟机中的磁盘文件包括:删除所述一个或者多个虚拟机中升级前的磁盘文件;使用所述升级后的模板磁盘文件创建升级后的磁盘文件,并将所述升级后的磁盘文件设置为所述升级后的虚拟机中的磁盘文件,其中,所述升级后的磁盘文件中记录了所述升级后的数据。

可选地,所述在使用所述升级后的模板磁盘文件更新所述虚拟机中的磁盘文件之后,还包括:将所述升级前的磁盘文件与上一次升级前的磁盘文件进行合并,其中,在所述使用所述升级后的模板磁盘文件更新所述虚拟机中的磁盘文件之前,所述虚拟机中的磁盘文件由所述上一次升级前的磁盘文件升级到所述升级前的磁盘文件。

可选地,所述将所述升级前的磁盘文件与上一次升级前的磁盘文件进行合并包括:判断所述升级前的磁盘文件与上一次升级前的磁盘文件之间是否为单一引用关系;若判断出为所述单一引用关系,则将所述升级前的磁盘文件与上一次升级前的磁盘文件进行合并。

可选地,所述将所述升级前的虚拟机模板转换为目标虚拟机包括:在将所述升级前的虚拟机模板转换为目标虚拟机的过程中,创建叶子文件,其中,所述叶子文件作为叶子节点关联到作为父节点的所述升级前的虚拟机模板的模板磁盘文件;其中,转换得到的所述目标虚拟机运行在所述叶子文件上。

根据本发明的另一方面,提供了一种虚拟机升级装置,包括:获取模块,用于对升级前的虚拟机模板进行升级,得到升级后的虚拟机模板,其中,所述升级后的虚拟机模板中记录升级后的模板磁盘文件;查找模块,用于查找由所述升级前的虚拟机模板创建出的虚拟机;更新模块,用于使用所述升级后的模板磁盘文件更新所述虚拟机中的磁盘文件,以得到升级后的所述虚拟机。

可选地,所述获取模块包括:第一转换单元,用于将升级前的所述虚拟机模板转换为目标虚拟机;升级单元,用于对目标虚拟机进行软件升级,以得到所述升级后的模板磁盘文件,其中,所述升级后的模板磁盘文件中记录了升级后的数据;第二转换单元,用于将进行完所述软件升级之后的目标虚拟机转换为所述升级后的虚拟机模板,其中,所述升级后的虚拟机模板中记录升级后的模板磁盘文件。

可选地,所述更新模块包括:删除单元,用于在所述虚拟机包括一个或者多个虚拟机时,删除所述一个或者多个虚拟机中升级前的磁盘文件;处理单元,用于使用所述升级后的模板磁盘文件创建升级后的磁盘文件,并将所述升级后的磁盘文件设置为所述升级后的虚拟机中的磁盘文件,其中,所述升级后的磁盘文件中记录了所述升级后的数据。

可选地,所述装置还包括:合并模块,用于在所述使用所述升级后的模板磁盘文件更新所述虚拟机中的磁盘文件之后,将所述升级前的磁盘文件与上一次升级前的磁盘文件进行合并,其中,在所述使用所述升级后的模板磁盘文件更新所述虚拟机中的磁盘文件之前,所述虚拟机中的磁盘文件由所述上一次升级前的磁盘文件升级到所述升级前的 磁盘文件。

可选地,所述合并模块包括:判断单元,用于判断所述升级前的磁盘文件与上一次升级前的磁盘文件之间是否为单一引用关系;合并单元,用于在判断出为所述单一引用关系时,将所述升级前的磁盘文件与上一次升级前的磁盘文件进行合并。

可选地,所述第一转换单元还用于在将所述升级前的虚拟机模板转换为目标虚拟机的过程中,创建叶子文件,其中,所述叶子文件作为叶子节点关联到作为父节点的所述升级前的虚拟机模板的模板磁盘文件;其中,转换得到的所述目标虚拟机运行在所述叶子文件上。

通过本发明,采用对升级前的虚拟机模板进行升级,得到升级后的虚拟机模板,其中,升级后的虚拟机模板中记录升级后的模板磁盘文件;查找由该升级前的虚拟机模板创建出的虚拟机;使用该升级后的模板磁盘文件更新该虚拟机中的磁盘文件,以得到升级后的该虚拟机。换言之,本发明通过对虚拟机模板进行升级,进而实现该升级后的虚拟机模板下的所有虚拟机的升级,而无需手工升级每一台虚拟机,解决了相关技术中,存在多台虚拟机时,需要手工对多台虚拟机依次执行升级操作,造成虚拟机升级效率低的问题,进而达到了提高虚拟机升级效率的效果。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的虚拟机升级的流程图;

图2是根据本发明实施例的虚拟机模板升级的结构变化图;

图3是根据本发明实施例的虚拟机批量升级之后的结构变化示意图;

图4a~4d是根据本发明实施例的虚拟机多次批量升级之后的结构变化示意图;

图5是根据本发明实施例中的虚拟机批量升级流程图;

图6是根据本发明实施例的虚拟机升级装置的结构框图;

图7是根据本发明实施例的虚拟机升级装置的结构框图(一);

图8是根据本发明实施例的虚拟机升级装置的结构框图(二);

图9是根据本发明实施例的虚拟机升级装置的结构框图(三);

图10是根据本发明实施例的虚拟机升级装置的结构框图(四)。

具体实施方式

下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。

实施例1

在本实施例中提供了一种虚拟机升级方法,图1是根据本发明实施例的虚拟机升级的流程图,如图1所示,该流程包括如下步骤:

步骤S102,对升级前的虚拟机模板进行升级,得到升级后的虚拟机模板,其中,升级后的虚拟机模板中记录升级后的模板磁盘文件;

步骤S104,查找由该升级前的虚拟机模板创建出的虚拟机;

步骤S106,使用该升级后的模板磁盘文件更新该虚拟机中的磁盘文件,以得到升级后的该虚拟机。

可选的,在本实施例中,上述虚拟机升级方法包括但并不限于基于虚拟化管理系统现有的磁盘快照及模板与虚拟机模板互转接口的基础上,实现虚拟机批量升级。其中,在上述应用环境中,采用对升级前的虚拟机模板进行升级,得到升级后的虚拟机模板,其中,升级后的虚拟机模板中记录升级后的模板磁盘文件;查找由该升级前的虚拟机模板创建出的虚拟机;使用该升级后的模板磁盘文件更新该虚拟机中的磁盘文件,以得到升级后的该虚拟机。换言之,在本实施例中,通过对虚拟机模板进行升级,进而实现该升级后的虚拟机模板下的所有虚拟机的升级,而无需手工升级每一台虚拟机,解决了相关技术中,存在多台虚拟机时,需要手工对多台虚拟机依次执行升级操作,造成虚拟机升级效率低的问题,进而达到了提高虚拟机升级效率的效果。

可选地,在本实施例中,虚拟机模板和虚拟机之间的关系包括但并不限于:一个虚拟机模板对应一台虚拟机、一个虚拟机模板对应多台虚拟机。其中,虚拟机模板和虚拟机之间的对应关系,可以在通过虚拟机模板创建虚拟机时预先建立。

可选地,在本实施例中,使用升级后的模板磁盘文件更新虚拟机中的磁盘文件,以得到升级后的虚拟机包括但并不限于:使用升级后的模板磁盘文件直接替换该虚拟机中的磁盘文件,即以覆盖的方式将升级后的模板磁盘文件作为虚拟机中的磁盘文件;或者,首先将虚拟机中的磁盘文件删除,然后使用升级后的模板磁盘文件创建虚拟机中的磁盘文件。

下面结合具体示例,对本实施例作举例说明。

本发明实施例是在虚拟化管理系统现有的磁盘快照及模板与虚拟机互转接口的基础上,开发新的虚拟机升级接口,来实现虚拟机批量升级的功能。利用模板转虚拟机接 口,进入模板虚拟机进行软件升级操作,然后删除原有的该模板下所有虚拟机的磁盘文件,利用新的模板磁盘文件创建新的虚拟机磁盘文件,这样新创建的磁盘中已经拥有了升级之后的软件数据了。升级之后的虚拟机,只是磁盘跟升级前不一样,其他的各个参数及虚拟机通用唯一识别码(Universally Unique Identifier,简称为UUID)并没有改变,所以用户登录之后还是能登录到原有的虚拟机中去。

通过上述方法基于模板升级的虚拟机批量升级方法,利用对模板磁盘的升级,实现模板下所有虚拟机的软件升级,从而避免了手工一台台升级虚拟机的繁琐操作。

在一个可选的实施方式中,对升级前的虚拟机模板进行升级,得到升级后的虚拟机模板包括以下步骤:

步骤S11,将升级前的该虚拟机模板转换为目标虚拟机;

步骤S12,对目标虚拟机进行软件升级,以得到该升级后的模板磁盘文件,其中,该升级后的模板磁盘文件中记录了升级后的数据;

步骤S13,将进行完该软件升级之后的目标虚拟机转换为该升级后的虚拟机模板,其中,该升级后的虚拟机模板中记录升级后的模板磁盘文件。

可选地,在本实施例中,基于虚拟机模板静态不可进行读写操作,所以首先将升级前的虚拟机模板转换为目标虚拟机,然后对目标虚拟机进行软件升级,以得到该升级后的模板磁盘文件,最后再将升级后的目标虚拟机转换为该升级后的虚拟机模板,进而获得记录升级后的模板磁盘文件的升级后的虚拟机模板。

通过上述步骤,将升级前的虚拟机模板转换为目标虚拟机,对目标虚拟机进行升级操作,然后再将升级后的目标虚拟机装换为升级后的虚拟机模板,实现了对虚拟机模板进行升级,进一步解决了相关技术中存在多台虚拟机时,需要手工对多台虚拟机依次执行升级操作,造成虚拟机升级效率低的问题。

下面结合具体示例,对上述步骤S11至步骤S13进行举例说明。

图2是根据本发明实施例的虚拟机模板升级的结构变化图,下面结合图2对虚拟机模板升级的过程进行说明,其中,虚拟机的磁盘文件以VM1至VMn为例,升级后的虚拟机模板磁盘文件以Tmp为例,升级前的虚拟机模板磁盘文件以Tmp_old为例,主要包括以下步骤:

步骤S201:批量升级虚拟机软件,需要先将虚拟机对应的模板进行升级。首先将模板转为虚拟机,虚拟机管理中心接收到模板转虚拟机任务之后,将数据结构中的对象类型置为3,即虚拟机类型。然后从模板的磁盘文件中静态方式拉出空的叶子文件,将新的叶子文件作为新虚拟机的磁盘运行文件;

步骤S202:开启虚拟机进操作系统内部安装升级软件;

步骤S203:将升级后的虚拟机转成模板,即只要将新虚拟机结构中的对象类型设置为4即可,磁盘结构没有任何变化。转换之后的模板磁盘如图2中灰色的节点所示。

在一个可选的实施方式中,使用该升级后的模板磁盘文件更新该虚拟机中的磁盘文件包括以下步骤:

步骤S21,删除一个或者多个虚拟机中升级前的磁盘文件;

步骤S22,使用升级后的模板磁盘文件创建升级后的磁盘文件,并将该升级后的磁盘文件设置为该升级后的虚拟机中的磁盘文件,其中,该升级后的磁盘文件中记录了该升级后的数据。

需要说明的是,上述步骤中涉及的虚拟机至少包括一个或者多个虚拟机,涉及到的磁盘文件至少包括一个或者多个磁盘文件。

下面结合具体示例,对上述步骤S21至步骤S22进行举例说明。

图3是根据本发明实施例的虚拟机批量升级之后的结构变化示意图。下面结合图3对虚拟机批量升级的过程进行说明,其中,虚拟机的磁盘文件以VM1至VMn为例,升级后的虚拟机模板磁盘文件以Tmp为例,升级前的虚拟机模板磁盘文件以Tmp_old为例,主要包括以下步骤:

步骤S301:升级完模板之后需要对模板下的所有虚拟机进行升级。虚拟化管理中心需要事先记录由该模板创建的虚拟机,在接收到门户的批量升级任务之后查找模板下的所有虚拟机,接着删除虚拟机的磁盘文件;

步骤S302:利用升级后的新的模板磁盘文件增量创建虚拟机的磁盘,如图3所示的结构变化图。

通过上述步骤,使用升级后的模板磁盘文件创建升级后的磁盘文件,并将该升级后的磁盘文件设置为该升级后的虚拟机中的磁盘文件,其中,该升级后的磁盘文件中记录了该升级后的数据,使得存在多台虚拟机时,仅进行了一次升级操作,即虚拟机模板的升级,而对应虚拟机模板下的一个或者多个虚拟机直接用升级后的模板磁盘文件作为一个或者多个虚拟机的磁盘文件,使得每台虚拟机都记录了升级后的数据,达到虚拟机批量升级的效果,避免了人工手动对每一台虚拟机进行升级操作造成升级效率低的问题,提高了虚拟机升级的效率。

在一个可选地实施方式中,在使用该升级后的模板磁盘文件更新该虚拟机中的磁盘文件之后还包括以下步骤:

步骤S31,将升级前的磁盘文件与上一次升级前的磁盘文件进行合并,其中,在使用该升级后的模板磁盘文件更新该虚拟机中的磁盘文件之前,该虚拟机中的磁盘文件由该上一次升级前的磁盘文件升级到该升级前的磁盘文件。

例如,假设,在当前的虚拟机模板升级前,已经进行了2次升级,而且第一次升级时,是对磁盘文件C中的数据A进行升级,第二次升级时,是对磁盘文件D中的数据B进行升级,那么在对当前的虚拟机模板进行升级后,应该将包含升级后的数据A和升级后的数据B进行合并。

通过上述步骤,将升级前的磁盘文件与上一次升级前的磁盘文件进行合并,提高了对磁盘文件中的读写效率。

在一个可选地实施方式中,将该升级前的磁盘文件与上一次升级前的磁盘文件进行合并包括以下步骤:

步骤S41,判断该升级前的磁盘文件与上一次升级前的磁盘文件之间是否为单一引用关系;

步骤S42,若判断出为该单一引用关系,则将该升级前的磁盘文件与上一次升级前的磁盘文件进行合并。

需要说明的是,上述步骤中涉及到的单一引用关系可以为升级前的磁盘文件引用上一次升级前的磁盘文件,即磁盘文件的引用关系为1。

通过上述步骤,将升级前的磁盘文件与上一次升级前的磁盘文件进行合并,进一步提高了对磁盘文件中的读写效率。

下面结合具体示例,对上述步骤S41至步骤S42进行举例说明。

图4a~4d是根据本发明实施例的虚拟机多次批量升级之后的结构变化示意图。下面具体结合图4a~4d对虚拟机多次批量升级进行详细说明,其中,虚拟机的磁盘文件以VM1至VMn为例,升级后的虚拟机模板磁盘文件以Tmp为例,升级前的虚拟机模板磁盘文件以Tmp_old、Tmp_old1、Tmp_old2为例,其中主要包括以下步骤:

步骤S401:按照上述步骤S201至S203以及步骤S301至S302,做普通升级操作;

步骤S402:检测新的模板磁盘文件中,是否有两个连续的文件引用数为1,如图4c所示,Tmp_old和Tmp_old1都只有一个子节点,即引用数为1,此时可以将Tmp_old和Tmp_old1文件进行合并操作,最终得到Tmp_old2,如图4d所示。

在一个可选地实施方式中,将该升级前的虚拟机模板转换为目标虚拟机包括以下步骤:

步骤S51,在将该升级前的虚拟机模板转换为目标虚拟机的过程中,创建叶子文件,其中,该叶子文件作为叶子节点关联到作为父节点的该升级前的虚拟机模板的模板磁盘文件。

需要说明的是,转换得到的目标虚拟机运行在该叶子文件上。

例如,在虚拟机模板转虚拟机的过程中,虚拟化管理中心会对现有的模板磁盘文件静态拉出一个叶子文件,转换后的虚拟就运行在该叶子文件上。

通过上述步骤,将转换得到的目标虚拟机运行在叶子文件上,使得在将升级前的虚拟机模板转换为目标虚拟机的过程中,将叶子文件中运行的升级后的数据完整的转换为升级后的虚拟机模板中的数据,保证了升级后的数据的完整性。

下面结合可选实施例,对本实施例进行举例说明。

可选实施例一

在本实施例中,虚拟机升级的主要包括以下步骤:

步骤S61,虚拟机模板转虚拟机:虚拟化管理中心提供模板转为虚拟机的接口,界面可以对选中的模板进行转换虚拟机操作。转换后得到的虚拟机可以像普通的虚拟机一样做任何操作。转换过程中,虚拟化管理中心会对现有的模板磁盘文件静态拉出一个叶子文件,转换后的虚拟就运行在该叶子文件上;

步骤S62,虚拟机软件升级:进入虚拟机模板转换后的虚拟机,挂载升级所需的iso安装包,对虚拟机进行升级操作;

步骤S63,批量升级虚拟机:找到该模板下的所有虚拟机,删除虚拟机的磁盘,然后利用升级后的虚拟机模板文件再依次创建新的磁盘文件。这样创建后的新磁盘文件就有了模板升级之后的数据,从而实现了对虚拟机的软件升级;

步骤S64,合并节点:按照以上步骤S61至步骤S63多次升级之后会出现模板节点有很多个的现象,这时候需要对可以合并的文件进行合并操作。

可选实施例二

可选地,在本实施例中主要结合图5对虚拟机升级方法进行详细说明。图5是根据本发明实施例中的虚拟机批量升级流程图,具体流程如下:

步骤S501:将虚拟机模板转为虚拟机;

步骤S502:对虚拟机进行软件升级;

步骤S503:将升级后的虚拟机转为升级后的虚拟机模板;

步骤S504:查找虚拟机模板下所有的虚拟机;

步骤S505:删除找出的虚拟机的磁盘文件;

步骤S506:利用升级后的虚拟机模板磁盘文件创建新的磁盘文件;

步骤S507:合并虚拟机模板磁盘文件。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

实施例2

在本实施例中还提供了一种虚拟机升级装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图6是根据本发明实施例的虚拟机升级装置的结构框图,如图6所示,该装置包括:

1)获取模块62,用于对升级前的虚拟机模板进行升级,得到升级后的虚拟机模板,其中,该升级后的虚拟机模板中记录升级后的模板磁盘文件;

2)查找模块64,用于查找由该升级前的虚拟机模板创建出的虚拟机;

3)更新模块66,用于使用该升级后的模板磁盘文件更新该虚拟机中的磁盘文件,以得到升级后的该虚拟机。

可选的,在本实施例中,上述虚拟机升级方法包括但并不限于基于虚拟化管理系统现有的磁盘快照及模板与虚拟机模板互转接口的基础上,实现虚拟机批量升级。其中,在上述应用环境中,采用对升级前的虚拟机模板进行升级,得到升级后的虚拟机模板,其中,升级后的虚拟机模板中记录升级后的模板磁盘文件;查找由该升级前的虚拟机模板创建出的虚拟机;使用该升级后的模板磁盘文件更新该虚拟机中的磁盘文件,以得到升级后的该虚拟机。换言之,在本实施例中,通过对虚拟机模板进行升级,进而实现该升级后的虚拟机模板下的所有虚拟机的升级,而无需手工升级每一台虚拟机,解决了相关技术中,存在多台虚拟机时,需要手工对多台虚拟机依次执行升级操作,造成虚拟机升级效率低的问题,进而达到了提高虚拟机升级效率的效果。

可选地,在本实施例中,虚拟机模板和虚拟机之间的关系包括但并不限于:一个虚拟机模板对应一台虚拟机、一个虚拟机模板对应多台虚拟机。其中,虚拟机模板和虚拟机之间的对应关系,可以在通过虚拟机模板创建虚拟机时预先建立。

可选地,在本实施例中,使用该升级后的模板磁盘文件更新该虚拟机中的磁盘文件,以得到升级后的该虚拟机包括但并不限于:使用升级后的模板磁盘文件直接替换该虚拟机中的磁盘文件,即以覆盖的方式将升级后的模板磁盘文件作为虚拟机中的磁盘文件; 或者,首先将虚拟机中的磁盘文件删除,然后使用升级后的模板磁盘文件创建虚拟机中的磁盘文件。

通过上述方法基于模板升级的虚拟机批量升级方法,利用对模板磁盘的升级,实现模板下所有虚拟机的软件升级,从而避免了手工一台台升级虚拟机的繁琐操作。

图7是根据本发明实施例的虚拟机升级装置的结构框图(一),如图7所示,该获取模块62包括:

1)第一转换单元72,用于将升级前的该虚拟机模板转换为目标虚拟机;

2)升级单元74,用于对目标虚拟机进行软件升级,以得到该升级后的模板磁盘文件,其中,该升级后的模板磁盘文件中记录了升级后的数据;

3)第二转换单元76,用于将进行完该软件升级之后的目标虚拟机转换为该升级后的虚拟机模板,其中,该升级后的虚拟机模板中记录升级后的模板磁盘文件。

可选地,在本实施例中,基于虚拟机模板静态不可进行读写操作,所以首先将升级前的虚拟机模板转换为目标虚拟机,然后对目标虚拟机进行软件升级,以得到该升级后的模板磁盘文件,最后再将升级后的目标虚拟机转换为该升级后的虚拟机模板,进而获得记录升级后的模板磁盘文件的升级后的虚拟机模板。

通过上述步骤,将升级前的虚拟机模板转换为目标虚拟机,对目标虚拟机进行升级操作,然后再将升级后的目标虚拟机装换为升级后的虚拟机模板,实现了对虚拟机模板进行升级,进一步解决了相关技术中存在多台虚拟机时,需要手工对多台虚拟机依次执行升级操作,造成虚拟机升级效率低的问题。

图8是根据本发明实施例的虚拟机升级装置的结构框图(二),如图8所示,更新模块66包括:

1)删除单元82,用于在该虚拟机包括一个或者多个虚拟机时,删除该一个或者多个虚拟机中升级前的磁盘文件;

2)处理单元84,用于使用该升级后的模板磁盘文件创建升级后的磁盘文件,并将该升级后的磁盘文件设置为该升级后的虚拟机中的磁盘文件,其中,该升级后的磁盘文件中记录了该升级后的数据。

需要说明的是,上述步骤中涉及的虚拟机至少包括一个或者多个虚拟机,涉及到的磁盘文件至少包括一个或者多个磁盘文件。

通过上述步骤,使用升级后的模板磁盘文件创建升级后的磁盘文件,并将该升级后的磁盘文件设置为该升级后的虚拟机中的磁盘文件,其中,该升级后的磁盘文件中记录了该升级后的数据,使得存在多台虚拟机时,仅进行了一次升级操作,即虚拟机模板的升级,而对应虚拟机模板下的一个或者多个虚拟机直接用升级后的模板磁盘文件作为一 个或者多个虚拟机的磁盘文件,使得每台虚拟机都记录了升级后的数据,达到虚拟机批量升级的效果,避免了人工手动对每一台虚拟机进行升级操作造成升级效率低的问题,提高了虚拟机升级的效率。

图9是根据本发明实施例的虚拟机升级装置的结构框图(三),如图9所示,该装置除了包括图6所示的所有模块外还包括:

1)合并模块92,用于在该使用该升级后的模板磁盘文件更新该虚拟机中的磁盘文件之后,将该升级前的磁盘文件与上一次升级前的磁盘文件进行合并,其中,在该使用该升级后的模板磁盘文件更新该虚拟机中的磁盘文件之前,该虚拟机中的磁盘文件由该上一次升级前的磁盘文件升级到该升级前的磁盘文件。

例如,假设,在当前的虚拟机模板升级前,已经进行了2次升级,而且第一次升级时,是对磁盘文件C中的数据A进行升级,第二次升级时,是对磁盘文件D中的数据B进行升级,那么在对当前的虚拟机模板进行升级后,应该将包含升级后的数据A和升级后的数据B进行合并。

通过上述步骤,将升级前的磁盘文件与上一次升级前的磁盘文件进行合并,提高了对磁盘文件中的读写效率。

图10是根据本发明实施例的虚拟机升级装置的结构框图(四),如图10所示,合并模块92包括:

1)判断单元102,用于判断该升级前的磁盘文件与上一次升级前的磁盘文件之间是否为单一引用关系;

2)合并单元104,用于在判断出为该单一引用关系时,将该升级前的磁盘文件与上一次升级前的磁盘文件进行合并。

需要说明的是,上述步骤中涉及到的单一引用关系可以为升级前的磁盘文件引用上一次升级前的磁盘文件,即磁盘文件的引用关系为1。

通过上述步骤,将升级前的磁盘文件与上一次升级前的磁盘文件进行合并,进一步提高了对磁盘文件中的读写效率。

可选地,在本实施例中,第一转换单元74还用于在将该升级前的虚拟机模板转换为目标虚拟机的过程中,创建叶子文件,其中,该叶子文件作为叶子节点关联到作为父节点的该升级前的虚拟机模板的模板磁盘文件;其中,转换得到的该目标虚拟机运行在该叶子文件上。

例如,在虚拟机模板转虚拟机的过程中,虚拟化管理中心会对现有的模板磁盘文件静态拉出一个叶子文件,转换后的虚拟就运行在该叶子文件上。

通过上述步骤,将转换得到的目标虚拟机运行在叶子文件上,使得在将升级前的虚 拟机模板转换为目标虚拟机的过程中,将叶子文件中运行的升级后的数据完整的转换为升级后的虚拟机模板中的数据,保证了升级后的数据的完整性。

需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述模块分别位于多个处理器中。

实施例3

本发明的实施例还提供了一种存储介质。该实施例中的场景及示例可以参考上述实施例1和实施例2,在此,不赘述。可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:

S1,对升级前的虚拟机模板进行升级,得到升级后的虚拟机模板,其中,升级后的虚拟机模板中记录升级后的模板磁盘文件;

S2,查找由该升级前的虚拟机模板创建出的虚拟机;

S3,使用该升级后的模板磁盘文件更新该虚拟机中的磁盘文件,以得到升级后的该虚拟机。

可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行上述步骤S1、S2以及S3。

可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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