处理器架构之间的虚拟机迁移的制作方法

文档序号:6470187阅读:105来源:国知局
专利名称:处理器架构之间的虚拟机迁移的制作方法
技术领域
本发明涉及信息处理系统,以及更具体地涉及处理器架构之间的虚拟机 迁移。
背景技术
随着信息的价值和使用的持续增加,个人和商务寻求额外的方式来处理 和存储信息。用户的一个可选途径是信息处理系统。信息处理系统通常为商 务、个人或者其它目的处理、编译、和/或传输信息或数据从而允许用户利用 信息的价值。因为不同用户或应用之间的技术和信息处理的需要和要求不
同,所述信息处理系统在处理信息的类型;处理信息的方法;用于处理、存 储或传输信息的方法;处理、存储或传输的信息量;以及处理、存储或传输 信息的速度和效率方面也可能不同。信息处理系统的变化允许信息处理系统 是通用的或者为特定用户或者特定用途而被设置,所述特定使用例如金融交 易处理、机票预定、企业数据存储或全球通信。另外,信息处理系统可以包 括可以被配置成处理、存储和传输信息的多种硬件或者软件组件,以及可以 包括一个或者多个计算机系统、数据存储系统和网络系统。
涉及信息处理系统的一个议题是虚拟化,所述虚拟化涉及信息处理系统 资源的抽象化。更具体地,虚拟化在其它系统、应用、或者终端用户与信息 处理系统资源交互的方式中隐藏信息处理系统资源的物理特征。虚拟化包括 使得单个物理资源(例如服务器、操作系统、应用或存储设备)看起来是起 多逻辑资源的作用;或者使得多物理资源(例如多个存储设备或者多个服务 器)看起来是单个逻辑资源。
虚拟化在企业信息处理系统环境中尤其普遍。当执行虚拟机(VM)迁
移(即将一个虚拟机从一个系统(逻辑的或者物理的)移到另一个系统)时,
通常需要使用虚拟化。然而,使用VM迁移,特别是动态VM迁移(liveVM migration)(即正在一个系统上执行的VM被迁移到另一个系统上,其中迁 移过程不需要使系统处于关闭或者中止状态),不同的CPU供应商以及甚至 同一个供应商的不同代产品之间会自己出现构架问题。该构架问题通常是供 应商之间和同一个供应商的各代产品之间的不同特征所引起的。从而,例如, 当试图将正执行第4版本的流指令扩展指令集(SSE4)的动态虚拟机迁移到 只能够支持第3版本的SSE (SSE3)而不支持SSE4指令的系统就会存在问 题。当正要迁移的VM不处于动态状态(例如正工作于关闭状态或者挂起状 态)时,也可能存在VM迁移问题。
当应用程序加载和执行处理器识别(例如CPUID)指令时,本身会出现 问题。该指令返回处理器标识符(ID)和特征信息。应用程序基于给定CPU 的特征和指令集来使用该信息,以设置所采用路径。CPUID指令和结果的示 例可以在"Intel 64 and IA-32构架软件开发者手册一巻2A—指令集参考, A-M (Intel 64 and IA-32 Architectures Software Developer's Manual - Volume 2A - Instruction Set Reference, A-M)"中找到。当应用程序处于活动状态而且 正在执行到给定指令集和/或特征集时,只有在目标系统具有和源系统相同特 征支持的情况下,系统之间的动态迁移才可能发生。例如,标有现有技术的 图1显示了示例性的程序加载的流程图。
当应用程序没有发出处理器识别指令来确定代码路径时,可能出现涉及 VM迁移的另一个问题。在该情况下,应用程序不知道完整的处理器指令和 特征集。

