首页> 中国专利> 利用硬件中的网络包缓冲的基于检查点的高可用性

利用硬件中的网络包缓冲的基于检查点的高可用性

摘要

本发明涉及利用硬件中的网络包缓冲的基于检查点的高可用性。一种通过在虚拟化环境中的检查点建立期间提供基于硬件的网络包缓冲来增强资源/过程可用性的方法和系统。HAC设备预配置物理网络适配器以缓冲来自采用检查点建立技术的虚拟机的输出网络包。响应于接收来自虚拟机的输出网络包并确定该虚拟机采用预先指定的检查点建立技术,物理网络适配器缓冲输出网络包。主要主机执行/促成利用辅助主机的检查点操作。当检查点操作成功完成时,HAC设备触发从网络适配器向网络目的地传输缓冲的网络包。通过与源自未建检查点虚拟机的新的网络包相比把更高优先级预分配给来自检查点建立虚拟机的缓冲的网络包,物理网络适配器使检查点建立网络等待时间最小。

著录项

  • 公开/公告号CN102891882A

    专利类型发明专利

  • 公开/公告日2013-01-23

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN201210249258.6

  • 发明设计人 G·诺斯;

    申请日2012-07-18

  • 分类号

  • 代理机构中国国际贸易促进委员会专利商标事务所;

  • 代理人付建军

  • 地址 美国纽约

  • 入库时间 2024-02-19 16:59:17

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-07-28

    未缴年费专利权终止 IPC(主分类):H04L29/08 专利号:ZL2012102492586 申请日:20120718 授权公告日:20160706

    专利权的终止

  • 2016-07-06

    授权

    授权

  • 2013-03-06

    实质审查的生效 IPC(主分类):H04L29/08 申请日:20120718

    实质审查的生效

  • 2013-01-23

    公开

    公开

说明书

技术领域

本发明一般地涉及数据处理系统,具体地讲,涉及数据处理系统 内的检查点操作。更具体地讲,本发明涉及数据处理系统内的利用网 络包缓冲的检查点操作。

背景技术

基于检查点的高可用性(Checkpoint-Based High-Availability) 是一种方法,根据该方法,在一个主机(即,“主要主机(primary  host)”)上运行的虚拟机定期地(例如以25ms的间隔)在另一主机 (即,“辅助主机(secondary host)”)上建立对应CPU和内存状态的 镜像。这种镜像建立(mirroring)过程包括:(1)跟踪虚拟机的内存 的变化;(2)周期性地停止虚拟机;(3)在网络上把这些变化以及CPU 状态更新变化发送给辅助主机;(4)等待辅助主机确认内存和CPU状 态更新的接收;和(5)使虚拟机继续执行。镜像建立/“检查点建立 (checkpointing)”过程确保了:如果主要主机遭受突然硬件故障, 则辅助主机能够继续执行工作负荷而不丢失服务。

关于常规检查点建立方案中的网络包的传输,虚拟机通常通过 “拥有”网络适配器的单个虚拟化点(例如,虚拟输入/输出服务器 (VIOS)或管理程序)对网络业务进行代理。这些常规方案通常要求对 每次网络包传输执行检查点。结果,网络等待时间时间增加并且由这 些常规方案引入了软件复杂性。

发明内容

公开了一种用于通过在虚拟化环境中的检查点建立期间提供基于 硬件的网络包缓冲来增强资源/过程可用性的方法、系统和计算机程 序产品。高可用性检查点(HAC)设备对物理网络适配器进行预配置以 缓冲来自采用检查点建立技术的虚拟机的输出网络包。响应于接收到 来自虚拟机的输出网络包并确定该虚拟机采用预先指定的检查点建立 技术,物理网络适配器对输出网络包进行缓冲。另外,主要主机执行 /促进利用辅助主机的检查点操作(与该虚拟机关联)。当检查点操作成 功完成时,HAC设备触发将缓冲的网络包从网络适配器传输到网络 目的地。通过与源自未建检查点虚拟机的新网络包相比把更高优先级 预分配给来自检查点建立虚拟机的缓冲的网络包,物理网络适配器使 检查点建立网络等待时间最小化。

以上概述包含细节的简化、概括和省略,并且不应视为要求保护 的主题的全面描述,而是旨在提供与其关联的一些功能的简要概览。 通过检查下面的附图和详细的书面描述,对于本领域技术人员而言, 要求保护的主题的其它系统、方法、功能、特征和优点将会是清楚的 或者将会变得清楚。

在下面的详细的书面描述中,本发明的以上以及另外的目的、特 征和优点将会变得清楚。

附图说明

应结合附图阅读所描述的实施例,在附图中:

图1示出根据一个实施例的构造为实现了所描述的实施例的各种 功能特征的虚拟化系统的数据处理系统的网络;

图2示出根据一个实施例的具有几个虚拟机的主要主机的内部结 构;

图3示出根据一个实施例的主要主机和辅助主机的功能部件的框 图表示,这些主机都被构造为能够进行针对在主要主机上执行的虚拟 机的检查点操作;

