CN1578267B - 处理分组以在主机系统的网络上传送的方法、系统及装置 - Google Patents

处理分组以在主机系统的网络上传送的方法、系统及装置 Download PDF

Info

Publication number
CN1578267B
CN1578267B CN2004100620532A CN200410062053A CN1578267B CN 1578267 B CN1578267 B CN 1578267B CN 2004100620532 A CN2004100620532 A CN 2004100620532A CN 200410062053 A CN200410062053 A CN 200410062053A CN 1578267 B CN1578267 B CN 1578267B
Authority
CN
China
Prior art keywords
network adapter
network
master
adapter
grouping
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.)
Expired - Fee Related
Application number
CN2004100620532A
Other languages
English (en)
Other versions
CN1578267A (zh
Inventor
A·文卡塔纳拉彦
A·曼诺哈
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of CN1578267A publication Critical patent/CN1578267A/zh
Application granted granted Critical
Publication of CN1578267B publication Critical patent/CN1578267B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • 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/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L12/462LAN interconnection over a bridge based backbone
    • H04L12/4625Single bridge functionality, e.g. connection of two networks over a single bridge
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

处理分组以在主机系统的网络上传送的方法、系统及程序提供了一种处理分组以在包括多个网络适配器的主机系统中的网络上传送的方法、系统及程序。在接收网络适配器上接收分组;在该接收网络适配器内执行负载平衡算法,以选择多个网络适配器中的一个来发送所接收到的分组;以及如果所选择的网络适配器不是接收网络适配器,那么利用该接收网络适配器将所接收到的分组转发到所选择的网络适配器。

Description

处理分组以在主机系统的网络上传送的方法、系统及装置
技术领域
本发明涉及一种处理分组以在包括多个网络适配器的主机系统中的网络上传送的方法、系统及程序。 
背景技术
一台主计算机可能具有多个网卡以将系统连接到网络上。在现有的系统中,该主机可能包括网络设备驱动器,该驱动器是一个执行以在所述主机操作系统和所述网卡之间进行对接的软件程序。对于包括多个处理器的主机,该设备驱动器将选择所述网卡中的一个来发送分组。该设备驱动器在所述主机中执行,它典型地是执行一个负载平衡算法以选择一个特定的网卡来发送该分组。这种负载平衡算法需要数量巨大的主机中央处理单元(CPU)资源和周期来执行。当适配器的数量增加时,以及当该设备驱动器要处理的事务的数量增加时,在该主机CPU上的负荷也随之增大。执行负载平衡操作所需要的CPU资源能够在该CPU容量的5%到50%的范围内变动,这取决于该CPU的处理速度、适配器的数目以及传送活动的量。 
尽管如此,在本领域中仍然存在对提高所述设备驱动器的性能以及最小化在所述主机处理器上的设备驱动器的处理负荷的持续需求。 
发明内容
按照本发明的一种处理分组以在包括多个网络适配器的主机系统中的网络上传送的方法,该方法包括:在第一网络适配器上接收分组;在该第一网络适配器内执行负载平衡算法,以选择多个网络适配器中的一个来发送所接收到的分组;以及如果所选择的网络适配器不是第一网络适配器,那么利用该第一网络适配器将所接收到的分组转发到所选择的网络适配器。 
按照本发明的一种在主机系统中执行的设备驱动器中实施的方法,用于处理分组以在网络上传送,其中该主机包括多个网络适配器,所述方法 包括下列步骤:接收分组;指定多个网络适配器中的一个为主网络适配器,其中该多个网络适配器包括主网络适配器和至少一个次网络适配器;和起动该分组到主网络适配器的发送,其中该主网络适配器执行负载平衡算法,以选择主网络适配器和次网络适配器中的一个,来发送所接收到的分组,并且响应于负载平衡算法选择一个次网络适配器,该主网络适配器重新定向该分组到所选择的一个次网络适配器以发送该分组。 
按照本发明的一种在主机系统中执行的设备驱动器中实施的方法,用于处理分组以在网络上传送,其中该主机包括多个网络适配器,并且其中该设备驱动器执行:接收分组;指定多个网络适配器中的一个为主网络适配器,其中该多个网络适配器包括主网络适配器和至少一个次网络适配器;和起动该分组到主网络适配器的发送,其中该主网络适配器执行负载平衡算法,以选择多个网络适配器中的一个,来发送所接收到的分组,并且响应于负载平衡算法选择一个次网络适配器,该主网络适配器重新定向该分组到所选择的一个次网络适配器以发送该分组。 
按照本发明的一种在主机系统中与主机系统中的至少一个另外的网络适配器进行通信的网络适配器,该网络适配器包括:同至少一个另外的网络适配器相对接的接口;控制逻辑装置,使得该网络适配器执行操作,该操作包括:接收分组;执行负载平衡算法以选择主机系统中的多个网络适配器中的一个来发送所接收到的分组;以及如果被选择的网络适配器是至少一个另外的网络适配器之一,那么将所接收到的分组转发到所选择的网络适配器。 
按照本发明的一种被耦合到网络和数据存储装置的系统,该系统包括:处理器;存储控制器,该存储控制器管理对该数据存储装置的输入/输出(I/O)访问;能够在该网络上发送和接收数据的多个网络适配器;设备驱动器,由该处理器执行以完成操作,所述操作包括:接收分组;指定多个网络适配器中的一个为主网络适配器,其中该多个网络适配器包括主网络适配器和至少一个次网络适配器;和起动该分组到主网络适配器的发送,其中该主网络适配器执行负载平衡算法,以选择主网络适配器和次网络适配器中的一个,来发送所接收到的分组,并且响应于负载平衡算法选择一个次网络适配器,该主网络适配器重新定向该分组到所选择的一个次网络 适配器以发送该分组。 
按照本发明的一种处理分组以在包括多个网络适配器的主机系统中的网络上传送的装置,所述装置包括:在第一网络适配器上接收分组的部件;在该第一网络适配器内执行负载平衡算法,以选择多个网络适配器中的一个来发送所接收到的分组的部件;以及如果所选择的网络适配器不是第一网络适配器,那么利用该接收网络适配器将所接收到的分组转发到所选择的网络适配器的部件。 
按照本发明的一种在主机系统中执行的设备驱动器中实施的装置,用于处理分组以在网络上传送,其中该主机包括多个网络适配器,所述装置包括:接收分组的部件;指定多个网络适配器中的一个为主网络适配器的部件,其中该多个网络适配器包括主网络适配器和至少一个次网络适配器;和起动该分组到主网络适配器的发送的部件,其中该主网络适配器执行负载平衡算法,以选择主网络适配器和次网络适配器中的一个,来发送所接收到的分组,并且响应于负载平衡算法选择一个次网络适配器,该主网络适配器重新定向该分组到所选择的次网络适配器以发送该分组。 
附图说明
现在参考附图,其中贯穿所有附图以相似的参考数字代表相应部分: 
图1说明了一个计算环境,其中本发明的实施方案被实现; 
图2说明了依照本发明的实施方案来选择一个网络适配器的操作;以及 
图3说明了可能被用于所描述的实施方案的计算机结构。 
具体实施方式
在以下的描述中,对所述附图进行参考,这些附图形成了本文的一部分并且说明了本发明的几个实施例。应当理解:可以利用其他的实施方案并且可能做出结构上和操作上的变化而不偏离本发明的范围。 
图1说明了一个计算环境,其中本发明的实施方案可被实现。主计算机2包括一个或多个中央处理单元(CPU)4、一个易失性存储器6、非易失性存储装置8、一个操作系统10以及多个网络适配器12a,12b。尽管只 有两个网络适配器被示出,但该主机2可以包括两个以上的网络适配器。应用程序14还可以在存储器6中执行并且能够从远程计算机发送以及接收分组。该主机2可以包含在本领域中已公知的任意计算设备,例如大型机、服务器、个人计算机、工作站、膝上型计算机、手持式计算机、电话设备、网络装置、虚拟化设备、存储控制器等等。在本领域中已知的任意CPU4和操作系统10都可以被使用。作为存储器管理操作的一部分,在存储器6中的程序和数据可以被交换到存储装置8中。 
所述网卡12a,12b能够在网络18上发送和接收数据的分组,其中所述网络18可以包括局域网(LAN)、因特网、广域网(WAN)、存储区域网(SAN)、无线网络(无线保真,Wireless Fidelity)等等。设备驱动器20在存储器6中执行并且包括网络适配器12a,12b特定的指令以与所述网络适配器12a,12b进行通信,以及在所述操作系统10和所述网络适配器12a,12b之间对接。所述网络适配器12a,12b或者设备驱动器20将实施逻辑以处理所述分组,例如实施一个传输协议层以处理包括在分组中的消息的内容,其中所述分组在传输层中被包装,例如传输控制协议(TCP)和/或网际协议(IP)、网络小型计算机系统接口(iSCSI)、光纤信道、SCSI、并行SCSI传输,或者其他任意本领域中已公知的传输层协议。该传输协议层将来自所接收到的TCP/IP分组的净负荷解包,并且将该数据传送到所述设备驱动器20以返回给所述应用14。此外,发送数据的应用14将把该数据发送到所述设备驱动器20,所述设备驱动器然后将发送该数据到所述传输协议层以在所述网络18上传输之前打包成TCP/IP分组。 
该网络适配器12a,12b还可另外包括一个网络协议层,该网络协议层实施物理通信层以通过网络18来发送和接收去往和来自远程设备的网络分组。在某些实施方案中,所述网络适配器12a,12b网络协议层(未被示出)可以实施以太网协议、令牌环协议、光纤信道协议、无限带宽(Infiniband)、串行高级技术配件(SATA)、并行SCSI、串行附加SCSI电缆等等,或者任意其他本领域中公知的网络通信协议。 
所述网络适配器12a,12b包括多个在该适配器的硬件中实施的元件。总线控制器30a,30b启动所述网络适配器12a,12b以在计算机总线32上通信,所述计算机总线32可以包括本领域中公知的任何总线接口,例如外 设部件互连(PCI)总线、小型计算机系统接口(SCSI)、串行ATA等等。传送描述符队列34a,34b在所述总线32上接收被传送到所述适配器12a,12b的分组并对其进行排队。负载平衡块36a,36b包括逻辑以实施负载平衡算法来选择所述多个网络适配器12a,12b中的一个去发送所接收到的分组。所述负载平衡算法可能使用本领域中公知的任意负载平衡技术,例如循环法(round robin)等等。在该负载平衡模块36a,36b中实施的负载平衡算法可以决定在每一个所述网络适配器12a,12b上的相对负载,然后选择具有最少负载的一个网络适配器。作为选择,所述负载平衡算法可以选择一个网络适配器12a,12b以基于所述分组指向的网络地址如IP地址来处理分组。散列表可以被用来把一个IP地址和一个网络适配器12a,12b关联在一起以发送所述分组。在这样的散列表实现中,所述负载平衡块36a,36b将对该分组的目标IP地址进行散列以选择一个网络适配器来发送所述分组。在某些实现中,只有作为主适配器进行操作的网络适配器12a,12b才将执行所述负载平衡操作。 
该网络适配器12a,12b还包括一个重新定向模块38a,38b,其中如果所述负载平衡块36a,36b确定另一个网络适配器12a,12b应处理对所接收到的分组的发送,则该重新定向模块与所述总线控制器30a,30b相对接以将在所述发送描述符队列34a,34b中的分组重新定向到该另一个网络适配器12a,12b。该重新定向模块38a,38b只在所述主网络适配器12a,12b上被启动。配置寄存器和地址表40a,40b提供被用于指示所述网卡的状态的状态信息。该配置寄存器40a,40b将指示网络适配器12a,12b是主适配器还是次适配器。该地址表40a,40b包括耦合到所述总线32的其他网络适配器12a,12b的总线地址。 
该网络适配器12a,12b可能包括附加的硬件逻辑以执行附加的操作来处理从所述主机2或者所述网络18接收到的分组。此外,与所述主机设备驱动器30相反,该网络适配器12a,12b可能实施一个传输层卸载引擎(engine)(TOE)以在该网络适配器中实施所述传输协议层,来进一步减轻主机处理负荷。作为选择,该传输层可以被实施在所述设备驱动器20中。 
图2说明了在该网络适配器12a,12b的元件中执行的操作。一旦在所述发送描述符队列34a,34b中接收到(在块100)来自所述主机设备驱动 器20的分组,那么如果(在块102)所述配置寄存器40a,40b指示该网络适配器12a,12b是次适配器,则该排队的分组被从该适配器12a,12b发送(在块104)到所述网络18,该适配器是或者从主机或者从主适配器接收该分组的。如果(在块102)所述配置寄存器40a,40b指示该网络适配器12a,12b是主适配器并且如果(在块106)在所述总线32上有至少一个次网络适配器可用,那么所述负载平衡块36a,36b执行(在块108)负载平衡操作来选择一个网络适配器12a,12b,或者是它本身(所述主网络适配器)或者是所述次网络适配器中的一个,来发送该分组。如果(在块106)没有活动的次适配器,那么控制就进行到块104以发送该分组。如果(在块110)在块36a,36b中的该负载平衡算法选择了所述主网络适配器12a,12b,那么该主网络适配器12a,12b将在所述发送描述符队列34a,34b中的分组发送至网络18。否则,如果(在块110)次适配器被选择了,则所述重新定向模块38a,38b从所述地址表40a,40b确定(在块112)所选择的次适配器的总线地址并且在该总线32上、将在所述发送描述符队列34a,34b中的分组发送(在块114)至所选择的次网络适配器12a,12b的所被确定的总线地址。然后该接收所述分组的次网络适配器12a,12b将执行在图2中的操作来处理所接收到的分组。 
所述设备驱动器20可以指定一个网络适配器12a,12b缺省地作为所述主适配器并且总是发送分组到该被指定的主适配器。以这种方式,所述设备驱动器20不执行任何负载平衡或者权重操作的选择,而只是发送所述分组到该被指定的主网络适配器。在该主适配器故障的情况下,该设备驱动器20能够执行故障解决(failover)操作来指定一个残存的网络适配器作为主适配器。 
通过根据在所述网络适配器逻辑中所实施的负载平衡算法,使所述网络适配器执行团队操作(teaming operation)来将分组转移到最适合于发送分组的网络适配器,从而从所述主机设备驱动器卸载该负载平衡操作到所述网络适配器硬件,因此所描述的实现大大减少了主机CPU的利用。此外,所描述的实施例以在所述总线32上、在网络适配器之间转移分组的I/O开销中的极小增加,减少了处理器开销。I/O开销极小,是因为如果满足一定的负载平衡条件,则只有一部分的所述分组在该总线上被转移到次适配器。 
附加的实施方案详述
所描述的处理数据分组的技术可以通过使用标准编程和/或工程技术来制造软件、固件、硬件或者其中的任意组合,而被实施为一种方法、装置或者制造的物品。在此使用的术语“制造的物品”指的是代码或是实施在硬件逻辑中的逻辑(例如,集成电路芯片、可编程门阵列(PGA)、专用集成电路(ASIC),等等)或者计算机可读媒体,例如磁存储媒体(例如,硬盘驱动器、软盘、磁带,等等)、光存储装置(CD-ROM,光盘,等等)、易失性的和非易失性的存储设备(例如,EEPROM、ROM、PROM、RAM、DRAM、SRAM、固件、可编程逻辑,等等)。在计算机可读媒体中的代码被处理器存取和执行。实施优选实施方案的代码还可以通过一个传送媒体或者从在网络上的文件服务器来访问。在这种情况下,实施该代码的制造的物品可以包括一个传送媒体,例如网络传送线路、无线传送媒体、通过空间传播的信号、无线电波、红外信号,等等。这样,该“制造的物品”可以包括具体化该代码的媒体。此外,所述“制造的物品”可以包括硬件和软件组件的组合,其中所述代码被具体化、处理和执行。当然,本领域的那些技术人员将意识到:对这种配置可以做许多修改而不偏离本发明的范围,并且所述制造的物品可以包括本领域所公知的任何信息承载媒体。 
在所描述的实施方案中,该负载平衡逻辑在网络适配器硬件中被实施。跟在诸如专用集成电路(ASIC)的硬件中实施负载平衡逻辑相反,在附加的实现中,该网络适配器可以包括一个处理器和存储器来执行被加载到存储器的指令以执行所述负载平衡操作。 
在所描述的实现中,所述次网络适配器一旦接收到一个分组,就将发送这样的分组并且不执行任何进一步的负载平衡操作。在进一步的实现中,从主网络适配器接收到重新定向的分组的次网络分组可以执行附加的负载平衡操作来确定是发送还是重新定向该分组到另一个网络适配器。 
该网络适配器可以被实施在一个网络适配器卡中,如PCI卡,该卡被插入所述主机2的一个插槽中。作为选择,该网络适配器可以包括被安装到所述主机2的母板上的集成电路元件。 
在某些实现中,所述设备驱动器和网络适配器实施例可以被包括进计算机系统中,该系统包括一个存储控制器,例如SCSI、集成驱动电子技术 (IDE)、独立磁盘冗余阵列(RAID),等等,其是管理对诸如磁盘驱动器、磁带媒体、光盘等等的非易失性存储设备的访问的控制器。在替代的实现中,该网络适配器实施例可以被包括进一个系统,该系统不包括存储控制器,例如某些集线器和交换机。 
在某些实现中,该网络适配器可以被配置成通过连接到在该网络适配器上的一个端口的电缆来发送数据。作为选择,该网络适配器实施例可以被配置成在无线网络或连接上,例如在无线LAN、蓝牙等等上发送数据。 
在所描述的实现中,该设备驱动器20不执行负载平衡操作并且负载平衡操作在所述主网络适配器12a,12b中被执行。在替代的实施方案中,该设备驱动器20可以执行某些负载平衡算法来选择一个网络适配器,然后该被选择的网络适配器可进一步更集中地执行负载平衡操作以提高选择最优网络适配器来处理该请求的能力。 
图2的所示逻辑表明:某些事件以一定的顺序发生。在替代的实施方案中,某些操作可以以不同的顺序被执行、修改或删除。而且,可以向前面所描述的逻辑增加步骤,并且该步骤仍然同所描述的实施方案一致。此外,在此描述的操作可能顺序地出现或者某些操作可能被并行处理。而更进一步,操作可以由单个处理单元或者由分布式处理单元来执行。 
图3说明了网络元件,例如在图1中所示出的主机,的计算机结构200的一个实现。该结构200可以包括一个处理器202(例如,微处理器)、一个存储器204(例如,易失性存储设备),以及存储装置206(例如,非易失性存储装置,例如磁盘驱动器、光盘驱动器、磁带驱动器,等等)。该存储装置206可能包括一个内部存贮设备或者一个附加的或者网络可访问的存储装置。在该存储装置206中的程序被加载到所述存储器204中去并且由所述处理器202以本领域中所公知的方式执行。该结构还包括一个网卡208以启动同诸如以太网、光信道仲裁回路等等的网络的通信。此外,在某些实施方案中,该结构还可能包括一个视频控制器209来在显示监视器上再现信息,其中该视频控制器209可以被实现在一个视频卡上或者被集成到所述母板上安装的集成电路元件中。正如所讨论的,某些网络设备可能含有多个网卡。输入设备310被用于向所述处理器202提供用户输入,并且可能包括键盘、鼠标、指示笔、麦克风、触敏显示屏,或其他任何本 领域中所公知的激活或输入机制。输出设备212能够再现信息,该信息是由所述处理器202,或者其他诸如显示监视器、打印机、存储装置等等的元件所发送的。 
前面对本发明的多种实施方案的描述已经为了说明和描述的目的而被提出。但并不打算详尽地描述本发明或者将本发明限制到所公开的精确形式上。根据前面所讲的,可能有许多修改和变化。本发明的范围不局限于这个详细的描述,而是受限于所附加的权利要求。前面的说明、实例和数据给出了所述制造的完整描述以及本发明的组成部分的使用。由于可以作出本发明的许多实施方案而不偏离本发明的精神和范围,因此本发明是在此后附加的权利要求中。 

Claims (27)

1.一种处理分组以在包括多个网络适配器的主机系统中的网络上传送的方法,该方法包括:
在第一网络适配器上接收分组;
利用该第一网络适配器,确定该第一网络适配器是主网络适配器还是次网络适配器;
如果该第一网络适配器被确定为是所述次网络适配器,则利用该第一网络适配器在网络上发送所接收到的分组;
响应于确定该第一网络适配器是所述主网络适配器,在该第一网络适配器内执行负载平衡算法,以选择多个网络适配器中的一个来发送所接收到的分组;以及
如果所选择的网络适配器不是第一网络适配器,那么利用该第一网络适配器将所接收到的分组转发到所选择的网络适配器。
2.如权利要求1所述的方法,其中只有在该主网络适配器中执行的该负载平衡算法选择多个网络适配器中的一个。
3.如权利要求1所述的方法,其中该负载平衡算法通过以下方式来选择多个网络适配器中的一个:
基于在该网络上要将所接收到的分组发送到的目的网络地址来选择多个网络适配器中的一个。
4.如权利要求3所述的方法,其中该网络地址包括网际协议地址和光纤信道地址中的一个。
5.如权利要求4所述的方法,其中基于目的网络地址来选择一个网络适配器包括:基于该目的网络地址,利用一散列算法来选择一个网络适配器。
6.如权利要求1所述的方法,其中该负载平衡算法还执行如下步骤:
基于所述网络适配器中每一个的相对负载来选择一个网络适配器。
7.一种在主机系统中执行的设备驱动器中实施的方法,用于处理分组以在网络上传送,其中该主机包括多个网络适配器,并且其中该设备驱动器执行如下步骤:
接收分组;指定多个网络适配器中的一个为主网络适配器,其中该多个网络适配器包括主网络适配器和至少一个次网络适配器;和
起动该分组到主网络适配器的发送,其中该主网络适配器执行负载平衡算法,以选择多个网络适配器中的一个,来发送所接收到的分组,并且响应于负载平衡算法选择一个次网络适配器,该主网络适配器重新定向该分组到所选择的一个次网络适配器以发送该分组。
8.如权利要求7所述的方法,其中当选择所述多个网络适配器中的一个来发送该分组时,该设备驱动器不执行负载平衡算法。
9.如权利要求7所述的方法,其中该设备驱动器还执行:
检测被指定为所述主网络适配器的一个网络适配器的故障;
确定一个可用的网络适配器来充当所述主网络适配器,其中随后接收到的分组被发送到所确定的网络适配器;以及
在所确定的网络适配器中配置一个寄存器以使得所确定的网络适配器作为所述主网络适配器操作并且执行负载平衡算法。
10.一种在主机系统中与主机系统中的至少一个另外的网络适配器进行通信的网络适配器,该网络适配器包括:
同至少一个另外的网络适配器相对接的接口;
控制逻辑装置,使得该网络适配器执行操作,该操作包括:
接收分组;
确定网络适配器是主网络适配器还是次网络适配器;
如果该网络适配器是主网络适配器,则执行负载平衡算法以选择主机系统中的多个网络适配器中的一个来发送所接收到的分组,并且如果该网络适配器是次网络适配器,则起动在网络上对所接收到的分组的发送;以及
如果被选择的网络适配器是至少一个另外的网络适配器之一,那么将所接收到的分组转发到所选择的网络适配器。
11.如权利要求10所述的网络适配器,其中该负载平衡算法还执行如下操作:
基于在该网络上要将所接收到的分组发送到的目的网络地址来选择一个网络适配器。
12.如权利要求11所述的网络适配器,其中基于目的网络地址来选择一个网络适配器包括:基于该目的网络地址,利用一散列算法来选择一个网络适配器。
13.如权利要求10所述的网络适配器,其中该负载平衡算法还执行如下操作:
基于所述网络适配器的每一个的相对负载来选择一个网络适配器。
14.如权利要求10所述的网络适配器,其中利用网际协议(IP)来编码该分组。
15.一种被耦合到网络和数据存储装置的系统,该系统包括:
处理器;
存储控制器,该存储控制器管理对该数据存储装置的输入/输出(I/O)访问;
能够在该网络上发送和接收数据的多个网络适配器;
设备驱动器,由该处理器执行以完成操作,所述操作包括:
接收分组;
指定多个网络适配器中的一个为主网络适配器,其中该多个网络适配器包括主网络适配器和至少一个次网络适配器;和
起动该分组到主网络适配器的发送,其中该主网络适配器执行负载平衡算法,以选择主网络适配器和次网络适配器中的一个,来发送所接收到的分组,并且响应于负载平衡算法选择一个次网络适配器,该主网络适配器重新定向该分组到所选择的一个次网络适配器以发送该分组。
16.如权利要求15所述的系统,其中当选择所述多个网络适配器中的一个来发送该分组时,该设备驱动器不执行负载平衡算法。
17.如权利要求15所述的系统,其中该设备驱动器操作还包括:
检测被指定为所述主网络适配器的一个网络适配器的故障;
确定一个可用的网络适配器来充当所述主网络适配器,其中随后接收到的分组被发送到所确定的网络适配器;以及
在所确定的网络适配器中配置一个寄存器以使得所确定的网络适配器作为该主网络适配器操作并且执行负载平衡算法。
18.如权利要求15所述的系统,其中该数据存储装置包括磁存储媒体。
19.一种处理分组以在包括多个网络适配器的主机系统中的网络上传送的装置,所述装置包括:
在第一网络适配器上接收分组的部件;
利用该第一网络适配器,确定该第一网络适配器是主网络适配器还是次网络适配器的部件;
如果该第一网络适配器被确定为是所述次网络适配器,则利用该第一网络适配器来起动在网络上对所接收到的分组的发送的部件;
响应于确定该第一网络适配器是所述主网络适配器,在该第一网络适配器内执行负载平衡算法,以选择多个网络适配器中的一个来发送所接收到的分组的部件;以及
如果所选择的网络适配器不是第一网络适配器,那么利用该第一网络适配器将所接收到的分组转发到所选择的网络适配器的部件。
20.如权利要求19所述的装置,其中只有在所述主网络适配器中执行的该负载平衡算法选择多个网络适配器中的一个。
21.如权利要求19所述的装置,其中该负载平衡算法通过以下步骤来选择多个网络适配器中的一个:
基于在该网络上所接收到的分组要被发送到的目的网络地址来选择多个网络适配器中的一个。
22.如权利要求21所述的装置,其中网络地址包括网际协议地址和光纤信道地址中的一个。
23.如权利要求22所述的装置,其中基于目的网络地址来选择一个网络适配器包括:基于该目的网络地址,利用一散列算法来选择一个网络适配器。
24.如权利要求19所述的装置,其中该负载平衡算法还执行如下操作:
基于所述网络适配器中每一个的相对负载来确定一个网络适配器。
25.一种在主机系统中执行的设备驱动器中实施的装置,用于处理分组以在网络上传送,其中该主机包括多个网络适配器,所述装置包括:
接收分组的部件;
指定多个网络适配器中的一个为主网络适配器的部件,其中该多个网络适配器包括主网络适配器和至少一个次网络适配器;和
起动该分组到主网络适配器的发送的部件,其中该主网络适配器执行负载平衡算法,以选择主网络适配器或次网络适配器中的一个,来发送所接收到的分组,并且响应于负载平衡算法选择一个次网络适配器,该主网络适配器重新定向该分组到所选择的次网络适配器以发送该分组。
26.如权利要求25所述的装置,其中当选择所述多个网络适配器中的一个以接收该分组时,不执行该负载平衡算法。
27.如权利要求25所述的装置,还包括:
检测被指定为所述主网络适配器的一个网络适配器的故障的部件;
确定一个可用的网络适配器以充当所述主网络适配器的部件,其中随后接收到的分组被发送到所确定的网络适配器;以及
在所确定的网络适配器中配置一个寄存器以使得所确定的网络适配器作为所述主网络适配器操作并且执行负载平衡算法的部件。
CN2004100620532A 2003-07-02 2004-06-25 处理分组以在主机系统的网络上传送的方法、系统及装置 Expired - Fee Related CN1578267B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/612695 2003-07-02
US10/612,695 US20050002389A1 (en) 2003-07-02 2003-07-02 Method, system, and program for processing a packet to transmit on a network in a host system including a plurality of network adaptors

Publications (2)

Publication Number Publication Date
CN1578267A CN1578267A (zh) 2005-02-09
CN1578267B true CN1578267B (zh) 2012-12-12

Family

ID=33552566

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2004100620532A Expired - Fee Related CN1578267B (zh) 2003-07-02 2004-06-25 处理分组以在主机系统的网络上传送的方法、系统及装置

Country Status (2)

Country Link
US (1) US20050002389A1 (zh)
CN (1) CN1578267B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100505684C (zh) * 2005-03-29 2009-06-24 国际商业机器公司 网络系统,流量均衡方法,网络监视设备和主机
US7920473B1 (en) * 2005-12-01 2011-04-05 Qlogic, Corporation Method and system for managing transmit descriptors in a networking system
US8307111B1 (en) 2010-04-13 2012-11-06 Qlogic, Corporation Systems and methods for bandwidth scavenging among a plurality of applications in a network
CN102497430B (zh) * 2011-12-13 2014-12-03 曙光信息产业(北京)有限公司 一种分流设备实现系统和方法
CN102387219B (zh) * 2011-12-13 2014-05-28 曙光信息产业(北京)有限公司 一种多网卡负载均衡系统和方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6490632B1 (en) * 1999-03-18 2002-12-03 3Com Corporation High performance load balancing and fail over support of internet protocol exchange traffic over multiple network interface cards

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7353276B2 (en) * 2003-02-13 2008-04-01 Microsoft Corporation Bi-directional affinity

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6490632B1 (en) * 1999-03-18 2002-12-03 3Com Corporation High performance load balancing and fail over support of internet protocol exchange traffic over multiple network interface cards

Also Published As

Publication number Publication date
CN1578267A (zh) 2005-02-09
US20050002389A1 (en) 2005-01-06

Similar Documents

Publication Publication Date Title
US7437738B2 (en) Method, system, and program for interfacing with a network adaptor supporting a plurality of devices
CN100438403C (zh) 用于管理通过网络的数据传输的方法和系统
US7664909B2 (en) Method and apparatus for a shared I/O serial ATA controller
US8893146B2 (en) Method and system of an I/O stack for controlling flows of workload specific I/O requests
JP3783017B2 (ja) ローカル識別子を使ったエンド・ノード区分
US10169948B2 (en) Prioritizing storage operation requests utilizing data attributes
CN1864376B (zh) 从卸载适配器利用主机存储器的方法、系统和制品
CN1581853B (zh) 用于处理要在网络上发送的分组的方法、系统和程序
US7839788B2 (en) Systems and methods for load balancing storage system requests in a multi-path environment based on transfer speed of the multiple paths
US8098676B2 (en) Techniques to utilize queues for network interface devices
US7958302B2 (en) System and method for communicating data in a storage network
US9390036B2 (en) Processing data packets from a receive queue in a remote direct memory access device
US7761529B2 (en) Method, system, and program for managing memory requests by devices
US10154079B2 (en) Pre-boot file transfer system
US7177913B2 (en) Method, system, and program for adding operations identifying data packets to structures based on priority levels of the data packets
US7162579B2 (en) Asymmetrical load balancing for mirrored storage volumes
CN1578267B (zh) 处理分组以在主机系统的网络上传送的方法、系统及装置
US6704836B1 (en) Method for dynamic control of concurrent extended copy tasks
US20120159003A1 (en) Systems and methods for avoiding host level busy and retry latencies
US8417858B2 (en) System and method for enabling multiple processors to share multiple SAS wide ports
US10467156B1 (en) System and method of improving efficiency in parallel data processing of a RAID array
US20050141434A1 (en) Method, system, and program for managing buffers
CN109032523B (zh) 一种磁盘设备驱动方法、系统、装置及可读存储介质
CN105573935A (zh) 调平io
CN118159956A (zh) 数据中心存储中用于安全、高性能地执行用户代码的存储服务器

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: 20121212

Termination date: 20190625