模拟处理器的升级方法及装置与流程

文档序号:12363036阅读:272来源:国知局
模拟处理器的升级方法及装置与流程

本发明属于通信技术领域,尤其涉及一种模拟处理器的升级方法及装置。



背景技术:

模拟处理器Qemu是由法布里斯·贝拉所编写的以通用GPL(公共授权许可证)分发源码的模拟处理器,其在Linux等平台上使用广泛。例如,在云计算平台、虚拟机平台上,模拟处理器Qemu都是作为核心组件存在的。如果模拟处理器Qemu本身存在缺陷需要修复或者需要进行功能升级时,往往需要重启安装有模拟处理器的服务器,但是重启服务器会使得服务器当前正在处理的业务产生中断,而这种业务中断的时间越长对服务器的运营商造成不小的损失,并对服务器提供业务服务的顾客产生不好的用户体验。

为了解决模拟处理器Qemu升级过程中,业务中断时间较长这个技术问题,现有技术中基本上采用更新Qemu的代码段的方式进行热补丁,从而使得模拟处理器Qemu具备热升级能力。但是采用热补丁的方式需要模拟处理器Qemu预先具备热补丁能力,而现有的老版模拟处理器Qemu往往不具备热补丁能力。并且,即使模拟处理器Qemu局部热补丁的能力,在采用热补丁来进行热升级时需要单独制作热补丁,而热补丁的制作过程十分复杂,无法满足模拟处理器Qemu的频繁地快速升级需求。

因此,如何降低旧版本的模拟处理器Qemu在升级过程中的业务中断时间,是目前需要迫切得到解决的技术难题。



技术实现要素:

本发明实施例提供一种模拟处理器的升级方法及装置,以解决本身不具备热升级能力的模拟处理器在升级过程中的业务中断时间较长的技术难题。

本发明实施例提供一种模拟处理器的升级方法,包括以下步骤:

创建新版本模拟处理器的进程,同时保持旧版本模拟处理器处于运行中;

获取旧版本模拟处理器的内存特征信息;

将所述内存特征信息迁移到所述新版本模拟处理器;

在迁移完成后,断开所述旧版本模拟处理器的网络连接,并将所述新版本模拟处理器与网络连接。

本发明实施例提供一种模拟处理器的升级装置,包括:

创建模块,用于创建新版本模拟处理器的进程,同时保持旧版本模拟处理器处于运行中;

获取模块,用于获取所述旧版本模拟处理器的内存特征信息;

迁移模块,用于在迁移完成后,将所述内存特征信息迁移到所述新版本模拟处理器;

网络连接模块,用于在迁移完成后,断开所述旧版本模拟处理器的网络连接,并将所述新版本模拟处理器与网络连接。

本发明实施例通过创建新版本模拟处理器的进程;获取旧版本模拟处理器的内存特征信息;将所述内存特征信息迁移到所述新版本模拟处理器;断开所述旧版本模拟处理器的网络连接,并将所述新版本模拟处理器与网络连接,从而使得在更新该模拟处理器的过程中,模拟处理器仅仅需要在断开旧版本模拟处理器的网络连接与打开新版本模拟处理器的网络连接的间隙里断开业务服务很短时间,几乎可以忽略不计,大大缩短了业务中断的时间。

附图说明

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

图1是本发明第一优选实施例提供的模拟处理器的升级方法的流程图;

图2是本发明第二优选实施例提供的模拟处理器的升级方法的流程图;

图3是本发明第三优选实施例提供的模拟处理器的升级方法的流程图;

图4是本发明实施例提供的模拟处理器的升级装置的结构示意图。

具体实施方式

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

本发明提供一种模拟处理器的升级方法及装置。

其中,该模拟处理器的升级装置可以集成在物理机中,该物理机可以为终端、运营商服务器等。该物理机设置具有libvirt模块,libvirt模块是一套免费、开源的支持Linux下主流虚拟化工具的函数库,其主要用于以对该物理机内的模拟处理器的启动、停止、暂停、保存、恢复、迁移、网络连接及端口设置等操作进行管理或提供支持。