图4是根据一个实施例的虚拟机经由网络适配器与基于硬件的网 络包缓冲的使用相关联地执行检查点操作的示例性方法的高级逻辑流 程图;和

图5是根据一个实施例的主要主机在检查点操作之后使用包优先 级调度缓冲的网络包的传输的示例性方法的高级逻辑流程图。

具体实施方式

例示性实施例提供一种用于通过在虚拟化环境中的检查点建立期 间提供基于硬件的网络包缓冲来增强资源/过程可用性的方法、数据 处理系统和计算机程序产品。高可用性检查点(HAC)设备对物理网络 适配器进行预配置以缓冲来自采用检查点建立技术的虚拟机的输出网 络包。响应于接收到来自虚拟机的输出网络包并确定该虚拟机采用预 先指定的检查点建立技术,物理网络适配器对输出网络包进行缓冲。 另外,主要主机执行/促进针对辅助主机的检查点操作(与该虚拟机关 联)。当检查点操作成功完成时,HAC设备触发把缓冲的网络包从网 络适配器传输到网络目的地。通过与源自未建检查点虚拟机的新网络 包相比把更高优先级预分配给来自检查点建立虚拟机的缓冲的网络 包,物理网络适配器使检查点建立网络等待时间最小化。

在本发明的示例性实施例的下面的详细说明中,足够详细地描述 可实施本发明的特定示例性实施例以使本领域技术人员能够实施本发 明,并且应该理解,可利用其它实施例,并且在不脱离本发明的精神 或范围的情况下可做出逻辑、架构、规划、机械、电气和其它变化。 下面的详细描述因此不应认为是限制性意义上的,并且本发明的范围 由所附权利要求及其等同物定义。

在附图的不同视图的描述内,为相似元件提供与在前附图的名称 和标号相似的名称和标号。分配给元件的特定数字仅用于辅助描述, 而非意图暗示对所描述的实施例的任何限制(结构的或功能的限制或 者在其它方面)。

应该理解,特定部件、装置和/或参数名称(诸如,本文描述的执 行设备/逻辑/固件的名称)的使用例如仅是示例性的,而非意图暗示对 本发明的任何限制。本发明可因此利用用于非限制性地在本文描述部 件/装置/参数的不同命名法/术语实现。在描述实施例的一个或多个元 件、特征或概念时对任何特定协议或专有名称的引用仅用作一种实现 方式的例子,并且这种引用并不把限制把本发明扩展到使用不同元 件、特征或概念名称的实施例。因此,考虑到使用本文使用的每个术 语的上下文,该术语应该被给予它的最广泛的解释。

如以下进一步所述,在处理装置/结构内提供本发明的功能特征 的实现方式并且该实现方式包括使用硬件、固件以及几种软件级别构 造(例如,程序代码)的组合。提供的附图示出示例数据处理架构内的 硬件部件和软件部件,该数据处理架构具有布置/构造为一个或多个 计算电子组合体的许多处理节点。描述的例示性实施例假设该系统架 构可被调整用于大得多的数量的处理节点。

现在具体地参照图1,描述了可有益地实现所描述的实施例的各 功能方面的虚拟化数据处理系统(DPS)的网络的示例架构(100)的框 图。为了简单,DPS网络架构(100)将会在本文简单称为DPS 100。 DPS100包括多个主机计算机装置,其中示出了主要主机110A和辅 助主机110B。DPS 100内的主机装置的数量可变化,从较小系统中 的单个主机装置扩展直至较大规模系统中的几百或几千个主机装置。 为了简单,将从单个主机装置(主要主机110A)或两个主机装置(主要 主机装置110A、辅助主机装置110B)的角度描述实施例。在每个主 机系统110A-110B内提供了虚拟机,其中分别示出了前两个虚拟机 VM114a和VM114b、以及VM114c和VM114d。如以下所述,参 照图2,VM 114是虚拟化(或操作系统划分的)计算系统的逻辑分 区。每个主机装置110内的客户机/虚拟机的实际数量可以不同,并 且非限制性地,可以是单个客户机/虚拟机到几百或几千个客户机/虚 拟机。为了高效地在本文提供本发明的构思,在各种例示性的描述的 实施例的每个主机装置110内仅提供两个客户机/虚拟机。

DPS 100还包括每个(计算机)主机系统/装置110和主机系统110 内的部件可访问的分布式(共享)存储设施。在一个实施例中,主要主 机110A和辅助主机110B都能够访问分布式存储设施。在另一实施 例中,主要主机和辅助主机访问分离的/不同的存储设施。

DPS 100内的每个主机装置110经由一个或多个网络和/或I/O 互连/开关构造(通常表示为互连/网络构造170)连接到分布式存储器 150。描述和说明假设:DPS 100的至少一些主机装置(110)和分布式 存储器150能够相对于彼此位于很远的地方(例如,包括位于不同的 国家),从而在各装置之间不一定需要直接物理连接。为了简单,实 施例被描述为具有包括专用广域网(WAN)或公共WAN(诸如,互联 网)的主要互连/网络170,但其它网络类型(例如,局域网)也是可以的 并且得到支持。

