CN101321085A - 负载平衡的联网环境下的智能故障转移 - Google Patents

负载平衡的联网环境下的智能故障转移 Download PDF

Info

Publication number
CN101321085A
CN101321085A CNA2008100988966A CN200810098896A CN101321085A CN 101321085 A CN101321085 A CN 101321085A CN A2008100988966 A CNA2008100988966 A CN A2008100988966A CN 200810098896 A CN200810098896 A CN 200810098896A CN 101321085 A CN101321085 A CN 101321085A
Authority
CN
China
Prior art keywords
nic
network
connection
hardware
fault
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
Application number
CNA2008100988966A
Other languages
English (en)
Other versions
CN101321085B (zh
Inventor
阿亚兹·阿卜杜拉
诺曼·K·陈
阿南德·拉贾戈帕兰
阿舒托什·K·杰哈
赫马马利尼·马尼克瓦萨甘
萨米尔·南达
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia Corp
Original Assignee
Nvidia Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of CN101321085A publication Critical patent/CN101321085A/zh
Application granted granted Critical
Publication of CN101321085B publication Critical patent/CN101321085B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/1735Network adapters, e.g. SCI, Myrinet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40006Architecture of a communication node
    • H04L12/40013Details regarding a bus controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1608Error detection by comparing the output signals of redundant hardware
    • G06F11/1625Error detection by comparing the output signals of redundant hardware in communications, e.g. transmission, interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2005Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication controllers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0659Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Small-Scale Networks (AREA)

Abstract

本发明提供一种位于网络装置驱动器中的散列表,其保存关于计算装置内每个网络接口(NIC)的业务特性的数据。如果所述计算装置中的NIC中的一者变得不可靠,那么所述散列引擎中的成本函数允许软件驱动器启动在所述计算装置中的其余的可靠NIC间重新分配网络业务。使用这种散列引擎,所述软件驱动器能够以使网络业务在其余的可靠NIC上的分配最优化的方式,智能地将不可靠的NIC上的网络连接中的每一者重新引导到计算装置内的可靠NIC。或者,如果连接从旧的NIC移动到新的NIC,那么软件驱动器可检测被移动的连接,并将所述被移动的连接卸载到所述新的NIC上的硬件卸载引擎。通过此方法,当对网络连接进行故障转移时可更容易避免例如网络接口过载和计算装置性能降级等问题,从而相对于现有技术而改进总体系统性能。

Description

负载平衡的联网环境下的智能故障转移
技术领域
本发明的实施例大体上涉及网络通信,且更具体地说,涉及一种用于在负载平衡的联网环境下对网络连接进行智能故障转移的系统和方法。
背景技术
性能和可靠性是对现代计算机网络的关键要求。当计算装置上的网络接口(NIC)不再可靠时,所述NIC的联网性能可能会出现实质下降,可能下降到零。在这种情形下,当代的解决方案是将网络连接从不可靠的NIC重新引导到同一计算装置上的其它可靠NIC,这是一种被称为“故障转移”的技术。尽管故障转移可能会减轻存在不可靠NIC的直接问题,但其余可靠NIC上的来自经过故障转移的连接的额外网络业务可能会导致其余可靠NIC中的一者或一者以上变得过载,从而降低那些接口的性能。此外,其余可靠NIC上的额外网络业务可能会实质上增加计算装置所执行的网络处理,从而降低计算装置的性能。
正如前文所说明,此项技术中需要一种对到达一个或一个以上可靠NIC的网络连接进行故障转移的技术,其降低了NIC过载或其它可能削弱总体系统性能的现象的可能性。
发明内容
本发明的一个实施例陈述一种在不依赖于交换机的网络环境下将网络连接从主机软件模块卸载到故障转移网络接口卡(NIC)中所包含的第一硬件卸载引擎的方法。所述方法包含以下步骤:请求得到故障转移NIC的身份;从散列算法的输出确定故障转移NIC的身份;设置第一硬件卸载引擎中所包含的第一受托连接表中的条目,其中所述条目包含网络连接的连接状态;以及设置主机软件模块中所包含的连接表中的对应于所述网络连接的硬件识别符,其中所述经设置的硬件识别符指示网络连接正通过第一硬件卸载引擎而运行。
所揭示的方法的一个优点在于,当对网络连接进行故障转移时可能更容易避免例如网络接口过载等问题,从而相对于现有技术改进了总体系统性能。
附图说明
为了能更详细地了解本发明的上述特征,可通过参考实施例来获得上文简要概述的本发明的更具体描述内容,附图中说明了所述实施例中的一些实施例。然而应注意的是,附图仅说明本发明的典型实施例,且因此不应被认为是限制本发明的范围,因为本发明可认可其它同等有效的实施例。
图1A和图1B说明其中可实施本发明的一个或一个以上方面的计算装置;
图2说明用于将网络连接从出现故障的NIC去卸载到软件的方法步骤的流程图;
图3A和图3B说明用于在不依赖于交换机的网络环境下将网络连接从软件卸载到故障转移NIC的方法步骤的流程图;以及
图4A和图4B说明在通过外部构件将网络连接移动到新的NIC时将网络连接卸载到新的NIC的方法步骤的流程图。
具体实施方式
可通过使用跟踪网络统计资料的散列引擎来实现从出现故障的NIC到一个或一个以上操作NIC的网络连接的智能故障转移,所述统计资料包含不依赖于交换机(即,其中将计算装置100的NIC耦接到外部网络的交换机不在802.3ad模式下操作的网络环境)的网络环境下的连接数目和通过每个NIC传输和接收的业务的量。一旦已检测到出现故障或不可靠的NIC,就询问散列引擎以获得替代的NIC,所述替代的NIC可能利用不足,或以其它方式能够容纳来自出现故障的NIC的连接。此询问允许由替代的NIC来处理一个或一个以上额外的网络连接,而不会超出所述NIC的容量,从而避免可能会实质上降低与NIC相关联的计算装置的网络性能的故障转移操作。可通过以下方式来实现额外的网络性能益处:从出现故障的NIC内的硬件卸载引擎去卸载所述连接,且随后将那些连接卸载到一个或一个以上故障转移NIC内的硬件卸载引擎。
在本发明的另一实施例中,在计算装置外部执行对故障转移NIC的选择,可能在依赖于交换机(即,其中将计算装置100的NIC耦接到外部网络的交换机在802.3ad模式下操作的网络环境)的网络环境下是通过交换机,和在不依赖于交换机的网络环境下是通过外部计算装置。由于此实施例中用于选择故障转移NIC的过程不同于不依赖于交换机的环境下用于选择NIC的过程,所以单独考虑此实施例。此外,由于从将网络连接从软件TCP/IP(传输控制协议和因特网协议)堆栈卸载到硬件卸载引擎得到的益处对所属领域的技术人员来说是众所周知的,所以本文中将不论述这些问题。
图1A和图1B说明其中可实施本发明的一个或一个以上方面的计算装置100。如图所示,计算装置100包含主存储器102、存储器控制器104、微处理器106、I/O控制器108以及NIC 110,118。NIC 110包含多播列表116和硬件卸载引擎(“HOE”)112,硬件卸载引擎112进一步包含受托连接表(“DCT”)114。NIC 118包含多播列表124和HOE 120,HOE 120进一步包含DCT 122。HOE 112,120包含经配置以用于处理与计算装置100与一个或一个以上远程网络计算装置(未图示)之间的已选择性地卸载到NIC110,118的网络连接相关联的网络帧的逻辑。通过用NIC 110,118中的逻辑来处理网络帧(有时被称为“在硬件中处理连接”),而不是像常规做法那样在主机软件TCP/IP堆栈中执行那些处理功能(有时被称为“在软件中处理连接”),可实质上减少NIC 110,118与微处理器106之间的通信以及由微处理器106执行的计算。
DCT 114,122经配置以包含多个受托连接表条目,其中每个条目对应于帧由包含所述特定DCT的HOE处理的网络连接。在本发明的一个实施例中,每个DCT条目包含每个受托连接的以下状态信息:目的地(即远程计算装置)因特网协议(“IP”)地址、目的地端口编号、源(计算装置100)端口编号和在硬件中运行所述受托连接所必需的某一TCP/IP连接状态。
存储器控制器104耦接到主存储器102且耦接到微处理器106,且I/O控制器108耦接到微处理器106以及NIC 110,118。在本发明的一个实施例中,微处理器106通过将命令或数据写入到I/O控制器108中来将命令或数据传输到NIC 110,118。一旦将此类命令或数据写入到I/O控制器108中,I/O控制器108就视情况将所述命令或数据翻译成目标NIC可理解的格式,并将所述命令或数据传送到目标NIC。类似地,NIC 110,118通过将命令或数据写入到I/O控制器108中来将命令或数据传输到微处理器106,且I/O控制器108视情况将所述命令或数据翻译成微处理器106可理解的格式,并将所述命令或数据传送到微处理器106。前面所提及的耦接可实施成存储器总线或I/O总线,例如PCITM总线,或其任何组合,或者可另外以任何其它技术上可行的方式实施。
如图1B中更详细展示,主存储器102包含操作系统126和软件驱动器128。软件驱动器128包含负载平衡和故障转移(“LBFO”)模块130和TCP/IP堆栈134。LBFO模块130跟踪每个NIC的联网状态(例如,通过监视每个NIC的链接状态、每个NIC上的发送和接收错误的数目和/或是否每个NIC都在发送和接收保持有效的包),并在网络业务正从出现故障的NIC移动到软件或从软件移动到故障转移NIC时与TCP/IP堆栈134通信。LBFO模块130包含散列引擎132,其基于前面所提及的联网统计资料而智能地确定网络连接应如何在计算装置100中的起不同作用的NIC上分布,如2007年5月18日申请的且序号为________且代理人案号为NVDA/P00P001882的题为“负载平衡的联网环境下的智能故障恢复(Intelligent Failback In a Load-Balanced NetworkingEnvironment)”的相关美国专利申请案中所描述。此相关专利申请案以引用的形式并入本文中。TCP/IP堆栈134包含连接表136,连接表136包含多个连接表条目,其中每个条目对应于计算装置100与远程计算装置之间的网络连接。在一个实施例中,每个连接表条目包含每个连接的以下状态信息:连接的目的地IP地址、目的地端口编号、源IP地址、源端口编号和硬件识别符,以及足以处理丢失的包的TCP/IP状态等。重要的是,特定连接的硬件识别符指示哪个HOE(如果存在的话)正在硬件中处理所述连接。在一个实施例中,可按常规将正在硬件中处理的每个连接的连接状态从负责处理所述连接的HOE内的受托连接表复制到连接表136。举例来说,可使用反复计时器来复制状态信息。以此方式,每个受托连接的连接状态的经更新的拷贝可保存在连接表136中,以供TCP/IP堆栈134使用。
计算装置100可以是桌上型计算机、服务器、膝上型计算机、掌上型计算机、个人数字助理、平板计算机、游戏控制台、蜂窝式电话或处理信息的任何其它类型的类似装置。
图2说明根据本发明一个实施例的用于将网络连接从出现故障的NIC去卸载到软件的方法步骤200的流程图。尽管参考计算装置100来描述所述方法,但所属领域的技术人员将了解,任何经配置以执行所述方法步骤(以任何次序)的系统都在本发明的范围内。
如图所示,用于去卸载网络连接的方法在步骤202处开始,其中LBFO模块130监视每个NIC 110,118的状态以寻找所述NIC之一出现故障或变得不可靠的指示。在一个实施例中,当存在三种情况中的任一者时确定NIC已经出现故障或变得不可靠。第一,LBFO模块130可基于NIC的链接指示而确定对于所述NIC存在链接断开,这意味着网络电缆已变得断开。第二,LBFO模块130可基于由NIC发送的包的数目与由所述包传输到的远程计算装置确认的包的数目之间的比较,而确定所述NIC传输的实质数目或百分比的包丢失了。第三,LBFO模块130可确定在计算装置100中的N1C 110,118之间传输的保持有效的包正被丢失。如2005年12月15日申请的且序号为11/303,285且代理人案号为NVDA/P001879的题为“识别网络接口卡组内出现故障的网络接口卡的技术(Technique for Identifying a Failed Network Interface Card within a Team of NetworkInterface Cards)”的相关美国专利申请案中所描述,可基于每个NIC正在如何传输和/或接收保持有效的包而识别出现故障的NIC。此相关专利申请案以引用的形式并入本文中。通过监视每个NIC以寻找这些类型的指示,LBFO模块130能够可靠地检测到出现故障的或不可靠的NIC。
在步骤204中,LBFO模块130基于在步骤202中监视的指示来确定NIC是否已出现故障或变得不可靠。如果LBFO模块130确定未出现故障,那么所述方法返回到步骤202,其中LBFO模块130继续监视NIC 110,118以寻找故障。
然而,如果发现NIC已出现故障或变得不可靠,那么所述方法进行到步骤206到214,其中将通过所述NIC运行的连接去卸载到软件。仅出于论述的目的,假定NIC 110已出现故障。在步骤206中,LBFO模块130用信号通知TCP/IP堆栈134 NIC 110已出现故障或已变得不可靠。在步骤208中,LBFO模块用信号通知散列引擎132 NIC 110已出现故障或变得不可靠,以避免向出现故障的NIC 110指配任何新的连接。在接收到这个信号后,散列引擎132立即调整其内部负载平衡算法,以便不向出现故障的NIC 110指配新的连接。
在步骤210中,对于每个通过出现故障的NIC 110运行的连接,出现故障的NIC的HOE(例如,HOE 112)使DCT(例如,DCT 114)中对应于其连接的条目失效。在一个实施例中,通过以下方式来使DCT条目失效:TCP/IP堆栈134向HOE 112发送使DCT条目失效的命令,HOE 112接收所述命令并使所述DCT条目失效,且HOE 112向TCP/IP堆栈134确认这项操作的完成。在步骤212中,对于每个从出现故障的NIC 110去卸载的连接,如果DCT 114中对于所述连接的连接状态不与连接表136中的连接状态匹配,那么TCP/IP堆栈134将所述连接的连接状态从DCT 114复制到连接表136。在步骤214中,对于每个从出现故障的NIC 110去卸载的连接,TCP/IP堆栈134使连接表136中的所述连接的硬件识别符失效。使硬件识别符失效指示所述连接正通过TCP/IP堆栈134运行。重要的是,一旦已在DCT 114中使连接的连接状态失效,且已在连接表136中使连接的硬件识别符失效,此后就在软件中通过TCP/IP堆栈134而不是在硬件中通过HOE 112来处理任何在所述连接上传输或接收到的包。一旦已经以此方式将出现故障的NIC 110上的所有连接从硬件去卸载到软件,所述方法就在步骤216中终止。
图3A和图3B说明根据本发明一个实施例的用于在不依赖于交换机的网络环境下将网络连接从软件卸载到故障转移NIC的方法步骤的流程图。尽管参考计算装置100来描述所述方法,但所属领域的技术人员将了解,任何经配置以执行所述方法步骤(以任何次序)的系统都在本发明的范围内。
重要的是,在不依赖于交换机的网络环境下,LBFO模块130为每个去卸载到软件的连接识别故障转移NIC,如上文在图2中所述。
如图所示,在步骤302到312中描述用于将单个网络连接从软件卸载到故障转移NIC的方法。在方法200中,针对每个去卸载到软件的连接重复这些步骤,使得所有被去卸载的连接最终都从软件卸载到一个或一个以上故障转移NIC。在步骤302中,TCP/IP堆栈134请求LBFO模块130识别应当向其卸载当前被去卸载连接的NIC。同样,如步骤208中所论述,散列引擎132跟踪计算装置100中每个NIC的状态,并在NIC出现故障或变得不可靠时调整其连接指配算法,以避免将任何新的或现有的连接卸载到所述出现故障的或不可靠的NIC。在步骤304中,LBFO模块130询问散列引擎132,以识别应向其卸载当前连接的合适的NIC。仅出于论述的目的,假定散列引擎132将故障转移NIC 118识别为应向其卸载当前连接(其先前已经从出现故障的NIC 110去卸载)的NIC。
在步骤306中,软件驱动器128将出现故障的NIC 110的MAC地址添加到故障转移NIC 118的多播列表124,这允许故障转移NIC 118接收送交到出现故障的NIC 110的MAC地址的包。在步骤308中,TCP/IP堆栈134指导故障转移NIC 118将获知包(learning packet)发送到交换机。所述获知包可能是任何包含出现故障的NIC 110的MAC地址的技术上可行的包类型。如众所周知,从故障转移NIC 118发送此包会导致交换机对其自身进行重新配置,以便将以出现故障的NIC 110的MAC地址为目的地的后续包路由到故障转移NIC 118。因此,此后由故障转移NIC 118来接收与正被卸载到故障转移NIC 118的当前连接有关的所有网络业务。如代理人案号为NVDA/P00P001882的相关专利申请案中更详细地描述,这种方法的结果是来自特定的出现故障的NIC的所有连接都被卸载到同一故障转移NIC。
在步骤310中,HOE 120设置DCT 122中对应于正被卸载的当前连接的连接状态。而且,设置DCT条目中的连接状态包含设置其目的地IP地址、目的地端口编号、源端口编号和正被卸载的连接的特定TCP/IP状态。在一个实施例中,通过以下方式设置DCT条目:TCP/IP堆栈134向HOE 120发送设置连接状态的命令,HOE 120接收所述命令并设置连接状态,且HOE 120向TCP/IP堆栈134确认此操作的完成。在步骤312中,对于正被卸载的连接,TCP/IP堆栈134将连接表136内的硬件识别符设置为代表故障转移NIC 118的HOE 120的装置句柄。硬件识别符指示所述连接正通过HOE 120而运行。重要的是,一旦将连接的硬件识别符设置为特定HOE的装置句柄,此后就通过所述HOE在硬件中处理在所述连接上传输或接收的任何包。
在步骤314中,TCP/IP堆栈134确定是否已将出现故障的NIC 110的所有被去卸载的连接都卸载到故障转移NIC。如果尚未将所有被去卸载的连接都卸载到故障转移NIC,那么方法返回到步骤302到312,其中将另一被去卸载的连接卸载到故障转移NIC。然而,如果已将所有被去卸载的连接都卸载到故障转移NIC,那么所述方法在步骤316中终止。
图4说明根据本发明一个实施例的用于在通过外部构件将网络连接移动到新的NIC时将网络连接卸载到新的NIC的方法步骤的流程图。尽管参考计算装置100来描述所述方法的,但所属领域的技术人员将了解,任何经配置以执行所述方法步骤(以任何次序)的系统都在本发明的范围内。
如前所述,在至少两种情形下,当将连接从旧的NIC移动到新的NIC(即故障转移NIC)时,可能会发生故障转移。一种情形涉及依赖于交换机的网络环境,其中交换机确定NIC已经出现故障或已变得不可靠,且因此将与所述出现故障或不可靠的NIC相关联的一些或所有连接移动到一个或一个以上故障转移NIC。另一种情形涉及不依赖于交换机的网络环境,其中将计算装置100针对一个连接接收到的包送交到除旧的NIC之外的NIC(即新的/故障转移NIC)并由其接收。此处,网络中除计算装置100之外的某个计算装置已主动将与所述连接相关联的包传输到新的NIC。在这两种情形下,当LBFO模块130检测到正在除旧的NIC之外的NIC上接收到用于所述连接的包时,LBFO模块130认识到已为所述连接选择了新的NIC。如下文中更详细地描述,LBFO模块130监视NIC以寻找传入的包,确定传入的包是否指示被移动的连接,从旧的NIC去卸载所述被移动的连接,并将所述被移动的连接卸载在新的NIC上。仅出于论述的目的,假定NIC 110是旧的NIC。
如图所示,卸载网络连接的方法在步骤402处开始,其中LBFO模块130监视NIC以寻找网络业务,如上文所述。在步骤404中,对于给定连接,LBFO模块130检测已在新的NIC上而不是在旧的NIC 110上接收到的用于所述连接的包。同样,这可在至少两种情形下发生。第一种情况是,在依赖于交换机的网络环境下,交换机检测出现故障的或不可靠的NIC,并将连接移动到故障转移NIC。第二种情况是,在不依赖于交换机的网络环境下,计算装置开始向除旧的NIC之外的NIC发送用于连接的包,所述用于连接的包最初是在所述旧的NIC上接收到的。仅出于论述的目的,假定步骤404中识别的新的NIC是NIC 118。在步骤406中,软件驱动器128将连接从旧的NIC 110去卸载到软件,如上文先前相对于图2所描述。
在步骤408中,LBFO模块130将新NIC 118的身份传送到散列引擎132,这致使散列引擎132针对新的NIC 118上的额外连接而更新其内部数据结构。在步骤410中,HOE 120设置DCT 122中对应于正被卸载到NIC 118的连接的连接状态。同样,设置DCT条目中的连接状态包含设置其目的地IP地址、目的地端口编号、源端口编号和正被卸载的连接的特定TCP/IP状态。在一个实施例中,通过以下方式设置DCT条目:TCP/IP堆栈134向HOE 120发送设置连接状态的命令,HOE 120接收所述命令并设置连接状态,且HOE 120向TCP/IP堆栈134确认此操作的完成。在步骤412中,对于正被卸载的连接,TCP/IP堆栈134将连接表136内的硬件识别符设置为代表新的NIC 118的HOE 120的装置句柄,然后才返回到步骤402。同样,硬件识别符指示网络连接正通过HOE 120而运行。如本文中先前所描述,一旦将连接的硬件识别符设置为特定HOE的装置句柄,此后就通过所述HOE在硬件中处理在所述连接上传输或接收的任何包。
应注意的是,在与旧的NIC 110相关联的连接已经按照方法200被去卸载到软件之后,但在所述连接按照方法400卸载到新的NIC之前,计算装置100可传输来自散列引擎132临时选择的NIC上的软件的用于此连接的包。一般来说,通过以下方式执行对临时NIC的选择:LBFO引擎130询问散列引擎132以获知当前传输性能处于这样的等级的NIC:传输与额外连接相关联的包将不会实质上降级所述NIC上的现有连接的传输性能。按照方法400,一旦LBFO引擎130检测到已经在新的NIC上接收到与正在软件外运行的被去卸载的连接相关联的包,如上文所述,就中断临时NIC上用于此连接的包的传输,且将所述连接卸载到新的NIC,以便传输和接收包。
所揭示的方法的一个优点在于,当在不依赖于交换机的网络环境下对连接进行故障转移时,使用散列引擎来智能地在计算装置100中起不同作用的NIC间分配网络业务可相对于现有技术解决方案而实质上改进网络性能。所揭示的方法的另一优点在于,当将网络连接移动到故障转移NIC时,将网络连接卸载到故障转移NIC可相对于现有技术解决方案而实质上改进计算装置性能。
尽管前面的内容是针对本发明的实施例的,但可在不偏离本发明的基本范围的情况下,设计本发明的其它和进一步实施例。本发明的范围由所附权利要求书确定。

Claims (10)

1.一种用于在不依赖于交换机的网络环境下将网络连接从主机软件模块卸载到故障转移网络接口卡(NIC)中所包含的第一硬件卸载引擎的方法,所述方法包括:
请求所述故障转移NIC的身份;
从散列算法的输出确定所述故障转移NIC的所述身份;
设置所述第一硬件卸载引擎中所包含的第一受托连接表中的条目,其中所述条目包含所述网络连接的连接状态;以及
设置所述主机软件模块中所包含的连接表中的对应于所述网络连接的硬件识别符,其中所述经设置的硬件识别符指示所述网络连接正通过所述第一硬件卸载引擎而运行。
2.根据权利要求1所述的方法,其中所述网络连接已从已出现故障或变得不可靠的第二NIC中所包含的第二硬件卸载引擎去卸载,且所述方法进一步包含向与所述故障转移NIC相关联的多播列表添加与所述第二NIC相关联的媒体接入控制(MAC)地址的步骤。
3.根据权利要求2所述的方法,其中所述向与所述故障转移NIC相关联的所述多播列表添加与所述第二NIC相关联的所述MAC地址允许所述故障转移NIC接收送交到与所述第二NIC相关联的所述MAC地址的包。
4.根据权利要求1所述的方法,其进一步包括以下步骤:在将所述网络连接从所述主机软件模块卸载到所述故障转移NIC中所包含的所述第一硬件卸载引擎之前,将所述网络连接从第二NIC中所包含的第二硬件卸载引擎去卸载到所述主机软件模块。
5.根据权利要求4所述的方法,其中所述从所述第二NIC中所包含的所述第二硬件卸载引擎去卸载所述网络连接的步骤包含:
用信号通知所述第二NIC已出现故障或变得不可靠;
通知运行所述散列算法的散列引擎所述第二NIC已出现故障或变得不可靠;
使所述第二硬件卸载引擎中所包含的第二受托连接表中的条目失效,其中所述条目包含所述网络连接的连接状态;以及
使所述主机软件模块中所包含的所述连接表中的对应于所述网络连接的硬件识别符失效,其中所述失效的硬件识别符指示所述网络连接正通过所述主机软件模块而运行。
6.一种计算装置,其经配置以在不依赖于交换机的网络环境下将网络连接从联网协议模块卸载到故障转移网络接口卡(NIC)中所包含的第一硬件卸载引擎,所述计算装置包括:
多个NIC,其包含所述故障转移NIC;
主机处理器;以及
主机存储器,其耦接到所述主机处理器且经配置以存储软件驱动器,所述软件驱动器具有包含散列引擎的负载平衡故障转移(LBFO)模块和包含连接表的所述联网协议模块,其中:
所述联网协议模块经配置以从所述LBFO模块请求所述故障转移NIC的身份;
所述LBFO模块经配置以从由所述散列引擎执行的散列算法的输出确定所述故障转移NIC的所述身份;
在获知所述故障转移NIC的所述身份后,所述联网协议模块进一步经配置以传送到所述第一硬件卸载引擎以设置所述第一硬件卸载引擎中所包含的第一受托连接表中的条目,其中所述条目包含所述网络连接的连接状态;
所述第一硬件卸载引擎经配置以响应于来自所述联网协议模块的所述传送而设置所述第一受托连接表中的所述条目;以及
所述联网协议模块进一步经配置以设置所述连接表中对应于所述网络连接的硬件识别符,其中所述经设置的硬件识别符指示所述网络连接正通过所述第一硬件卸载引擎而运行。
7.根据权利要求6所述的计算装置,其中所述多个NIC包含已出现故障或变得不可靠的第二NIC,且所述网络连接已从第二NIC中所包含的第二硬件卸载引擎去卸载,且所述软件驱动器经配置以向与所述故障转移NIC相关联的多播列表添加与所述第二NIC相关联的媒体接入控制(MAC)地址。
8.根据权利要求7所述的计算装置,其中所述向与所述故障转移NIC相关联的所述多播列表添加与所述第二NIC相关联的所述MAC地址允许所述故障转移NIC接收送交到与所述第二NIC相关联的所述MAC地址的包。
9.根据权利要求6所述的计算装置,其中所述多个NIC包含已出现故障或变得不可靠的第二NIC,且在将所述网络连接从所述联网协议模块卸载到所述故障转移NIC中所包含的所述第一硬件卸载引擎之前,将所述网络连接从所述第二NIC中所包含的第二硬件卸载引擎去卸载到所述联网协议模块。
10.根据权利要求9所述的计算装置,其中:
所述LBFO模块经配置以用信号通知所述联网协议模块所述第二NIC已出现故障或变得不可靠;
所述LBFO模块进一步经配置以通知所述散列引擎所述第二NIC已出现故障或变得不可靠;
所述联网协议模块经配置以传送到所述第二硬件卸载引擎以使所述第二硬件卸载引擎中所包含的第二受托连接表中的条目失效,其中所述条目包含所述网络连接的连接状态;
所述第二硬件卸载引擎经配置以响应于来自所述联网协议模块的传送而使所述第二受托连接表中的所述条目失效;以及
所述联网协议模块进一步经配置以使所述连接表中对应于所述网络连接的所述硬件识别符失效,其中所述失效的硬件识别符指示所述网络连接正通过所述联网协议模块而运行。
CN2008100988966A 2007-05-18 2008-05-19 负载平衡的联网环境下的智能故障转移 Expired - Fee Related CN101321085B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/750,903 US7760619B2 (en) 2007-05-18 2007-05-18 Intelligent failover in a load-balanced networking environment
US11/750,903 2007-05-18

Publications (2)

Publication Number Publication Date
CN101321085A true CN101321085A (zh) 2008-12-10
CN101321085B CN101321085B (zh) 2012-03-14

Family

ID=40027405

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008100988966A Expired - Fee Related CN101321085B (zh) 2007-05-18 2008-05-19 负载平衡的联网环境下的智能故障转移

Country Status (5)

Country Link
US (1) US7760619B2 (zh)
JP (1) JP4974964B2 (zh)
KR (1) KR101038364B1 (zh)
CN (1) CN101321085B (zh)
TW (1) TWI348846B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105406989A (zh) * 2015-10-26 2016-03-16 华为技术有限公司 处理报文的方法、网卡及系统、更新信息的方法及主机

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1236354A4 (en) 1999-11-10 2009-04-22 Yahoo Inc INTERNET RADIO AND BROADCASTING METHOD
JP5176482B2 (ja) * 2007-10-26 2013-04-03 富士通株式会社 管理プログラム、管理方法、管理装置および通信システム
CN101631110B (zh) * 2008-07-15 2013-01-02 国际商业机器公司 基于相对位置动态确定连接建立机制的装置和方法
WO2013022433A1 (en) * 2011-08-09 2013-02-14 Hewlett-Packard Development Company, L.P. Count values to detect disconnected circuit
US9749173B2 (en) 2012-09-11 2017-08-29 Ciena Corporation Systems and methods for synchronizing forwarding databases across multiple interconnected layer-2 switches
US9098434B2 (en) 2012-09-11 2015-08-04 Ciena Corporation Load balancing systems and methods of MAC learning in multi-slot architectures
TWI466498B (zh) * 2012-12-10 2014-12-21 Chunghwa Telecom Co Ltd A system and method for providing an autonomous load balancing host in a distributed environment
CN104579727B (zh) 2013-10-17 2018-02-06 国际商业机器公司 一种管理网络节点的网络连接的方法和装置
US9525608B2 (en) * 2015-02-25 2016-12-20 Quanta Computer, Inc. Out-of band network port status detection
US10305796B2 (en) 2015-06-01 2019-05-28 Ciena Corporation Enhanced forwarding database synchronization for media access control addresses learned in interconnected layer-2 architectures
IL242353B (en) * 2015-10-29 2021-01-31 Verint Systems Ltd System and method for soft failovers for proxy servers
KR101881352B1 (ko) 2016-10-06 2018-07-25 주식회사 복음자리 국내산 밤을 활용한 밤 스프레드의 제조방법
KR102479757B1 (ko) * 2020-11-24 2022-12-22 한국과학기술원 네트워크 및 파일 입출력 연산 오프로딩 방법, 연산 오프로딩 시스템 및 컴퓨터 판독 가능 기록매체

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0660569A1 (en) 1993-12-22 1995-06-28 International Business Machines Corporation Method and system for improving the processing time of the path selection in a high speed packet switching network
JPH0816422A (ja) 1994-07-04 1996-01-19 Fujitsu Ltd バス通信方法及びバス通信システム
US5724510A (en) 1996-09-06 1998-03-03 Fluke Corporation Method of configuring a valid IP address and detecting duplicate IP addresses in a local area network
US5864535A (en) 1996-09-18 1999-01-26 International Business Machines Corporation Network server having dynamic load balancing of messages in both inbound and outbound directions
US5914938A (en) 1996-11-19 1999-06-22 Bay Networks, Inc. MAC address table search unit
US6052733A (en) 1997-05-13 2000-04-18 3Com Corporation Method of detecting errors in a network
US6208616B1 (en) 1997-05-13 2001-03-27 3Com Corporation System for detecting errors in a network
US6151297A (en) 1997-07-08 2000-11-21 Hewlett-Packard Company Method and system for link level server/switch trunking
US6687758B2 (en) * 2001-03-07 2004-02-03 Alacritech, Inc. Port aggregation for network connections that are offloaded to network interface devices
US6389479B1 (en) * 1997-10-14 2002-05-14 Alacritech, Inc. Intelligent network interface device and system for accelerated communication
US6570875B1 (en) 1998-10-13 2003-05-27 Intel Corporation Automatic filtering and creation of virtual LANs among a plurality of switch ports
US6567377B1 (en) 1999-03-18 2003-05-20 3Com Corporation High performance load balancing of outbound internet protocol traffic over multiple network interface cards
US6590861B1 (en) 1999-03-18 2003-07-08 3Com Corporation Combining virtual local area networks and load balancing with fault tolerance in a high performance protocol
US6560630B1 (en) 1999-03-18 2003-05-06 3Com Corporation Receive load balancing and fail over with multiple network interface cards
US6512774B1 (en) * 1999-03-18 2003-01-28 3Com Corporation Fail over with multiple network interface cards
US7299294B1 (en) 1999-11-10 2007-11-20 Emc Corporation Distributed traffic controller for network data
US6683882B1 (en) 1999-11-09 2004-01-27 3Com Corporation Method and system for directing transmission of IPX control packets to influence reception of IPX data packets
US6779039B1 (en) 2000-03-31 2004-08-17 Avaya Technology Corp. System and method for routing message traffic using a cluster of routers sharing a single logical IP address distinct from unique IP addresses of the routers
AU2001257364A1 (en) 2000-04-27 2001-11-07 Fortress Technologies, Inc. Network interface device having primary and backup interfaces for automatic dialbackup upon loss of a primary connection and method of using same
US7116664B2 (en) 2002-05-13 2006-10-03 International Business Machines Corporation Lookups by collisionless direct tables and CAMs
JP2003348093A (ja) * 2002-05-27 2003-12-05 Nec Corp 通信処理装置およびネットワークインタフェース切り替え方法
US7415028B1 (en) 2003-02-11 2008-08-19 Network Equipment Technologies, Inc. Method and system for optimizing routing table changes due to ARP cache invalidation in routers with split plane architecture
MXPA05011093A (es) * 2003-04-15 2006-05-19 Thomson Licensing Tecnicas para ofrecer accesos sin interrupcion en puntos de trabajo corporativos para usuarios huespedes y para usuarios locales.
US7324512B2 (en) 2003-06-12 2008-01-29 International Business Machines Corporation MAC layer bridging of network frames between isolated and external networks
US7934020B1 (en) 2003-09-19 2011-04-26 Vmware, Inc. Managing network data transfers in a virtual computer system
US20080022148A1 (en) 2003-12-11 2008-01-24 Amir Barnea Method and an Apparatus for Controlling Executables Running on Blade Servers
US7257731B2 (en) * 2003-12-23 2007-08-14 Nokia Inc. System and method for managing protocol network failures in a cluster system
US7877519B2 (en) 2004-10-18 2011-01-25 Intel Corporation Selecting one of a plurality of adapters to use to transmit a packet
US7783880B2 (en) * 2004-11-12 2010-08-24 Microsoft Corporation Method and apparatus for secure internet protocol (IPSEC) offloading with integrated host protocol stack management
US7505401B2 (en) 2005-01-31 2009-03-17 International Business Machines Corporation Method, apparatus and program storage device for providing mutual failover and load-balancing between interfaces in a network
JP2006253900A (ja) 2005-03-09 2006-09-21 Hitachi Ltd Ipアドレス引き継ぎ方法、ipアドレスアドレス引き継ぎプログラム、サーバおよびネットワークシステム
US7876689B2 (en) 2005-06-29 2011-01-25 Hewlett-Packard Development Company, L.P. Method and apparatus for load balancing network interface adapters based on network information
US20070201490A1 (en) 2005-07-13 2007-08-30 Mahamuni Atul B System and method for implementing ethernet MAC address translation
US7872965B2 (en) 2005-08-01 2011-01-18 Hewlett-Packard Development Company, L.P. Network resource teaming providing resource redundancy and transmit/receive load-balancing through a plurality of redundant port trunks
US7619993B2 (en) 2005-11-01 2009-11-17 International Business Machines Corporation Efficient probabilistic duplicate packet detector in computer networks
US7710862B2 (en) 2006-08-30 2010-05-04 Hewlett-Packard Development Company, L.P. Method and system of assigning media access control (MAC) addresses across teamed communication ports

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105406989A (zh) * 2015-10-26 2016-03-16 华为技术有限公司 处理报文的方法、网卡及系统、更新信息的方法及主机
WO2017071430A1 (zh) * 2015-10-26 2017-05-04 华为技术有限公司 处理报文的方法、网卡及系统、更新信息的方法及主机
CN105406989B (zh) * 2015-10-26 2019-04-05 华为技术有限公司 处理报文的方法、网卡及系统、更新信息的方法及主机

Also Published As

Publication number Publication date
JP4974964B2 (ja) 2012-07-11
JP2008305394A (ja) 2008-12-18
CN101321085B (zh) 2012-03-14
US20080285552A1 (en) 2008-11-20
US7760619B2 (en) 2010-07-20
KR20080101787A (ko) 2008-11-21
TW200913568A (en) 2009-03-16
KR101038364B1 (ko) 2011-06-01
TWI348846B (en) 2011-09-11

Similar Documents

Publication Publication Date Title
CN101321085B (zh) 负载平衡的联网环境下的智能故障转移
CN101360005B (zh) 负载平衡的联网环境下的智能故障转移
CN101383732B (zh) 负载平衡联网环境中的智能故障恢复
CN101394400B (zh) 用于建立避免地址解析协议高速缓冲存储器破坏的网络连接的方法
CN101350817B (zh) 网络业务的智能负载平衡和故障转移的方法和装置
CN101350818B (zh) 网络业务的智能负载平衡和故障转移
US7974186B2 (en) Connection recovery device, method and computer-readable medium storing therein processing program
CN100369413C (zh) 代理响应设备及用于代理响应设备的方法
US20040165525A1 (en) System and method for network redundancy
US8867375B2 (en) Failback to a primary communications adapter
CN101588304A (zh) 一种vrrp的实现方法和设备
EP1540473B1 (en) System and method for network interfacing in a multiple network environment
WO2010028553A1 (zh) 一种端口配置管理方法、单板及端口配置管理系统
CN101102231A (zh) 一种ppp链路路由设备的自动发现方法和装置
CN111654407B (zh) 一种堆叠系统及其双向转发检测方法
CN112100008B (zh) 一种跨节点的多链路冗余保护方法及系统
CN116192863B (zh) 微服务流量处理方法、dpu服务网格部署方法及系统
WO2020177471A1 (zh) 报文传输方法、装置及存储介质
KR100587531B1 (ko) 클러스터 시스템에서 통신 프로토콜의 처리를 이관하는방법 및 그 시스템
JPH04252537A (ja) 通信処理装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120314

Termination date: 20160519