实施例一、

在本实施例中,提供一种模拟处理器的升级方法,包括以下步骤:创建新版本模拟处理器的进程,同时保持旧版本模拟处理器处于运行中;获取旧版本模拟处理器的内存特征信息;将所述内存特征信息迁移到所述新版本模拟处理器;在迁移完成后,断开所述旧版本模拟处理器的网络连接,并将所述新版本模拟处理器与网络连接。

如图1所示,该升级方法的具体流程可以如下:

步骤S101、创建新版本模拟处理器的进程,同时保持旧版本模拟处理器处于运行中;

在具体实施过程中,物理机首先通过网络或者外部移动存储设备获取新版本模拟处理器的安装包。在物理机上安装好该新版本模拟处理器之后利用该libvirt模块提供的函数库,通过调用该函数库内的对应函数来创建该新版本模拟处理器的进程,使得该新版本模拟处理器可以正常运行。

步骤S102、获取所述旧版本模拟处理器的内存特征信息;

其中,该内存特征信息可以是旧版本模拟处理器的虚拟机内存的内容,其存储在物理机的对应物理内存区域。该内存特征信息还可以是旧版本模拟处理器的虚拟机内存映射信息,该旧版本模拟处理器的虚拟机内存映射信息包含旧版本模拟处理器的虚拟机物理内存地址与所述旧版本模拟处理器的物理机物理内存地址映射关系。具体实施过程中,新版本模拟处理器可以利用共享内存机制来查询并获取该内存特征存信息。其中,该旧版本模拟处理器为物理机当前正在使用的模拟处理器。

步骤S103、将所述内存特征信息迁移到所述新版本模拟处理器;

在具体实施过程中,将查询到内存特征信息迁移到处于进程中的新版本模拟处理器的对应存储区域。

步骤S104、在迁移完成后,断开所述旧版本模拟处理器的网络连接,并将所述新版本模拟处理器与网络连接;

在具体实施过程中,这种网络切换过程只需要毫秒级别的时间,因此,该物理机也即是服务器的业务中断时间也只有毫秒级别,几乎可以忽略不计。

由上可知,本发明通过创建新版本模拟处理器的进程;获取旧版本模拟处理器的内存特征信息;将所述内存特征信息迁移到所述新版本模拟处理器;断开所述旧版本模拟处理器的网络连接,并将所述新版本模拟处理器连网;从而完成对模拟处理器的热升级,并使得在升级模拟处理器的过程中,模拟处理器仅仅需要在断开旧版本模拟处理器的网络连接与打开新版本模拟处理器的网络连接的间隙里断开服务很短时间,几乎可以忽略不计,大大缩短了业务中断的时间。

实施例二、

该实施例提供的模拟处理器的升级方法,该实施例中不需要旧版本模拟器预先具备热升级能力,但需要物理机预留新版本模拟器的内存空间。

该升级方法包括以下步骤:创建新版本模拟处理器的进程,同时保持旧版本模拟处理器处于运行中;获取所述旧版本模拟处理器的虚拟机内存内容;将所述旧版本模拟处理器的虚拟机内存内容迁移到所述新版本模拟处理器;在迁移完成后,断开所述旧版本模拟处理器的网络连接,并将所述新版本模拟处理器与网络连接;将该新版本模拟处理器的标识信息替换该旧版本模拟处理器的标识信息。

如图2所示,在本实施例中,该升级方法的具体流程如下:

步骤S201、创建新版本模拟处理器的进程,同时保持旧版本模拟处理器处于运行中;

在具体实施过程中,物理机首先通过网络或者外部移动存储设备获取新版本模拟处理器的安装包。在物理机上安装好该新版本模拟处理器之后利用该libvirt模块提供的函数库,通过调用该函数库内的对应函数来创建该新版本模拟处理器的进程,使得该新版本模拟处理器可以正常运行。

步骤S202、获取所述旧版本模拟处理器的虚拟机内存内容;