如上所述,在一个或多个实施例中,每个主机装置(例如,主要 主机110A)也连接到一个或多个邻居主机装置(例如,辅助主机 110B),以便提供高效的故障切换(fail-over)和/或移动性支持和其 它功能,如下文所述。本文所使用的术语邻居是指第一主机装置能够 与之通信的连接的第二主机装置,并且对邻居主机装置的引用不限于 在地理上接近第一主机装置的第二主机装置。主要主机110A和辅助 主机110B被例示为经由某连接介质彼此连接,该连接介质可包括不 同的网络(诸如,局域网)172或者当在物理上彼此接近时的某种类型 的直接互连(例如,光纤信道连接)。邻居主要主机110A和辅助主机 110B之间的连接被例示为主要主机110A和辅助主机110B之间的直 接线连接或辅助网络连接(172)。然而,应该理解,该连接不是必须 是直接的,并且实际上可通过与到分布式存储器150的其它主机系统 连接相同的一般互连/网络170对所述连接进行路由。

如图中所述,每个主机系统110包括一个或多个网络接口134和 一个或多个I/O适配器132以使主机系统110并且因此使主机系统 110的其它部件(即,虚拟机)能够参与网络级别通信。示例主要主机 110A的硬件部件130包括一个或多个处理器(例如,131A)、一个或 多个内存(例如,133A)和本地存储器144。处理器经由总线、互连/开 关或互连构造(未具体地示出)与一个或多个内存以及本地存储器144 互连。每个虚拟机(例如,VM 114A)接收特定虚拟化硬件和OS资源 (包括虚拟化CPU 105A、内存110A和OS 114A)的分配。应用116 在VM 114A上执行。每个VM 114包括各自的主机操作系统114, 该主机操作系统114控制对主要主机110A的硬件层(130)和/或虚拟 化I/O功能和/或服务的低级访问。另外,HAC设备250在主要主机 110A上执行并且以可通信的方式连接到管理程序(HYP)125。在一个 实施例中,HAC设备250集成在HYP125内。在一个实施例中,管 理控制台175用于执行各种实施例中的个体VM114和/或作为整体 的网络的本文描述的检查点建立操作的设置和/或初始化。

在DPS 100中,单根IO虚拟化技术(即,SR-IOV)能够提供用于 执行虚拟机的网络适配器功能。特别地,SR-IOV技术用于允许单个 物理网络适配器(例如,网络适配器/接口134)对于主机系统(例如,主 要主机110A)表现为大量的个体网络适配器。在一个实施例中,这种 大量的(概念性的/虚拟的)个体网络适配器由分配给每个虚拟机的虚拟 适配器/“功能”表示。结果,网络资源可以被分配给在同一主机上运 行的许多虚拟机(例如,客户逻辑分区),从而允许每个虚拟机直接与 网络硬件通信,同时仍然允许在虚拟机之间共享适配器。另外,SR- IOV适配器知道不同虚拟机的存在和源自各虚拟机的单独业务。

现在参照图2,提供了示例DPS 100的另一视图,强调虚拟化处 理系统架构200(即,个体主机系统的架构,具体地讲,主要主机 110A的架构)。主要主机110A用作示例主机系统,并且在图2中以 及在整个说明书中被更详细地描述。提供主要主机110A作为服务 器,该服务器包括硬件部件和在逻辑上划分以创建多个虚拟化机器分 区(这些虚拟化机器分区被分配作为虚拟机(VM))的软件/固件/OS部 件。示例主要主机110A的硬件部件230包括一个或多个处理器 231A-231P、一个或多个内存233A-233M和本地存储器234。处理器 231A-231P经由总线、互连/开关或互连构造(未具体地示出)与一个或 多个内存233A-233M以及本地存储器234互连。可分布在大规模互 连构造上的部件的特定内部连接性与所描述的实施例没有密切关系, 并且不提供关于系统硬件部件之间的特定类型的互连性的进一步细 节。

在硬件部件230内还包括一个或多个物理网络接口134,主要主 机110A通过该一个或多个物理网络接口134连接到外部网络,诸如 网络170等。另外,硬件部件230包括多个I/O适配器232A-232E, I/O适配器232A-232E为主要主机110A提供I/O接口。I/O适配器 232A-232E是使主要主机110能够支持经由I/O接口与本地连接的以 及远程(联网)连接的I/O装置(包括分布式存储器150)的I/O操作的物 理适配器。I/O适配器的例子包括外设部件接口(PCI)、PCI-X或PCI Express适配器和小型计算机系统互连(SCSI)适配器等。在逻辑上划 分主机系统110,以使不同的I/O适配器232被虚拟化,并且虚拟 I/O适配器能够随后被唯一地分配给不同的逻辑分区。在一个或多个 实施例中,与分配给VM的虚拟化适配器和其它部件相关的配置数 据被保持在每个VM内,并且在对这种配置做出改变时以及在增加 和/或去除和/或分配适配器时,能够由VM保持并更新所述配置数 据。

