用于适配卡故障转移的设备、系统和方法

文档序号:6476908阅读:162来源:国知局
专利名称:用于适配卡故障转移的设备、系统和方法
技术领域
本发明涉及适配卡并且更加具体地涉及适配卡故障转移。
技术背景数据处理系统经常包括多个处理器组。每一个处理器组可以包括 一个或者多个微处理器、高速緩冲存储器、主存储器,到外围设备的 桥和总线等。例如,处理器组可以通过北桥和南桥而与外围设备互连(PCI)总线通信。诸如网络连接部、存储装置、专用计算引擎等的 适配卡外围设备可以通过PCI总线与处理器组通信。适配卡通常包括安装在电路板上的多个半导体电路。适配卡可以 通过一个或者多个连接器连接到总线。每一个适配卡可以执行一个或 者多个专用功能。例如,适配卡可以用作以太网控制器、独立磁盘冗佘阵列(RAID)控制器等。数据处理系统的多于一个处理器組可能要求访问适配卡。例如, 两个或者更多处理器组的群集可以访问RAID控制器适配卡从而将数 据写入容错RAID子系统中的硬盘驱动器和从硬盘驱动器读取数据。 与两个处理器组通信的适配卡可以被称作双尾适配卡。虽然多个处理器组可以访问适配卡,但是一个处理器組在配置和 故障恢复方面控制该适配卡。控制适配卡的处理器组在这里被称作拥 有者处理器组。拥有者处理器组可以配置和管理适配卡。提供单一拥 有者处理器组可以防止两个或者更多处理器组尝试配置和管理适配 卡。不幸的是,如果拥有者处理器组发生故障,则其它处理器组可能 不能使用适配卡。结果,数据处理器系统的功能可能降低和/或被削弱。发明内容优选地提供一种用于适配卡故障转移的设备、系统和方法。有益 的是,这种设备、系统和方法能够优选地从初始拥有者处理器組转移 适配卡控制以允许继续使用该适配卡。用于适配卡故障转移的设备优选地设有多个模块,所述模块被配置为功能性执行以下步骤连接第一处理器组,连接第二处理器组, 探测故障,和修改切换模块。在所述实施例中的这些模块包括切换模 块、探测模块,和设置模块。该切换模块包括半导体逻辑块并且通过第一端口在逻辑上将第 一处理器组连接到适配卡作为拥有者处理器组。除第二端口以外,该 拥有者处理器组管理该适配卡并且从适配卡接收错误消息。该切换模 块进一步通过第二端口在逻辑上将第二处理器组连接到适配卡作为非 拥有者处理器组。该非拥有者处理器组管理该第二端口。该探测模块包括半导体逻辑块和在处理器上执行的软件指令。另 外,该探测模块探测第一处理器組的故障。该设置模块修改该切换模块以在逻辑上将第二处理器组连接到 适配卡作为拥有者处理器组并且响应于探测到故障而在逻辑上从适配 卡断开第一处理器组。该设置模块包括在处理器上执行的软件指令。 如果第一处理器组发生故障,则该设备执行从笫一处理器组到第二处 理器组的故障转移。本发明还提出 一种用于适配卡故障转移的系统。该系统可以被实 施为数据处理系统。具体地,该系统在一个实施例中包括第一处理器 組、第二处理器组,和适配卡。第一和第二处理器组与适配卡通信。第二处理器组优选地包括设置模块。适配卡包括控制器、第一存储器模块,和切换模块。该控制器管理该适配卡。第一存储器模块存储包括用于控制器的 软件指令和设置数据的控制存储。该切换模块包括半导体逻辑块并且通过第一端口在逻辑上将第一处理器组连接到适配卡作为拥有者处理 器组。除第二端口以外,该拥有者处理器组管理该适配卡并且从适配上将第二处理器组连接到 适配卡作为拥有者处理器组并且响应于探测到故障而在逻辑上从适配卡断开笫一处理器组。该系统优选地响应于故障从拥有适配卡的第一处理器组到拥有 适配卡的第二处理器组进行故障转移。本发明还提出 一种用于适配卡故障转移的方法。在所公开实施例的功能的^"骤。在一个实施例中,该方法包括连接第二处理器組,连 接第二处理器组,探测故障,和修改切换模块。切换模块通过第一端口将第一处理器组连接到适配卡作为拥有 者处理器组。除第二端口以外,该拥有者处理器组管理该适配卡并且 从适配卡接收错误消息。该切换模块进一步通过笫二端口将第二处理 器组连接到适配卡作为非拥有者处理器组。该非拥有者处理器组管理 该第二端口 。探测模块探测第一处理器组的故障。设置模块修改该切换模块以 在逻辑上将第二处理器組连接到适配卡作为拥有者处理器组并且响应 于探测到故障而在逻辑上从适配卡断开第一处理器组。该方法优选地执行从第一处理器组到第二处理器组的故障转移, 使得适配卡继续可用。根据一个方面,提供一种用于适配卡故障转移的设备,该设备包括切换模块,该切换模块包括半导体逻辑块并且被配置为通过第一 端口在逻辑上将第一处理器组连接到适配卡作为拥有者处理器组,其中,除第二端口以外,该拥有者处理器组管理该适配卡并且从适配卡接收错误消息,并且该切换模块进一步通过第二端口在逻辑上将第二处理器组连接到适配卡作为非拥有者处理器组,其中该非拥有者处理理器组并且响应于探测到故障而在逻辑上从适配卡断开第一处理器 组。根据一个方面,提供一种用于适配卡故障转移的系统,该系统包 括与适配卡通信的第一处理器组;与适配卡通信并且包括被配置为 探测第一处理器组的故障的探测模块的第二处理器组;该适配卡包括 被配置为管理该适配卡的控制器;被配置为存储包括用于控制器的软 件指令和设置数据的控制存储的第一存储器模块;切换模块,该切换 模块包括半导体逻辑块并且被配置为通过第一端口在逻辑上将第一处 理器组连接到适配卡作为拥有者处理器组,其中,除第二端口以外, 该拥有者处理器组管理该适配卡并且从适配卡接收错误消息,并且该 切换模块进一步通过第二端口在逻辑上将第二处理器组连接到适配卡 作为非拥有者处理器组,其中该非拥有者处理器组管理该第二端口; 该第二处理器组进一步包括设置模块,该设置模块被配置为修改该切 换模块以在逻辑上将第二处理器组连接到适配卡作为拥有者处理器组 并且响应于探测到故障而在逻辑上从适配卡断开笫一处理器组。根据另一方面,提供一种包括具有处理器可读程序的处理器可用 介质的处理器程序产品,其中当在处理器上执行该处理器可读程序时 使得处理器通过第一端口将适配卡的切换模块连接到第一处理器组 作为拥有者处理器组,其中,除第二端口以外,该拥有者处理器组管 理该适配卡并且从适配卡接收错误消息;通过第二端口将第二处理器 组连接到适配卡作为非拥有者处理器组,其中该非拥有者处理器组管 理该第二端口;探测第一处理器组的故障;和修改该切换模块以在逻 辑上将第二处理器组连接到适配卡作为拥有者处理器组并且响应于探 测到故障而在逻辑上从适配卡断开该第一处理器组。根据另一方面,提供一种用于适配卡故障转移的方法,该方法包 括通过第一端口使用切换模块在逻辑上将第 一处理器组连接到适配卡作为拥有者处理器组,其中,除第二端口以外,该拥有者处理器组
管理该适配卡并且从适配卡接收错误消息;通过第二端口使用该切换
模块在逻辑上将第二处理器组连接到适配卡作为非拥有者处理器组,
其中该非拥有者处理器组管理该第二端口;探测第一处理器组的故障;
和修改该切换模块以在逻辑上将第二处理器组连接到适配卡作为拥有
者处理器组并且响应于探测到故障而在逻辑上从适配卡断开第一处理器组。
在本说明书全文中对于特征、优点或者类似语言的述及并不意味 着利用本发明可以实现的所有特征和优点应该是或者是在本发明的任 何单一实施例中。实际上,述及特征和优点的语言应该被理解为意味 着结合实施例描述的具体特征、优点或者特性被包括于本发明的至少 一个实施例中。因此,在本说明书全文中对于特征和优点以及类似语 言的讨论可以但不必然参考同 一 实施例。
进而,可以在一个或者多个实施例中以任何适当的方式组合本发 明的所述特征、优点和特性。有关领域技术人员可以意识到,可以并 不利用具体实施例的一个或者多个具体特征或者优点地实践本发明。 在其它情形下,可能并不存在于本发明的所有实施例中的另外的特征 和优点可以被认可在特定实施例中。
本发明实施例执行从拥有适配卡的第一处理器组到第二处理器 组的故障转移。本发明优选地支持当笫一处理器组发生故障时继续使 用该适配卡。本发明的这些特征和优点根据以下说明和所附权利要求 将变得更加充分清楚,或者可以通过实践如在下文中阐述的发明而得 以领会。