具体实施过程中,旧版本模拟处理器的虚拟机内存内容存储在该旧版本模拟处理器的第一存储区域,具体为存储于该物理机的物理内存区域中。其中,该旧版本模拟处理器为物理机当前处理业务时正在使用的模拟处理器。该旧版本模拟处理器的虚拟机内存内容包括该旧版本模拟处理器当前正在运行操作系统和应用程序的状态信息及各种缓存信息等。

步骤S203、将所述旧版本模拟处理器的虚拟机内存内容迁移到所述新版本模拟处理器;

在具体实施过程中,旧版本模拟器通过进程间通信,将查询到虚拟机内存内容迁移到处于运行中的新版本模拟处理器的对应存储区域,具体为迁移到该服务器的对应物理内存区域中。

步骤S204、在迁移完成后,断开所述旧版本模拟处理器的网络连接,并将所述新版本模拟处理器与网络连接;

在具体实施过程中,将该旧版本模拟处理器的TAP端口与物理机的网桥断开,并将该新版本模拟处理器的TAP端口与该网桥连接。这种网络切换过程只需要毫秒级别的时间,因此,该物理机也即是服务器的业务中断时间也只有毫秒级别,几乎可以忽略不计。

步骤S205、将所述新版本模拟处理器的标识信息替换所述旧版本模拟处理器的标识信息。

其中,该标识信息包括:网络端口标识(TAP端口号)、通用唯一识别码(UUID,Universally Unique Identifie)和模拟处理器实例名称NAME中的一种或多种。由于libvirt模块在管控各个模拟处理器时,通用唯一识别码UUID以及模拟处理器实例名称NAME不能重复,因此在创建该新版本模拟处理器的进程前,就会先将该新版本模拟处理器的通用唯一识别码UUID以及模拟处理器实例名称NAME修改为不同于该旧版本模拟处理器,这样才不会影响该旧版本模拟处理器的正常运行。但是,在执行完步骤S204之后,物理机真正要运行的模拟处理器已经切换为该新版本模拟处理器,因此,需要将该新版本模拟处理器的标识信息替换该旧版本模拟处理器的标识信息。

由上可知,本发明通过创建新版本模拟处理器的进程;获取旧版本模拟处理器的虚拟机内存内容;将所述虚拟机内存内容迁移到所述新版本模拟处理器;在迁移完成后,断开所述旧版本模拟处理器的网络连接,并将所述新版本模拟处理器连网;从而完成对该模拟处理器的热升级,并使得在更新该模拟处理器的过程中,模拟处理器仅仅需要在断开旧版本模拟处理器的网络连接与打开新版本模拟处理器的网络连接的间隙里断开服务很短时间,几乎可以忽略不计,大大缩短了业务中断的时间。

实施例三、

该实施例提供的模拟处理器的升级方法,该实施不需要物理机预留新版本模拟器内存空间,并且进一步缩短业务中断时间。

该方法包括以下步骤:创建新版本模拟处理器的进程,同时保持旧版本模拟处理器处于运行中;获取所述旧版本模拟处理器的虚拟机内存映射信息,其中,所述虚拟机内存映射信息包含所述旧版本模拟处理器的虚拟机物理内存地址与物理机物理内存地址的映射关系;将旧版本模拟处理器的物理机物理内存地址映射到新版本模拟处理器,以建立旧版本模拟处理器的物理机物理内存地址与新版本模拟处理器的虚拟机物理内存地址的映射关系;断开所述旧版本模拟处理器的网络连接,并将所述新版本模拟处理器与网络连接;将所述新版本模拟处理器的标识信息替换所述该旧版本模拟处理器的标识信息。

如图3所示,在本实施例中,该升级方法的具体流程如下:

步骤S301、创建新版本模拟处理器的进程,同时保持旧版本模拟处理器处于运行中;

在具体实施过程中,物理机首先通过网络或者外部移动存储设备获取新版本模拟处理器的安装包。在物理机上安装好该新版本模拟处理器之后利用该libvirt模块提供的函数库,通过调用该函数库内的对应函数来创建该新版本模拟处理器的进程,使得该新版本模拟处理器可以正常运行。