作为一个实施例,在逻辑上位于硬件级别(230)之上的是作为管 理程序(HYP)225提供的虚拟化管理部件。尽管在各种实施例中始终 表示并描述为HYP 225,但完全应该理解,可使用其它类型的虚拟 化管理部件并且它们同样适用于各种实施例的实现方式。HYP 225 具有在主机系统110内与它耦合的关联的服务处理器227。服务处理 器227可用于为一个或多个逻辑分区提供各种服务。HYP 225还耦 合到硬件管理控制器(HMC)229,HMC 229存在于物理主机系统110 外面。HMC 229是由图1表示的管理控制台175的一种可能的实现 方式。在这个图示内具体地使用HMC 229仅用于例示几种可用选项 之中的一个实际实施例。通过HMC 229能够控制不同逻辑分区的操 作,HMC 229是单独的数据处理系统,系统管理员可从HMC 229 执行各种功能,诸如把资源重新分配给不同逻辑分区。很重要地,在 本实施例中,通过HMC建立与OS分区的故障切换并且特别地与虚 拟机和数据处理网络的故障切换相关的特征。

主要主机110A还包括多个客户级别虚拟机(VM),其中显示了前 两个,在主要主机110A内表示为个体VM 114A-114B。根据各种说 明性实施例,主要主机110A支持在虚拟化环境内“创建”的多个客户 机和其它功能操作OS分区。每个VM(例如,VM 114B)接收特定虚 拟化硬件和OS资源(包括虚拟化CPU 205B、内存210B、OS 214B、 本地固件216和本地存储器(LStore)218)的分配。根据当前描述的实 施例,第一VM 114A包括MEM 210A,MEM 210A包括处理器状态 262、内存页264和检查点应用266,它们都在利用辅助主机110B的 检查点相关操作中被使用和/或交换。特别地,如MEM 270中的镜像 处理器状态272和镜像内存页274所示,辅助主机110B包含来自前 一检查点建立操作的第一VM 114A的内存页和处理器状态的拷贝。 MEM 270还包括检查点应用276以使辅助主机110B能够参与针对 主要主机110A的检查点操作。每个VM 114包括各自的主机操作系 统214,该主机操作系统214控制对主要主机110A的硬件层(230)和/ 或虚拟化I/O功能和/或服务的低级访问。在一个实施例中,可使用 设计为与分区管理固件(诸如,HYP 225)对接的可从IBM公司得到的 IBM i(或其它虚拟化操作系统)实现所述操作系统。应该理解,根据 具体实现方式,可使用例如其它类型的操作系统(诸如高级交互执行 程序(AIX)操作系统(IBM公司的商标)或者(Linus  Torvalds的注册商标)),并且IBM i仅用作例子。

本领域普通技术人员将会理解,在图1和2中描述的硬件、固件 /软件设备和软件部件及其基本结构可以变化。DPS 100的说明性部 件(具体地讲,主要主机110A、第一VM和第二VM内的那些说明 性部件)不是穷举性的,而是代表性的,以突出用于实现某些描述的 实施例的一些部件。例如,可提供数据处理系统/主机装置的不同结 构,包含可除描述的硬件之外或者替代于描述的硬件而使用的其它装 置/部件,并且可进行不同配置。描述的例子并不意图暗示关于当前 描述的实施例和/或一般发明的架构或其它限制。在各附图中描述的 主机装置110可以是例如运行高级交互执行程序(AIX)操作系统或 LINUX操作系统的IBM eServer pSeries系统(纽约Armonk的 International Business Machines公司的产品)。

根据当前描述的实施例,高可用性检查点(HAC)设备(250)在第一 主机装置110A(即,主要主机)内执行以便能够支持特定虚拟机的检 查点操作的执行。另外,单独的HAC设备250的模块在辅助主机 110B上执行以提供对针对主要主机110A的检查点操作的支持。 HAC设备250预配置网络适配器134以缓冲来自采用检查点建立技 术的虚拟机的输出包。HAC设备250分别从在主要主机上运行的一 个或多个虚拟机接收提供虚拟机采用检查点建立技术的指示的配置信 息。网络适配器确定由第一虚拟机发送的输出网络包是否源自采用检 查点建立技术的虚拟机。如果第一虚拟机确实采用检查点建立技术, 则主要主机110A上的一个或多个VM启动利用辅助主机110B的检 查点操作以便在辅助主机110B(上的第二虚拟机)上形成第一虚拟机 的内存数据和CPU状态更新数据的镜像。由管理程序和/或能够实现 主要主机和辅助主机110B之间的通信的网络适配器134促成检查点 建立操作。当检查点操作成功完成时,HAC设备250向与虚拟机关 联的物理网络适配器134发送检查点命令,以触发从网络适配器向 (远程和/或本地)网络目的地释放/传输缓冲的网络包。网络适配器 134(通过使用SR-IOV技术)知道不同虚拟机的存在和源自这些虚拟 机的单独通信业务。例如,每个“虚拟功能”/虚拟适配器226被分配 不同的MAC地址,因此物理网络适配器134能够把输入包路由至正 确的虚拟功能/虚拟适配器226并且把中断传递给正确的虚拟机。

