首页> 中国专利> 在虚拟化系统中实现用于共享适配器的增强错误处理

在虚拟化系统中实现用于共享适配器的增强错误处理

摘要

本发明提供了在虚拟化系统中实现用于共享适配器的增强错误处理,具体地,提供了用于在虚拟化系统中实现用于诸如单根输入/输出虚拟化(SRIOV)适配器之类的硬件I/O适配器的增强错误处理的方法、系统和计算机程序产品。硬件I/O适配器被划分成多个端点,每个可分区端点(PE)对应于一个功能,并且存在与整个适配器相关联的适配器PE。端点被独立于以下两者而管理:针对在范围方面局限于单个功能的动作、以及整体地针对关于适配器范围的动作。适配器PE的错误或故障冻结适配器PE,并传播到与适配器相关联的VF PE,促使VF PE被冻结。适配器驱动器和VF设备驱动器被告知错误,并开始恢复。管理程序在关键点处将VF设备驱动器锁定,使得适配器恢复能够成功地完成。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-02-23

    授权

    授权

  • 2015-01-14

    实质审查的生效 IPC(主分类):G06F11/07 申请日:20140609

    实质审查的生效

  • 2014-12-24

    公开

    公开

说明书

技术领域

本发明概括地涉及数据处理领域,并且更具体地涉及用于在虚 拟化系统中实现用于诸如单根输入/输出虚拟化(SRIOV)适配器之 类的硬件I/O适配器的增强错误处理(EEH)的方法、系统和计算机 程序产品。

背景技术

单根输入/输出(I/O)虚拟化(SRIOV)是PCI标准,提供构建 用于PCI-Express(PCIe)行业内的I/O虚拟化的区块的适配器技术。 SRIOV能力是用于光纤信道、以太网、Infiniband以及会聚网络适配 器(CNA)的许多新PCIe适配器的特征。

SRIOV适配器具有允许跨越许多不同逻辑分区而同时地共享单 个I/O适配器的I/O适配器虚拟化架构。共享是在物理层级完成的, 使得每个逻辑分区可访问物理适配器切片(slice)。共享是经由将适 配器划分成许多不同PCI功能、且然后分发对那些功能的访问而实 现的。适配器被呈现为一个或多个物理功能(PF),其控制例如被 用于配置和I/O两者的功能、和被用于I/O和有限配置的一组虚拟功 能(VF),每个VF表示能够独立于其他VF而分配给逻辑分区的适 配器能力切片。每个逻辑分区具有用于分配给逻辑分区的每个VF 的设备驱动器。

利用共享硬件I/O适配器,诸如SRIOV适配器,现在要求在许 多分区之间进行协调共享适配器的错误恢复。现有解决方案仅要求 单个分区内的协调,因此要求一种新的解决方案。

需要一种用以在虚拟化系统中支持用于共享硬件I/O适配器或 单根输入/输出虚拟化(SRIOV)适配器的增强错误处理(EEH)的 有效机制。期望的是,此类机制支持有效且高效的错误处理操作以 覆盖多个分区。

发明内容

本发明的主要方面是提供用于在虚拟化系统中实现用于诸如单 根输入/输出虚拟化(SRIOV)适配器之类的硬件I/O适配器的增强 错误处理(EEH)的方法、系统和计算机程序产品。本发明的其他 重要方面是在基本上没有负面效果的情况下提供此类方法、系统和 计算机程序产品且其克服现有技术布置的许多缺点。

概括而言,提供了用于在虚拟化系统中实现用于诸如单根输入/ 输出虚拟化(SRIOV)适配器之类的硬件I/O适配器的增强错误处理 的方法、系统和计算机程序产品。硬件I/O适配器被划分成多个端点, 每个可分区端点(PE)对应于一个功能,并且存在与整个适配器相 关联的适配器PE。端点被独立地针对在范围方面局限于单个功能的 动作以及整体地针对关于适配器范围的动作两者而管理。适配器PE 的错误或故障冻结适配器PE,并传播到与适配器相关联的VF PE, 促使VF PE被冻结。适配器驱动器和VF设备驱动器被告知错误, 并开始恢复。管理程序(hypervisor)在关键点处将VF设备驱动器 锁定(lock out),使得适配器恢复能够成功地完成。

根据本发明的特征,VF PE的故障引起仅所述单个PE的故障, 并且被隔离地处理。

