CN101360005A - 负载平衡的联网环境下的智能故障转移 - Google Patents
负载平衡的联网环境下的智能故障转移 Download PDFInfo
- Publication number
- CN101360005A CN101360005A CNA2008100947735A CN200810094773A CN101360005A CN 101360005 A CN101360005 A CN 101360005A CN A2008100947735 A CNA2008100947735 A CN A2008100947735A CN 200810094773 A CN200810094773 A CN 200810094773A CN 101360005 A CN101360005 A CN 101360005A
- Authority
- CN
- China
- Prior art keywords
- nic
- networking
- connection
- bag
- connects
- 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
Links
- 230000006855 networking Effects 0.000 claims description 77
- 238000000034 method Methods 0.000 claims description 48
- 238000004364 calculation method Methods 0.000 claims description 41
- 238000012546 transfer Methods 0.000 claims description 26
- 230000005540 biological transmission Effects 0.000 claims description 23
- 230000001360 synchronised effect Effects 0.000 claims 2
- 238000001152 differential interference contrast microscopy Methods 0.000 abstract 3
- 238000010420 art technique Methods 0.000 abstract 1
- 230000015556 catabolic process Effects 0.000 abstract 1
- 238000006731 degradation reaction Methods 0.000 abstract 1
- 230000008901 benefit Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 239000013256 coordination polymer Substances 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2002—Error 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/2005—Error 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0668—Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/85—Active fault masking without idle spares
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/40—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Multimedia (AREA)
- Computer Hardware Design (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
- Maintenance And Management Of Digital Transmission (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的方法步骤的流程图;以及
图4说明在通过外部构件将网路连接移动到新的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日申请的且序号为11/750,914且代理人案号为NVDA/P001882的题为“负载平衡的联网环境下的智能故障恢复(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中的NIC 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堆栈134NIC 110已出现故障或已变得不可靠。在步骤208中,LBFO模块用信号通知散列引擎132NIC 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/P001882的相关专利申请案中更详细地描述,这种方法的结果是来自特定的出现故障的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 (22)
1.一种用于将网路连接从主机软件模块卸载到故障转移网络接口卡(NIC)中所包含的第一硬件卸载引擎的方法,所述方法包括:
监视正由多个起作用的NIC接收的包,其中与所述网路连接相关联的包正由多个起作用的NIC中的第一NIC接收;
检测与所述网路连接相关联的包已被所述多个起作用的NIC中的第二NIC接收到,且将所述第二NIC识别为所述故障转移NIC;
将所述故障转移NIC的身份传送到散列引擎,所述散列引擎运行用于确定故障转移NIC的身份的散列算法;
设置所述第一硬件卸载引擎中所包含的第一受托连接表中的条目,其中所述条目包含所述网路连接的连接状态;以及
设置所述主机软件模块中所包含的连接表中的对应于所述网络连接的硬件识别符,其中所述设置的硬件识别符指示所述网路连接正通过所述第一硬件卸载引擎而运行。
2.根据权利要求1所述的方法,其中在依赖于交换机的网络环境中建立所述网络连接,且所述交换机停止将与所述网路连接相关联的包传输到所述第一NIC,并开始将与所述网路连接相关联的包传输到所述第二NIC。
3.根据权利要求1所述的方法,其中在不依赖于交换机的网络环境中建立所述网络连接,且外部计算装置停止将与所述网路连接相关联的包传输到所述第一NIC,并开始将与所述网路连接相关联的包传输到所述第二NIC。
4.根据权利要求1所述的方法,其中所述网路连接是传输控制协议和因特网协议(TCP/IP)连接,且所述主机软件模块是TCP/IP堆栈。
5.根据权利要求1所述的方法,其进一步包含从所述第一NIC中所包含的第二硬件卸载引擎去卸载所述网络连接的步骤。
6.根据权利要求5所述的方法,其进一步包括从所述散列算法的输出中确定临时传输NIC的身份的步骤。
7.根据权利要求6所述的方法,其进一步包括经由所述临时传输NIC传输包的步骤。
8.根据权利要求7所述的方法,其进一步包括在检测到所述第二NIC已接收到与所述网路连接相关联的包之后立即中断经由所述临时传输NIC的包传输的步骤。
9.根据权利要求5所述的方法,其中所述从所述第一NIC中所包含的所述第二硬件卸载引擎去卸载所述网路连接的步骤包含:
检测并用信号通知所述第一NIC已出现故障或变得不可靠;
通知运行所述散列算法的散列引擎所述第一NIC已出现故障或变得不可靠;
使所述第二硬件卸载引擎中所包含的第二受托连接表中的条目失效,其中所述条目包含所述网路连接的连接状态;以及
使所述主机软件模块中所包含的所述连接表中的对应于所述网路连接的硬件识别符失效,其中所述失效的硬件识别符指示所述网路连接正通过所述主机软件模块而运行。
10.根据权利要求9所述的方法,其中所述从所述第二硬件卸载引擎去卸载所述网路连接的步骤进一步包含以下步骤:使所述第二受托连接表中的所述条目中的所述网路连接的连接状态与所述主机软件模块中所包含的所述连接表中的所述网路连接的连接状态同步。
11.根据权利要求10所述的方法,其中所述网路连接是传输控制协议和因特网协议(TCP/IP)连接,且所述主机软件模块是TCP/IP堆栈。
12.一种经配置以将网路连接从联网协议模块卸载到故障转移网络接口卡(NIC)中所包含的第一硬件卸载引擎的计算装置,所述计算装置包括:
多个NIC,其包含所述故障转移NIC;
主机处理器;以及
主机存储器,其耦合到所述主机处理器且经配置以存储软件驱动器,所述软件驱动器具有包含散列引擎的负载平衡故障转移(LBFO)模块和包含连接表的所述联网协议模块,其中:
所述LBFO模块经配置以监视多个起作用的NIC正接收的包,其中与所述网路连接相关联的包正由所述多个起作用的NIC中的第一NIC接收;
所述LBFO模块进一步经配置以检测与所述网路连接相关联的包已被所述多个起作用的NIC中的第二NIC接收到,并将所述第二NIC识别为所述故障转移NIC;
所述LBFO模块进一步经配置以将所述故障转移NIC的身份传送到运行用于确定故障转移NIC的身份的散列算法的所述散列引擎,且传送到所述联网协议模块,
在获知所述故障转移NIC的身份后,所述联网协议模块经配置以致使所述第一硬件卸载引擎设置所述第一硬件卸载引擎中所包含的第一受托连接表中的条目,其中所述条目包含所述网路连接的连接状态;以及
所述联网协议模块进一步经配置以设置连接表中对应于所述网络连接的硬件识别符,其中所述设置的硬件识别符指示所述网路连接正通过所述第一硬件卸载引擎而运行。
13.根据权利要求12所述的计算装置,其中在依赖于交换机的网络环境中建立所述网络连接,且所述交换机停止将与所述网路连接相关联的包传输到所述第一NIC,并开始将与所述网路连接相关联的包传输到所述第二NIC。
14.根据权利要求12所述的计算装置,其中在不依赖于交换机的网络环境中建立所述网络连接,且外部计算装置停止将与所述网路连接相关联的包传输到所述第一NIC,并开始将与所述网路连接相关联的包传输到所述第二NIC。
15.根据权利要求12所述的计算装置,其中所述网路连接是传输控制协议和因特网协议(TCP/IP)连接,且所述联网协议模块是TCP/IP堆栈。
16.根据权利要求12所述的计算装置,其中所述网路连接已从所述第一NIC中所包含的第二硬件卸载引擎去卸载。
17.根据权利要求16所述的计算装置,其中所述LBFO模块经配置以从所述散列引擎所执行的所述散列算法的输出中确定临时传输NIC的身份。
18.根据权利要求17所述的计算装置,其中一个或一个以上包经由所述临时传输NIC来传输。
19.根据权利要求18所述的计算装置,其中所述LBFO模块经配置以在检测到所述第二NIC已接收到与所述网路连接相关联的包之后立即停止经由所述临时传输NIC的包传输。
20.根据权利要求16所述的计算装置,其中所述从所述第一NIC中所包含的所述第二硬件卸载引擎去卸载所述网路连接的步骤包含:
所述LBFO模块经配置以检测所述第一NIC已出现故障或变得不可靠,并用信号通知所述联网协议模块所述第一NIC已出现故障或变得不可靠;
所述LBFO进一步经配置以通知所述散列引擎所述第一NIC已出现故障或变得不可靠;
所述联网协议模块经配置以传送到所述第二硬件卸载引擎以使所述第二硬件卸载引擎中所包含的第二受托连接表中的条目失效,其中所述条目包含所述网路连接的连接状态;
所述第二硬件卸载引擎经配置以响应于来自所述联网协议模块的传送而使所述第二受托连接表中的所述条目失效;以及
所述联网协议模块进一步经配置以使所述连接表中对应于所述网路连接的所述硬件识别符失效,其中所述失效的硬件识别符指示所述网路连接正通过所述联网协议模块而运行。
21.根据权利要求20所述的计算装置,其中所述联网协议模块进一步经配置以使所述第二受托连接表中的所述条目中的所述网路连接的连接状态与所述连接表中的所述网路连接的连接状态同步。
22.根据权利要求10所述的计算装置,其中所述网路连接是传输控制协议和因特网协议(TCP/IP)连接,且所述联网协议模块是TCP/IP堆栈。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/750,980 | 2007-05-18 | ||
US11/750,980 US7756012B2 (en) | 2007-05-18 | 2007-05-18 | Intelligent failover in a load-balanced network environment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101360005A true CN101360005A (zh) | 2009-02-04 |
CN101360005B CN101360005B (zh) | 2011-05-18 |
Family
ID=40027371
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100947735A Expired - Fee Related CN101360005B (zh) | 2007-05-18 | 2008-05-16 | 负载平衡的联网环境下的智能故障转移 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7756012B2 (zh) |
JP (1) | JP5272263B2 (zh) |
KR (1) | KR100927498B1 (zh) |
CN (1) | CN101360005B (zh) |
TW (1) | TWI410084B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017071430A1 (zh) * | 2015-10-26 | 2017-05-04 | 华为技术有限公司 | 处理报文的方法、网卡及系统、更新信息的方法及主机 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7457861B1 (en) * | 2003-12-05 | 2008-11-25 | Unisys Corporation | Optimizing virtual interface architecture (VIA) on multiprocessor servers and physically independent consolidated NICs |
US9430297B2 (en) * | 2008-12-15 | 2016-08-30 | International Business Machines Corporation | Load balancing of adapters on a multi-adapter node |
US8254249B2 (en) * | 2009-08-06 | 2012-08-28 | Telefonaktiebolaget L M Ericsson (Publ) | Session resilience prioritization queuing mechanism to minimize and eliminate packet loss |
US8626900B2 (en) | 2010-07-02 | 2014-01-07 | At&T Intellectual Property I, L.P. | Method and system to proactively identify degraded network performance |
US9154427B2 (en) * | 2012-12-31 | 2015-10-06 | Emulex Corporation | Adaptive receive path learning to facilitate combining TCP offloading and network adapter teaming |
CN105635331B (zh) * | 2014-11-18 | 2019-10-18 | 阿里巴巴集团控股有限公司 | 一种分布式环境下的服务寻址方法及装置 |
IL242353B (en) * | 2015-10-29 | 2021-01-31 | Verint Systems Ltd | System and method for soft failovers for proxy servers |
US11750441B1 (en) * | 2018-09-07 | 2023-09-05 | Juniper Networks, Inc. | Propagating node failure errors to TCP sockets |
US11334546B2 (en) | 2019-05-31 | 2022-05-17 | Cisco Technology, Inc. | Selecting interfaces for device-group identifiers |
Family Cites Families (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3224876B2 (ja) * | 1992-10-15 | 2001-11-05 | 株式会社東芝 | 多重通信分散処理システム |
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 |
US6570875B1 (en) * | 1998-10-13 | 2003-05-27 | Intel Corporation | Automatic filtering and creation of virtual LANs among a plurality of switch ports |
US6512774B1 (en) * | 1999-03-18 | 2003-01-28 | 3Com Corporation | Fail over with multiple network interface cards |
US6560630B1 (en) * | 1999-03-18 | 2003-05-06 | 3Com Corporation | Receive load balancing and fail over with 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 |
US6567377B1 (en) * | 1999-03-18 | 2003-05-20 | 3Com Corporation | High performance load balancing of outbound internet protocol traffic over 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 |
US6874147B1 (en) | 1999-11-18 | 2005-03-29 | Intel Corporation | Apparatus and method for networking driver protocol enhancement |
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 |
US20010056503A1 (en) * | 2000-04-27 | 2001-12-27 | Hibbard Richard J. | Network interface device having primary and backup interfaces for automatic dial backup upon loss of a primary connection and method of using same |
JP2003078567A (ja) | 2001-09-05 | 2003-03-14 | Nippon Telegr & Teleph Corp <Ntt> | 分散配置型高信頼通信システムおよびその制御装置、ならびに障害検知方法とそのプログラムと記録媒体 |
US6938192B1 (en) * | 2001-12-07 | 2005-08-30 | Broadband Energy Networks | Method and system for increasing reliability of data packet transmission against impulsive noise in powerline communication systems |
CN1647466A (zh) * | 2002-04-18 | 2005-07-27 | 国际商业机器公司 | 为通道适配器故障提供冗余度的方法 |
US7116664B2 (en) * | 2002-05-13 | 2006-10-03 | International Business Machines Corporation | Lookups by collisionless direct tables and CAMs |
US6721806B2 (en) * | 2002-09-05 | 2004-04-13 | International Business Machines Corporation | Remote direct memory access enabled network interface controller switchover and switchback support |
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 |
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 |
AU2003286412A1 (en) * | 2003-12-11 | 2005-06-29 | Bladefusion Technologies 2003 Ltd. | 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 |
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アドレスアドレス引き継ぎプログラム、サーバおよびネットワークシステム |
US7797460B2 (en) | 2005-03-17 | 2010-09-14 | Microsoft Corporation | Enhanced network system through the combination of network objects |
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 |
-
2007
- 2007-05-18 US US11/750,980 patent/US7756012B2/en active Active
-
2008
- 2008-05-13 JP JP2008126217A patent/JP5272263B2/ja not_active Expired - Fee Related
- 2008-05-15 TW TW097117857A patent/TWI410084B/zh not_active IP Right Cessation
- 2008-05-16 CN CN2008100947735A patent/CN101360005B/zh not_active Expired - Fee Related
- 2008-05-16 KR KR1020080045703A patent/KR100927498B1/ko not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017071430A1 (zh) * | 2015-10-26 | 2017-05-04 | 华为技术有限公司 | 处理报文的方法、网卡及系统、更新信息的方法及主机 |
Also Published As
Publication number | Publication date |
---|---|
JP2009009552A (ja) | 2009-01-15 |
TWI410084B (zh) | 2013-09-21 |
US20080285472A1 (en) | 2008-11-20 |
JP5272263B2 (ja) | 2013-08-28 |
US7756012B2 (en) | 2010-07-13 |
CN101360005B (zh) | 2011-05-18 |
KR20080101792A (ko) | 2008-11-21 |
KR100927498B1 (ko) | 2009-11-17 |
TW200920027A (en) | 2009-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101321085B (zh) | 负载平衡的联网环境下的智能故障转移 | |
CN101360005B (zh) | 负载平衡的联网环境下的智能故障转移 | |
CN101394400B (zh) | 用于建立避免地址解析协议高速缓冲存储器破坏的网络连接的方法 | |
CN101383732B (zh) | 负载平衡联网环境中的智能故障恢复 | |
CN101350817B (zh) | 网络业务的智能负载平衡和故障转移的方法和装置 | |
CN101350818B (zh) | 网络业务的智能负载平衡和故障转移 | |
US20040165525A1 (en) | System and method for network redundancy | |
CN100369413C (zh) | 代理响应设备及用于代理响应设备的方法 | |
US6594776B1 (en) | Mechanism to clear MAC address from Ethernet switch address table to enable network link fail-over across two network segments | |
US8867375B2 (en) | Failback to a primary communications adapter | |
WO2010028553A1 (zh) | 一种端口配置管理方法、单板及端口配置管理系统 | |
CN116192863B (zh) | 微服务流量处理方法、dpu服务网格部署方法及系统 | |
CN111654407B (zh) | 一种堆叠系统及其双向转发检测方法 | |
CN112100008B (zh) | 一种跨节点的多链路冗余保护方法及系统 | |
US11212217B2 (en) | Spanning tree enabled link aggregation system | |
WO2020177471A1 (zh) | 报文传输方法、装置及存储介质 | |
KR100587531B1 (ko) | 클러스터 시스템에서 통신 프로토콜의 처리를 이관하는방법 및 그 시스템 | |
US20100110877A1 (en) | System and method for failover of mobile units in a wireless network | |
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: 20110518 Termination date: 20160516 |