HAC设备250提供在主机装置110内的一个或多个VM 114的 一个或多个虚拟处理器资源上执行以提供特定功能的代码/程序指 令。在当执行HAC设备250时提供的并且在本文更详细地描述的功 能之中有下面的非排他性列表:(a)预配置SR-IOV适配器以缓冲源 自采用检查点建立技术的虚拟机的输出网络包;(b)从在主要主机上 运行的一个或多个虚拟机接收指示一个或多个虚拟机采用检查点建立 技术的配置信息;(c)响应于由虚拟机启动当前输出网络包的传输, 经由SR-IOV适配器确定当前输出网络包是否源自采用检查点建立技 术的虚拟机;(d)响应于确定当前输出网络包源自采用检查点建立技 术的虚拟机,经由SR-IOV适配器缓冲来自所述虚拟机的输出网络 包;(e)启动利用辅助主机的一组检查点操作;和(f)当检查点操作已 成功完成时,使用检查点命令触发从网络适配器向对应网络内的目的 地传输/释放缓冲的网络包。在一个实施例中,以上一系列功能中的 几种功能由与管理程序和一个或多个VM通信的网络适配器134使 能和/或执行。网络适配器134通过支持/使能主机装置之间的交叉通 信,促成一个或多个VM的检查点建立操作的执行。

现在参照图3,示出了根据一个实施例的主要主机和辅助主机的 功能部件的框图表示,这些主机都构造为能够实现在主要主机上执行 的虚拟机的检查点操作。数据处理系统(DPS)300的网络包括主要主 机110A和辅助主机110B。在主要主机110A内提供了第一虚拟机 (VM)114A。在第一VM 114A内示出了MEM 210A和虚拟I/O适配 器226。虚拟I/O适配器226包括专用缓冲器340。在VM 114A中还 显示了输出网络包320。主要主机110A还包括物理网络适配器/接口 134。网络适配器134包括缓冲器347。在一个实施例中,缓冲器347 代表全局缓冲器。检查点应用360也示出在主要主机110A内。SR- IOV技术软件/模块343也随主要主机110A一起显示。检查点技术 类型信息325和网络包优先级信息335也显示在主要主机110A内。 在主要主机110A中还包括网络适配器134。在一个实施例中,网络 适配器134被构造为支持单根IO虚拟化技术(即,SR-IOV)。SR- IOV允许单个物理网络适配器对于主机系统(例如,主要主机110A) 表现为大量的个体网络适配器(“虚拟功能”)。这些“虚拟功能”示出为 虚拟I/O适配器(例如虚拟I/O适配器226)。结果,网络资源可以被 分配给在同一主机上运行的许多虚拟机,从而允许每个虚拟机直接与 网络硬件通信,同时仍然允许在虚拟机之间共享适配器。辅助主机 110B包括MEM 355,MEM 355还包括检查点应用276和检查点数 据镜像310B。检查点数据镜像310B代表与在主要主机110A上执行 的虚拟机114A(在前一检查点处)关联的内存状态和CPU状态信息和 更新(由检查点数据310A统一示出)。

HAC设备250也在主要主机110A内或者在HYP225(图2中示 出)内执行以提供检查点相关功能/操作(由网络适配器134促成),从 而经由输出网络包320的缓冲而实现/增强高系统可用性。为了提供 检查点相关功能,HAC设备250配置第一VM 114A(例如,经由检 查点应用360)以指示检查点建立技术是否被第一VM 114A采用。结 果,如果检查点建立技术正被VM 114A使用,则HAC设备250从 VM 114A接收配置信息325。

就在由先前指示了使用检查点建立技术的虚拟机114传输输出网 络包320之前,HAC设备250在主要主机启动第一虚拟机的检查点 的执行。在另一实施例中,盘写入的启动也用于启动检查点的执行。 网络包传输或盘写入触发检查点的执行,以防止在主要主机110A先 前释放了网络包或执行了盘写入并失败的情况下从先前/上一个检查 点恢复执行的辅助主机不得不重新传输包或重新执行盘写入。通过经 由网络I/O和盘I/O启动检查点,消除了执行冗余,因为不从主要主 机或辅助主机重复在上一个检查点之后发生的包传输和盘写入。例 如,在一个实施例中,HAC设备250在虚拟机执行对底层管理程序 的管理程序调用(HCALL)以传输网络包之后立即启动检查点的执 行。

在检查点期间,HAC设备250(经由检查点数据310A)把主要主 机上的第一VM的CPU和内存状态传输给辅助主机系统(上的第二 VM),包括关于虚拟机的传输网络包的“意图”的信息。检查点数据 310A被作为检查点数据镜像310B复制到辅助主机110B的内存355 中。