步骤S302、获取所述旧版本模拟处理器的虚拟机内存映射信息,其中,所述虚拟机内存映射信息包含所述旧版本模拟处理器的虚拟机物理内存地址与物理机物理内存地址的映射关系。

在具体实施过程中,可以利用共享内存机制来来查询并获取旧版本模拟处理器的虚拟机内存映射信息。该旧版本模拟处理器的虚拟机内存映射信息可以是EPT页表(EPT,Extended Page Tables),其保存了旧版本模拟处理器的虚拟机物理内存地址与所述旧版本模拟处理器的物理机物理内存地址的映射关系。其中,该旧版本模拟处理器为物理机当前正在使用的模拟处理器。

该旧版本模拟处理器的该旧版本模拟处理器的虚拟机内存内容包括该旧版本模拟处理器当前正在运行操作系统和应用程序的状态信息及各种缓存信息等。

步骤S303、将旧版本模拟处理器的物理机物理内存地址映射到新版本模拟处理器,建立旧版本模拟处理器的物理机物理内存地址与新版本模拟处理器的虚拟机物理内存地址的映射关系。

在具体实施过程中,利用该映射函数将将旧版本模拟处理器的物理机物理内存地址逐一映射到该新版本模拟处理器的进程的线性地址空间,从而建立起该新版本模拟处理器的EPT页表,也即是旧版本模拟处理器的物理机物理内存地址与新版本模拟处理器的虚拟机物理内存地址的映射关系。当新版本模拟处理器的重新建立EPT页表后,该新版本模拟处理器的虚拟机物理地址将根据EPT页表关联到该旧版本模拟处理器的虚拟机内存内容的存储区域,从而达到访问该旧版本模拟处理器的虚拟机内存内容的目的。

步骤S304、在迁移完成后,断开所述旧版本模拟处理器的网络连接,并将所述新版本模拟处理器与网络连接;

在具体实施过程中,将该旧版本模拟处理器的TAP端口与物理机的网桥断开,并将该新版本模拟处理器的TAP端口与该网桥连接。这种网络切换过程只需要毫秒级别的时间,因此,该物理机也即是服务器的业务中断时间也只有毫秒级别,几乎可以忽略不计。

步骤S305、将所述新版本模拟处理器的标识信息替换所述旧版本模拟处理器的标识信息。

其中,该标识信息包括:网络端口标识(TAP端口号)、通用唯一识别码UUID以及模拟处理器实例名称NAME。由于libvirt模块在管控各个模拟处理器时,通用唯一识别码UUID以及模拟处理器实例名称NAME不能重复,因此在创建该新版本模拟处理器的进程前,就会先将该新版本模拟处理器的通用唯一识别码UUID以及模拟处理器实例名称NAME修改为不同于该旧版本模拟处理器,这样才不会影响该旧版本模拟处理器的正常运行。但是,在执行完步骤S204之后,物理机真正要运行的模拟处理器已经切换为该新版本模拟处理器,因此,需要将该新版本模拟处理器的标识信息替换该旧版本模拟处理器的标识信息。

由上可知,本实施例采用创建新版本模拟处理器的进程;获取旧版本模拟处理器的处理器信息线性地址,所述线性地址与存储所述处理器信息物理地址相互对应;将所述处理器信息线性地址映射到所述新版本模拟处理器的线性地址空间;在迁移完成后,断开所述旧版本模拟处理器的网络连接,并将所述新版本模拟处理器与网络连接;将该新版本模拟处理器的标识信息替换为该旧版本模拟处理器的标识信息,从而使得在更新该模拟处理器的过程中,模拟处理器仅仅需要在断开旧版本模拟处理器的网络连接与打开新版本模拟处理器的网络连接的间隙里断开服务很短时间,几乎可以忽略不计,大大缩短了业务中断的时间;并且由于采用的是映射处理器信息线性地址的方式来共享处理器信息,而无需复制旧版本模拟处理器的处理器信息,解决了现有技术中的物理机的模拟处理器在热升级时需要预留内存的问题。

