CN106201564A - 在线升级基于内核虚拟机模块的设备和方法 - Google Patents
在线升级基于内核虚拟机模块的设备和方法 Download PDFInfo
- Publication number
- CN106201564A CN106201564A CN201510230762.5A CN201510230762A CN106201564A CN 106201564 A CN106201564 A CN 106201564A CN 201510230762 A CN201510230762 A CN 201510230762A CN 106201564 A CN106201564 A CN 106201564A
- Authority
- CN
- China
- Prior art keywords
- module
- virtual machine
- machine
- run
- kvm
- 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.)
- Granted
Links
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
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
-
- 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/445—Program loading or initiating
-
- 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/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- 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/45591—Monitoring or debugging support
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种在线升级基于内核虚拟机模块的设备和方法,所述方法和设备通过对基于内核虚拟机模块进行重组和编译,以获得初始的第一运行模块,所述初始的第一运行模块支持双活模式;然后在进行在线升级时,将机器虚拟器先使用所述第一运行模块,根据所述第一运行模块的代码的升级版本编译出第二运行模块,其中,所述第二运行模块为第一运行模块的更新版本,其后将所述机器虚拟器切换使用所述第二运行模块,能够实现在不关闭虚拟机的情况下升级基于内核虚拟机模块,使得基于内核虚拟机模块的快速升级和迭代变为可能,并且在升级过程中用户不被感知,进而提高虚拟化技术核心竞争力。
Description
技术领域
本发明涉及计算机领域,尤其涉及在线升级基于内核虚拟机模块技术。
背景技术
KVM虚拟机(Kernel-based Virtual Machine,基于内核虚拟机)是一种用于Linux内核中的虚拟化基础设施,可以将Linux内核转化为一个hypervisor,所述“内核”指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。所述hypervisor又称虚拟机器监视器(Virtual machine monitor,VMM),在电脑上的软件,固件或是硬件,能用来建立与执行虚拟机器。拥有Hypervior,能被用来执行一个或多个虚拟机器,这样的电脑被定义为是一台主体机器(host machine)。在上面执行的虚拟机器,则称为客体机器(guest machine)。hypervisor可以用一个客体操作系统(guest operating systems)的外貌出现,提供虚拟的作业平台,负责管理其他客体操作系统的运作。在它之上运作的多个操作系统,共同分享了虚拟化之后的硬件资源。
KVM虚拟机能在不改变linux或windows镜像的情况下同时运行多个虚拟机,即一台虚拟机使用一个镜像,kvm虚拟化可以在一台物理机上运行多个虚拟机,并为每一个虚拟机配置个性化硬件环境(例如网卡、磁盘、图形适配器等)。KVM虚拟化方案包含提供底层虚拟化功能的可加载的核心模块-KVM模块,其中KVM模块(基于内核虚拟模块)包括:kvm.ko和kvm-平台.ko(kvm-平台.ko包括例如:kvm-intel.ko或kvm-AMD.ko)。KVM模块是云计算底层虚拟化技术中非常重要的组件,以致于KVM虚拟化方案都以它命名,它是整个虚拟化方案中的Hypervisor。
现有技术中,KVM模块的升级需要关闭KVM虚拟机,这在公有云环境上代价是很大的,不经济损失大,而且为虚拟机停机时间提供更多倍的赔偿,会造成客户服务中断,甚至对客户造成很大损失。
然而,目前KVM模块的热升级(即KVM模块在不关闭功能服务情况下在线升级)在业界还是空白。
发明内容
本申请的一个目的是提供一种在线升级基于内核虚拟机模块的方法,其中,所述方法包括:
对基于内核虚拟机模块进行重组和编译,以获得初始的第一运行模块,所述初始的第一运行模块支持双活模式;以及
在进行在线升级时,将机器虚拟器先使用所述第一运行模块,根据所述第一运行模块的代码的升级版本编译出第二运行模块,其中,所述第二运行模块为第一运行模块的更新版本,其后将所述机器虚拟器切换使用所述第二运行模块。
进一步的,对基于内核虚拟机模块进行重组和编译包括:
将所述基于内核虚拟机模块中支持虚拟机运行和支持运行模块双活模式的最小功能部分集成到支持模块中,所述支持模块用于支持所有运行模块;以及
将所述基于内核虚拟机模块中集成到所述支持模块以外的部分集成到所述第一运行模块。
进一步的,根据所述第一运行模块的代码的升级版本编译出第二运行模块包括:
使所述支持模块支持所述第一运行模块和所述第二运行模块。
进一步的,所述方法还包括:
在第一运行模块根据所述第一运行模块的代码的升级版本编译出所述第二运行模块之后,将所述第二运行模块插入内核中。
进一步的,所述第一运行模块和第二运行模块采用不同导出设备,其中,所述导出设备用以导出用户态接口。
进一步的,将所述机器虚拟器切换使用所述第二运行模块包括:
在所述机器虚拟器中增加参数,所述参数用于将所述机器虚拟器从使用所述第一运行模块的导出设备指定切换到使用所述第二运行模块的导出设备。
进一步的,所述方法还包括:
在将所述机器虚拟器切换使用所述第二运行模块之后,移除第一运行模块。
进一步的,所述方法还包括:
对所述机器虚拟器进行升级。
本申请的另一个目的是提供一种在线升级基于内核虚拟机模块的设备,其中,所述设备包括:
第一装置,用于对基于内核虚拟机模块进行重组和编译,以获得初始的第一运行模块,所述初始的第一运行模块支持双活模式;以及
第二装置,用于在进行在线升级时,将机器虚拟器先使用所述第一运行模块,根据所述第一运行模块的代码的升级版本编译出第二运行模块,其中,所述第二运行模块为第一运行模块的更新版本,其后将所述机器虚拟器切换使用所述第二运行模块。
进一步的,所述第一装置包括:
第一单元,用于将所述基于内核虚拟机模块中支持虚拟机运行和双活模式的最小功能部分集成到支持模块中,所述支持模块用于支持所有运行模块;以及
第二单元,用于将所述基于内核虚拟机模块中集成到所述支持模块以外的部分集成到所述第一运行模块。
进一步的,所述第二装置包括:
第三单元,用于使所述支持模块支持所述第一运行模块和所述第二运行模块。
进一步的,所述第二装置还包括:
第四单元,用于在根据所述第一运行模块的代码的升级版本编译出所述第二运行模块之后,将所述第二运行模块插入内核中。
进一步的,所述第一运行模块和第二运行模块采用不同导出设备,其中,所述导出设备用以导出用户态接口。
进一步的,所述第二装置还包括:
第五单元,用于在所述机器虚拟器中增加参数,所述参数用于将所述机器虚拟器从使用所述第一运行模块的导出设备指定切换到使用所述第二运行模块的导出设备。
进一步的,所述设备还包括:
第三装置,用于在将所述机器虚拟器切换使用所述第二运行模块之后,移除第一运行模块。
进一步的,所述设备还包括:
第四装置,用于对所述机器虚拟器进行升级。
相比于现有技术,本申请所述方法和设备通过对基于内核虚拟机模块进行重组和编译,以获得初始的第一运行模块,所述初始的第一运行模块支持双活模式;然后,将机器虚拟器先使用所述第一运行模块,根据所述第一运行模块的代码的升级版本编译出第二运行模块,其中,所述第二运行模块为第一运行模块的更新版本,其后在进行机器虚拟器在线升级时,即将所述机器虚拟器切换使用所述第二运行模块,能够实现在不关闭虚拟机的情况下升级基于内核虚拟机模块,使得基于内核虚拟机模块的快速升级和迭代变为可能(例如新特性引入、故障修复(BUG fix)等),并且在升级过程中用户不被感知,进而提高虚拟化技术核心竞争力。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1示出根据本发明一个方面的一种在线升级基于内核虚拟机模块的设备示意图;
图2示出根据本申请一优选的实施例提供的一种在线升级基于内核虚拟机模块的设备的第一装置示意图;
图3(a)~图3(d)示出根据本申请一具体实施例提供的基于内核虚拟机模块的在线升级过程示意图;
图4示出根据本申请一优选的实施例提供的一种在线升级基于内核虚拟机模块的设备;
图5示出根据本发明一个方面的一种在线升级基于内核虚拟机模块的方法流程图;
图6示出根据本申请一优选的实施例提供的一种在线升级基于内核虚拟机模块的步骤S11的流程示意图;
图7示出根据本申请一优选的实施例提供的一种在线升级基于内核虚拟机模块的方法流程图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本发明作进一步详细描述。
图1示出根据本发明一个方面的一种在线升级基于内核虚拟机模块的设备,其中所述设备1包括:第一装置11和第二装置12。
第一装置11对基于内核虚拟机模块进行重组和编译,以获得初始的第一运行模块,所述初始的第一运行模块支持双活模式;第二装置12进行在线升级时,平台机器虚拟器先使用所述第一运行模块,根据所述第一运行模块的代码的升级版本编译出第二运行模块,其中,所述第二运行模块为第一运行模块的更新版本,其后将所述机器虚拟器切换使用所述第二运行模块。
在此,设备1包括但不限于网络设备、触摸终端或网络设备与触摸终端通过网络相集成所构成的设备。在此,所述网络设备包括但不限于如网络主机、单个网络服务器、多个网络服务器集或基于云计算的计算机集合等实现;或者由用户设备实现。在此,云由基于云计算(Cloud Computing)的大量主机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。优选地,设备1还可以是运行于触摸终端、使得用户以触摸终端为媒介进行娱乐的游戏软件。在此,所述触摸终端是一种任何可通过触屏进行人机交互的电子产品,如智能手机、PDA、便携式游戏机、掌上电脑PPC、便携式设备或平板电脑等;其中,触屏(Touch Screen),包括电容式触摸屏。本领域技术人员应能理解上述设备1和触摸终端仅为举例,其他现有的或今后可能出现的设备1或触摸终端如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
进一步的,所述第一装置11对基于内核虚拟机模块进行重组和编译,以获得初始的第一运行模块,所述初始的第一运行模块支持双活模式。
图2示出根据本申请一优选的实施例提供的一种在线升级基于内核虚拟机模块的设备的第一装置示意图,其中,所述第一装置11包括第一单元101和第二单元102,具体的,所述第一装置11通过第一单元101和第二单元102对原KVM模块的kvm.ko和kvm-平台.ko进行重组和编译,其中,所述第一单元101将所述基于内核虚拟机模块中支持虚拟机运行和支持运行模块双活模式的最小功能部分集成到支持模块中,所述支持模块用于支持所有运行模块,所述第二单元102将所述基于内核虚拟机模块中集成到所述支持模块以外的部分集成到所述第一运行模块。
在具体的实施例中,在KVM虚拟化中,原kvm模块(原基于内核虚拟机模块)包括平台(Host,例如linux、AMD平台等)上两个模块:kvm.ko和kvm-平台.ko(其中kvm-平台.ko,如果是AMD平台则是kvm-amd.ko)。其中,kvm.ko和kvm-平台.ko运行在CPU(中央处理器)根模式中,负责初始化CPU硬件虚拟化功能,将虚拟客户机运行在KVM虚拟机模式下,并对KVM虚拟客户机的运行提供支持,主要包括一些硬件虚拟化功能,如内存虚拟化、CPU虚拟化,为了性能考虑也会模拟一些硬件设备(如pit时钟)。其中,Kvm.ko包括了平台无关的虚拟化功能,kvm-平台.ko则包括了平台相关的虚拟化功能,kvm.ko支持kvm-平台.ko。
具体的,在初始阶段,第一装置11对原KVM模块开始通过重组编译的代码编译出初始的第一运行模块和支持模块,首先使用初始的第一运行模块和支持模块这两个模块创建虚拟机,此时QEMU(机器虚拟器)使用初始的第一运行模块。
其中,所述第一单元101对原KVM模块进行编译,将支持虚拟机运行和支持运行模块双活模式的最小功能部分,即简单的、与功能特性几乎无关的功能,以至于其代码在有新功能添加时也完全不需要修改更新的,但在进行升级时需要支持虚拟机运行以及第一运行模块和第二运行模块的双活功能的极少的功能代码集成到所述支持模块中。同时,第二单元102则将原KVM模块中kvm.ko支持kvm-平台.ko两个模块中集成到所述支持模块以外的大部分功能集成到所述初始的第一运行模块,在第一次升级时,以初始的第一运行模块作为第一运行模块,在初始的第一运行模块的升级版本基础上编译获得第二运行模块。
接着,所述第二装置12在进行在线升级时,将机器虚拟器先使用所述第一运行模块,第一运行模块根据所述第一运行模块的代码的升级版本编译出第二运行模块,其中,所述第二运行模块为第一运行模块的更新版本,其后将所述机器虚拟器切换使用所述第二运行模块。
在此,QEMU(机器虚拟器)是KVM虚拟机的组成之一,QUEM作为虚拟机上层控制和界面,客机(Guest)通过QEMU实现对虚拟机的操作。
在此,所述当前即为在当前时间节点,第一运行模块即为当前支持虚拟机运行的运行模块,例如当前用于支持虚拟机的运行模块,例如当前用于支持虚拟机的运行模块的第一运行模块为kvm-平台-0.ko,机器虚拟器使用第一运行模块为kvm-平台-0.ko;在第一次升级中,支持虚拟机的运行模块切换为第二运行模块kvm-平台-1.ko,机器虚拟器切换使用该第二运行模块为kvm-平台-1.ko;则在第二次升级开始前,支持虚拟机的第一运行模块为kvm-平台-1.ko,机器虚拟器使用第一运行模块为kvm-平台-1.ko。
当然,本领域技术人员应当能够理解,对运行模块的命名、数量仅为举例,今后可能出现的、能够实现双活的运行模块方式都在本申请的思想范围之内。
具体地,在在线升级之前,以及在线升级过程中编译出第二运行模块之前,所述机器虚拟器使用所述第一运行模块。
接着,在在线升级过程中,第二装置12通过所述第一运行模块的代码的升级版本编译第二运行模块,其中,所述第二运行模块为第一运行模块的更新版本,此时,所述第二运行模块和第一运行模块都处于双活状态,即所述第二运行模块和第一运行模块都可以支持虚拟机运行,且都能够获得所述支持模块的支持。
图3(a)~图3(d)示出根据本申请一具体实施例提供的基于内核虚拟机模块的在线升级过程示意图,继续接前例,双活的运行模块包括kvm-平台-0.ko和kvm-平台-1.ko,如图3(a),在某次升级前,第一运行模块为kvm-平台-0.ko,机器虚拟器使用第一运行模块为kvm-平台-0.ko;在第一运行模块kvm-平台-0.ko出现故障(Bug)或需要功能更新时,则进入升级阶段,在升级过程中,如图3(b),首先通过所述第一运行模块kvm-平台-0.ko的代码升级版本编译出第二运行模块kvm-平台-1.ko,然后,如图3(c),机器虚拟器切换使用该第二运行模块为kvm-平台-1.ko。
第一运行模块和第二运行模块并非固定的运行模块,例如,接上例,在下一次进行升级时,kvm-平台-1.ko则作为第一运行模块,即机器虚拟器使用第一运行模块为kvm-平台-1.ko,然后,根据第一运行模块kvm-平台-1.ko的代码编译出第二运行模块kvm-平台-0.ko,机器虚拟器切换使用第二运行模块为kvm-平台-0.ko,在此后的升级过程依此循环升级。
进一步的,所述第二装置12包括第三单元(图中未示出),所述第三单元使所述支持模块支持所述第一运行模块和所述第二运行模块。在升级期间,支持模块的vmm-exclusive功能(虚拟机独占功能)始终不关闭,避免关闭该功能后造成约5%的性能下降。支持模块支持运行模块双活模式,即支持模块可以同时支持两个运行模块。比如一台使用第一运行模块的虚拟同和一台使用第二运行模块的虚拟机同时在运行也是可以的。在升级前,允许第一运行模块支持虚拟机,在升级后,切换到所第二运行模块,既不影响虚拟机的正常运行,又能够保证热升级功能不以牺牲性能为代价。
进一步的,所述第二装置12还包括第四单元(图中未示出),所述第四单元在根据所述第一运行模块的代码的升级版本编译出所述第二运行模块之后,将所述第二运行模块插入内核中,即插入主机(Host)中。
例如,接前例,参考图3(c)在主机(host)中插入支持模块kvm.ko、第一运行模块kvm-平台-0.ko、kvm-平台-1.ko时使用lsmod|grep kvm命令的效果如下图:
其中,“Kvm_平台_0 40”表示其为当前支持虚拟机的第一运行模块,“Kvm 2 Kvm_平台_1、Kvm_平台_0”表示支持模块支持两个运行模块Kvm_平台_1和Kvm_平台_0。
优选的,所述第一运行模块和第二运行模块采用不同导出设备,其中,所述导出设备用以导出用户态接口。
例如,接前例,双活的运行模块kvm-平台-0.ko和kvm-平台-1.ko,分别使用不同的导出设备,例如,分别使用/dev/kvm0和/dev/kvm1。
接着,所述第二装置12还包括第五单元(图中未示出),所述第五单元用于在所述机器虚拟器中增加参数,所述参数用于将所述机器虚拟器从使用所述第一运行模块的导出设备指定切换到使用所述第二运行模块的导出设备(misc设备)。
例如,接前例,双活的运行模块kvm-平台-0.ko和kvm-平台-1.ko,分别使用不同的导出设备,例如,分别使用/dev/kvm0和/dev/kvm1。在某次升级前,第一运行模块为kvm-平台-0.ko,机器虚拟器指定通过导出设备/dev/kvm0使用第一运行模块为kvm-平台-0.ko,当编译获得第二运行模块kvm-平台-1.ko之后,机器虚拟器通过增加的参数,使机器虚拟器通过导出设备/dev/kvm1使用第二运行模块kvm-平台-1.ko,以实现在线升级(即热升级)。在一优选的实施例中,这个切换过程通过一次机器虚拟器在线升级(即热升级)来实现,在机器虚拟器热升级(在线升级)过程中,通过参数指定升级后的机器虚拟器(当然如果只是为了升级kvm运行模块,仍旧使用老的机器虚拟器也是可以的)使用第二运行模块(即升级版本的运行模块)。当然,本领域技术人员应当能够理解,将机器虚拟器通过切换使用运行模块的过程并不限于在机器虚拟器热升级过程完成,其他能够实现机器虚拟器的切换的方式都包含在本申请的思想范围之内。
图4示出根据本申请一优选的实施例提供的一种在线升级基于内核虚拟机模块的设备,所述设备1包括第一装置11’、第二装置12’以及第三装置13’。
其中,所述第一装置11’和所述第二装置12’与图1示出的第一装置11和第二装置12的内容相同或基本相同,为简明起见,不再赘述。
其中,所述第三装置13’在将所述机器虚拟器切换使用所述第二运行模块之后,移除第一运行模块。
继续参考图3,接前例,在某次升级过程中,第一运行模块为kvm-平台-0.ko,通过所述第一运行模块kvm-平台-0.ko的代码升级版本编译出第二运行模块kvm-平台-1.ko,机器虚拟器切换使用该第二运行模块为kvm-平台-1.ko之后,如图3(d),所述第三装置13’移除第一运行模块为kvm-平台-0.ko。如后续在此进行更新时,再根据当前的第一运行模块kvm-平台-1.ko的代码的升级版本重新编译出第二运行模块kvm-平台-0.ko,第二运行模块kvm-平台-0.ko与之前移除的kvm-平台-0.ko可以通过不同的版本号进行区分,其后依次循环。因为支持模块支持双活模式,所以在升级完成后移除第一运行模块能够有效避免虚拟机误用老版本(当前未更新版本)的运行模块。
在优选的实施例中,每次升级过程中,循环执行第二装置12’进行在线升级时,平台机器虚拟器先使用所述第一运行模块,第一运行模块根据所述第一运行模块的代码的升级版本编译出第二运行模块,其中,所述第二运行模块为第一运行模块的更新版本,其后将所述机器虚拟器切换使用所述第二运行模块以及所述第三装置13’在将所述机器虚拟器切换使用所述第二运行模块之后,移除第一运行模块,实现在线升级。
进一步的,所述设备1还包括第四装置(图中未示出),所述第四装置(图中未示出)对所述机器虚拟器进行升级。
在此,所述机器虚拟器(QEMU)的升级过程可以与KVM模块的升级过程同步或异步。
图5示出根据本发明一个方面的一种在线升级基于内核虚拟机模块的方法流程图,其中所述方法包括:步骤S11和步骤S12。
在步骤S11中,设备1对基于内核虚拟机模块进行重组和编译,以获得初始的第一运行模块,所述初始的第一运行模块支持双活模式;在步骤S12中,进行在线升级时,设备1使机器虚拟器先使用所述第一运行模块,第一运行模块根据所述第一运行模块的代码的升级版本编译出第二运行模块,其中,所述第二运行模块为第一运行模块的更新版本,其后将所述机器虚拟器切换使用所述第二运行模块。
在此,设备1包括但不限于网络设备、触摸终端或网络设备与触摸终端通过网络相集成所构成的设备。在此,所述网络设备包括但不限于如网络主机、单个网络服务器、多个网络服务器集或基于云计算的计算机集合等实现;或者由用户设备实现。在此,云由基于云计算(Cloud Computing)的大量主机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。优选地,设备1还可以是运行于触摸终端、使得用户以触摸终端为媒介进行娱乐的游戏软件。在此,所述触摸终端是一种任何可通过触屏进行人机交互的电子产品,如智能手机、PDA、便携式游戏机、掌上电脑PPC、便携式设备或平板电脑等;其中,触屏(Touch Screen),包括电容式触摸屏。本领域技术人员应能理解上述设备1和触摸终端仅为举例,其他现有的或今后可能出现的设备1或触摸终端如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
进一步的,所述步骤S11包括步骤S101和步骤S102,在所述步骤S101中,将所述基于内核虚拟机模块中支持虚拟机运行和支持运行模块双活模式的最小功能部分集成到支持模块中,所述支持模块用于支持所有运行模块,在所述步骤S102中将所述基于内核虚拟机模块中集成到所述支持模块以外的部分集成到所述第一运行模块。
图6示出根据本申请一优选的实施例提供的一种在线升级基于内核虚拟机模块的步骤S11的流程示意图,所述步骤S11通过具体通过步骤S101和步骤S102对原KVM模块的kvm.ko和kvm-平台.ko进行重组和编译,其中,所述第一单元101将所述基于内核虚拟机模块中支持虚拟机运行和支持运行模块双活模式的最小功能部分集成到支持模块中,所述支持模块用于支持所有运行模块,所述第二单元102将所述基于内核虚拟机模块中集成到所述支持模块以外的部分集成到所述第一运行模块。
在具体的实施例中,在KVM虚拟化中,原kvm模块(原基于内核虚拟机模块)包括平台(Host,例如linux、AMD平台等)上两个模块:kvm.ko和kvm-平台.ko(其中kvm-平台.ko,如果是AMD平台则是kvm-amd.ko)。其中,kvm.ko和kvm-平台.ko运行在CPU(中央处理器)根模式中,负责初始化CPU硬件虚拟化功能,将虚拟客户机运行在KVM虚拟机模式下,并对KVM虚拟客户机的运行提供支持,主要包括一些硬件虚拟化功能,如内存虚拟化、CPU虚拟化,为了性能考虑也会模拟一些硬件设备(如pit时钟)。其中,Kvm.ko包括了平台无关的虚拟化功能,kvm-平台.ko则包括了平台相关的虚拟化功能,kvm.ko支持kvm-平台.ko。
具体的,在初始阶段,对原KVM模块开始通过重组编译的代码编译出初始的第一运行模块和支持模块,首先使用初始的第一运行模块和支持模块这两个模块创建虚拟机,此时QEMU(机器虚拟器)使用初始的第一运行模块。
其中,所述第一单元101对原KVM模块进行编译,将支持虚拟机运行和支持运行模块双活模式的最小功能部分,即简单的、与功能特性几乎无关的功能,以至于其代码在有新功能添加时也完全不需要修改更新的,但在进行升级时需要支持虚拟机运行以及第一运行模块和第二运行模块的双活功能的极少的功能代码集成到所述支持模块中。同时,第二单元102则将原KVM模块中kvm.ko支持kvm-平台.ko两个模块中集成到所述支持模块以外的大部分功能集成到所述初始的第一运行模块,在第一次升级时,以初始的第一运行模块作为第一运行模块,在初始的第一运行模块基础上编译获得第二运行模块。
接着,在步骤S102中,在进行在线升级时,包括以下步骤:
1)将机器虚拟器先使用所述第一运行模块;
2)根据所述第一运行模块的代码的升级版本编译出第二运行模块,其中,所述第二运行模块为第一运行模块的更新版本;其后
3)将所述机器虚拟器切换使用所述第二运行模块。
其中,在每次在线升级过程中,循环执行步骤S102中1)至3)步骤。
在此,QEMU(机器虚拟器)是KVM虚拟机的组成之一,QUEM作为虚拟机上层控制和界面。
在此,所述当前即为在当前时间节点,第一运行模块即为当前支持虚拟机运行的运行模块,例如当前用于支持虚拟机的运行模块,例如当前用于支持虚拟机的运行模块的第一运行模块为kvm-平台-0.ko,机器虚拟器使用第一运行模块为kvm-平台-0.ko;在第一次升级中,支持虚拟机的运行模块切换为第二运行模块kvm-平台-1.ko,机器虚拟器切换使用该第二运行模块为kvm-平台-1.ko;则在第二次升级开始前,支持虚拟机的第一运行模块为kvm-平台-1.ko,机器虚拟器使用第一运行模块为kvm-平台-0.ko。
当然,本领域技术人员应当能够理解,对运行模块的命名、数量仅为举例,今后可能出现的、能够实现双活的运行模块方式都在本申请的思想范围之内。
具体地,在在线升级之前,以及在线升级过程中编译出第二运行模块之前,所述机器虚拟器使用所述第一运行模块。
接着,在步骤S12中,在在线升级过程中,通过所述第一运行模块的代码升级版本编译第二运行模块,其中,所述第二运行模块为第一运行模块的更新版本,此时,所述第二运行模块和第一运行模块都处于双活状态,即所述第二运行模块和第一运行模块都可以支持虚拟机运行,且都能够获得所述支持模块的支持。
图3(a)~图3(d)示出根据本申请一具体实施例提供的基于内核虚拟机模块的在线升级过程示意图,继续接前例,双活的运行模块包括kvm-平台-0.ko和kvm-平台-1.ko,如图3(a),在某次升级前,第一运行模块为kvm-平台-0.ko,机器虚拟器使用第一运行模块为kvm-平台-0.ko;在第一运行模块kvm-平台-0.ko出现故障(Bug)或需要功能更新时,则进入升级阶段,在升级过程中,如图3(b),首先通过所述第一运行模块kvm-平台-0.ko的代码编译出第二运行模块kvm-平台-1.ko,然后,如图3(c),机器虚拟器切换使用该第二运行模块为kvm-平台-1.ko。
当然,第一运行模块和第二运行模块并非固定的运行模块,例如,接上例,在下一次进行升级时,kvm-平台-1.ko则作为第一运行模块,机器虚拟器使用第一运行模块为kvm-平台-1.ko,然后,根据第一运行模块kvm-平台-1.ko的代码编译出第二运行模块kvm-平台-0.ko,机器虚拟器切换使用第二运行模块为kvm-平台-0.ko,在此后的升级过程依此循环升级。
进一步的,所述步骤S12包括:使所述支持模块支持所述第一运行模块和所述第二运行模块。
进一步的,所述步骤S12还包括:在第一运行模块根据所述第一运行模块的代码的升级版本编译出所述第二运行模块之后,将所述第二运行模块插入内核中。
优选的,所述第一运行模块和第二运行模块采用不同导出设备,其中,所述导出设备用以导出用户态接口。
例如,接前例,双活的运行模块kvm-平台-0.ko和kvm-平台-1.ko,分别使用不同的导出设备,例如,分别使用/dev/kvm0和/dev/kvm1。
接着,在所述步骤S12中还包括:在所述机器虚拟器中增加参数,所述参数用于将所述机器虚拟器从使用所述第一运行模块的导出设备指定切换到使用所述第二运行模块的导出设备(misc设备)。
例如,接前例,双活的运行模块kvm-平台-0.ko和kvm-平台-1.ko,分别使用不同的导出设备,例如,分别使用/dev/kvm0和/dev/kvm1。在某次升级前,第一运行模块为kvm-平台-0.ko,机器虚拟器指定通过导出设备/dev/kvm0使用第一运行模块为kvm-平台-0.ko,当编译获得第二运行模块kvm-平台-0.ko之后,机器虚拟器通过一次机器虚拟器热升级并通过增加的参数指定切换至通过导出设备/dev/kvm1使用第二运行模块kvm-平台-1.ko,以实现在线升级(即热升级)。
图7示出根据本申请一优选的实施例提供的一种在线升级基于内核虚拟机模块的方法流程图,所述方法包括步骤S11’、步骤S12’以及步骤S13’。
其中,所述步骤S11’和所述步骤S12’与图4示出的步骤S11和步骤S12的内容相同或基本相同,为简明起见,不再赘述。
其中,步骤S13’在将所述机器虚拟器切换使用所述第二运行模块之后,移除第一运行模块。
继续参考图3,接前例,在某次升级过程中,第一运行模块为kvm-平台-0.ko,通过所述第一运行模块kvm-平台-0.ko的代码编译出第二运行模块kvm-平台-1.ko,机器虚拟器切换使用该第二运行模块为kvm-平台-1.ko之后,如图3(d),在步骤S13’中,移除第一运行模块为kvm-平台-0.ko。如后续在此进行更新时,再根据当前的第一运行模块kvm-平台-1.ko的代码的升级版本编译出第二运行模块kvm-平台-0.ko,第二运行模块kvm-平台-0.ko与之前移除的kvm-平台-0.ko可以通过不同的版本号进行区分,其后依次循环。因为支持模块支持双活模式,所以在升级完成后移除原第一运行模块能够有效避免虚拟机误用老版本(当前未更新版本)的运行模块。
在优选的实施例中,每次升级过程中,循环执行所述步骤S12’进行在线升级时,平台机器虚拟器先使用所述第一运行模块,第一运行模块根据所述第一运行模块的代码的升级版本编译出第二运行模块,其中,所述第二运行模块为第一运行模块的更新版本,其后将所述机器虚拟器切换使用所述第二运行模块以及所述步骤S13’在将所述机器虚拟器切换使用所述第二运行模块之后,移除第一运行模块,实现在线升级。
进一步的,所述方法还包括:对所述机器虚拟器进行升级。
在此,所述机器虚拟器(QEMU)的升级过程可以与KVM模块的升级过程同步或异步。接前例,将QEMU使用运行模块kvm-平台-0.ko切换到使用运行模块kvm-平台-1.ko,其升级时间在100ms~200ms之间(机械硬盘环境,SSD硬盘环境还可以更短),完全能够做到升级过程用户无感知。
相比于现有技术,本申请所述方法和设备通过对基于内核虚拟机模块进行重组和编译,以获得初始的第一运行模块,所述初始的第一运行模块支持双活模式;然后在在进行在线升级时,将机器虚拟器先使用所述第一运行模块,第一运行模块根据所述第一运行模块的代码的升级版本编译出第二运行模块,其中,所述第二运行模块为第一运行模块的更新版本,其后将所述机器虚拟器切换使用所述第二运行模块,能够实现在不关闭虚拟机的情况下升级基于内核虚拟机模块,使得基于内核虚拟机模块的快速升级和迭代变为可能(例如新特性引入、故障修复(BUG fix)等),并且在升级过程中用户不被感知,进而提高虚拟化技术核心竞争力。
需要注意的是,本发明可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本发明的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本发明的方法和/或技术方案。而调用本发明的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本发明的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本发明的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (16)
1.一种在线升级基于内核虚拟机模块的方法,其中,所述方法包括:
对基于内核虚拟机模块进行重组和编译,以获得初始的第一运行模块,所述初始的第一运行模块支持双活模式;以及
在进行在线升级时,将机器虚拟器先使用所述第一运行模块,根据所述第一运行模块的代码的升级版本编译出第二运行模块,其中,所述第二运行模块为第一运行模块的更新版本,其后将所述机器虚拟器切换使用所述第二运行模块。
2.根据权利要求1所述的方法,其中,对基于内核虚拟机模块进行重组和编译包括:
将所述基于内核虚拟机模块中支持虚拟机运行和支持运行模块双活模式的最小功能部分集成到支持模块中,所述支持模块用于支持所有运行模块;以及
将所述基于内核虚拟机模块中集成到所述支持模块以外的部分集成到所述第一运行模块。
3.根据权利要求2所述的方法,其中,第一运行模块根据所述第一运行模块的代码的升级版本编译出第二运行模块包括:
使所述支持模块支持所述第一运行模块和所述第二运行模块。
4.根据权利要求1至3中任一项所述的方法,其中,所述方法还包括:
在第一运行模块根据所述第一运行模块的代码的升级版本编译出所述第二运行模块之后,将所述第二运行模块插入内核中。
5.根据权利要求1至4中任一项所述的方法,其中,所述第一运行模块和第二运行模块采用不同导出设备,其中,所述导出设备用以导出用户态接口。
6.根据权利要求5所述的方法,其中,将所述机器虚拟器切换使用所述第二运行模块包括:
在所述机器虚拟器中增加参数,所述参数用于将所述机器虚拟器从使用所述第一运行模块的导出设备指定切换到使用所述第二运行模块的导出设备。
7.根据权利要求1至6中任一项所述的方法,其中,所述方法还包括:
在将所述机器虚拟器切换使用所述第二运行模块之后,移除第一运行模块。
8.根据权利要求1至7中任一项所述的方法,其中,所述方法还包括:
对所述机器虚拟器进行升级。
9.一种在线升级基于内核虚拟机模块的设备,其中,所述设备包括:
第一装置,用于对基于内核虚拟机模块进行重组和编译,以获得初始的第一运行模块,所述初始的第一运行模块支持双活模式;以及
第二装置,用于在进行在线升级时,将机器虚拟器先使用所述第一运行模块,第一运行模块根据所述第一运行模块的代码的升级版本编译出第二运行模块,其中,所述第二运行模块为第一运行模块的更新版本,其后将所述机器虚拟器切换使用所述第二运行模块。
10.根据权利要求9所述的设备,其中,所述第一装置包括:
第一单元,用于将所述基于内核虚拟机模块中支持虚拟机运行和双活模式的最小功能部分集成到支持模块中,所述支持模块用于支持所有运行模块;以及
第二单元,用于将所述基于内核虚拟机模块中集成到所述支持模块以外的部分集成到所述第一运行模块。
11.根据权利要求10所述的设备,其中,所述第二装置包括:
第三单元,用于使所述支持模块支持所述第一运行模块和所述第二运行模块。
12.根据权利要求9至11中任一项所述的设备,其中,所述第二装置还包括:
第四单元,用于在第一运行模块根据所述第一运行模块的代码的升级版本编译出所述第二运行模块之后,将所述第二运行模块插入内核中。
13.根据权利要求9至12中任一项所述的设备,其中,所述第一运行模块和第二运行模块采用不同导出设备,其中,所述导出设备用以导出用户态接口。
14.根据权利要求13所述的设备,其中,所述第二装置还包括:
第五单元,用于在所述机器虚拟器中增加参数,所述参数用于将所述机器虚拟器从使用所述第一运行模块的导出设备指定切换到使用所述第二运行模块的导出设备。
15.根据权利要求9至14中任一项所述的设备,其中,所述设备还包括:
第三装置,用于在将所述机器虚拟器切换使用所述第二运行模块之后,移除第一运行模块。
16.根据权利要求9至15中任一项所述的设备,其中,所述设备还包括:
第四装置,用于对所述机器虚拟器进行升级。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510230762.5A CN106201564B (zh) | 2015-05-07 | 2015-05-07 | 在线升级基于内核虚拟机模块的设备和方法 |
PCT/CN2016/079160 WO2016177261A1 (zh) | 2015-05-07 | 2016-04-13 | 在线升级基于内核虚拟机模块的设备和方法 |
US15/806,093 US10565000B2 (en) | 2015-05-07 | 2017-11-07 | Method and apparatus for online upgrade of kernel-based virtual machine module |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510230762.5A CN106201564B (zh) | 2015-05-07 | 2015-05-07 | 在线升级基于内核虚拟机模块的设备和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106201564A true CN106201564A (zh) | 2016-12-07 |
CN106201564B CN106201564B (zh) | 2019-08-23 |
Family
ID=57217485
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510230762.5A Active CN106201564B (zh) | 2015-05-07 | 2015-05-07 | 在线升级基于内核虚拟机模块的设备和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10565000B2 (zh) |
CN (1) | CN106201564B (zh) |
WO (1) | WO2016177261A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106850749A (zh) * | 2016-12-26 | 2017-06-13 | 联想(北京)有限公司 | 一种在线更新内核的方法及装置、电子设备 |
CN109450676A (zh) * | 2018-10-29 | 2019-03-08 | 锐捷网络股份有限公司 | 一种交换机升级方法及装置、电子设备、计算机可读介质 |
CN113312170A (zh) * | 2020-05-29 | 2021-08-27 | 阿里巴巴集团控股有限公司 | 内存管理系统及方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220137997A1 (en) * | 2020-11-04 | 2022-05-05 | Citrix Systems, Inc. | Platform update using self-installing containerized microservice |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030120914A1 (en) * | 2001-10-27 | 2003-06-26 | International Business Machines Corporation | Flexible temporary capacity upgrade/downgrade in a computer system without involvement of the operating system |
CN101727331A (zh) * | 2008-10-24 | 2010-06-09 | 国际商业机器公司 | 升级活动虚拟机的客户操作系统的方法和设备 |
CN102073529A (zh) * | 2011-01-30 | 2011-05-25 | 华为技术有限公司 | 超级内核组件的升级方法和计算机系统 |
US20130055240A1 (en) * | 2011-08-22 | 2013-02-28 | Vmware, Inc. | Virtual port command processing during migration of virtual machine |
CN102999369A (zh) * | 2012-12-25 | 2013-03-27 | 杭州华三通信技术有限公司 | 虚拟机升级的方法及装置 |
CN103036947A (zh) * | 2012-11-21 | 2013-04-10 | 北京航空航天大学 | 基于kvm的虚拟机迁移方法及系统 |
US20130318515A1 (en) * | 2010-04-28 | 2013-11-28 | Novell, Inc. | System and method for upgrading kernels in cloud computing environments |
US20140032699A1 (en) * | 2008-09-23 | 2014-01-30 | Joseph Chyam Cohen | Remote user interface in a terminal server environment |
-
2015
- 2015-05-07 CN CN201510230762.5A patent/CN106201564B/zh active Active
-
2016
- 2016-04-13 WO PCT/CN2016/079160 patent/WO2016177261A1/zh active Application Filing
-
2017
- 2017-11-07 US US15/806,093 patent/US10565000B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030120914A1 (en) * | 2001-10-27 | 2003-06-26 | International Business Machines Corporation | Flexible temporary capacity upgrade/downgrade in a computer system without involvement of the operating system |
US20140032699A1 (en) * | 2008-09-23 | 2014-01-30 | Joseph Chyam Cohen | Remote user interface in a terminal server environment |
CN101727331A (zh) * | 2008-10-24 | 2010-06-09 | 国际商业机器公司 | 升级活动虚拟机的客户操作系统的方法和设备 |
US20130318515A1 (en) * | 2010-04-28 | 2013-11-28 | Novell, Inc. | System and method for upgrading kernels in cloud computing environments |
CN102073529A (zh) * | 2011-01-30 | 2011-05-25 | 华为技术有限公司 | 超级内核组件的升级方法和计算机系统 |
US20130055240A1 (en) * | 2011-08-22 | 2013-02-28 | Vmware, Inc. | Virtual port command processing during migration of virtual machine |
CN103036947A (zh) * | 2012-11-21 | 2013-04-10 | 北京航空航天大学 | 基于kvm的虚拟机迁移方法及系统 |
CN102999369A (zh) * | 2012-12-25 | 2013-03-27 | 杭州华三通信技术有限公司 | 虚拟机升级的方法及装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106850749A (zh) * | 2016-12-26 | 2017-06-13 | 联想(北京)有限公司 | 一种在线更新内核的方法及装置、电子设备 |
CN109450676A (zh) * | 2018-10-29 | 2019-03-08 | 锐捷网络股份有限公司 | 一种交换机升级方法及装置、电子设备、计算机可读介质 |
CN109450676B (zh) * | 2018-10-29 | 2022-04-26 | 锐捷网络股份有限公司 | 一种交换机升级方法及装置、电子设备、计算机可读介质 |
CN113312170A (zh) * | 2020-05-29 | 2021-08-27 | 阿里巴巴集团控股有限公司 | 内存管理系统及方法 |
CN113312170B (zh) * | 2020-05-29 | 2024-01-23 | 阿里巴巴集团控股有限公司 | 内存管理系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2016177261A1 (zh) | 2016-11-10 |
CN106201564B (zh) | 2019-08-23 |
US20180060111A1 (en) | 2018-03-01 |
US10565000B2 (en) | 2020-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102799464B (zh) | 虚拟机创建方法及系统、虚拟机重装方法及系统 | |
CN101233489B (zh) | 自适应进程分派的方法和系统 | |
CN106293781B (zh) | 在线升级机器虚拟器的方法与设备 | |
CN110275722A (zh) | 用于升级应用的方法、装置、设备和存储介质 | |
CN112199162B (zh) | 基于虚拟化磁盘双活容灾的磁盘快照方法、装置及介质 | |
CN102194010B (zh) | 虚拟文件系统碎片的零拷贝整理方法 | |
CN106201564A (zh) | 在线升级基于内核虚拟机模块的设备和方法 | |
CN103677870B (zh) | 系统升级方法及采用该方法升级的系统 | |
CN102880482A (zh) | 一种主机批量控制虚拟机中软件自动升级的系统及技术方法 | |
CN102999369A (zh) | 虚拟机升级的方法及装置 | |
CN107368353B (zh) | 一种实现虚拟机内存热添加的方法和装置 | |
CN106796500A (zh) | 分布式文件系统的版本间映射 | |
CN109656646B (zh) | 一种远程桌面控制方法、装置、设备及虚拟化芯片 | |
CN104503825B (zh) | 一种基于kvm混合式设备虚拟化方法 | |
CN106897090A (zh) | 一种嵌入式设备程序升级方法及系统 | |
CN103186404A (zh) | 系统固件更新方法与使用该方法的服务器系统 | |
CN107678831A (zh) | 一种实现跨虚拟化平台间迁移的v2v方法 | |
CN106909399A (zh) | 一种基于服务器计算机的uefi固件实现方法 | |
CN103064724A (zh) | 虚拟机构建方法及装置 | |
CN105117274A (zh) | 虚拟机迁移方法和装置 | |
CN108459906A (zh) | 一种vcpu线程的调度方法及装置 | |
CN107168769A (zh) | 一种信息处理方法及电子设备 | |
CN106406978B (zh) | 私有云虚拟机模板自动制作装置及方法 | |
CN102959513B (zh) | 虚拟机器合并方法和系统 | |
CN103246544A (zh) | 虚拟硬件驱动终端及驱动方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230530 Address after: Room 1-2-A06, Yungu Park, No. 1008 Dengcai Street, Sandun Town, Xihu District, Hangzhou City, Zhejiang Province Patentee after: Aliyun Computing Co.,Ltd. Address before: Box 847, four, Grand Cayman capital, Cayman Islands, UK Patentee before: ALIBABA GROUP HOLDING Ltd. |