再次参照SR-IOV技术的使用,SR-IOV适配器(例如,网络接口 /适配器134)知道不同虚拟机的存在和源自各虚拟机的单独通信业 务。在特定结构例子中,每个“虚拟功能”/虚拟I/O适配器226能够 被分配不同的MAC地址,以使物理网络适配器把输入包路由至正确 /合适的“虚拟功能”/虚拟I/O适配器226并且把中断传递给正确/合适 的虚拟机。结果,SR-IOV适配器解决方案严重不同于常规虚拟网络 适配器方案,通过常规虚拟网络适配器方案,虚拟机通过“拥有”网络 适配器的单个虚拟化点(例如,VIOS或管理程序)代理各自的业务。

SR-IOV网络适配器(即,使用SR-IOV技术343配置的网络适配 器134)能够不同地处理来自不同虚拟机的业务,并且特别地,通过 使用HAC设备250的SR-IOV网络适配器允许虚拟机指示这些虚拟 机分别使用检查点建立技术。使用检查点建立技术的指示的接收为适 配器提供了特定虚拟机“意图”缓冲直至已与辅助主机交换了检查点时 的输出网络包的另外指示。

网络适配器134(a)配置有板上内存(例如,存储缓冲器340)或(b) 设置有对系统内存的访问。网络适配器134使用内存来缓冲源自先前 指示了使用检查点建立技术的虚拟机的输出网络包。当虚拟机指示检 查点完成时,网络适配器134开始把针对该VM的缓冲的网络包发 出到网络上。

根据一个实施例,为了使检查点建立由于缓冲而为网络传输增加 的等待时间最小化,相对于新接收的源自未建检查点虚拟机的网络 包,网络适配器134优先处理所述缓冲的网络包(例如,通过使用网 络包优先级信息335)。在一个实施例中,网络适配器134内的缓冲 器(例如,缓冲器340)以循环方式工作,从而在传输根据上一个检查 点缓冲的网络包的同时能够缓冲新的网络包。如果缓冲器变满,则向 当前配置为执行检查点建立的虚拟机(例如,经由广播)发送信号以指 示直至执行检查点前不能再发生包传输并且能够清空缓冲器。

HAC设备250为虚拟机114A分配以下的一项或多项:(a)专用 缓冲器空间;和(b)全局缓冲器(例如,缓冲器347),其能够实现来自 检查点建立虚拟机的交织的包的存储。全局缓冲器能够按照接收业务 的次序实现建立了检查点的业务的自动传输。另外,全局缓冲器用于 避免需要网络适配器确定首先要清空一组虚拟机检查点建立缓冲器 340中的哪一个。

图4和5是示出完成说明性实施例的以上处理的方法的流程图。 虽然可参照由图1-3表示并参照图1-3描述的部件和功能来描述图4 和5中表示的方法,但应该理解,这仅是为了方便,并且当实现各种 方法时能够采用另外的部件和/或结构。方法的某些部分可由在VM 114(图1或2)内的一个或多个(虚拟)处理器(CPU 231/206A)上执行的 HAC设备250或者由SR-IOV适配器134完成。执行的处理随后控 制主机装置110、VM 114和SR-IOV适配器134的特定操作或者对 主机装置110、VM 114和SR-IOV适配器134的特定操作。为了简 单,在描述方法时,从HAC设备250和SR-IOV适配器134中的任 一个/二者和/或VM 114的角度描述所有的方法处理。

在图4中,根据一个实施例,虚拟机经由网络适配器结合基于硬 件的网络包的缓冲的使用,执行检查点操作。该方法开始于开始块 402并前进到块404,在块404,HAC设备250预配置SR-IOV适配 器134以缓冲来自采用检查点建立技术的虚拟机的输出包。例如,各 种类型的检查点建立技术可以是来自各公司的专有检查点软件包(使 用不同通信协议)的集合。另外,专有软件包的集合可包括来自同一 企业的检查点软件的早先和以后的版本(这些版本具有增加/增强的特 征)。在块406,HAC设备250从在主要主机上运行的虚拟机接收配 置信息,该配置信息提供虚拟机采用检查点建立技术的指示。在块 408,SR-IOV 134从虚拟机接收输出网络包。在判定块410,SR- IOV适配器134确定输出网络包是否源自采用检查点建立技术的虚 拟机。如果在判定块410,SR-IOV适配器134确定输出网络包不是 源自采用检查点建立技术的虚拟机,则SR-IOV适配器134不缓冲输 出网络包,如块412中所示。然而,如果在判定块410,SR-IOV适 配器134确定输出网络包确实源自采用检查点建立技术的虚拟机,则 SR-IOV适配器134缓冲输出网络包,如块414中所示。在一个实施 例中,HAC设备250为主要主机上的网络适配器预分配以下的一项 或多项:(a)板上内存的分配;和(b)对系统内存的访问。板上内存的 分配或对系统内存的访问用于缓冲源自先前指示使用了检查点建立技 术的虚拟机的输出网络包。另外,在块416,主要主机(与检查点建 立虚拟机关联)通过使用HAC设备250启动/促成利用辅助主机的一 组检查点操作。在判定块418,HAC设备250确定检查点操作是否 成功完成。如果在判定块418,HAC设备250确定检查点操作未成 功完成,则流程移至块420,在块420,主要主机重新尝试/重复利用 辅助主机的检查点操作。然而,响应于检查点操作成功完成,HAC 设备250触发从网络适配器向对应网络内的目的地释放/传输缓冲的 网络包,如块422中所示。在一个实施例中,HAC设备250把较高 优先级分配给缓冲的网络包并且把较低优先级分配给当前源自未采用 检查点建立技术的不同虚拟机的网络包。HAC设备250把这种较高 优先级分配给缓冲的网络包以使网络等待时间最小化。流程结束于块 424。