发明内容
根据本发明,提出了一种用于执行VM迁移的方法,该方法管理池中的
机器群集从一个虚拟机向另一个虚拟机动态迁移特征集或状态。在某些实施 方式中,池中的机器可以被配置为仿真某一特征集,以使得能够在相似池中
间进行VM迁移。可用通过屏蔽特征集报表(reporting)或激活/禁用特征集 来进行仿真。对硬件中的仿真寄存器(即,当工作在仿真模式中时,对特征 集的操作)的处理发生在固件(例如基本输入输出系统(BIOS))级别,而 不是操作系统或者监控程序级别。
更具体地,在实施方式中,本发明涉及一种用于在多个信息处理系统之 间执行虚拟机迁移的方法。所述方法包括识别所述多个信息处理系统中具有 共同特征集的处理器,所述共同特征集包括指令集等级兼容性;将包括具有 共同特征集的处理器的信息处理系统聚集到一起,以提供相似信息处理系统 池;以及执行从第一信息处理系统到相似信息处理系统池中的信息处理系统 的虚拟机迁移,所述虚拟机迁移将一个虚拟机从一个信息处理系统移动到另 一个信息处理系统。
在另一个实施方式中,本发明涉及用于在多个信息处理系统之间执行虚 拟机迁移的设备。所示设备包括用来识别所述多个信息处理系统中具有共同 特征集的处理器的装置,所述共同特征集包括指令集等级兼容性;用于聚集 包括具有共同特征集的处理器的信息处理系统,以提供相似信息处理系统池 的装置;以及用于执行从第一信息处理系统到所述相似信息处理系统池中的 信息处理系统的虚拟机迁移的装置,所述虚拟机迁移将虚拟机从一个信息处 理系统移动到另一个信息处理系统。
在另一个实施方式中,本发明涉及信息技术环境,所述信息技术环境包 括多个信息处理系统和用于执行在多个信息处理系统之间的虚拟机迁移的 系统。所述多个信息处理系统中的每一个包括处理器,以及连接到该处理器 的存储器。用于执行虚拟机迁移的系统包括可以被处理器执行以识别所述多 个信息处理系统中具有共同特征集的的处理器的指令,所述共同特征集包括
指令集等级兼容性;将包括具有共同特征集的处理器的信息处理系统聚集到 一起,以提供相似信息处理系统池;以及执行从第一信息处理系统到所述相 似信息处理系统池中的信息处理系统的虚拟机迁移,所述虚拟机迁移将虚拟 机从一个信息处理系统移动到另一个信息处理系统。