根据本发明的特征,VF设备驱动器获悉错误并开始恢复,并且 VF驱动器被阻挡在初始恢复步骤中,VF PE保持被冻结直至适配器 驱动器完成适配器恢复。适配器驱动器将适配器PE解冻,收集错误 数据,并开始恢复和重新初始化,并且VF PE保持被冻结。适配器 驱动器恢复适配器,将VF重置,并恢复适配器的先前配置。适配器 驱动器给出用于VF PE的解冻的许可,并且VF驱动器开始恢复。

根据本发明的特征,在适配器驱动器与VF设备驱动器或者在 VF设备驱动器之间不要求协调。VF设备驱动器能够独立地前进, 并且独立地完成恢复。

根据本发明的特征,提供了多个层级的隔离。第一层级的隔离 包括范围达到单个VF的错误。在这种情况下,只有用于该单个VF 的单个PE被冻结且被恢复。第二层级的隔离包括范围达到整个适配 器的至少一个错误。在这种情况下,所有PE都被冻结并恢复,这包 括适配器PE和每个VF PE。

附图说明

根据在图中示出的本发明的优选实施方式的以下详细描述,可 最好地理解本发明以及上述及其他目的和优点,在所述附图中:

图1和2图示出根据优选实施方式的用于实现用于硬件I/O适配 器(诸如单根输入/输出虚拟化(SRIOV)适配器)的增强错误处理 的各示例性计算机系统和示例性系统;

图3、4、5和6提供了图示出根据优选实施方式的用于实现用 于SRIOV适配器的增强错误处理的示例性操作的各流程图;以及

图7是图示出根据优选实施方式的计算机程序产品的框图。

具体实施方式

在本发明的实施方式的以下详细描述中,对附图进行参考,该 附图图示出可用来实施本发明的示例性实施方式。应理解的是,在 不脱离本发明的范围的情况下,可利用其他实施方式且可进行结构 变更。

在此使用的术语仅是为了描述特定实施方式,且不旨在限制本 发明。如在此使用的,除非上下文另外清楚地指明,单数形式“一 种”、“一个”和“该”也旨在包括复数形式。还将理解,当在说 明书中使用时,术语“包括”和/或“包含”指明存在所述的特征、 整体、步骤、操作、元件和/或组件,但不排除存在或附加一个或多 个其他特征、整体、步骤、操作、元件、组件和/或其群组。

根据本发明的特征,提供了用于在虚拟化系统中实现用于诸如 单根输入/输出虚拟化(SRIOV)适配器之类的硬件I/O适配器的增 强错误收集的方法、系统和计算机程序产品。

现在对附图进行参考,在图1中,示出了根据优选实施方式的 用于实现用于硬件I/O适配器102或单根输入/输出虚拟化(SRIOV) 适配器102的增强错误收集的示例性计算机系统,该示例性计算机 系统概括地用附图标记100来表示。计算机系统100包括一个或多 个处理器104、或由I/O集线器或处理器主机桥接器106耦合到单根 输入/输出虚拟化(SRIOV)适配器或硬件I/O适配器102的中央处 理器单元(CPU)104(示出了一个)。根据优选实施方式,处理器 主机桥接器(PHB)106提供多个PE(可分区端点)支持。

计算机系统100包括存储器108和由系统总线111耦合到处理 器104和处理器主机桥接器106的一个或多个逻辑分区(LPAR)110 (未示出)。每个操作系统(OS)112驻留于其自己的LPAR 110 中,每个LPAR被分配有来自计算机100的物理处理器104的一部 分、整个物理处理器或多个物理处理器。VF设备驱动器114提供有 逻辑分区(LPAR)110。存储器108的一部分被分配给每个LPAR 110。 计算机系统100包括包含配置机制118的管理程序116。管理程序 116是系统固件的一部分,并管理资源到每个操作系统112和LPAR 110的分配。

如所示,用来例如管理系统功能的硬件管理控制台(HMC)120 被经由服务处理器122耦合到管理程序116。计算机系统100包括提 供有管理程序116的物理功能(PF)管理器或PF附件124。PF附件 124包括用以管理硬件I/O适配器102的物理功能的适配器驱动器 128。管理程序116使用PF附件124例如以基于由系统管理员经由 硬件管理控制台120提供的配置信息来配置硬件I/O适配器102的物 理功能(PF)和虚拟功能(VF)。

如所示,硬件I/O适配器102包括例如第一物理功能130、第二 物理功能132、第一端口134以及第二端口136。使用PF附件124 的管理程序116基于物理功能130、132来配置虚拟功能,并将该虚 拟功能与硬件I/O适配器102的端口134、136中的一个或多个相关 联。