在图5中,根据一个实施例,主要主机在检查点操作之后使用包 优先级调度缓冲的网络包的传输。该方法开始于开始块502并前进至 块504,在块504,SR-IOV适配器134缓冲来自配置用于检查点建 立的第一虚拟机的第一输出网络包。在块506,SR-IOV适配器134 把高优先级分配给缓冲的来自第一虚拟机的第一网络包。在块508, SR-IOV适配器134接收来自不是配置用于检查点建立的第二虚拟机 的第二输出网络包。在块510,SR-IOV适配器134缓冲来自第二虚 拟机的第二网络包。在块512,SR-IOV适配器134把低优先级分配 给来自第二虚拟机的第二缓冲网络包。在块514,SR-IOV适配器 134基于第一缓冲网络包的较高优先级,在来自第二虚拟机的第二缓 冲输出网络包之前调度来自第一虚拟机的第一缓冲网络包进行传输 (在与第一虚拟机关联的检查点操作成功完成之后)。流程结束于块 516。

本文提供并描述的各附图中的流程图和框图表示根据本发明各种 实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能 和操作。在这个方面,流程图或框图中的每个方框可代表包括用于实 现指定的逻辑功能的一个或多个可执行指令的代码的模块、段或一部 分。还应该注意的是,在一些另外的实现方式中,方框中标注的功能 可以不按附图中标注的次序执行。例如,事实上,根据涉及的功能,连 续示出的两个方框可以基本上同时执行,或者这些方框有时候可以以相 反的次序执行。还应该注意的是,框图和/或流程图中的每个方框以及 框图和/或流程图中的方框的组合能够由执行指定的功能或动作的基 于专用硬件的系统或专用硬件和计算机指令的组合实现。

在以上流程图中,一种或多种方法包含于包含计算机可读代码的 计算机可读介质中,从而当在计算装置上(由处理单元)执行计算机可 读代码时,执行一系列步骤。在一些实现方式中,在不脱离本发明的 精神和范围的情况下,方法的某些过程被组合,同时或按照不同次序 执行,或者也许被省略。因此,尽管按照特定顺序描述并表示了方法 过程,但过程的特定顺序的使用并不意图暗示对本发明的任何限制。 在不脱离本发明的精神和范围的情况下,可关于过程的顺序做出改 变。因此,不应在限制性意义上解释特定顺序的使用,并且本发明的 范围扩展至所附权利要求及其等同物。

本领域技术人员应该理解,本发明的各方面可以实现为系统、方 法或计算机程序产品。因此,本发明的各方面可以采用通常全部可在 本文称为“电路”、“模块”或“系统”的完全硬件实施例、完全软件实施 例(包括固件、常驻软件、微码等)或组合了软件和硬件方面的实施例 的形式。另外,本发明的各方面可以采用实现于具有计算机可读程序 代码的一个或多个计算机可读介质中的计算机程序产品的形式。

可以使用一个或多个计算机可读介质的任何组合。计算机可读介 质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存 储介质例如可以是但不限于电子、磁、光学、电磁、红外或半导体系 统、设备或装置或者前述各项的任何合适的组合。计算机可读存储介 质的更具体的例子(非穷举列表)将会包括下述各项:具有一个或多个 线的电气连接、便携式计算机盘、硬盘、随机访问存储器(RAM)、只 读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光 纤、便携式压缩盘只读存储器(CD-ROM)、光学存储装置、磁存储装 置或前述各项的任何合适的组合。在本文的上下文中,计算机可读存 储介质可以是能够包含或存储由指令执行系统、设备或装置使用或结 合指令执行系统、设备或装置使用的程序的任何有形介质。

计算机可读信号介质可包括例如基带中或作为载波的一部分的嵌 入了计算机可读程序代码的传播数据信号。这种传播信号可采用多种 形式中的任何形式,包括但不限于电磁信号、光学信号或者它们的任 何合适的组合。计算机可读信号介质可以是并非计算机可读存储介质 并且能够传送、传播或传输由指令执行系统、设备或装置使用或结合 指令执行系统、设备或装置使用的程序的任何计算机可读介质。