通过参考附图,可以更好的理解本发明,并且本发明的多个目的、特征 和优点对于本领域的技术人员将显而易见。所有附图中相同的附图标记用来 指示相同的或者相似的元件。
图l被标记为现有技术,显示了示例性的程序加载的流程图2显示了信息处理系统的系统框图3显示了 BIOS的操作流程图4显示了用于执行VM迁移的系统的操作流程图。
具体实施例方式
现在参考图2,显示了信息处理系统200的系统框图。信息处理系统200 包括处理器202和输入/输出(I/O)装置204,例如显示器、键盘、鼠标。 所述信息处理系统200还包括相关的控制器和存储器206,所述存储器206 包括例如随机存取存储器(RAM)的易失性存储器和例如只读存储器(ROM) 和硬盘驱动器的非易失性存储器。所述信息处理系统200还包括其它存储装 置208和各种其它子系统210,所述其它存储装置208例如软盘和软盘驱动 器或者CD-ROM盘和CD-ROM盘驱动器,上述所有装置通过一个或者多个 总线212互相连接。存储器206包括基本输入输出系统(BIOS) 238以及 VM迁移模块230。
提出了能够执行VM迁移的VM迁移模块230,该VM迁移模块230管
理池中的机器群集动态迁移到相同的特征集或者状态。在某些实施方式中, 池中的机器能够被配置成仿真某特征集,以使得能够在相似的池中间进行
VM迁移。可用通过屏蔽特征集报表或激活/禁用特征集来进行仿真。对硬件 中仿真寄存器的处理(即,当工作在仿真模式中时,对特征集硬件寄存器的 操作)发生在固件级别(例如通过BIOS)而不是操作系统或者监控程序级 别。
为了本公开的目的,信息处理系统可以包括任何手段或者手段的集合, 所述手段用于计算、分类、处理、传送、接收、获取、创建、转换、存储、 显示、显现、检测、记录、复制、操作或者利用任何形式的用于商业、科学、 控制或者其他目的的信息、指令或者数据。例如,信息处理系统可以是个人 计算机、网络存储设备或者其他合适的设备,并且可以在大小、形状、性能、 功能和价格上有所不同。所述信息处理系统可以包括随机存取存储器
(RAM)、 一个或者多个诸如中央处理单元(CPU)或者硬件或软件控制逻 辑的处理资源、ROM、和/或其他类型的非易失性存储器。所述信息处理系 统的附加组件可以包括一个或者多个磁盘驱动器、 一个或者多个用于与外部 设备进行通信的网络端口以及各种输入和输出(I/O)设备,例如键盘、鼠 标和视频显示器。所述信息处理系统还可以包括一个或者多个用于在所述各 种硬件组件之间传送通信信息的总线。
参考图3,显示了 BIOS的操作流程图。每个信息处理系统处理器202 包括BIOS 220可以操作的VM迁移寄存器。在所述寄存器中的是禁用(或 屏蔽)特征的存储单元。处理器202将这些存储单元用于提供给软件的各种 特征。而且,每个系统的处理器202包括虚拟CPUID (vCPUID)域,以返 回CPUID,以及其它资源信息,例如,步进系列信息(stepping family information)。当BIOS 228设置这些域时,BIOS 228还设置特定模块寄存器
(model specific register) (MSR),所述特定模块寄存器一旦接收到CPUID
指令,就促使VM迁移寄存器返回修改后的数据。从而,MSR用作给BIOS 提供与特定处理器执行相关的信息的控制寄存器。
因而,在步骤310,当BIOS 228开始执行时,底板管理控制器服务处 理器(BMC)(或者一些其它的可以不用BMC的应用程序接口 (API))给 BIOS 228提供最基本共同特性(Least Common Denominator (LCD))信息。 接下来,在步骤320, BIOS 228产生处理器识别指令(例如CPUID指令) 并将结果保存在暂存存储器中。接着在步骤330,每个信息处理系统上的 BIOS 228使用最基本共同特性输入来禁用硬件中的特征,并且相应地设置虚 拟CPUID域。接着,BIOS 228随意地设置MSR中的一个比特来激活虚拟 CPUID寄存器的使用以及虚拟CPUID寄存器内所确定的特征。然后在步骤 340,如果需要的话,BIOS 228向BMC发信号以实现允许带外(out of band) 通信。因此,系统内的处理器被设置为与最基本共同特性相同的特征。而且, CPU ID/系列/步进信息被设置成允许发生动态迁移,而不会遇到架构界线。 该操作可以通过通用API而一个系统接着一个系统地执行,或者在系统池执行。
参考图4,示出了 VM迁移操作的流程图。 一般地,用于执行VM迁移 的系统使用BIOS 228来执行硬件特征禁用和虚拟CPUID处理操作。由信息 技术(IT)管理应用程序410来实现用于执行VM迁移230的系统。
更具体的,在步骤420, IT管理应用410收集需要执行VM迁移的系统 群集中的系统的CPUID信息。然后同样的系统自动地或者手动地聚集成池。 例如在某些实施方式中,在步骤430, IT管理器(或者操作IT管理应用程 序410的其它用户)象征性地将系统聚集成池(例如通过拖拽或者投入)来 确定相似系统(即,符合某最基本共同特性的系统)的池。例如,池可以包 括第一制造商SSE3池432a、第一制造商SSE4池432b、第二制造商SSE3 池432c、以及普通制造商池432d。每个池包括相应的标识符434。
接下来,在步骤440,用于执行VM迁移230的系统向带外系统(以及 任意的带内系统)广播对应于每个池的特征。然后在步骤442,系统等待带 外系统确定每个系统应该和哪个池相关联。在步骤444,现在能够使用VM 迁移软件来在与每个所配置的池相匹配的系统之间进行动态迁移。
在步骤450,在每个执行系统中,BMC接收VM迁移的新配置,并将 该信息保存在系统BIOS域内,以在重启操作期间获取该信息。在步骤460, 可以的话, 一旦重启,当每个系统上第一次加载BIOS时,BIOS 228通过设 置虚拟迁移域(例如vCPUID域)来直接将各个系统中的特征集中的不同点 进行屏蔽。因而,当执行CPUID指令时,每个系统返回由BIOS激活或者禁 用的特征,以及IT管理应用程序所进行的任何设置。然后在步骤470, BMC 向IT管理应用程序登记所述系统。所述登记包括这样的信息己针对具有 特定特征的特定CPU ID对系统进行了配置,并且系统已经加入了特定的系统池。
因而,用于执行VM迁移的系统通过允许IT管理器将所述池降低到任 何处理器可兼容的水平(即,任何最基本共同特性),例如任何x86可兼容 的水平,以允许越过处理器架构界线。
本发明非常适于达到上述优点和其它内在固有的优点。虽然己经通过参 考本发明的特定实施方式而对本发明进行了图示、描述以及定义,但这样的 参考不表示对本发明的限制,并不能推断得到对本发明的限制。对于相关领 域的熟练技术人员,本发明能够在形式和功能上有很多修改、变化和等价替 换。图示和描述的实施方式只是示例,并不表示本发明的全部范围。
例如,在另一个实施方式中,可以使用监控程序二进制转换来执行VM 迁移。更具体的,当确定系统池时,IT管理软件确定最基本共同特性特征集, 并将该特征集广播到在每个系统上执行的监控程序。当应用程序加载到系统 上时,监控程序执行该程序的二进制转换。即监控程序搜索CPUID指令并
替换为可选执行路径,所述可选执行路径会产生所期望的CPUID返回值, 以欺骗应用程序。因而,集群中的所有机器都看似在执行相同的特征集。
例如,源代码可以是
......MOVEAX, INPUT
CPUID
然而修改后的代码可以是:
MOV EAX, INPUT
JMP [CPUID—replacemen—fUnction]跳到可选程序 [使用返回标记来设置代码执行路径的代码]
:CPUID—replacement—function /*保存输入变量*/ CPUID—function call—input = EAX; 严来自群集mgmt的输入" HYPERVISOR—common—denominator = XYZ; /*执行原始的CPUID以获得CPU特征*/ MOV EAX, CPUID—function—calljnput; CPUID [根据HYPERVISOR_common—denominator
设置EAX,EBX,ECX,EDX......]
Return;
还例如,在另一个实施方式中,当执行VM迁移时,可以使用CUPID 陷阱操作(Trap operation)。更具体地,陷阱操作为CPUID指令的结果设置 陷阱。然后BIOS 228中的处理程序执行二进制转换操作。
例如,利用陷阱操作(TRAPoperation),示例性的指令流程可以如下
MOV EAX, INPUT CPUID
然而,包括陷阱特征的修改代码可以是 MOV EAX, INPUT
CPUID /*运行和增大EAX, EBX, ECX, EDX */ TRAP HANDLER [根据HYPERVISOR—common—denominator
设置EAX, EBX, ECX, EDX......
Return;
为了支持该方式,处理器允许CPUID指令来激活例外事件和为处理程 序分配向量单元。 一旦接收到意外事件,处理器将转到处理程序的向量单元。 该方法和VM_EXIT操作不同,VM一EXIT操作因为不是所有的处理器都被 VT激活,所以被虚拟化技术(VT)激活的处理器试图将共同特性传递到带 内监控程序,因此相比于仅仅通过BIOS在现有的带外管理平面中中进行虚 拟化,增加了管理平面的复杂性(增加了另一个平面),允许CPUID陷阱将 容许虚拟化管理环境之外的其它应用,并且需要更少的处理器逻辑改变来欺 骗应用程序,其中,终端用户可以改变给定系统的特征集来允许执行特定程 序。
还例如,上述的实施方式包括执行特定任务的软件模块。这里讨论的软 件模块可以包括脚本、批处理或其它可执行的文件。软件模块可以被存储在 机器可读或者计算机可读的存储介质上,例如硬盘驱动器。用于存储根据本 发明实施方式的软件模块的存储装置可以是例如磁性软盘、硬盘或任何例如 CD-ROM或CD-R的光盘。用于存储根据本发明实施方式的固件或者硬件模 块的存储装置也可以包括基于半导体的存储器,该存储器可以是永久的、可
移动的或者远程地连接到微处理器/存储器系统。因而,模块可以被存储在计 算机系统存储器中以将计算机系统配置为执行模块的功能。可以使用其它新 的或者各种计算机可读存储介质来存储这里讨论的模块。另外,本领域的技 术人员可以理解将功能分割成模块是为了说明的目的。可选实施方式可以将 多个模块的功能合成一个模块或者可以对模块的功能进行可选的分解。例 如,用于调用子模块的软件可以被分解,以使得每个子模块执行其功能并将 控制直接传递到另一个子模块。
因此,从各个方面给出了对等价替换的全面认识,本发明并不仅限于所 附权利要求的精神和范围。
权利要求
1、一种用于在多个信息处理系统之间执行虚拟机迁移的方法,该方法包括识别所述多个信息处理系统内具有共同特征集的处理器,所述共同特征集包括指令集等级兼容性;将包括具有所述共同特征集的处理器的信息处理系统聚集到一起,以提供相似信息处理系统池;以及执行从第一信息处理系统到所述相似信息处理系统池中的信息处理系统的虚拟机迁移,所述虚拟机迁移将一个虚拟机从一个信息处理系统移动到另一个信息处理系统。
2、 根据权利要求1所述的方法,所述共同特征集包括下列中的至少一者共同的处理器制造商、共同的处理器世代和共同的指令集。
3、 根据权利要求1所述的方法,其中所述识别进一步包括在每个所述 处理器上执行处理器识别操作,所述处理器识别操作返回每个所述处理器的 处理器识别数据。
4、 根据权利要求1所述的方法,其中每个所述处理器包括 虚拟机迁移寄存器,所述虚拟机迁移寄存器被所述信息处理系统的固件控制以修改所述处理器内的特征报表,对特征报表进行修改有助于共同特征 集的识别。
5、 根据权利要求4所述的方法,其中所述虚拟机迁移寄存器使所述处理器响应于处理器识别操作来报告修 改后的识别数据。
6、 一种用于在多个信息处理系统之间执行虚拟机迁移的设备,该设备包括用于识别所述多个信息处理系统中具有共同特征集的处理器的装置,所 述共同特征集包括指令集等级兼容性;用于将包括具有所述共同特征集的处理器的信息处理系统聚集到一起, 以提供相似信息处理系统池的装置;以及用于执行从第一信息处理系统到所述相似信息处理系统池中的信息处 理系统的虚拟机迁移的装置,所述虚拟机迁移将虚拟机从一个信息处理系统 移动到另一个信息处理系统。
7、 根据权利要求6所述的设备,其中所述共同特征集包括下列中的至 少一者共同的处理器制造商、共同的处理器世代和共同的指令集。
8、 根据权利要求6所述的设备,其中所述用于识别的装置还包括用于在每个所述处理器上执行处理器识别操作的装置,所述处理器识别 操作返回每个所述处理器的处理器识别数据。
9、 根据权利要求6所述的设备,其中每个所述处理器包括虚拟机迁移寄存器,所述虚拟机迁移寄存器被所述信息处理系统的固件 控制以修改所述处理器内的特征报表,对特征报表进行修改有助于共同特征 集的识别。
10、 根据权利要求9所述的设备,其中 所述虚拟机迁移寄存器使所述处理器响应于处理器识别操作来报告修 改后的识别数据。
11、 一种信息技术环境,该信息技术环境包括多个信息处理系统,所述多个信息处理系统中的每一个信息处理系统包括处理器;和连接到所述处理器的存储器; 用于在所述多个信息处理系统之间执行虚拟机迁移的系统,该用于执行 虚拟机迁移的系统包括指令,该指令能被处理器执行以用来识别多个信息处理系统中具有共同特征集的处理器,所述共同特征 集包括指令集等级兼容性;将包括具有所述共同特征集的处理器的信息处理系统聚集到一起, 以提供相似信息处理系统池;和执行从第一信息处理系统到所述相似信息处理系统池中的信息处 理系统的虚拟机迁移,所述虚拟机迁移将虚拟机从一个信息处理系统移 动到另一个信息处理系统。
12、 根据权利要求11所述的信息技术环境,其中所述共同特征集包括 下列中的至少一者共同的处理器制造商、共同的处理器世代和共同的指令集。
13、 根据权利要求11所述的信息技术环境,其中用于识别的所述指令 还包括用于执行以下操作的指令在每个所述处理器上执行处理器识别操作,所述处理器识别操作返回每 个所述处理器的处理器识别数据。
14、 根据权利要求ll所述的信息技术环境,其中每个所述处理器包括: 虚拟机迁移寄存器,所述虚拟机迁移寄存器被所述信息处理系统的固件控制以修改所述处理器内的特征报表,对特征报表进行修改有助于共同特征 集的识别。
15、 根据权利要求14所述的信息技术环境,其中所述虚拟机迁移寄存器使所述处理器响应于处理器识别操作来报告修 改后的识别数据。
全文摘要
本发明公开了处理器架构之间的虚拟机迁移。更具体地,公开了一种用于执行VM迁移的系统和方法,所述系统和方法管理池中的机器集群动态迁移到相同的特征集或者状态。在某些实施方式中,池中的机器能够被配置以仿真某个特征集,从而能够在相似池之中进行VM迁移。可以通过屏蔽特征集报表或者激活/禁用特征集来进行仿真。对硬件中的仿真寄存器的处理发生在固件级别而不是操作系统或者监控程序级别。
文档编号G06F9/455GK101382906SQ20081021553
公开日2009年3月11日 申请日期2008年9月4日 优先权日2007年9月6日
发明者M·P·卡特里, R·霍尔穆特 申请人:戴尔产品有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1