实施例四、

为了更好地实施以上方法,本发明实施例还提供一种模拟处理器的升级装置,如图4所示,该模拟处理器的升级装置包括:创建模块401、获取模块402、迁移模块403、网络连接模块404以及修改模块405。

其中,该创建模块401用于创建新版本模拟处理器的进程,同时保持所述旧版本模拟处理器处于运行中;该创建模块401利用该libvirt模块提供的函数库,通过调用该函数库内的对应函数来创建该新版本模拟处理器的进程,使得该新版本模拟处理器可以正常运行。

该获取模块402用于获取旧版本模拟处理器的内存特征信息。该获取模块402通过该libvirt模块提供的查询函数来查询并获取该旧版本模拟处理器的内存特征信息。

其中,该内存特征信息可以是旧版本处理器的虚拟机内存的内容,此时,该获取模块402用于获取旧版本模拟处理器的虚拟机内存的内容。

该内存特征信息还可以是虚拟机内存映射信息,该旧版本模拟处理器的虚拟机内存映射信息包含旧版本模拟处理器的虚拟机物理内存地址与所述旧版本模拟处理器的物理机物理内存地址映射关系,此时,该获取模块402用于获取旧版本模拟处理器的虚拟机内存映射信息。

迁移模块403用于将所述内存特征信息迁移到所述新版本模拟处理器。其中,当该内存特征信息是虚拟机内存的内容时,迁移模块403用于将所述旧版本模拟处理器的虚拟机内存的内容迁移到所述新版本模拟处理器。

当该内存特征信息是虚拟机内存映射信息,迁移模块403将旧版本模拟处理器的物理机物理内存地址映射到新版本模拟处理器,以建立旧版本模拟处理器的物理机物理内存地址与新版本模拟处理器的虚拟机物理内存地址的映射关系。

网络连接模块404用于在迁移完成后,断开所述旧版本模拟处理器的网络连接,并将所述新版本模拟处理器与网络连接。其通过调用该libvirt模块提供的网络接口功能的函数,来实现将该旧版本模拟处理器的TAP端口与物理机的网桥断开,并将该新版本模拟处理器的TAP端口与该网桥连接。这种网络切换过程只需要毫秒级别的时间,因此,该物理机也即是服务器的业务中断时间也只有毫秒级别,几乎可以忽略不计。

修改模块405用于将所述新版本模拟处理器的标识信息替换所述旧版本模拟处理器的标识信息。标识信息包括网络端口标识、通用唯一识别码和模拟处理器实例名称中的至少一种。

由上可知,本发明通过创建模块创建新版本模拟处理器的进程;第一获取模块获取旧版本模拟处理器的内存特征信息;迁移模块将所述内存特征信息迁移到所述新版本模拟处理器;在迁移完成后,网络连接模块断开所述旧版本模拟处理器的网络连接,并将所述新版本模拟处理器与网络连接,从而完成对模拟处理器的热升级,并使得在升级模拟处理器的过程中,模拟处理器仅仅需要在断开旧版本模拟处理器的网络连接与打开新版本模拟处理器的网络连接的间隙里断开服务很短时间,几乎可以忽略不计,大大缩短了业务中断的时间。

需要说明的是,对本发明该模拟处理器的升级方法而言,本领域普通测试人员可以理解实现本发明实施例该模拟处理器的升级方法的全部或部分流程,是可以通过计算机程序来控制相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,如存储在终端的存储器中,并被该终端内的至少一个处理器执行,在执行过程中可包括如该模拟处理器的升级方法的实施例的流程。其中,该的存储介质可为磁碟、光盘、只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)等。

对本发明实施例的该模拟处理器的升级装置而言,其各功能模块可以集成在一个处理芯片中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。该集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中,该存储介质譬如为只读存储器,磁盘或光盘等。

以上对本发明实施例所提供的一种该模拟处理器的升级方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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