可以使用合适的介质(包括但不限于无线、有线、光缆、RF等或 前述各项的任何合适的组合)传输计算机可读介质上包含的程序代 码。可以按照一种或多种编程语言的任何组合编写用于执行本发明的 各方面的操作的计算机程序代码,所述编程语言包括:面向对象的编 程语言,诸如Java、Smalltalk、C++等;和常规的过程编程语言, 诸如“C”编程语言或类似编程语言。程序代码可以完全在用户计算机 上执行、部分在用户的计算机上执行、作为独立软件包执行、部分在 用户的计算机上并且部分在远程计算机上执行或者完全在远程计算机 或服务器上执行。在后面的方案中,远程计算机可以通过任何类型的 网络(包括局域网(LAN)或广域网(WAN))连接到用户的计算机,或者 可以(例如,使用互联网服务提供商通过互联网)连接到外部计算机。

以下参考根据本发明实施例的方法、设备(系统)和计算机程序产 品的流程图和/或框图描述本发明的各方面。应该理解,流程图和/或 框图中的每个方框以及流程图和/或框图中的方框的组合能够由计算 机程序指令实现。这些计算机程序指令可被提供给通用计算机、专 用计算机或者其它可编程数据处理设备,以产生一台机器,从而指 令(所述指令经由计算机或者其它可编程数据处理设备的处理器执行) 产生用于实现流程图和/或框图的一个或多个方框中指定的功能/动作 的装置。

这些计算机程序指令也可存储在计算机可读介质中,该计算机 可读介质能够指示计算机、其它可编程数据处理设备或其它装置按 照特定的方式发挥作用,从而存储在计算机可读介质中的指令产生 一种制造产品,所述制造产品包括实现流程图和/或框图的一个或多 个方框中指定的功能/动作的指令。计算机程序指令也可被加载到计 算机、其它可编程数据处理设备或其它装置上,以使得在所述计算 机、其它可编程设备或其它装置上执行一系列的操作步骤以产生计 算机实现的过程,从而在该计算机或其它可编程设备上执行的指令 提供用于实现流程图和/或框图的一个或多个方框中指定的功能/动作 的过程。

将会进一步理解,本发明的实施例中的过程可使用软件、固件 或硬件的任何组合实现。作为按照软件实施本发明的准备步骤,编 程代码(不管软件还是固件)将会典型地存储在一种或多种机器可读存 储介质中,诸如固定(硬盘)驱动器、盘、光盘、磁带、半导体存储器 (诸如,ROM、PROM等),由此制造根据本发明的一件制品。通过 直接从存储装置执行代码,通过把代码从该存储装置复制到另一存 储装置(诸如,硬盘、RAM等)中,或者通过使用传输类型介质(诸 如,数字和模拟通信链路)传输代码以进行远程执行,使用包含编程 代码的所述一件制品。通过组合包含根据本发明的代码的一种或多 种机器可读存储介质与用于执行其中包含的代码的合适的处理硬 件,可实施本发明的方法。用于实施本发明的设备能够是包含根据 本发明编码的程序或具有对该程序的网络访问权的一种或多种处理 装置和存储系统。

因此,很重要地,尽管在具有安装(或执行)的软件的全功能计算 机(服务器)系统的情况下描述了本发明的说明性实施例,但本领域技 术人员将会理解,本发明的说明性实施例的软件方面能够以各种形 式作为程序产品分发,并且本发明的说明性实施例同样适用而不管 用于实际执行分发的介质的特定类型如何。

尽管已参照示例性实施例描述了本发明,但本领域技术人员将 会理解,在不脱离本发明的范围的情况下,可做出各种改变并且可 用等同物替换其元件。另外,在不脱离本发明的基本范围的情况 下,可做出各种修改以使特定系统、装置或其部件适应于本发明的 教导。因此,本发明不应局限于为了执行本发明而公开的特定实施 例,而是本发明将会包括落在所附权利要求的范围内的所有实施 例。此外,术语第一、第二等的使用并不表示任何次序或重要性, 相反地,术语第一、第二等用于使元件彼此区分。

本文使用的术语仅用于描述特定实施例的目的而非意在限制本发 明。如本文所使用,单数形式“a”“an”和“the”也包括复数形式,除非上 下文清楚地指示了相反的情况。另外,应该理解,当在本说明书中使用 时,术语“包括”和/或“包含”指定存在已说明的特征、整数、步骤、操 作、元件和/或部件,但并不表示排除存在或增加一个或多个其它特 征、整数、步骤、操作、元件、部件和/或其组合。

以下权利要求中的所有装置或步骤加功能元件的对应结构、材 料、动作和等同物意在包括用于结合具体要求保护的其它要求保护的 元件执行功能的任何结构、材料或动作。本发明的描述是为了说明和 描述的目的,而非是穷举的或者将本发明为所公开的形式。在不脱离 本发明的范围和精神的情况下,许多修改和变型对于本领域普通技术 人员而言是清楚的。选择并描述实施例以便最好地解释本发明的原理 和实际应用,并且使其他本领域普通技术人员能够针对具有适合设想 的特定用途的各种修改的各种实施例理解本发明。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号