例如,第一虚拟功能140、实例1以及第一虚拟功能142的第M (其中M大于1)实例与第二端口136相关联。如所示,第二虚拟 功能144、诸如第二虚拟功能144的第一实例和第二虚拟功能146 的第P(其中P大于1)实例与第一端口134相关联。如所示,第N 虚拟功能的多个实例、诸如第N虚拟功能148的第一实例与第一端 口134相关联,并且第N虚拟功能150的第Q(其中Q大于1)实 例与第二端口136相关联。

第一新功能140、142、第二虚拟功能144、146以及第N虚拟功 能148、150的每个实例由物理功能主管,诸如第一物理功能132、 第二物理功能132或另一物理功能(未示出)中的一个。

第一虚拟功能140、142、第二虚拟功能144、146以及第N虚拟 功能148、150的每个实例包括示为ID 152、ID 154、ID 156、ID 158、 ID 160和ID 162的各虚拟功能标识符(ID)。每个虚拟功能标识符 唯一地识别由硬件I/O适配器102主管的特定虚拟功能。例如,当消 息(未示出)被路由到特定虚拟功能时,该消息包括与特定虚拟功 能相关联的标识符。

根据本发明的特征,具有多个PE支持的PHB 106使单个物理适 配器变成多个独立PCI端点。这些端点然后能够被不同分区独立地 管理。每个VF140、142、144、146、148、150是唯一PE。另外, 存在与整个适配器102相关联的PE。VF PE的故障引起仅该单个PE 的故障,并且有利地以隔离方式处理。适配器PE的故障传播到与适 配器相关联的VF PE,促使其也出现故障。

可分区端点(PE)是单独可分配I/O单元。也就是说,能够独 立于另一PE为I/O子系统的任何部分分配逻辑分区。每个PE具有 独立的域(寻址、错误、状态等)以提供PE层级错误隔离、检测以 及恢复。

根据本发明的特征,管理程序116提供用于管理特定PE的基础 支持。使PE与特定功能和分区相关联的适配器驱动器128提供跨越 整个适配器102的序列错误恢复,控制何时允许VF 140、142、144、 146、148、150开始恢复,并管理PF 130、132。VF设备驱动器114 处理VF错误恢复,例如使用针对非共享适配器所遵循的同一序列。

计算机系统100以足以用于理解本发明的简化形式示出。所示 计算机系统100并不意图暗示架构或功能限制。本发明能够与各种 硬件实现和系统及各种其他内部硬件设备一起使用。

参考图2,示出了根据优选实施方式的用于实现用于硬件I/O适 配器102或单根输入/输出虚拟化(SRIOV)适配器202的分布式调 试数据收集和分析的另一示例性系统,该示例性系统概括地用附图 标记200表示。

系统200包括管理程序204或其他虚拟化中间件,其用来使得 多个逻辑分区能够访问由包括硬件I/O适配器202的硬件提供的各种 功能。例如,如图2中所示,管理程序204用来使得第一逻辑分区 206、第二逻辑分区208以及第N逻辑分区210能够访问由硬件I/O 适配器202提供的多个虚拟功能212、214、216、218。例如,管理 程序204使用硬件I/O适配器202的第一物理功能220,来向逻辑分 区206、208、210提供第一虚拟功能212的第一实例、第一虚拟功 能214的第二实例、以及第一虚拟功能216的第N实例。如所示, 管理程序204使用硬件I/O适配器202的第二物理功能222,来向逻 辑分区206、208、210提供第二虚拟功能218。

物理功能220、222有利地包括支持单根I/O虚拟化能力的PCI 功能。虚拟化功能212、214、216、218中的每一个与物理功能220、 220中的一个相关联,并适合于共享硬件I/O适配器202的一个或多 个物理资源。

软件功能或模块(诸如包括适配器驱动器225的物理功能(PF) 附件224之类)被提供有用于管理物理功能220、222和虚拟功能212、 214、216、218的管理程序204。例如,用户可指定特定配置,且管 理程序204使用PF附件224以根据物理功能220、222来配置虚拟 功能212、214、216、218。

例如,在操作中,具有PF附件224的管理程序204支持来自第 一物理功能220的第一虚拟功能实例212、214、216。具有PF附件 224的管理程序204支持来自第二物理功能222的第二虚拟功能218。 虚拟功能212、214、216、218例如基于用户提供配置而被支持。逻 辑分区206、208、210中的每一个可执行操作系统(未示出)和客 户端应用程序(未示出)。