现在将仅仅通过实例并且参考以下附图描述
具体实施例方式
图1是例示根据本发明的数据处理系统的一个实施例的示意框
图2是例示本发明的适配卡的一个实施例的示意框图;图3是例示本发明的适配卡的一个可替代实施例的示意框图; 图4是例示本发明的故障转移设备的一个实施例的示意框图; 图5是例示本发明的故障转移方法的一个实施例的示意流程图; 图6是例示本发明的适配卡通信的一个实施例的示意框图; 图7是例示本发明的适配卡通信的一个可替代实施例的示意框 图;并且
图8是例示本发明的故障转移通信的一个实施例的示意框图。
具体实施例方式
在本说明书中描述的很多功能单元已被标识成模块,从而更加特 别地强调它们的实现独立性。例如,模块可以被实现为包括定制VLSI 电路或者门阵列、即用半导体例如逻辑芯片、晶体管或者其它离散构 件的硬件电路。模块还可以被实现为可编程硬件器件,例如现场可编 程门阵列(FPGA)、可编程阵列逻辑、可编程逻辑器件等。
模块还可以被实现为用于由各种类型的处理器执行的软件。 一种 可执行代码的已标识模块可以例如包括处理器指令的一个或者多个物 理或者逻辑块,处理器指令可以例如被组织成对象、程序或者函数。 尽管如此,已标识模块的可执行代码不需要以物理方式位于一起,而 是可以包括在不同位置中存储的异类指令,所述指令当在逻辑上被结 合到一起时,构成模块并且实现关于该模块的设定目的。
实际上,可执行代码的模块可以是单一指令,或者很多指令,并 且可以甚至分布于几个不同的代码段之上、在不同程序间,以及跨接 几个存储器装置。类似地,操作数据在这里可以在模块内被标识和例 示,并且可以;敗实施为任何适用的形式并且#皮组织于任何适当类型的 数据结构内。操作数据可以被收集作为单一数据集,或者可以被分布 于不同的位置、包括不同的存储装置之上。
在本说明书全文中对于"一个实施例"、"实施例"或者类似语 言的述及意味着结合实施例描述的具体特征、结构或者特性被包括于 本发明的至少一个实施例中。因此,在本说明书全文中出现的短语"在一个实施例中,,、"在实施例中,,和类似的语言可以但不必然全部参 考同一实施例。
进而,本发明的所述特征、结构或者特性可以在一个或者多个实 施例中以任何适当的方式组合。在以下说明中,提供了多个具体细节, 例如编程、软件模块、使用者选择、网络交易、数据库查询、数据库 结构、硬件模块、硬件电路、硬件芯片等的实例以提供对于本发明实 施例的完全理解。然而,相关领域技术人员可以认识到,可以不利用 一个或者多个所述具体细节或者利用其它方法、构件、材料等实践本 发明。在其它情形下,众所周知的结构、材料或者操作未被详细示出 或者描述以避免搞混本发明的某些方面。
图1是例示根据本发明的数据处理系统100的一个实施例的示意 框图。数据处理系统100包括一个或者多个处理器组105和适配卡 110。虽然为了简明起见,示出两个处理器组105,但是可以采用任何 数目的处理器组105。
第一处理器组105a和第二处理器组105b,经由一个或者多个通 信信道120与适配卡110通信。在一个实施例中,通信信道120^皮配 置为快速外围设备互连(PCIe)总线。可替代地,通信信道120可以 被配置为外围设备互连扩展(PCI-X)总线或者外围设备互连(PCI) 总线。本领域技术人员可以认识到,可以利用多种通信信道配置实践 本发明。
适配卡110为第一处理器组105a和第二处理器组105b执行一个 或者多个功能。例如,适配卡110可以用作以太网控制器。可替代地, 适配卡110可以用作RAID控制器。在特定实施例中,适配卡110用 作存储区网络控制器。本领域技术人员可以认识到,可以利用多种适 配卡类型和功能实践本发明。
第一处理器组105a起初被配置成拥有者处理器组。拥有者处理 器组初始化、控制并且管理适配卡110。例如,在通电引导期间,第 一处理器组105a作为拥有者处理器组可以如将在此后所描述的那样 发现并且初始化适配卡110。
14第二处理器组105b起初被配置为非拥有者处理器组。虽然为了 简明起见仅仅描述了一个非拥有者处理器组,但是该数据处理系统可 以包括多个非拥有者处理器组。非拥有者处理器组还可以使用适配卡 110。例如,非拥有者处理器组可以采用RAID控制器适配卡110以访 问RAID子系统。然而,非拥有者处理器组并不初始化、管理和/或控 制适配卡110。
适配卡110可以与装置115通信。该装置可以是网络接口、 RAID 子系统、存储装置等。在初始化期间,拥有者处理器组还可以发现并 且初始化装置115。如将在此后所描述地,在初始化期间,非拥有者 处理器组可能不能发现装置115。
如果第一处理器组105a发生故障,则适配卡110可能不能由第 二处理器组105b使用。结果,数据处理系统IOO可能失去关键的功能。 如将在此后所描述地,根据一个优选实施例,本发明执行从第一处理 器组105a到第二处理器组105b的适配卡110所有权故障转移以支持 继续4吏用适配卡110。
图2是例示本发明的适配卡250的一个实施例的示意框图。适配 卡250是图1的适配卡110的一个实施例。对于适配卡250的说明引 用图1的元件,同样的数字是指同样的元件。
适配卡250包括一个或者多个端口 205、切换模块210、控制器 230、设置寄存器235、存储器模块240,和适配卡功能块245。本领 域技术人员可以认识到,可以利用另外的端口 205、切换模块210、控 制器230、设置寄存器235、存储器模块240和适配卡功能块245以及 其它装置和模块实践本发明。
端口 205可以被配置为PCI接口 、 PCIe接口、 PCI-X接口等。 第一处理器组105a可以与第一端口 205a通信,而第二处理器组105b 可以与第二端口 205b通信。
切换模块210通过第一端口 205a在逻辑上和物理上将第一处理 器组105a连接到适配卡110作为拥有者处理器组。除了第二端口 205b 以外,拥有者处理器组管理适配卡110。另外,拥有者处理器组从适配卡110接收错误消息。
切换模块210进一步通过第二端口 205b在逻辑上和物理上将第 二处理器组105b连接到适配卡110作为非拥有者处理器组。非拥有者 处理器组管理第二端口 205b。
适配卡功能块245可以包括通信功能块,例如以太网控制器功能 块、令牌环控制器功能块等。适配卡功能块245还可以包括存储管理 功能块,例如RAID控制器功能块、存储控制器功能块等。
控制器230管理适配卡110。例如,控制器230可以初始化并且 管理适配卡功能块245。存储器模块240存储包括用于控制器230的 软件指令和设置数据的控制存储。控制器230可以包括执行软件指令 的处理器、指令排序器等。软件指令可以被配置成一个或者多个处理 器程序产品。
设置寄存器235存储二进制数据值。可以利用在设置寄存器235 中存储的数据值修改切换模块210、适配卡功能块245、控制器230 和存储器模块240的功能。例如,在设置寄存器235中存储的值可以 使切换模块210将被连接到第一端口 205a的处理器组105配置成拥有 者处理器组并且将被连接到第二端口 205b的处理器组配置成非拥有 者处理器组。
图3是例示本发明的适配卡350的一个可替代实施例的示意框 图。适配卡350是图1的适配卡110的可替代实施例。对于适配卡250 的说明参考图1-2的元件,同样的数字是指同样的元件。具体地,端 口 205、切换模块210、控制器230和设置寄存器235是图2的端口 205、切换模块210、控制器230和设置寄存器235。
适配卡350进一步包括第一存储器模块240a和第二存储器模块 240b。第一存储器模块240a存储包括用于控制器230的软件指令和设 置数据的第一控制存储。在一个实施例中,第一控制存储配置切换模 块210和控制器230以将与第一端口 205a通信的处理器组105视为拥 有者处理器组并且将与第二端口 205b通信的处理器组105视为非拥有 者处理器组。第二存储器模块240b存储还包括用于控制器230的软件指令和 设置数据的第二控制存储。在一个实施例中,第二控制存储配置切换 模块210和控制器230以将与第二端口 205b通信的处理器组105视为 拥有者处理器组并且将与第一端口 205a通信的处理器组105视为非拥 有者处理器组。
在一个实施例中,第一存储器模块240a和第二存储器模块240b 每一个均共享二进制地址总线和二进制数据总线。在设置寄存器235 中存储的第一二进制值可以启用第一存储器模块240a并且禁用第二 存储器模块240b,使得仅仅第一存储器模块240a在二进制数据总线 上输出数据。在设置寄存器235中存储的相反的第二二进制值可以禁 用第一存储器模块240a并且启用第二存储器模块240b以在二进制数 据总线上输出数据。因此,可以使用写入设置寄存器235的值来选择 由控制器230使用的控制存储。
适配卡350进一步包括RAID控制器305和第一下游端口 310a 和第二下游端口 310b。第一下游端口 310a和第二下游端口 310b分别 与第一 RAID子系统315a和第二 RAID子系统315b通信。RAID控 制器305、下游端口 310和RAID子系统315是可以由适配卡350支 持且并未以限制方式示出的功能性示例。
在一个实施例中,第一处理器组105a和第二处理器组105b可以 各自均使用适配卡350的RAID控制器305来访问RAID子系统315。 RAID控制器305和切换才莫块210可以在第一和第二处理器组105之 间裁定优先权(优先级),使得每一个处理器组105均可以访问RAID 子系统315。 RAID控制器305可以进一步自主地执行一个或者多个 RAID控制器功能,例如计算奇偶条带数据、从冗余数据恢复损失的 数据等。
图4是例示本发明的故障转移设备400的一个实施例的示意框 图。设备400可以被实施为图1的一个或者多个处理器组105和图1-3 的适配卡110、 250、 350。对于设备400的说明参考图1-3的元件, 同样的数字是指同样的元件。设备400包括切换模块210、探测模块405和设置模块410。
切换模块210包括本领域技术人员熟知的半导体逻辑块。另外, 切换模块210可以包括纵横开关、非阻断点对点开关等。在一个实施 例中,切换^t块210可以将第一端口 205a和第二端口 205b连接到适 配卡110的一个或者多个半导体器件。
探测模块405包括半导体逻辑块和在例如第二处理器组105b和/ 或控制器处理器的处理器上执行的软件指令。另外,如将在此后所描 述地,探测模块405探测第一处理器组105a的故障。
设置模块410修改切换模块210以将第二处理器组105b连接到 适配卡110作为拥有者处理器组并且响应于探测到故障而在逻辑上从 适配卡断开第一处理器组105a。设置^=莫块410包括在诸如第二处理器 组105b和/或控制器处理器的处理器上执行的软件指令。该设备执行 从第一处理器组到第二处理器组的故障转移。
大体上以逻辑流程图阐述随后的示意流程图。这样,所描绘的次 序和所标注的步骤表示所提出的方法的一个实施例。可以设想与所例 示方法的一个或者多个步骤或者其一些部分在功能、逻辑或者效果方 面等价的其它步骤和方法。另外地,所采用的格式和符号被提供用于 解释该方法的逻辑步骤并且应该被理解成并非用于限制该方法的范 围。虽然可以在流程图中采用各种箭头类型和线条类型,但是它们应 该被理解成并非用于限制相应方法的范围。实际上, 一些箭头或者其 它连接器可以被用于仅仅表示该方法的逻辑流。例如,箭头可以表示 在所描绘方法的所被列举的步骤之间的、未规定持续时间的等待或者 监视周期。另外地,其中具体方法所发生的次序可以或者可以不严格 地遵守所示的相应步骤的次序。
图5是例示本发明的故障转移方法500的 一个实施例的示意流程 图。方法500基本上包括用于执行以上关于图l-4的所述设备和系统 的操作而提出的功能的步骤。在一个实施例中,利用包括具有处理器 可读程序的处理器可读介质的处理器程序产品实现所述方法。该处理 器可读程序可以被集成到半导体器件,例如控制器230和/或处理器组105中,其中,与控制器230和/或处理器组105相结合,该程序能够 执行方法500。
方法500开始并且切换模块210通过第一端口 205a将第一处理 器组105a连接505到适配卡110作为拥有者处理器组。除了第二端口 205b之外,拥有者处理器组管理适配卡110并且从适配卡110接收错 误消息。例如,如将在此后所描述地,拥有者处理器组可以在通电引 导期间初始化适配卡110。拥有者处理器组还可以与控制器230直接 通信。在另一个实例中,如果适配卡110被配置为RAID控制器适配 卡350并且RAID控制器适配卡350在RAID子系统315中探测到硬 盘驱动器故障,则RAID控制器适配卡350可以向拥有者处理器组传 送描述该故障的错误消息。
切换模块210进一步通过第二端口 205b将第二处理器组105b连 接510到适配卡IIO作为非拥有者处理器组。非拥有者处理器组并不 初始化适配卡110。另外,非拥有者处理器组可以不从适配卡110接 收错误消息、状态消息等。继续以上实例,如果RAID控制器适配卡 350遇到硬盘驱动故障,则RAID控制器适配卡350并不向非拥有者 处理器组传送错误消息。
非拥有者处理器组管理笫二端口 205b。在一个实施例中,仅仅 非拥有者处理器组与第二端口 205b通信。可替代地,非拥有者处理器 组可以设定用于第二端口 205b的数据传送速率、指引第二端口 205b 传送数据等。
探测模块405探测515第一处理器组105a的故障。在一个实施 例中,探测模块405被配置为包括在第二处理器组105b上执行的软件 指令的处理器程序产品。探测模块405可以周期性地与第一处理器组 105a通信。如果探测模块405在规定间隔期间未能与第一处理器组 105a通信,则探测才莫块405可以探测515第一处理器组105a的故障。
在一个可替代实施例中,在第一处理器组105a和第二处理器组 105b上执行并且管理第一处理器组105a和第二处理器組105b的多节 点操作系统可以探测第 一处理器组105a的故障。多节点操作系统可以响应于第一处理器组105a的故障向探测模块405传送错误消息并且探 测模块405可以根据该错误消息探测515第一处理器组105a的故障。
在特定实施例中,探测模块405被配置成与在控制器230的处理 器上执行的处理器程序产品耦接的半导体逻辑块。如果第一处理器组 105a在规定时间间隔期间未与适配卡110通信,则探测模块405可以 探测515到第一处理器组105a的故障。例如,如果第一处理器组105a 在两(2)分钟时间间隔期间未与适配卡110通信,则探测模块405 可以询问第一处理器组105a。如果第一处理器组105a未响应,则探 测模块104可以探测515到第一处理器组105a的故障。
设置模块410修改520切换模块210以响应于探测到故障在逻辑 上将笫二处理器组105b连接到适配卡110作为拥有者处理器组。在一 个实施例中,设置模块410包括在第二处理器组105b上执行的处理器 程序产品。响应于探测模块405探测515到第 一处理器组105a的故障, 设置模块410可以向适配卡110的第二端口 205b传送规定的二进制 值。该规定的二进制值可以指引控制器230接受来自非拥有者处理器 组的命令。第二处理器组105b然后可以将二进制值写入设置寄存器 235,该二进制值指定与第二端口 205b通信的处理器组105作为拥有 者处理器组。
在可替代实施例中,在第二处理器组105b上执行的设置模块410 将二进制值写入设置寄存器235,该二进制值使控制器230采用第二 存储器模块240b的第二控制存储。设置模块410可以进一步重新初始 化适配卡110,使得控制器230加载并且执行第二控制存储。
在一个实施例中,设置模块410包括在控制器230的处理器上执 行的半导体逻辑块和/或一个或者多个处理器程序产品。设置模块410 可以修改写入设置寄存器235的二进制值,该二进制值使切换模块210 将与第二端口 205b通信的处理器组105视为拥有者处理器组。另外, 设置模块410可以将请求第二处理器组105b承担拥有者处理器组的任 务的消息传送到第二处理器组105b。
设置模块410可以进一步响应于探测到故障而在逻辑上从适配卡110断开第一处理器组105a。在一个实施例中,设置模块410将二进 制值写入设置寄存器235,该二进制值使切换模块210停止通过第一 端口 205a接收通信。在特定实施例中,设置模块410将请求从数据处 理系统IOO物理地断开第一处理器组105a消息传送给系统管理员。
通过探测515第一处理器组105a的故障并且修改520切换模块 210以连接到作为拥有者处理器组的第二处理器组105b,当第一处理 器组105a发生故障时,本发明支持从第一处理器组到第二处理器组 105b的快速故障转移。结果, 一个或者多个处理器组105可以继续使 用适配卡110。
图6是例示本发明的适配卡通信部600的一个实施例的示意框 图。对于通信部600的说明参考图1-5的元件,同样的数字是指同样 的元件。通信部600包括第一处理器组105a、第二处理器组105b、适 配卡110和RAID子系统315的逻辑表示。
通信部600示出作为拥有者处理器组的第一处理器组105a。在初 始化例如通电引导、软复位等的初始化期间,第一处理器组105a将发 现通信传送到被连接到通信信道120的一个或者多个装置。例如,如 果通信信道120是PCIe总线,则第一处理器组105a向被连接到PCIe 总线的每一个装置例如适配卡110传送发现请求。适配卡110可以利 用识别适配卡110的识别响应而响应于该发现请求。该发现请求和识 别响应被示为拥有者通信605。切换模块210仅仅支持在拥有者处理 器组第一处理器组605和适配卡110之间的拥有者通信605。
因为切换模块210支持与第一处理器组105a的发现通信605,所 以第一处理器组105a可以初始化适配卡IIO并且指引适配卡110向第 一处理器组105a传送错误消息、状态消息等。第一处理器組105a还 可以与控制器230直接通信。第二处理器組105b不能初始化适配卡 110。
第 一处理器组105b还可以向装置例如所描绘的RAID子系统315 通过适配卡110传送发现通信610。因此,第一处理器组105a还可以 初始化RAID子系统315。相反,第二处理器组105b将适配卡110视
21为端点。因此第二处理器组105b并不负责或者试图初始化诸如RAID 子系统315的装置。
图7是例示本发明的适配卡通信700的 一个可替代实施例的示意 框图。通信700示出图6的第一处理器组105a、第二处理器组105b、 适配卡110和RAID子系统115的逻辑表示。
如上所述,在设置模块410修改520切换模块210以在逻辑上将 第二处理器组105b连接到适配卡IIO作为拥有者处理器组之后,第二 处理器组105b具有与适配卡110的拥有者通信605。因此第二处理器 组可以初始化适配卡110、从适配卡IIO接收错误消息等。设置模块 410还可以在逻辑上断开第一处理器组105a。
图8是例示本发明的故障转移通信800的一个实施例的示意框 图。通信800示出图7的第一处理器组105a、第二处理器组105b、适 配卡110和RAID子系统115的逻辑表示。
作为拥有者处理器组,第二处理器组105b可以向RAID子系统 315传送发现通信610。另外,设置模块410修改540切换模块210 以在逻辑上从适配卡110断开第一处理器模块110。因此,虽然第一 处理器模块IIO可以向适配卡IIO传送诸如随机数据的二进制数据, 但是适配卡110可以不接收所传送的二进制数据。
本发明的实施例执行从拥有适配卡110的第一处理器组105a到 第二处理器组105b的故障转移。本发明优选地支持当第一处理器组 105a发生故障时继续^f吏用适配卡110。
本发明可以被实施为其它具体形式而不偏离其精神或者基本特
本发明的范围因此由所附权利要求而非由前述说明所表示。在与权利 要求等效的含义和范围内的所有改变均被涵盖于它们的范围内。
权利要求
1.一种用于适配卡故障转移的设备,所述设备包括切换模块,所述切换模块包括半导体逻辑块并且被配置为通过第一端口在逻辑上将第一处理器组连接到适配卡作为拥有者处理器组,其中,除第二端口以外,所述拥有者处理器组管理所述适配卡并且从所述适配卡接收错误消息,并且所述切换模块进一步通过所述第二端口在逻辑上将第二处理器组连接到所述适配卡作为非拥有者处理器组,其中所述非拥有者处理器组管理所述第二端口;探测模块,所述探测模块包括半导体逻辑块和在处理器上执行的软件指令并且被配置为探测所述第一处理器组的故障;和设置模块,所述设置模块包括在处理器上执行的软件指令并且被配置为修改所述切换模块以在逻辑上将所述第二处理器组连接到所述适配卡作为拥有者处理器组并且响应于探测到所述故障在逻辑上从所述适配卡断开所述第一处理器组。
2. 根据权利要求1所述的设备,其中所述切换模块被配置为响 应于来自所述非拥有者处理器组的发现命令而将所述适配卡识别为端 点。
3. 根据权利要求1或者2所述的设备,其中所述切换模块被配 置为响应于来自所述拥有者处理器組的发现命令向被连接到所述适配 卡的装置提供可视性。
4. 根据权利要求l、 2或者3所述的设备,其中所述拥有者处理 器组通过所述切换模块与所述适配卡的控制器通信。
5. 根据权利要求1、 2、 3或者4所述的设备,其中所述设置模 块通过对于所述适配卡的设置寄存器重新编程而修改所述切换模块以 在逻辑上将所述第二处理器组连接到所述适配卡作为拥有者处理器 组。
6. 根据权利要求1、 2、 3或者4所述的设备,其中所述设置模 块通过将所述适配卡从使用第 一存储器模块的控制存储切换为第二存储器模块的控制存储而修改所述切换模块以在逻辑上将所述第二处理 器组连接到所述适配卡作为拥有者处理器组。
7. 根据前面权利要求中任何一项所述的设备,其中所述适配卡 使用快速外围设备互连(PCIe)接口与所述第 一和第二处理器组通信。
8. 根据权利要求1到6中任何一项所述的设备,其中所述适配卡使用选自外围设备互连扩展(PCI-X)接口和外围设备互连(PCI) 接口的接口与所述第一和第二处理器组通信。
9. 一种用于适配卡故障转移的系统,所述系统包括 与适配卡通信的第一处理器组;与所述适配卡通信并且包括被配置为探测所述第一处理器组的 故障的探测模块的第二处理器组;所述适配卡包括被配置为管理所述适配卡的控制器;被配置为存储包括用于所述控制器的软件指令和设置数据的控 制存储的第一存储器模块;切换模块,所述切换模块包括半导体逻辑块并且通过第 一端口在 逻辑上将所述第一处理器组连接到所述适配卡作为拥有者处理器组,其中,除第二端口以外,所述拥有者处理器组管理所述适配卡并且从 所述适配卡接收错误消息,并且所述切换模块进一步通过第二端口在 逻辑上将所述第二处理器組连接到所述适配卡作为非拥有者处理器 组,其中所述非拥有者处理器组管理所述第二端口;所述第二处理器组进一步包括设置模块,所述设置模块被配置为 修改所述切换模块以在逻辑上将所述第二处理器组连接到所述适配卡 作为拥有者处理器组并且响应于探测到故障在逻辑上从所述适配卡断 开所述笫一处理器组。
10. 根据权利要求9所述的系统,其中所述切换模块被配置为响 应于来自所述非拥有者处理器组的发现命令而将所述适配卡识别为端 点。
11. 根据权利要求9所述的系统,其中所述切换模块被配置为响 应于来自所述拥有者处理器组的发现命令向被连接到所述适配卡的装置提供可视性。
12. 根据权利要求9或者10所述的系统,其中所述拥有者处理 器组通过所述切换模块与所述适配卡的控制器通信。
13. 根据权利要求9、 10或者11所述的系统,其中所述设置模 块通过对于所述适配卡的设置寄存器重新编程而修改所述切换模块以 在逻辑上将所述第二处理器组连接到所述适配卡作为拥有者处理器 组。
14. 根据权利要求9、 10或者11所述的系统,其中所述设置模 块通过将所述适配卡从使用第一存储器模块的控制存储切换为第二存 储器模块的控制存储而修改所述切换模块以在逻辑上将所述第二处理 器组连接到所述适配卡作为拥有者处理器组。
15. 根据权利要求9到14中任何一项所述的系统,其中所述适 配卡使用PCIe接口与所述第一和第二处理器组通信。
16. 根据权利要求9到14中任何一项所述的系统,其中所述适 配卡使用选自PCI-X接口和PCI接口的接口与所述第 一和第二处理器 组通信。
17. 根据权利要求9到16中任何一项所述的系统,其中所述适 配卡被配置为以太网控制器。
18. 根据权利要求9到16中任何一项所述的系统,其中所述适 配卡被配置为独立磁盘冗余阵列(RAID)控制器。
19. 根据权利要求9到16中任何一项所述的系统,其中所述适 配卡被配置为存储区网络控制器。
20. —种包括具有处理器可读程序的处理器可用介质的处理器 程序产品,其中所述处理器可读程序当在处理器上执行时使得所述处 理器通过第一端口将适配卡的切换模块连接到第一处理器组作为拥 有者处理器组,其中,除第二端口以外,所述拥有者处理器组管理所 述适配卡并且从所述适配卡接收错误消息;通过第二端口将第二处理器组连接到所述适配卡作为非拥有者处理器组,其中所述非拥有者处理器组管理所述第二端口; 探测所述第一处理器组的故障;和修改所述切换模块以在逻辑上将所述第二处理器组连接到所述 适配卡作为拥有者处理器组并且响应于探测到故障而在逻辑上从所述 适配卡断开所述第一处理器組。
21. 根据权利要求20所述的处理器程序产品,其中所述切换模 块被配置为响应于来自所述非拥有者处理器组的发现命令而将所述适 配卡识别为端点。
22. 根据权利要求20或者21所述的处理器程序产品,其中所述 切换模块被配置为响应于来自所述拥有者处理器组的发现命令向被连 接到所述适配卡的装置提供可视性。
23. 根据权利要求20、 21或者22所述的处理器程序产品,其中 所述拥有者处理器组通过所述切换模块与所述适配卡的控制器通信。
24. 根据权利要求20、 21、 22或者23所述的处理器程序产品, 其中所述处理器可读程序被进一步配置为通过对于所述适配卡的设置 寄存器重新编程而使得所述处理器将所述第二处理器组连接到所述适 配卡作为拥有者处理器组。
25. 根据权利要求20、 21、 22或者23所述的处理器程序产品, 其中所述处理器可读程序被进一步配置为通过将所述适配卡从使用第 一存储器模块的控制存储切换为第二存储器模块的控制存储而使得所 述处理器将所述第二处理器组连接到所述适配卡作为拥有者处理器 组。
26. 根据权利要求20到25中任何一项所述的处理器程序产品, 其中所述适配卡使用PCIe接口与所述第一和第二处理器组通信。
27. 根据权利要求20到25中任何一项所述的处理器程序产品, 其中所述适配卡使用选自PCI-X接口和PCI接口的接口与所述第 一和 第二处理器组通信。
28. —种用于适配卡故障转移的方法,所述方法包括以下步骤 通过第一端口使用切换模块在逻辑上将第一处理器组连接到适配卡作为拥有者处理器组,其中,除第二端口以外,所述拥有者处理器组管理所述适配卡并且从所述适配卡接收错误消息;通过第二端口使用所述切换模块在逻辑上将第二处理器组连接到所述适配卡作为非拥有者处理器组,其中所述非拥有者处理器组管理所述第二端口;探测所述第一处理器组的故障;和修改所述切换模块以在逻辑上将所述第二处理器組连接到所述 适配卡作为拥有者处理器组并且响应于探测到故障在逻辑上从所述适 配卡断开所述第一处理器组。
29. 根据权利要求28所述的方法,其中所述切换模块被配置为 响应于来自所述非拥有者处理器组的发现命令而将所述适配卡识别为
30. 根据权利要求28或者29所述的方法,其中所述切换模块被 配置为响应于来自所述拥有者处理器组的发现命令向被连接到所述适 配卡的装置提供可视性。
31. 根据权利要求28、 29或者30所述的方法,其中所述拥有者 处理器组通过所述切换模块与所述适配卡的控制器通信。
32. 根据权利要求28、 29、 30或者31所述的方法,其中修改所 述切换模块以在逻辑上将所述第二处理器组连接到所述适配卡作为拥 有者处理器组的步骤包括对于所述适配卡的设置寄存器重新编程。
33. 根据权利要求28、 29、 30或者31所述的方法,其中修改所 述切换模块以在逻辑上将所述第二处理器组连接到所述适配卡作为拥 有者处理器组的步骤包括将所述适配卡从使用第一存储器模块的控 制存储切换为第二存储器模块的控制存储。
34. 根据权利要求28到33中任何一项所述的方法,其中所述适 配卡使用快速外围设备互连(PCIe)接口与所述第一和第二处理器组 通信。
35. 根据权利要求28到33中任何一项所述的方法,其中所述适 配卡使用选自外围设备互连扩展(PCI-X )接口和外围设备互连(PCI)接口的接口与所述第一和第二处理器组通信。
36. —种计算机程序,包括当在计算机上运行所述程序时适于执 行根据权利要求28到35中任何一项所述的方法的程序代码装置。
全文摘要
本发明公开了一种用于适配卡故障转移的设备、系统和方法。切换模块通过第一端口将第一处理器组连接到适配卡作为拥有者处理器组。除第二端口之外,拥有者处理器组管理适配卡并且从适配卡接收错误消息。切换模块进一步通过第二端口将第二处理器组连接到适配卡作为非拥有者处理器组。非拥有者处理器组管理第二端口。探测模块探测第一处理器组的故障。设置模块修改切换模块以在逻辑上将第二处理器组连接到适配卡作为拥有者处理器组并且响应于探测到故障而在逻辑上从适配卡断开第一处理器组。
文档编号G06F11/20GK101663650SQ200880012500
公开日2010年3月3日 申请日期2008年4月18日 优先权日2007年4月20日
发明者A·D·沃尔斯, C·斯帕尼尔, S·布里尼克, 宋正中 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1