如所示,在逻辑分区206、208、210处执行的客户端应用程序 执行虚拟输入/输出操作,并包括各设备驱动器以直接地管理关联虚 拟功能。例如,在第一逻辑分区206处执行的第一客户端应用程序 可包括第一客户端VF设备驱动器226,并且在第一逻辑分区206处 执行的第二客户端应用程序可包括第二客户端VF设备驱动器228。

如所示,第一客户端VF设备驱动器226访问第一虚拟功能212 的第一实例。第二客户端虚拟VF设备驱动器228访问第二虚拟功能 218。在第二逻辑分区208处执行的第三客户端VF设备驱动器230 访问第一虚拟功能214的第二实例。在第N逻辑分区210处执行的 第N客户端VF设备驱动器232访问第一虚拟功能216的第N实例。 访问机制234和配置机制236提供有管理程序204以使逻辑分区与 被访问虚拟功能相关联。管理程序204使用访问机制234来支持逻 辑分区,诸如LPAR 206以访问与虚拟功能212、214、216、218中 的一个或多个相关联的配置空间。

根据本发明的特征,硬件I/O适配器被划分成多个端点,每个可 分区端点(PE)对应于一个功能,并且存在与整个适配器相关联的 适配器PE。端点被独立于以下两者而管理:在范围方面局限于单个 功能的动作、以及整体地针对关于适配器范围的动作。适配器PE的 错误或故障冻结适配器PE,并传播到与适配器相关联的VF PE,促 使VF PE被冻结。适配器驱动器和VF设备驱动器被告知错误,并 开始恢复。管理程序在关键点处将VF设备驱动器锁定,使得适配器 恢复能够成功地完成。

根据本发明的特征,适配器驱动器解冻其PE,收集错误数据, 并开始恢复/重新初始化,并且VF PE保持被冻结。适配器驱动器恢 复适配器,将VF重置,并还原适配器的先前配置。适配器驱动器给 出用于VF PE的解冻的许可,并且VF驱动器开始恢复。

计算机系统200以足以用于理解本发明的简化形式示出。所示 计算机系统200并不意图暗示架构或功能限制。本发明能够与各种 硬件实现和系统及各种其他内部硬件设备一起使用。

根据本发明的特征,可选地经由检测错误并连同子PE一起冻结 适配器PE的HW来进入增强错误处理(EEH)。还可从许多其他语 言发起同一序列,这仅仅是一个示例。

参考图3、4、5和6,示出了路由管理程序130提供以便实现根 据优选实施方式的用于硬件I/O适配器的增强错误处理(EEH)的处 理和逻辑的示例性操作。

在图3中,如在方框300中所指示的,HW检测故障并冻结适配 器PE。如在方框302中所指示的,与适配器PE相关联的其他PE(诸 如VF PE)被冻结。如在方框304中所指示的,HW将被冻结PE告 知管理程序。管理程序将被冻结PE(包括适配器驱动器和VF设备 驱动器两者)告知PE所有者,如在方框306中所指示的。适配器驱 动器和VF设备驱动器异步地开始恢复,如在方框308中所指示的。

现在参考图4,如在方框400中所指示的,适配器驱动器接收错 误的通知。适配器驱动器开始EEH恢复,如在方框402中所指示的。 适配器驱动器将适配器PE而不是其他PE解冻,收集错误数据,并 且开始恢复,如在方框404中所指示的。

如在方框406中所指示的,适配器驱动器恢复适配器。这可涉 及到整个适配器的重置,其还将VF重置。适配器然后在方框406 处被重新初始化成默认状态。如在方框408中所指示的,适配器驱 动器将先前配置重播到适配器。这是与如前所述相同的配置,因为 VF需要回到类似于先前在这里的情况,诸如具有相同的PCI BAR 空间或VF BAR寄存器等。然后,适配器驱动器将错误记录日志, 并将日志ID传送至管理程序,如在方框410中所指示的。如在方框 412中所指示的,适配器驱动器给出将VF PE解冻并重新开始正常 操作的管理程序许可。

现在参考图5,如在方框500中所指示的,VF设备驱动程序接 收错误的通知。VF设备驱动器开始EEH恢复,如在方框502中所 指示的。VF设备驱动器在解冻不成功的情况下循环尝试将PE解冻 直至适配器驱动器完成恢复为止,如在方框504中所指示的。适配 器驱动器完成恢复,如在方框506中所指示的。VF设备驱动器将PE 解冻,检索错误数据,并开始恢复,如在方框508中所指示的。VF 设备驱动器完成恢复并将错误数据记录日志,如在方框510中所指 示的。然后,正常VF和/或I/O操作重新开始,如在方框512中所 指示的。

根据本发明的特征,增强错误处理(EEH)可选地包括两个层级 的隔离,诸如图3、4和5中所示。第一层级的隔离包括范围达到单 个VF的错误。在这种情况下,只有用于该单个VF的单个PE被冻 结且被恢复。第二层级的隔离包括范围达到整个适配器的错误。在 这种情况下,所有PE都被冻结并恢复,这包括适配器PE以及每个 VF PE。

根据本发明的特征,增强错误处理(EEH)可选地包括附加中间 分组。这向分级结构添加附加层级。其优点是较细粒度的恢复。恢 复动作是较少打扰性的,并且较少的VF受到影响。例如,某些错误 可能范围达到单个物理端口。在那种情况下,恢复可能涵盖使用物 理端口将与VF相关联的PE组冻结。在另一示例中,错误可能范围 达到单个I/O协议,例如在实现网络接口控制器(NIC)和以太网上 光纤信道(FCoE)两者的会聚网络适配器(CNA)中,错误可能仅 影响FCoE。在那种情况下,恢复可能涵盖使用该协议将与VF相关 联的PE组冻结,同时不冻结用于运行不同协议的VF的PE。

根据本发明的特征,增强错误处理(EEH)可选地包括多个和潜 在的重叠PE群组。继续上述示例,可能存在用于单个端口上的所有 PE、该端口上的所有FCoE PE以及该端口上的所有NIC PE的群组。 此外,还可能存在跨越适配器的所有端口的所有FCoE PE的附加群 组。所使用的分组的精确细节由适配器供应商为了恢复而提供的隔 离层级确定。允许由适配器驱动器进行的各种分组允许在最小数目 的VF PE受影响的情况下的最大错误隔离。请注意,由VF驱动器 进行的恢复与所使用的分组无关,因为VF驱动器仅作用于单个VF 上。

现在参考图6,示出了概括地利用附图标记600表示的示例性设 备,其用于举例说明用于适配器或PF发起的错误日志的示例性高级 错误日志流。如图6中所示,设备600包括具有操作系统AIX、Linux 或IBM i的多个LPAR 1-N(包括VF驱动器606)。管理程序610 包括具有错误日志614和适配器驱动器616的PF附件612、日志ID 618、错误记录日志619。SRIOV适配器620包括多个PF 622以及多 个VF 624。硬件管理控制台(HMC)630经由现场服务处理器(FSP) 632被耦合到管理程序610。

在图6中,用以实线示出的标记为1的用于固件错误日志流的 线来指示第一步骤,PF附件通过向管理程序发布用以记录错误的 AMC请求来开始生成平台错误日志的过程。PF附件612向管理程序 610的错误记录日志支持619提供SRC、严格性、动作标志以及附 加数据。一旦生成了错误日志614,则向PF附件612返回日志ID 618。

用标记为2的线来指示第二步骤,管理程序610的错误记录日 志支持619将日志发送到FSP 632以便包括在记录日志流中。用标 记为3的线来指示第三步骤,FPS 632将日志发送到HMC 630。用 标记为4线来指示第四步骤,FSP 632将日志送回到管理程序610以 用于全面广播。用标记为5的线来指示下一第五步骤,管理程序610 的错误记录日志支持619将日志发送到完全活动分区602。用以虚线 示出的标记为6的线来指示用于资源监视和控制(RMC)连接的可 选第六步骤,HMC 630可使用RMC连接从平台操作系统拉取平台 错误。这提供用于接收平台错误日志的冗余路径。用以短划线示出 的标记为7的线指示用于管理程序调用(HCALL)界面的可选第七 步骤,分区602能够从管理程序610检索错误日志ID 618。

现在参考图7,图示出本发明的制品或计算机程序产品700。计 算机程序产品700被有形地体现在非暂态计算机可读存储介质上, 其包括记录介质702,诸如软盘、光学可读紧凑式磁盘或CD-ROM 形式的高容量只读存储器、磁带或者另一类似计算机程序产品。记 录介质702将程序装置704、706、708以及710存储在介质702上 以便执行用于实现用于I/O适配器的增强错误收集的方法,诸如图 的系统100或图2的系统200中的优选实施方式的单根输入/输出虚 拟化(SRIOV)适配器。

由记录的程序装置707、706、708以及710定义的一个或多个 互相关模块的程序指令序列或逻辑组件命令计算机系统700一般实 现用于I/O适配器的增强错误收集。

虽然已参考图中所示的本发明的实施方式的细节描述了本发 明,但这些细节并不意图限制如在所附权利要求中要求保护的本发 明的范围。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号