CN1520550A - 在处理系统中虚拟连网的系统及方法 - Google Patents
在处理系统中虚拟连网的系统及方法 Download PDFInfo
- Publication number
- CN1520550A CN1520550A CNA028111281A CN02811128A CN1520550A CN 1520550 A CN1520550 A CN 1520550A CN A028111281 A CNA028111281 A CN A028111281A CN 02811128 A CN02811128 A CN 02811128A CN 1520550 A CN1520550 A CN 1520550A
- Authority
- CN
- China
- Prior art keywords
- processor
- logic
- node
- virtual
- network
- 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
Images
Classifications
-
- 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
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
- H04L49/351—Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/10—Mapping addresses of different types
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1017—Server selection for load balancing based on a round robin mechanism
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/131—Protocols for games, networked simulations or virtual reality
-
- 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/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
- H04L49/354—Switches specially adapted for specific applications for supporting virtual local area networks [VLAN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/55—Prevention, detection or correction of errors
- H04L49/557—Error correction, e.g. fault recovery or fault tolerance
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1034—Reaction to server failures by a load balancer
Abstract
一种用于虚拟连网(100)的系统和方法。在底层的点对点网格上提供交换以太网局域网的语义。计算机处理器节点能通过交换结构的虚拟接口直接通讯,或者它们能通过以太网交换模拟器(115a,115b)通讯。使用ARP(地址解析协议)逻辑(135)将IP地址与虚拟接口关联,同时允许计算机处理器回答有虚拟MAC地址的ARP请求。
Description
背景
1.发明的领域
本发明涉及用于企业及应用服务提供者的计算系统,更特别地,涉及具有虚拟化的通讯网络的处理系统。
2.相关技术的讨论
在当前企业的计算和应用服务提供者的环境中,来自多个信息技术(IT)功能领域(电的,连网中的等)的个人必须参与部署处理及连网资源。因此,由于在协调多个部门的活动方面的调度及其他困难,部署新的计算机服务器可能花费数周或数月时间。此冗长的手动过程增加了人力及设备开销,并延迟了应用的启用。
此外,由于难以预计应用将需要多少处理能力,经理通常过高提供计算能力的量。其结果是,数据中心计算资源常常未使用或使用不足。
若最终需要的处理能力大于原先提供的,再次需要各种IT功能来协调活动以配置更多或更好的服务器,将它们连接到通讯和存储网络等。当系统越来越大时,此任务越来越困难。
部署也是成问题的。例如当部署24个常规的服务器,可能需要超过100个独立的连接来配置整个系统。管理这些电缆也是面临的挑战,每个电缆意味着一个故障点。通过增加冗余来减轻故障的危险的企图使连线倍增,加重了问题且增加了复杂性和开销。
用当今的技术提供高可用性是困难和高花费的建议,通常对每个主服务器必须部署故障在线恢复服务器。此外,常常需要复杂的管理软件和专业性服务。
通常,在传统的服务器上不可能调节处理能力或升级CPU。相反,缩放处理能力和/或迁移到厂商的新一代体系中常常需要“铲车升级”,意味着需要更多的硬/软件系统,需要新的连接等。
因此,需要为企业和ASP计算提供平台的系统和方法,致力于解决上述缺点。
概述
本发明的特征在于用于计算处理的平台与方法,在其中可以配置及部署虚拟处理区域网络。
按本发明的一个方面,提供用于模拟交换以太局域网的方法和系统。提供多个计算机处理器和交换结构结构和到处理器的点对点的链路。虚拟接口逻辑在交换结构结构和点对点链路上建立虚拟接口。每个虚拟接口定义从一个计算机处理器到另一个计算机处理器经过交换结构结构的软件通讯路径。以太网驱动器模拟逻辑至少在两个计算机处理器上执行,而交换模拟逻辑至少在一个计算机处理器上执行。交换模拟逻辑在交换模拟逻辑和每个具有在其上执行的以太网驱动器模拟逻辑的计算机处理器之间建立虚拟接口,以允许它们之间的软件通讯。它也从到具有在其上执行的以太网驱动器模拟逻辑的计算机处理器的一个虚拟接口接收报文,并发送该报文到另一个具有在其上执行的以太网驱动器模拟逻辑的计算机处理器,以响应与该报文相关的寻址信息。它也在每个具有在其上执行的以太网驱动器模拟逻辑的计算机处理器和每个另外的具有在其上执行的以太网驱动器模拟逻辑的计算机处理器之间建立虚拟接口。如果虚拟接口运行良好,以太网驱动器模拟逻辑与模拟的以太网中另外的计算机处理器通过在它们之间定义软件通讯路径的虚拟接口单播通讯,若虚拟接口运行并不良好,则通过交换逻辑单播通讯。
按本发明的另一方面,提供实现地址解析协议(ARP)的方法和系统。计算平台具有多个由底层物理网络连接的处理器。在处理器中的一个上执行的逻辑定义要在计算平台上模拟的以太网的拓扑结构。拓扑结构包括处理器节点和交换节点。在处理器中的一个上执行的逻辑从多个处理器中指定一组处理器作为处理器节点的处理器。在处理器中的一个上执行的逻辑对模拟的以太网的每个处理器节点指定虚拟MAC地址。在处理器中的一个上执行的逻辑在底层物理网络上分配虚拟接口,以提供从每个处理器节点的每个其他处理器节点的直接软件通讯。每个虚拟接口具有对应的标识符。每个处理器节点具有ARP请求逻辑,将ARP请求传送到交换节点,其中ARP请求包括IP地址。交换节点包括ARP请求广播逻辑,将ARP请求传送到模拟的以太网中所有其它处理器节点。每个处理器节点具有ARP回答逻辑,以确定它是否为与在ARP请求中的IP地址有关的处理器节点,若是,向交换节点发出ARP回答,其中ARP回答包含与IP地址相关的处理器节点的虚拟MAC地址。交换节点包括ARP回答逻辑,以便接收ARP回答并修改ARP回答,使其包括对该ARP请求节点的虚拟接口标识符。
按本发明的另一方面,提供计算机处理的平台和方法,以支持处理器的故障在线恢复。多个计算机处理器被连接到内部通讯网络。在内部网络上定义并建立虚拟的局域通讯网络。在虚拟的局域通讯网络中的每个计算机处理器具有对应的虚拟MAC地址,而虚拟局域网提供在一个计算机处理器组中的通讯,但不包括不在所确定的组中的多个处理器的通讯。用对存储网络的地址空间所定义的对应关系定义并建立虚拟存储空间。响应计算机处理器的故障,从多个处理器中分配一个计算机处理器以代替故障的处理器。故障处理器的MAC地址被赋给替代故障处理器的处理器。虚拟存储空间和故障处理器的确定的对应关系被赋给替代故障处理器的处理器。虚拟局域网被重新建立,以包括替代故障处理器的处理器并排除故障的处理器。
按本发明的另一方面,提供由IP地址编址的服务的系统和方法。至少有两个计算机处理器,每个包括提供服务的逻辑。群集逻辑接收对服务的请求报文。该报文具有IP地址。群集逻辑将请求分配给具有提供该服务的逻辑的至少两个计算机处理器的一个。
按本发明的另一方面,计算机处理平台包括多个连接到内部通讯网络的计算机处理器。至少一个控制节点与外部通讯网络以及具有外部存储地址空间的外部存储网络通讯。至少一个控制节点连接到内部网络,从而与多个计算机处理器通讯。配置逻辑从多个处理器中定义并建立具有对应的计算机处理器组的虚拟处理区域网络;定义并建立在该计算机处理器组中提供通讯但排除未定义在该组内多个处理器的通讯的虚拟局域通讯网,以及与存储网络的地址空间有已定义的对应关系的虚拟存储空间。
附图简述
图1是示出本发明的实施例的系统的示意图;
图2A-C是示出按本发明的实施例建立的通讯链路的示意图;
图3A-B是示出本发明的某些实施例的网络软件结构的示意图;
图4A-C是示出按本发明的某些实施例的驱动器逻辑的流程图;
图5示出按本发明的某些实施例的服务群集;
图6示出本发明的某些实施例的存储软件的结构;
图7示出本发明的某些实施例的处理器端存储逻辑;
图8示出本发明的某些实施例的存储地址映射逻辑;和
图9示出本发明的某些实施例的群集管理逻辑。
详细描述
本发明的首选实施例提供一处理平台,从中虚拟系统能通过配置命令被部署。该平台提供大的处理器池,从中可通过软件命令选择并构造子集以形成虚拟化的计算机网络(“处理区域网”或“处理器群集”),它们能部署成服务于一组给定的应用或客户。虚拟化的处理区域网(PAN)然后能用于执行针对客户的应用,如基于Web的服务器的应用。虚拟化能包括局域网(LAN)的虚拟化或I/O存储的虚拟化。借助提供那样的平台,能很快并容易地通过软件,经过如来自管理员的配置命令部署处理资源,向每个服务器等等提供处理能力,而不必实际地提供服务器,电缆网络或存储连接。
平台及其行为的概述
如图1所示,首选硬件平台100包括经高速互连110a,b连接到交换结构结构115a,b的一组处理节点105a-n。交换结构115a,b也连接到至少一个控制节点120a,b,它与外部IP网125(或其它数据通讯网)及存储区域网(SAN)130通讯。如远程执行的管理应用135能通过IP网125访问一个或多个控制节点,以帮助构筑平台100并部署虚拟化的PAN。
在某些实施例中,约24个处理节点105a-n,2个控制节点120,2个交换结构115a,b包含在单个机箱中并用固定的预先连线的点对点(PtP)链路网络互连。每个处理节点105是一块线路板,包括一个或多个(如4个)处理器106j-1,一个或多个网络接口卡(NIC)107,和本地存储器(如大于4G字节),它包括某些用于自举和初始化的BIOS固件及其他。对处理器106没有本地盘;相反,包括为分页所需存储器的所有存储器由SAN存储设备130处理。
每个控制节点120是一块线路板,包括一个和多个(如4个)处理器,本地存储器和本地磁盘存储,用于保持自举映象及初始文件系统的单独拷贝,后者用于自举未处理节点105和控制节点106所用的操作系统软件。每个控制节点经由连接到光纤通道链路122,124的100兆字节/秒光纤通道适配器卡128与SAN 130通讯,并经由具有连接到千兆位以太网链路121,123的一个或多个千兆位以太网NIC的外部网络接口129与因特网(或任何其它外部网)125通讯。(对SAN和外部网络连接可使用许多其它技术和硬件)。每个控制节点包括低速以太网端口(未示出)作为专用管理端口,它不同于远程的基于Web的管理,可由管理应用程序135使用。
交换结构包括一个或多个如NIC-CLAN1000和Clan5300交换机的30个端口的千兆网交换机115,各种处理及控制节点使用相应的NIC与那样的结构模块通讯。千兆网交换结构具有非广播多重接入(NBMA-Non-BroadcastMultiple Access)网的语义。所有节点间的通讯是经过交换结构。每个链路是作为NIC107和交换结构115中的端口之间的串行连接组成。每个链路以112兆字节/秒的速率操作。
在某些实施例中,多个机柜或机箱能互相连接以形成更大的平台。在其它实施例中配置可以不同,例如能够消除冗余的连接,交换机和控制节点。
在软件控制下,平台支持多重,同时和独立的处理区域网络(PAN)。通过软件命令,每个PAN配置成具有对应的处理器106的子集,它能经过在PtP网络上模拟的虚拟局域网通讯。每个PAN也配置成具有对应的虚拟I/O的子系统。不需要物理的部署或连线来建立PAN。在某些首选实施例中,在处理节点和/或控制节点上执行的软件逻辑模拟交换的以太网的语义;在处理节点和/或控制节点上执行的其他软件逻辑提供虚拟存储子系统功能,它遵循SCSI语义并对每PAN提供单独的I/O地址空间。
网络结构
某些首选实施例允许管理员使用虚拟的组件,接口和连接来建立虚拟的,模拟的LAN。每个虚拟的LAN对平台100能是内部和专用的,或多个处理器能构成外部看作单个IP地址的处理器群集。
在某些实施例中,那样建立的虚拟网络模拟交换以太网,尽管物理的底层网络是PtP网格。虚拟网络利用IEEE MAC地址,处理节点支持IEEE ARP处理以便用MAC地址识别和关联IP地址,因此,给定的处理器节点持续地回答ARP请求,无论该ARP请求是从平台内部或外部的节点来的。
图2A示出示例性网络安排,它能被模型化或模拟。第一个子网202由处理节点PN1、PN2和PNk组成,它们能经过交换机206互相通讯。第二个子网204由处理节点PNk和PNm组成,它们通过交换机208互相通讯。在交换以太网语义下,一个子网的一个节点能直接与该子网的其它节点通讯;例如,PN1能发送报文给PN2。语义也允许一个节点与一组其它的节点通讯;例如PN1能发送广播报文到其它诸节点。处理节点PN1和PN2不能直接与PNm通讯,因为PNm是在不同的子网。为了PN1和PN2与PNm通讯,需要利用更高层的网络软件,那个软件对两个子网具有更充分的了解。虽然图中未示出,给定的交换机可以经过“上行链路”耦合到其它交换机等。下面将谈到,对那样上行链路的需要不同于当交换机是物理的时的需要。具体来说,因为交换机是虚拟的并在软件中模型化,它们能在水平方向按需要随意地扩展。(相反,物理的交换机具有固定数目的物理端口,有时需要上行链路提供水平方向的伸缩性)。
图2B示出在某些实施例使用的示例性软件通讯路径和逻辑,以构建图2A的子网202和204。通讯路径212连接到处理节点PN1,PN2,PNk和PNm,具体说来,是它们对应的处理器端的网络通讯逻辑210,它们也将处理节点连接到控制节点。(虽然为明确起见画成逻辑的单个实例,PNk可具有对应处理器逻辑的多个实例,例如每个子网一个)。在首选实施例中,管理逻辑和控制节点逻辑负责建立,管理和断开通讯路径。不允许单个处理节点建立那样的路径。
下面将细述,处理器逻辑和控制节点逻辑一起在那样通讯路径上模拟交换以太网的语义。例如,控制节点具有模拟某些(不必是全部)以太网交换的语义的控制节点端的虚拟交换逻辑214,而处理器逻辑包括模拟某些(不必是全部)以太网驱动器的语义的逻辑。
在一个子网中,一个处理器节点经过相应的虚拟接口212直接与其它节点通讯。类似地,处理器节点能经过单独的虚拟接口与控制节点逻辑通讯。在某些实施例中,底层交换结构和相关逻辑(如交换结构管理器逻辑,未示出)提供在点对点的网格上建立和管理那样的虚拟接口(VI)的能力。此外,这些虚拟接口能以可靠冗余的方式建立,这里称为RVI。在此叙述中,术语虚拟接口(VI)和可靠的虚拟接口(RVI)可互换使用,同为在VI和RVI之间的选择主要取决于以系统资源为代价系统的所希望的可靠性的程度。
联合地参考图2A-B,若节点PN1与节点PN2通讯,正常地地通过虚拟接口2121-2。但是若如VI2121-2并非运行良好,首选实施例允许在PN1和PN2之间的通讯经过交换模拟逻辑进行。在此情况,报文可经VI2121-switch206和VI212switch206-2发送。若PN1广播或多播报文到子网202中其它诸节点,它是经过虚拟接口2121-switch206发送报文到控制节点端的逻辑214。然后控制节点端逻辑214通过使用对应的VI克隆和发送报文到其它对应的节点来模拟广播或多播功能。可使用同样或类似的VI传递其它需要控制节点端逻辑的报文。例如如下所述,控制节点端逻辑包括支持地址解析协议(ARP)的逻辑,而VI被用于传送ARP回答和请求到控制节点。虽然上面描述在处理器逻辑和控制逻辑之间只提出一个VI,许多实施例使用若干那样的连接。此外,虽然图中在软件通讯路径中建议对称性,结构实际上允许非对称的通讯,例如如下讨论,对群集通讯服务,数据包经控制节点路由。但返回通讯能在节点之间直接进行。
注意如图2A的网络,没有在节点PN2和PNm之间通讯的机制。而且,通过集中管理和建立(不是通过处理节点)通讯路径,那样的路径不能由处理节点建立,且已定义的子网连接不能被处理器破坏。
图2C示出为实现图2A和2B的子网的某些实施例的示例性物理连接。具体说来,处理连网逻辑210的每个实例通过互连110的PtP链路216与交换结构115通讯。类似地,控制节点具有交换逻辑214的多个实例,每个经PtP连接216连接到交换结构。图2B的虚拟接口包括在这下物理链路上传递信息的逻辑,下面将进一步描述。
为建立和配置那样的网络,管理员定义PAN的网络拓扑结构并规定(如通过在管理软件135中的实用程序)各种节点的MAC地址分配。MAC地址是虚拟的,标识虚拟接口,且与任何指定物理节点无关。在某些实施例中,MAC地址遵循IEEE的48位地址格式,但其中内容包括“本地管理”(设置成1),最初在其上定义的虚拟接口的控制界定120的序号(较下面),和从在控制节点上的永久性顺序计数器来的计数值,它被保持在控制节点的NVRAM中。这下MAC将用于在第二层上识别节点(如传统那样)。例如,在回答ARP请求(无论是从内部节点到PN,或在外部网络上)时,这些MAC将包括在ARP回答中。
控制节点端的连网逻辑维护数据结构,它包含反映LAN的连接的信息(例如,哪个节点可以与哪个节点通讯)。控制节点逻辑还分配和指定对已定义的MAC地址的VI(或RVI)映射,并分配和指定在控制节点之间以及在控制节点和处理节点之间的VI(或RVI)。在图2A的例子中,逻辑将分配和指定图2B的VI212。(在某些实施例中的VI和RVI的命令是使用的交换结构及交换结构的管理器逻辑的结果)。
当每个处理器自举时,基于BIOS的自举逻辑初始化节点105的每个处理器106,除其他工作外还建立(或发现)到控制节点逻辑的VI212。然后处理器节点从控制节点获得相应的数据链路信息,如处理器节点的MAC地址,和在同一数据链路结构中其它设备的MAC标识。然后每个处理器用控制节点注册其IP地址,然后将IP地址与节点以及RVI(如注册到达的RVI)联系起来。以此方式,控制节点能够将在一个子网中对每个节点的每个虚拟MAC的各IP地址联系起来。除此之外,处理器节点还获得对它到其它节点或到控制节点连网逻辑的连接的RVI,或VI有关的信息。
这样,在自举及初始化之后,各种处理器节点将掌握它们的第二层的数据链路连接。下面将解释,在处理器正常处理过程中,作为地址解析协议的结果确定了第三层(IP)的连接,尤其是第三层到第二层的相关性。
图3A细化了某些实施例处理器端连网逻辑210,图3B细化了某些实施例的控制节点端连网逻辑310。处理器端逻辑210包括IP堆栈305,虚拟网络驱动器310,ARP逻辑350,RCLAN层315,和冗余千兆网驱动器320a,b,控制节点端逻辑310包括冗余千兆网驱动器325a,b,RCLAN层330,虚拟群集代理逻辑360,虚拟LAN服务器335,ARP服务器逻辑335,虚拟LAN代理340,和物理的LAN驱动器345。
IP堆栈
IP堆栈305是用由处理节点106使用的操作系统(如Linux)提供的通讯协议堆栈。IP堆栈为在处理器106上执行的应用程序及操作系统提供第三层的接口,以便与模拟的以太网通讯。IP堆栈结合将第三层IP地址作为信息包的目的地,向虚拟以太网层次310提供该信息包。IP堆栈逻辑是传统的,不同处在于某些实施例免去校验和计算及逻辑。
虚拟以太网驱动器
虚拟以太网驱动器310对IP堆栈305看来象“真实的”以太网驱动器。在这方面,虚拟以太网驱动器310从IP堆栈接收IP包或数据包,用于随后在网上发送,且它从网络接收要作为IP包提交给堆栈的包信息。
堆栈建立MAC标题。可使用在堆栈中的“正常”的以太网码。虚拟的以太网驱动器接收带有已建立的MAC标题的包和已经在标题中的正确的MAC地址。
参考图4A-C,在实质性部分中虚拟以太网驱动器310在405将进行的IP数据包出队,使得包能在网络上发送。使用标准的IP堆栈ARP逻辑。下面将解释,驱动器拦截所有进入和离开系统的ARP包,修改它们,使得合适的信息出现在每个节点的ARP表中。在数据包排队等待以太网驱动器之前,正常的ARP逻辑将正确的MAC地址放在输出的包的链路层标题中。然后驱动器检查链路层标题及目标MAC以确定如何发送该包。驱动器不直接处理ARP表(除非有ARP条目的偶然的不合法性)。
驱动器310在415确定,在出队的包中ARP逻辑350是否具有与IP地址相关的MAC地址信息(下面详述)。若ARP逻辑350具有该信息,于是在420就使用该信息发送包。若ARP逻辑350不具有该信息,驱动器需要确定那样的信息,在某些首选实施例中,如结合图4B-C讨论的那样,该信息作为实现ARP协议的结果而获得。
若ARP逻辑350具有MAC地址信息,驱动器分析从ARP逻辑350返回的信息以确定何处及如何发送该包。具体说来,驱动器查看地址以判断MAC地址是否为合法格式或特定非法格式。例如,在一个实施例中,通过在MAC地址的第一字节中设置本地管理位,多播位,和另外预定位模式的组合发信号给内部节点(即平台的内部PAN节点)。包罗万象的模式是极不可能为合法的模式。
若从ARP逻辑返回的ARP地址为合法的格式,与MAC地址相关的IP地址是对至少相关子网为外部的节点,且在首选实施例中对平台是外部的。为提交那样的包,驱动器将TLV(类型—长度—值)的标题预先挂在包上。然后逻辑在预先建立的VI上发送包到控制节点。然后控制节点恰当地处理余下的发送工作。
若从ARP逻辑350返回的MAC地址信息为特定的非法格式的,该非法格式表明该IP地址的节点是对内部节点的,在MAC地址信息中的信息被用于帮助识别直接连接两个处理节点的VI(或RVI)。例如,ARP表的条目能保持识别RVI212的信息,用于将包(如2121-2)发送到另外的处理节点。驱动器将TLV标题预先挂在包上。然后将地址信息以及识别以太网协议类型的信息放在标题中。然后逻辑选择发送封装的包的合适的VI(或RVI)。若该VI(或RVI)运行良好,它被用于运载该包;若它并不运行良好,该包被发送到控制节点交换逻辑(下面详述),使得交换逻辑将其发送到适当的节点。虽然ARP表可包含实际指定要用的RVI的信息,可以利用许多其它技术。例如,表中的信息可以间接地提供那样的信息,如通过指向关心的信息或通过识别关心的信息,即使表不包含该信息。
对任何多播或广播类型的报文,驱动器发送报文到已定义的VI上的控制节点。然后控制节点相应地克隆该包,并将其发送到所有节点(除发送的节点以外),因而到上行链路。
若不存在ARP映射,则更高的层次永不会将包发送到该驱动器。若不存在可用的数据链路层映射,在ARP转换完成前该包被置于一旁。一旦ARP层次结束ARP工作,挂有ARP的包使建立它们的数据链路标题,且该包随后被送到驱动器。
若对于IP包的IP地址,ARP逻辑没有从IP堆栈的映射,结果驱动器310不能确定有关的地址信息(即MAC地址或RVI相关信息),驱动器通过遵循ARP协议获得那样的信息。参考图4B-C,驱动器在425建立包含有关IP地址的ARP请求包,对此IP地址在本地ARP表中没有MAC映射。然后节点在430预先将TLV-型标题挂到ARP包上。然后ARP请求经过专用的RVI被送到控制节点端的连网逻辑—具体说来是虚拟LAN服务器335。
下面将详述,ARP请求包在435由控制节点处理,并在440广播到有关节点。例如,控制节点将标记出,请求节点是否为IP服务群集的部分。
在有关节点的以太网驱动器逻辑310在445接收ARP回答,并在450借助对节点的IP堆栈作出调用,通过将目标IP地址与本地配置的IP地址的列表作比较确定,它是否为ARP请求的目标。若它不是目标,它拒绝该包而不作修改。若它是目标,驱动器在460从TLV标题建立本地MAC标题,并在465更新ARP表而且建立ARP回答。驱动器修改在ARP请求中的信息(主要是源MAC),并随后通常将ARP请求上传,用于更高层次的处理。正是该更高的层次在必要时形成ARP回答。回答包含回答节点的MAC地址及其它,并具有在TLV标题中设置的位,指出回答是从本地节点来。在这方面,节点按照IETF-类型的ARP语义响应(与ATM ARP协议不同,在后者中ARP回答被集中处理)。然后在470回答被发送。
下面将更详细描述,控制节点逻辑335在473接收回答并修改它。例如,控制节点可以用识别源机柜的信息,处理节点号,RVI连接号,通道,虚拟接口号,和虚拟LAN的名称替代回答的内部节点的MAC地址。一旦ARP回答被修改,控制节点逻辑在475随后发送ARP回答给适当的节点,即发送该ARP请求的节点,或在特定实例中送到IP服务群集的负载均衡器,这将在下面讨论。
封装的ARP回答最终在480被接收。若回答节点是外部节点,ARP回到包含回答节点的MAC地址。若回答节点是内部节点,替代地,ARP回答包含识别有关RVI的信息以便与节点通讯。在两种情况在485更新本地表。
挂上的数据包在487出队,且在493选择合适的RVI。如上讨论,合适的RVI根据目标节点是内部或外部来选择。TLV标题被预先挂到数据包并在495被发送。
为了在虚拟LAN中通讯,最大发送单位(MTU)被配置成16896字节。即使配置的MTU是16896字节,在包被送到外部网络时以太网驱动器310予以辨别。通过使用路径MTU发现,ICMP和IP堆栈改变,路径MTU在源节点105处被改变。此机制也被用于触发包的校验和。
本发明的某些实施例通过在虚拟LAN服务器335处和在虚拟LAN驱动器310中的逻辑的组合支持混合模式。当虚拟LAN驱动器310从虚拟LAN服务器335接收混合模式的报文时,报文包含有关识别希望进入混合模式的接收器的信息。此信息包括接收器的位置(机柜,节点等),在接收器上混合虚拟接口310的接口号(对信号分离包所需要的),和接收器所属的虚拟LAN的名称。此信息随后被驱动器310用于确定,如何发送混合的包到接收器(哪个RVI,或用于发送包的其它机制)。虚拟接口310在同一虚拟LAN上维护混合的监听者的表。当发送节点接收混合模式的报文时,它将随之更新它的混合表。
当包在虚拟以太网驱动器上发送时,此表被审查。若表非空,则虚拟以太网接口310将做下列工作:
·若发出的包是广播或多播的,将不发送混合拷贝,正常的广播操作将发送包到混合的监听者
·若包是其目标不是混合的监听者的单播包,包将被克隆并送到混合的监听者。
标题TLV包括目标用来信号分离并校验输入的包的额外信息。此信息的部分是目标的虚拟以太网接口号(在接收节点的目标设备号)。因为在实际的包目标及混合的目标之间这些可能是不同的,此标题不能简单地被克隆。因此,为了每个包克隆到每个混合监听者,必须对每个标题分配存储器。在对混合包建立包标题时,必须设置包类型,指出该包是混合发送而不是单播发送。
虚拟以太网驱动器310也负责处理冗余的控制节点连接。例如,虚拟以太网驱动器通过发送脉动信息包TLV到每个连接的RVI,周期地测试端到端的连接。这使虚拟以太网驱动器能确定节点是否停止响应,或停止的节点是否开始再次响应。当一个RVI或控制节点120被判断停止了,以太网驱动器将通过活动的控制节点发送通信量。若两个控制节点在工作,驱动器310试图在两个节点之间负载均衡通信量。
本发明的某些实施例提供性能改善。例如,带着对IP堆栈305的修改,只在平台100内发送的包不作校验和,因为平台100的所有单元提供错误检测并保证数据的提交。
此外,为了在PAN中(或甚至在平台100中)通讯,RVI能配置成使得包大于以太网允许的最大尺寸。因此,虽然在某些实施例中模型以太网行为,最大包尺寸可以被破坏以改善性能。作为数据链路层的部分,实际的包尺寸可以协商确定。
控制节点的故障或者由来自RCLAN层的通知或者由脉动信息包TLV的故障检测。若一个控制节点失败,以太网驱动器310将通信量只送到余下的控制节点。以太网驱动器310将通过来自RCLAN层的通知或脉动信息量TLV的恢复辨别控制节点的恢复。一旦控制节点恢复,以太网驱动器310将恢复负载均衡。
若一节点检测到它不能通过直接RVI(如上描述的)与另外节点通讯,该节点试图经过起交换器作用的控制节点通讯。那样的故障能由较低的RCLAN层根据如不能收到虚拟接口的确认,或通过脉动信息机制检测的故障发信号通知。在此情况,驱动器随即标注在TLV标题中的位,指出该报文是单播,并发送包到控制节点,使得它能发送包到希望的节点(例如若需要时根据IP地址)。
RCLAN层
RCLAN层315负责处理冗余互连NIC107的冗余性,故障在线恢复和负载均衡逻辑。这包括检测故障,在故障时在冗余的连接上再路由通信量,负载均衡,和不能提交通信量的报告回到虚拟网驱动器310。当在任何RVI上存在使RVI不能使用的致命性错误或若任何RVI由于任何理由停止时,虚拟以太网驱动器310期望能够异步地得到通知。
在正常情况,在每个处理器上的虚拟网络驱动器310试图在可用的控制节点之间负载均衡送出的包。这能通过在可用的控制节点之间的简单循环更迭做到,或通过持续跟踪在每个控制节点有多少字节已被发送,并总是通过发送最少字节的控制节点发送来做到。
RCLAN提供在核心之间高的带宽(每条路径224MB/秒)、低延时、可靠的异步点对点通讯。若作出了最大努力提交数据,数据未能被提交,通知数据的发送者。RCLAN使用二个Giganett Clan1000卡提供在核心之间的冗余通讯路径。它无缝地恢复在clan1000卡或千兆网交换机中的单个故障。它检测丢失的数据和数据错误,并在需要时重发送数据。只要一个连接在部分地工作,例如错误率不超过5%,通信将不会中断。RCLAN的客户包括RPC机制,远程SCSI机制,和远程以太网。RCLAN还提供流控制的简单形式。低的延时和高的并发性通过允许对每个设备的多个同时请求由处理器节点发送到控制节点来实现,使得这些请求能尽可能快地传输到设备,或另选地使得与在处理器节点上排队所有请求相反,它们排队在尽可能地靠近设备处等待完成。
在控制节点端的RCLAN层330类似于上述地操作。
千兆网驱动器
千兆网驱动器逻辑320是负责为千兆网NIC107提供接口的逻辑。无论它在处理器106上或控制节点120上。简而言之,千兆网驱动器逻辑建立与VIid相关的VI连接,使得如RCLAN315和以太网驱动器310那样的较高层只需要理解VI的语义。
千兆网驱动器逻辑负责在每个节点为缓冲器及VI的队列分配存储器,用于检查NIC107以便知道其连接和存储器分配。某些实施例使用由千兆网驱动器提供的VI连接。千兆网NIC驱动器码建立虚拟接口对(即VI),并将其赋予对应的虚拟接口id。
每个VI是在一个千兆网端口和另一个之间建立的双向连接,或更确切地说是在一个节点上的存储器缓冲器及存储器队列和另一个上的缓冲器及队列之间的连接。如上所述,端口和存储器的分配由NIC驱动器处理。通过将数据放入NIC知道的缓冲器并借助将其写到特定的存储器映射寄存器而触发动作,来将数据发送出去。在接收端,数据出现在缓冲器而完成状态出现在队列中。若发送和接收程序能够在连接的缓冲区中产生和使用报文,数据决不需要拷贝。若操作系统能将连接的缓冲器及控制寄存器“存储器—映射“到应用程序的地址空间,发送甚至能直接从应用程序到应用程序。每个千兆网端口能在其上支持1024个同时的VI连接,并用硬件保护互相分开地保存它们,所以操作系统和完全不同的应用程序能完全地共享单个端口。在本发明的一个实施例中可以同时建立14个从每个端口到每个另外的端口的VI连接。
在首选实施例中,NIC驱动器以冗余对方式建立VI连接,该对的一个连接通过两个交换结构115a,b的一个而另一个通过另外的交换器。而且在首选实施例中,数据在该对的两个分支上交替发送,在交换器上均衡负载。替换地,冗余对也能以故障在线恢复方式使用。
只要操作系统保持运行,由节点建立的所有连接对能够维持,模拟以太网连接的连接对的建立试图尽可能持久地类似于在网络接口卡之间实际地插入电缆。若在节点的操作系统运行时节点的已定义的配置改变了,则在改变时刻可应用的冗余虚拟接口连接对被建立或舍弃。
在控制节点端的千兆网驱动器逻辑325类似于上述那样地运行。
虚拟LAN服务器
虚拟LAN服务器逻辑335便于在底层NBMA网络上模拟以太网。虚拟LAN服务器逻辑:
2、管理相应虚拟LAN的成员;
3、提供RVI映射及管理;
4、对RVI的ARP处理及IP映射;
5、提供广播及多播服务;
6、便于桥接和路由到其他域;和
7、管理服务群集。
1、虚拟LAN成员管理
管理员使用管理应用程序135配置虚拟LAN。在虚拟LAN上IP地址的分配和配置能以如“普通“子网的同样方式完成。使用的IP地址的选择取决于虚拟LAN上节点的外部可见性。若虚拟LAN不是全局可见(或在平台外不可见,或从因特网不可见),应使用专用IP地址。否则,IP地址必须从由提供因特网连接的因特网服务提供者(ISP)提出的范围配置。通常,虚拟LAN IP地址的指定必须象正常LAN IP地址指定那样相同地处理。存储在控制节点120的本地磁盘上的配置文件定义在虚拟LAN中的IP地址。为了虚拟网络接口的目的,IP的别名只是建立在虚拟LAN服务器逻辑335上另外IP到RVI的映射。每个处理器在需要时能配置多个虚拟接口。在建立和配置虚拟网络接口方面的主要限制是IP地址分配和配置。
每个虚拟LAN具有服务器逻辑335的对应实例,它在控制节点120上和一系列在处理器节点105上执行的节点上执行,由管理员定义拓扑结构。
每个虚拟LAN服务器335被配置成只管理一个广播域,在给定的第二层广播域上能出现任何数目的第三层(IP)子网。响应管理员的命令配置和建立服务器335,以建立虚拟LAN。
当处理器106自举并配置其虚拟网络时,它通过专门的管理RVI连接到虚拟LAN服务器335。然后处理器获得它们的数据链路配置信息,如对它指定的虚拟MAC地址,虚拟LAN成员信息等。虚拟LAN服务器335将判断和确认,试图连接它的处理器正是服务器335要服务的虚拟LAN的成员。若该处理器不是虚拟LAN的成员,到服务器的连接被拒绝。若是成员,虚拟网络驱动器310用虚拟LAN服务器注册其IP地址。(在配置驱动器310时由IP堆栈305提供IP地址)。然后虚拟LAN服务器将该IP地址联系到注册到达的RVI。这就使虚拟LAN服务器能找到与特定IP地址相关的处理器。此外,IP地址与处理器的联系能通过虚拟LAN管理接口135实现。后一种方法对于用专门的处理恰当地配置群集IP地址或IP地址是必要的。
2、RVI映射及管理
如上描述,某些实施例在数据链路层使用RVI连接节点,并形成控制连接。某些连接作为控制节点自举和初始化的一部分被建立和指定。为上述的理由使用数据链路层。使用控制连接交换管理,配置及健康信息。
某些RVI连接在用于单播通讯的节点之间,如2121-2。其它RVI连接是到虚拟LAN服务器逻辑335的,使得服务器能处理请求,如ARP通讯,广播等。为建立RVI,虚拟LAN服务器335通过调用千兆网交换管理器360(用交换网和千兆网NIC提供)建立和去除RVI。交换管理器能在控制节点120执行,并协同千兆网驱动器建立RVI。
如上所述,关于处理器连接,作为对虚拟LAN服务器335注册的节点,虚拟LAN服务器对该节点建立并指定虚拟MAC地址。与此相关,虚拟LAN服务器逻辑维护反映对各个节点的拓扑结构和MAC分派的数据结构,然后虚拟LAN服务器逻辑对节点间的单播路径建立对应的RVI。这些RVI随后被分配,并在节点自举过程中通知各节点。而且,RVI还与虚拟LN服务器处理ARP通讯期间的IP地址有关。若节点从拓扑结构中移去,RVI连接断开。
若在所建立的RVI连接一端的节点106重自举,该连接每一端的两个操作系统和RVI管理逻辑重新建立连接。使用在运行中的处理节点上连接的软件不会觉察到连接本身发生的任何事情。软件是否注意或关心在另一端的软件的重自举取决于它为什么使用连接,及在什么程度上该重自举端能从永久存储器重建其状态。例如,任何通过传输控制协议(TCP)通讯的软件应注意到,在重自举时所有TCP会话被关闭。相反,网络文件系统(NFS)访问是无状态的,若重自举发生在允许的超时周期内,它不受重自举的影响。
若一节点不能在任何时刻在直接的RVI上发送包,它总能尝试通过虚拟LAN服务器335发送包到目的地。因为虚拟LAN服务器335通过控制连接连接到虚拟LAN上的所有虚拟以太网驱动器310接口,虚拟服务器335也能用作最后手段的包转接机制。
关于虚拟LAN服务器335的连接,某些实施例使用虚拟以太网驱动器310,它在算法上确定,为连接到其相关的虚拟LAN服务器335它应使用的RVI。取决于实施例的算法可能需要考虑标识信息,如识别RVI的机柜号。
3、ARP处理和IP到RVI的映射
如上解释,某些实施例的虚拟以太网驱动器310支持ARP。在这些实施例中,使用ARP处理有助于在节点上建立在IP地址和RVI之间的映射,而RVI能用于在节点间传输包括IP包的单播通信。
为此,虚拟以太网驱动器310经专用的RVI发送ARP包的请求及回答到虚拟LAN服务器335,虚拟LAN服务器335,和ARP服务器逻辑355通过加信息到包的标题而处理该包。如上解释,此信息便于识别源和目标,并识别可在节点之间使用的RVI。
ARP服务器逻辑355接收ARP请求,处理TLV标题,并将请求广播到内部平台和合适的外部网络上的所有相关节点。除其它事情以外,服务器逻辑确定谁应接收根据请求导致的ARP回答。例如,若源是群集的IP地址,回答应发送到群集负载均衡器,而不必是ARP请求的源。服务器逻辑355通过将信息包括在ARP请求的TLV标题来指出那里,从而向ARP的目标回答。服务器335通过将更多信息包括在附加的标题中来处理ARP包,并广播该包到有关域中的节点,例如,修改的标题能包括识别源机柜,处理节点号,RVI连接号,通道,虚拟接口号,和虚拟LAN名(其中某些只由服务器335知道)的信息。
ARP的回答被服务器逻辑335接收,后者随后将回答中的MAC信息映射到对应RVI的有关信息。RVI的有关信息放在回答目标MAC条目中,并被送到适当的源节点(如可以是请求的发送者,但在如群集IP地址的某些情况,可以是其它节点)。
4、广播和多播服务
如上描述,通过在专用RVI上接收包来处理广播。然后包被服务器335克隆,并单播到相关广播域中的所有虚拟接口310。
对多播可使用同样的方法。所有多播包将从虚拟LAN服务器反射出来。在某些另选的实施例中,虚拟LAN服务器象广播那样处理多播,并依赖在每个节点的IP过滤,过滤出不要的包。
在应用程序希望发送或接收多播地址时,它必须首先加入多播组。在处理器上的处理实现多播加入时,处理器虚拟网络驱动器310通过专用RVI发送加入请求到虚拟LAN服务器335。然后如下面讨论,虚拟LAN服务器在接口上配置特定的多播MAC地址,并必要时通知LAN代理340。代理340必须保持在特定多播组上使用计数的跟踪,所以当没有处理器属于该多播组时多播地址被去除。
5、桥接和路由到其它域
从系统100的图中,外部网络125能以两种方式运行,过滤的或非过滤的。在过滤方式中,使用整个系统的单个MAC地址于所有输出的包。这就隐藏在虚拟LAN代理340背后的处理节点107的虚拟MAC地址,并使得系统看来象在网络125上的单个节点(或在网桥或代理背后的多个节点)。因为这没有对每个内部节点107暴露了单独的链路层信息,需要某些其它单独的标识符号以便适当地提交进入的包。当以过滤方式运行时,使用每个进入包的目标IP地址来单独地识别预定的接收者,因为MAC地址上识别系统。在非过滤方式中,节点107的虚拟MAC在系统之外是可见的,所以它们能用于直接进入的通信。即过滤方式委托第三层交换而非过滤方式允许第二层交换。过滤方式需要某些组件(在此情况是虚拟LAN代理340)实现在所有输出的包中用外部网络125的MAC地址替代节点的虚拟MAC地址。
某些实施例支持连接到外部网络的虚拟LAN能力。因此,虚拟LAN必须处理未在本地配置的IP地址。为此,一个实施例加上对外部广播域,那样连接的每个虚拟LAN受限制的极限。对虚拟LAN的内部节点,IP地址和子网的指定必须与外部域一致。
虚拟LAN服务器335通过有效地起着链路层网桥的作用服务于外部连接,在网桥中在外部以太网驱动器345和内部处理器之间传送包,并实现非IP处理。但是不像数据链路层的网桥,服务器不能总是依靠从外部网络到内部节点的完全不同层的两个地址,不同的是连接可以使用第三层(IP)信息作出桥接决策。为了这样做,外部连接软件从进入的包抽取IP地址,且它使用此信息识别正确的节点106,使包能传送到那个节点。
具有连接的外部广播的虚拟LAN服务器335必须截取并处理来往外部域的包,使得在广播域中外部节点具有子网的一致的视图。
当具有连接的外部广播域的虚拟LAN服务器335从外部节点接收ARP请求时,它将转接该请求到所有内部节点。随后正确的节点将组成回答并将回答通过虚拟LAN服务器335送回到请求者。虚拟LAN服务器与虚拟LAN代理340合作,使得该代理在输出的请求上处理任何必要的MAC地址翻译。从外部源来的所有ARP回答及ARP广告将直接转接到目标节点。
虚拟以太网接口310将在控制连接RVI上发送所有带有外部目标的单播包到虚拟LAN服务器335。(外部目标可由驱动器借助MAC地址格式辨别)。然后虚拟LAN服务器传送包到外部网络125。
若虚拟LAN服务器335从内部节点接收广播或多播包,除了转接该包到所有内部虚拟LAN成员外,它将包转接到外部网络。若虚拟LAN服务器335从外部源接收广播或多播包,它转接该包到所有连接的内部节点。
在某些实施例中,通过采用IP路由器和防火墙,使用在互连的物理的LAN中类似的机制,实现互连的虚拟LAN。在双方LAN上配置一个处理器,在该处理器上的Linux核心必须启用路由(可能是IP的伪装)。即使两个节点位于同一平台上,正常的IP子网和路由语义要永久维护。
一个处理器应配置成在两个外部子网之间、在外部和内部子网之间,和在两个内部子网之间的路由器。由于内部网络的点对点拓扑结构,当内部节点通过路由器发送包时不存在问题。发送者直接发送到路由器(即用路由逻辑配置的处理器)而没有虚拟LAN服务器的干涉(即如上讨论典型的处理器到处理器的通讯)。
当外部节点发送包到内部路由器,且外部网络以过滤方式运行时,进入包的目标MAC地址将是平台100的MAC地址。因此MAC地址不能被用于唯一地识别包的目标节点。对于其目标是虚拟LAN上的内部节点的包,在IP标题中的目标IP地址被用于将包引导到适当的目标节点。但是,因为路由器不是最终目标,在IP标题中的目标IP地址是最终目标的地址,而不是下一个转发段(内部路由器)的地址,因此在进入的包中没有什么能用于引导它到正确的内部节点。为处理此情况,一个实施例加了一个限制,在虚拟LAN中最多只有一个路由器暴露在外面网络中。此路由器用虚拟LAN服务器335注册成默认的目标,使得无有效目标的进入包将向此默认节点。
当外部节点发送包到内部路由器,且外部网络125以非过滤方式运行,输入包的目标MAC地址将是内部目标节点的虚拟MAC地址。然后LAN服务器335将使用此虚拟MAC地址直接发送包到目标内部节点。在此情况,任何数目的内部节点都能起到路由器的作用,因为输入包的MAC地址将唯一地识别该目标地址。
若配置需要在一个子网中有多个路由器,一个路由器能选作暴露的路由器。在必要时此路由器能转而路由到其它路由器。
在本发明的某些实施例中,基于无状态(即,每个IP包而非每个TCP连接)使路由器成为一个群集服务并且均衡负载或故障在线恢复来提供路由器冗余。
本发明的某些实施例通过提供交换语义支持混合的模式的功能,其中给定的端口能被设计成混合端口,使得所有通过交换机的通信量在混合端口上重复。在虚拟LAN服务器上在管理上应指定允许以混合模式监听的节点。
当虚拟以太网接口310进入混合接收模式,它将在管理RVI上发送报文到虚拟LAN服务器335。此报文包含所有有关进入混合模式的虚拟以太网接口310的信息。当虚拟LAN服务器从一个节点接收混合模式的报文,它校验其配置信息,判断是否允许该节点混合地监听。若否,虚拟LAN服务器将丢下此混合模式的报文不再处理。若节点允许进入混合模式,虚拟LAN服务器将向虚拟LAN上的所有其节点广播该混合模式报文。虚拟LAN服务器也将标记该节点为混合的,使得能向它转送输入的外部包的拷贝。当混合的监听者检测到在其RVI配置中的任何改变,它将发送混合模式的报文到虚拟LAN,更新在相关广播域中所有其它节点的状态。这将更新任何进入或离开虚拟LAN的节点。当虚拟以太网接口310离开混合方式,它将向虚拟LAN服务器发送一报文,通知它接口正离开混合模式。然后虚拟LAN服务器发送此报文到该虚拟LAN上的所有其它节点。当任何内部虚拟接口是混合方式监听者时,混合设定考虑以混合模式放置一个外部连接。这使平台外部的通信量(但在同一虚拟LAN上)为混合的监听者可用。
6、管理服务群集
服务群集是在一个或多个IP地址(或主机名称)上可得到的一组服务。这些服务的例子是HTTP,FTP,远程登录,NFS等。IP地址和端口号对表示由群集向包括外部网络125上的客户提供的特殊服务类型(虽然不是服务实例)。
图5示出某些实施例如何通过群集IP地址将虚拟的服务群集505表示成对因特网或其它外部网络125的单个虚拟主机。群集505的所有服务通过单个IP地址,通过在该IP地址的不同端口编址,在图5的例中,服务B是负载均衡服务。
参考图3B,虚拟群集由与虚拟LAN服务器335合作的虚拟群集代理(VCP)逻辑360的合成所支持。简而言之,VCP360负责对每个配置的虚拟IP地址处理输入连接,端口过滤器,和真实服务连接的分配。对每个配置的群集IP地址存在一个VCP。
当一个包到达虚拟IP地址,虚拟LAN代理逻辑将发送该包到VCP360进行处理。然后VCP根据包的内容,它的内部连接状态缓冲器,应用到输入通信的负载均衡算法,和构成的服务的可用性决定将包发送到何处。VCP将根据目标IP地址和TCP或UDP端口号转接输入的包。此外,它只分配为VCP已知的端口号(或对存在的TCP连接)指定的包。正是这些端口的配置和端口号对一个或多个处理器的映射建立了虚拟的群集,并使特定的服务实例在群集中可得到。若从多个应用服务器构造同样服务的多个实例,VCP能在服务实例之间均衡负载。
VCP360维护在群集的IP地址上存在的所有活动的连接的缓冲器。任何作出的负载均衡决策只有当在客户和服务之间建立新的连接时作出。一旦建立了连接,VCP将使用在输入包的标题中的源和目标信息保证在TCP流中的所有包路由到提供服务的同一处理器106。在没有能力确定客户会话(如HTTP会话)的情况,实际的连接/负载均衡映射缓冲根据客户地址路由数据包,使得从同一客户的随后连接进到同一处理器(使客户会话持续或“粘住”)。在服务端口号基础上会话持续应是可选的,因为只有某些类型的服务需要会话持续。
对ARP请求的回答和ARP回答的路由由VCP处理。在处理器发送任何ARP包时,它通知虚拟以太网驱动器310发出。然后包被送到虚拟LAN服务器335进行正常的ARP处理。通常虚拟LAN服务器广播此包,但保证不会广播到群集的任何成员(不只是发送者)。它也将信息放在包的标题TLV,向ARP目标指出,通过虚拟LAN服务器,尤其是通过负载均衡器只能达到ARP源。无论是内部或外部的ARP目标正常地处理ARP请求,并通过虚拟LAN服务器将回答送回。因为ARP的源是群集IP地址,虚拟LAN服务器不能确定哪个处理器发出原始的请求。因此虚拟LAN服务器将回答送到每个群集成员,使它们能正确地处理它。当ARP包被带着群集IP地址作为目标的源发送时,虚拟LAN服务器发送请求到每个群集成员。每个群集成员接收该ARP请求并正常地处理它。然后它们组成ARP回答并经过虚拟LAN服务器发回给源。当虚拟LAN服务器从群集成员接收任何ARP回答时,它丢弃该回答,但虚拟LAN服务器将组成并发送ARP回答给ARP源。因此,虚拟LAN服务器将响应群集IP地址的所有ARP。ARP回答将包含为了ARP源将所有对该群集IP地址的包发送到VCP所必需的信息。对外部ARP源,这简单地是带着作为源硬件地址的外部MAC地址的ARP回答。对内部ARP源这是必要的信息,告诉源发送对群集地址的包到虚拟LAN管理RVI,而不是通过直接连接的RVI。任何接收到的无理由的ARP包转送到所有群集成员。由群集成员发送的任何无理由的ARP包将被正常地发送。
虚拟LAN代理
虚拟LAN代理340完成在所有具有的外部物理网络125的虚拟接口的处理器中物理的网络资源的基本协调。它将虚拟LAN服务器335桥接到外部网络125。当外部网络125以过滤方式运行时,虚拟LAN代理340将内部虚拟MAC地址从每个节点转换成对系统100指定的单个外部MAC。当外部网络125以非过滤方式运行时,不需要那样的转换。虚拟LAN代理340还完成IEEE802.1Q虚拟LAN ID标签信息的插入和去除,并根据它们的VLANId分离包。它还使对物理的以太网接口129的访问顺序化,并协调在物理网络上如多播地址那样的MAC地址的分配及去除。
当外部网络125以过滤方式运行,且虚拟LAN代理340从虚拟LAN服务器335接收输出的包(ARP或其它)时,它用物理的以太网设备129的MAC地址代替内部格式MAC地址,作为源MAC地址。当外部网络125以非过滤方式运行时,不需要那样替代。
当虚拟LAN代理340接收输入的ARP包,它传送该包到虚拟LAN服务器335,后者处理该包并将该包转接到正确的目标。若ARP包是广播包,则包被转接到虚拟LAN上的所有内部节点。若该包为单播包,则该包仅被发送到目标节点。当外部网络125以过滤方式运行时,目标节点由ARP包中的IP地址确定,或由ARP包的以太网标题中的MAC地址确定(不是ARP包的MAC地址)。
物理LAN驱动器
在某些实施例中,到外部网络125的连接是通过连接到控制节点的千兆位或100/10baseT以太网链路。物理的LAN驱动器345负责与那样链路的接口。在接口上发送的包以正常方式排队等待设备,包括将包收入报路缓冲器。用于排队包的队列是由协议堆栈使用的队列,将包排队等待设备的发送例行程序。对输入的包,包含该包的报路缓冲器循环进行,而包数据不需拷贝(虽然对多播操作在需要时克隆)。在这些实施例中,在控制节点中能使用通常的Linux网络设备驱动程序而不必修改。这便于增加新的设备到平台中,而不需要附加的设备驱动程序的工作。
物理的网络接口345只与虚拟LAN代理340通讯。这就避免控制节点以任何方式使用外部连接,那样会干扰虚拟LAN的操作,从而改善了用户数据的安全性及隔离,即管理员也不能“嗅探”任何用户的包。
负载均衡及故障在线恢复
在某些实施例,另外可以使用到外部网络125的冗余连接,使到外部网络125的两个冗余接口之间的包传输负载均衡。另外的实施例通过在交替的控制节点上配置每个虚拟网络接口来负载均衡,使得虚拟接口在两个控制节点之间均匀分配。另外实施例通过一个控制节点发送并通过另一个接收。
在过滤方式中,存在外部可见的MAC地址,对一组虚拟网络接口,外部节点向它发送包。若那个适配器停止,则不仅该虚拟网络接口必须故障在线恢复到另外控制节点,而且MAC地址也要故障在线恢复,使得外部节点能继续发送包到已经在ARP高速缓冲中的MAC地址。在本发明的一个实施例中,当故障的控制节点恢复时,单个MAC地址被处理,且该MAC地址不必须在恢复时重新被映射。
在本发明的另外实施例中,借助允许在两个控制节点发送但只通过一个接收来实现负载均衡。故障在线恢复的情况为发送并通过同一控制节点接收。恢复情况通过恢复的控制节点发送,因为那不需要任何MAC处理。
进行接收的控制节点具有用于过滤的IP信息和用于多播MAC配置的多播地址信息。此信息对处理输入包是需要的且在接收控制节点故障时此信息应能故障在线恢复。若发送控制节点故障,虚拟网络驱动器只需要将发送输出包到接收控制节点。除了辨别发送控制节点已故障之外不需要专门的故障在线恢复处理。若故障的控制节点恢复,虚拟网络驱动器能重新开始发送输出包到恢复的控制节点而不必任何时加的专门恢复处理。若接收控制节点故障,则发送控制节点必须承担接收接口的作用。为此,必须在其物理接口配置所有MAC地址,使包能够接收。另选地,两个控制节点能具有在它们的接口上配置的同一MAC地址,但在控制节点准备接收包之前,在以太网设备上能由设备驱动程序在物理上禁止接收。这样,故障在线恢复将简单地启用在该设备上的接收。
因为当任何处理器加入多播组时,接口必须用多播MAC地址配置,多播信息必须在控制节点之间共享,使得故障在线恢复对处理器透明。因为虚拟网络驱动器无论如何必须保持对多播组成员的跟踪,此信息在需要时总能经过虚拟LAN服务器为LAN代理可用。因此,接收故障在线恢复将导致多播组成员从虚拟网络驱动器被查询以便重建本地多播组成员表。此操作是低开销的,且除了在故障在线恢复及恢复期间不需要专门的处理,并在各控制节点之间不需要任何专门的数据复制。当接收已经处于故障在线恢复而且故障的控制节点恢复时,只有发送将被移到已恢复的控制节点。因此在虚拟网络接口上恢复的算法总是将发送移到已恢复的控制节点,让接收处理留在原处。
虚拟服务群集也能使用负载均衡及故障在线恢复。
多播平台
某些实施例允许机柜互相连接以形成更大的平台。每个机柜至少具有一个控制节点用于机柜间的连接。每个控制节点包括处理本地连接和通信的虚拟LAN服务器335。一个服务器配置成主服务器,如位于带外部的虚拟LAN连接的节点的那个服务器。另一虚拟LAN服务器起着代理服务器或从属服务器的作用,使这些机柜的本地处理器能参与其中。主服务器维护所有虚拟LAN状态和控制,而代理服务器则在处理器和主服务器之间转接数据包。
每个虚拟LAN服务器代理维护对每个主虚拟LAN服务器的RVI。每个本地处理器连接到虚拟LAN服务器的代理服务器,好象它就是主服务器。当处理器连接并注册IP和MAC地址时,代理服务器将用主服务器注册该IP和MAC地址。这引起主服务器将地址从代理服务器联系到RVI。因此,主服务器包含对所有内部节点的RVI连接,但代理服务器只包含对同一机柜的节点的连接。
当在多机柜虚拟LAN中任何处的处理器发送任何包到其虚拟LAN服务器时,包将被转换到主服务器进行处理。然后主服务器对该包作正常处理。主服务器转接该包到代理服务器,对多播和广播这是必要的。主服务器还根据单播包的目标IP地址和在代理服务器上的注册IP地址转接单播包。注意,在主服务器上,代理服务器连接看上去很象带有许多配置的IP地址的节点。
网络管理逻辑
在处理节点上没有运行如自举或核心排错的操作系统的期间,节点的顺序的控制台通信量和自举映象请求被位于处理节点的核心排错软件或BIOS的交换机驱动器码路由,以便管理在控制节点(未示出)运行的软件。由那里能再次访问控制占通信量,或者从高速外部网125,或者通过控制节点的管理端口。从控制节点的本地盘或从外部SAN 130之外的部分能满足自举映象请求。在对处理节点能做任何事情之前控制节点120最好自举并正常运行。控制节点本身从其管理端口自举或排错。
某些客户希望通过将他们的管理端在需要时插入现场计算机来将控制器的自举及排错限止到只有本地访问。其他人可以选择通过为了管理的目的建立与因特网适当地隔离的安全网络段来允许远程自举和排错,他们的管理端口插入到该网段。一旦控制器被自举并正常运行,若管理员允许,对它及平台其余部分的其它管理功能可以从高速外部网125以及管理端口访问。
来往于每个处理节点105的顺序的控制台通信量在交换结构115上由操作系统核心驱动器发送到在控制节点120运行的管理软件。从那里,任何节点的控制台通信量能从正常的高速外部网络访问或通过双方控制节点的管理端口访问。
存储结构
某些实施例遵循存储的SCSI模式。每个虚拟PAN具有其自己的虚拟化I/O空间并在那个空间中发出SCSI命令及状态。在控制节点的逻辑必要时翻译或转换从PAN来的地址及命令,并接着将它们发送到服务这些命令的SAN 130。从SAN的角度,客户是平台100,而发出命令的实际PAN被隐藏和匿名。因为SAN空间是虚拟化的,在平台100上运行的PAN能具有从设备号1开始的设备编号,且第二个PAN也能具有设备号1。此外每个设备号1对应于SAN存储的不同的唯一部分。
在首选实施例中,管理员能建立虚拟存储。每个PAN具有它自己的海量存储的独立联系。因此如下面解释,第一PAN能具有到SAN中第一位置的给定的设备/LUN映射地址,而第二PAN具有到SAN第二个不同位置的同样的给定的设备/LUN映射。每个处理器将设备/LUN地址映射到主要和次要设备号,例如用于识别盘和分区。虽然主要和次要设备号被PAN和PAN中的处理器理解成物理地址,实际上它们被平台处理成对由SAN提供的海量存储的虚拟地址。即每个处理器的主要和次要设备号被映射到对应的SAN位置。
图6示出用于实现某些实施例的存储结构的软件组件。通常,在控制节点120执行的配置组件605与外部SAN 130通讯。管理接口组件610提供到配置组件605的接口,并与IP网络125通讯,从而与远程管理逻辑135通讯(见图1)。在系统100中的每个处理器106包括处理器端存储逻辑的实例620。每个那样的实例620经过2个RVI连接625与控制单点端存储逻辑615的对应实例通讯。
简而言之,配置组件605和接口610负责发现被分配到平台100的SAN存储器的那些部分,并负责使管理员将部分子分配到特定的PAN或处理器106。存储配置逻辑605还负责将SAN存储分配通知控制节点端的逻辑615。处理器存储逻辑620负责将通过内部互连110和存储的网115的处理器存储请求经专用RV I625通知控制节点端逻辑615。在某些实施例中该请求包含虚拟存储地址和SCSI命令。控制节点端逻辑负责通过识别对SAN的对应实际地址并通过将命令协议转换成对SAN适合的格式来接收和处理那样的命令,连接可以如光纤通道,但不限于此(带iSCSI的千兆位以太网是另外的示例性连接)。
配置组件
配置组件605确定,在SAN 130中哪个单元对每个单独的处理器106是可见的。它提供映射功能,通过他们附带的SCSI和光纤通道I/O接口128将处理器使用的设备号(如SCSI目标和LUN)翻译成对控制节点可见的设备号。它还提供访问控制功能,使处理器不能访问附着于该控制节点但不包括在该处理器和配置中的外部存储设备。提供给处理器的(且给系统管理员及该处理器上的应用程序/用户)的模型使得它看起来似乎每个处理器具有附着于该处理器的接口的它自己的海量存储设备。
除了其他事情,此功能使得在一个处理器106上的软件容易地移到另外处理器。例如在某些实施例,控制节点通过软件(不必任何物理上重新布电缆)可改变PAN的配置,使新的处理器能访问需要的设备。因此能使新的处理器继承另一处理器的存储个性。
在某些实施例中,控制节点看来象SAN上的主机,虽然另选的实施例允许处理器起那样的作用。
如上描述,配置逻辑发现分配给平台100的SAN存储(例如在平台自举时)且此存储池随后由管理员分配。若发现在以后激活,完成发现操作的控制节点将新的视图与以前的视图比较。新的可用的存储被加入可由管理员分配的存储池。消失的未指定的分区从可对PAN分配的可用的存储池中去除。消失的分区被赋予触发器错误报文。
管理接口组件
配置组件605使管理软件能访问和更新下述信息,它描述在对控制节点120可见的设备和对单独的处理器106可见的虚拟设备之间的设备映射。它还允许访问控制信息。此指定能由处理节点结合模拟的SCSI盘的标识符来识别,如由模拟控制器、电缆、单元,或逻辑单元号(LUN)的名称识别。
在某些实施例,接口组件610与配置组件合作收集并监测信息和统计数据,如:
·完成的I/O操作的总数
·传输的字节总数
·完成的读操作的总数
·完成的写操作的总数
·进行I/O的总时间量
处理器端存储逻辑
协议的处理器端逻辑620作为主机适配器模块来实现,后者通过在处理器106的操作系统中提供低层虚拟接口来模拟SCSI子系统。处理器106是也能够用此虚拟接口发送SCSI I/O命令到控制节点120进行处理。
在使用冗余控制节点120的实施例中,每个处理节点105包括每个控制节点120的逻辑620的一个实例。在某些实施例中,处理器使用物理设备编号而非逻辑号引用存储器。即作为设备名规定地址,以识别LUN、SCSI目标、通道、主机适配器,和控制节点(如节点120a或120b)。如图8所示,一个实施例将目标(T)和LUN(L)映射到主机适配器(H)、通道(C)、映射的目标(mT),和映射的LUN(ml)。
图7示出处理器端逻辑的示例性结构,逻辑720包括设备类型特定的驱动器(如磁盘驱动器)705。中间层SCSI I/O驱动器710,和包装及互连逻辑715。
设备类型特定的驱动器705是操作系统提供的传统驱动器,并与特定的设备类型相关。
中间层SCSI I/O驱动器710是传统的中间层驱动器,一旦驱动器705判定设备是SCSI设备,中间层驱动器由设备类型特定的驱动器705调用。
包装和互连逻辑715由中间层SCSI I/O驱动器710调用。此逻辑提供SCSI子系统接口并因此模拟SCSI子系统。在某些是也使用千兆网结构的实施例中,逻辑715负责按需要包装SCSI命令,并负责与千兆网和RCLAN接口,使得NIC如上所述地通过到控制节点的专用的RVI发送包到控制节点。在下面上下文所述,修改对千兆网包的标题信息,以指出这是存储包并包括其它信息。在图7中虽然未指出,包装逻辑715能使用RCLAN层支持并利用冗余的互连110及结构115。
对于使用千兆网结构115的实施例,连接725的RVI被指定1024个可用的VI的范围中的虚拟接口(VI)号。对通讯的两个端点,交换机115用在这对端点(控制节点交换端口、控制节点VI号),(处理节点105交换端口、处理器节点VI号)之间的双向路径编程。
对每类在任一方向发送的报文使用独立的RVI。因此总是有挂在每个RVI上的接收缓冲器,用于从协议的另一端发送的报文。此外,因为在每个RVI上只有一类报文在任一方向发送,连接到每个RVI通道的接收缓冲器按协议能使用的报文的最大报文长度合适地定尺寸。在另外实施例中,所有可能的报文在单个RVI上多路复用,而不是使用两个VI。协议和报文格式不特定地需要使用两个RVI,且报文本身在其标题中具有报文类型信息,所以它们能被分离。
两个通道之一用于交换SCSI命令(CMD)和状态(STAT)报文。另一通道用于交换缓冲器(BUF)和发送(TRAN)报文。此通道也用于处理SCSI命令的数据有效载荷。
CMD报文包含在节点105中的控制信息、要完成的SCSI命令、虚拟地址和I/O缓冲器的大小。STAT报文包含控制信息和反映在处理SCSI命令时已经发生的错误的完成状态码。BUF报文包含在控制节点120中控制信息和虚拟地址以及I/O缓冲器的大小。TRAN报文包含控制信息,并用于确认从节点105到控制节120的数据成功发送。
处理器端的包装逻辑715检查要发送的SCSI命令以判定命令是否需要传输数据,若是,哪个方向传输。据此分析,包装逻辑715在报文标题中设置适当的标志信息。描述控制节点端逻辑的部分描述如何使用标志信息。
在本发明的某些实施例中,在处理器端存储逻辑720和控制节点存储逻辑715之间的链路725能被用于传递控制报文,但不是SCSI协议的部分且不与SAN 130通讯。相反,这些控制报文由控制节点端逻辑715处理。
协议控制报文总是由协议的处理器端产生,并经过将处理器端逻辑720连接到控制节点端存储逻辑715的两个虚拟接口(VI)之一发送到协议的控制节点端。用于协议控制操作的报文标题与命令报文标题相同,差别在于使用不同的标志位区分作为协议控制报文的报文。控制节点120完成请求的操作,并用由状态报文的使用同样的报文标题在RVI上作出响应。以此方式,对不常使用的协议控制操作不需要独立的RVI。
在使用冗余控制节点的某些实施例中,处理器端逻辑720检测从发出的命令来的某些错误,作为响应重发该命令到另外控制节点。能在中间层驱动器710中实现此重试。
控制节点端存储逻辑
在某些实施例中,控制节点端存储逻辑715作为设备驱动器模块实现。逻辑715提供在控制节点120上对操作系统的设备层接口。此设备层接口用于访问配置组件705。在此设备驱动器模块初始化时,它响应从平台100中的所有处理器106来的协议报文。所有配置活动通过设备层接口引入。所有I/O活动通过经互连110和交换结构115发送和接收的报文引入。在控制节点120上,每个处理器节点将有逻辑715的一个实例(虽然在图7中只显示一个框)。在某些实施例中,控制端逻辑715经过FCP或FCP-2协议或iSCSI或其他在各种媒体上使用SCSI-2或SCSI-3命令的其他协议与SAN 130通讯。
如上所述,处理器端逻辑在RVI报文标题中设备标志,指出数据流是否与命令有关,若是,以什么方向。控制节点端存储逻辑715从处理器端逻辑接收报文,并随后分析标题信息以确定如何动作,如分配缓冲器等。此外,该逻辑将包含在报文中的地址信息从处理器地址翻译到对应的映射的SAN地址,并发命令(如经过FCP或FCP-2)到SAN 130。
如TEST UNIT READY那样不需要SCSI数据传输阶段的SCSI命令由在RVI上发送用作命令报文的单条命令的处理器端逻辑720处理,并由在同一RVI上发回单个状态报文的控制节点端逻辑处理。更具体说,协议的处理器端用标准报文标题、对此命令的新序列号,希望的SCSI目标和LUN,要执行的SCSI命令,和零的列表长度来构筑报文。逻辑的控制节点端接收报文,抽取SCSI命令信息并通过接口128将其传递给SAN 130。在控制节点收到命令完成的回叫后,它使用标准的报文标题、对此命令的序列号、所完成的命令的状态,以及若命令带着校验条件状态完成还可选地使用请求辨别数据来构筑给处理器的状态报文。
如READ命令那样需要从SCSI设备传输数据到主存储器的SCSI数据传输阶段的SCSI命令由处理器端逻辑处理,它发送命令报文到控制节点端逻辑715发送带着一个或RDMA WRITE操作的控制节点的回答到处理器节点105的存储器,并从控制节点端逻辑发送单个状态报文。更具体说来,处理器端逻辑720用标准的报文标题、对此命令的新序列号、需要的SCSI目标及LUN、要执行的SCSI命令,和存储从命令来的数据的存储器区域的表来构筑命令报文。当SCSI命令在控制节点执行时,控制节点端逻辑715分配暂时的存储器缓冲器来存储从SCSI操作来的数据。在控制节点端逻辑715发送SCSI命令到SAN 130进行处理且该命令已完成之后,它用一个或多个RDMA WRITE操作的序列发回数据到处理器105的存储器。然后它用标准报文标题、对此命令的序列号,完成命令的状态构筑状态报文,若命令带着SCSI CHECKCONDITION状态完成时还可选地使用REQUEST SENSE数据。
如WRITE命令那样需要SCSI数据传输阶段来将数据从主存储器传输到SCSI设备的SCSI命令由处理器端逻辑720处理,它发送单个命令到控制节点端逻辑715,从控制节点端逻辑715发送一个或多个BUF报文到处理器端逻辑,从处理器端逻辑发送一个或多个RDMA WRITE操作到控制节点的存储器,从处理器端逻辑发送一个或多个TRAN报文到控制节点端逻辑,并从控制节点端逻辑发回单个状态报文到处理器端逻辑。使用BUF报文将控制节点中临时缓冲器存储器的位置通知处理器端存储逻辑并使用TRAN报文表示RDMA WRITE数据传输完成,这样做是由于在底层千兆网的网中缺乏RDMAREAD能力。若底层结构支持RDMA READ操作,能利用相应动作的不同顺列。更具体地说,处理器端逻辑720用标准的报文标题、对此命令的序列号、希望的SCSI目标和LUN,和要执行的SCSI命令构造CMD报文。当SCSI命令在控制节点执行时,控制节点端逻辑715分配临时的存储器缓冲器来存储从SCSI操作来的数据。然后协议的控制节点端用标准的报文标题、对此命令的序列号,和用于在该控制节点上临时存储器缓冲器的虚拟存储器的区域表来构筑BUF报文。然后处理器端逻辑720用一系列一个或多个RDMA WRITE操作发送数据到控制节点的存储器。它然后用标准报文标题,和对此命令的序列号构筑TRAN报文。在控制节点端逻辑发送SCSI命令到SAN 130进行处理,且接收到命令完成信号之后,它用标准的报文标题、对此命令的序列号、所完成的命令的状态构筑STAT报文,若命令完成带着CHECK CONDITION状态,还可选地使用REQUEST SENSE数据。
在某些实施例中,CMD报文包含存储命令的数据的虚拟存储器的区域表。BUF和TRAN报文还包含索引字段,它允许协议的控制节点端对在CMD报文中区域表中的每个条目发送独立的BUF报文。协议的处理器端通过对在BUF报文中描述的大量数据完成RDMA WRITE操作来回答那样的报文。随后通过TRAN报文指出单段数据传输的完成。
在处理器端逻辑720和控制节点端逻辑715之间的协议考虑分散—集中I/O操作。此功能允许涉及I/O请求的数据能写入虚拟的和/或物理的存储器的若干不同的区域或从中读取。这使在控制节点上多个非连续的缓冲器能用于该请求。
如上所述,配置逻辑705负责发现分配给平台的SAN存储器,并与接口逻辑710连接,使得管理员能子分配存储器给特定的PAN。作为此分配的一部分,配置组件705建立并维护包括识别处理器地址和实际SAN地址之间对应关系的信息的存储数据结构915。图7示出那样的结构。如上所述,对应关系可以是在处理节点和模拟的SCSI盘的标识符之间的,标识符可以是如通过模拟控制器的名称、电缆、单元,或逻辑单元号的号。
管理逻辑
管理逻辑135用于与控制节点软件连接以提供PAN。除其它事情,逻辑135使管理员建立PAN的虚拟网络拓扑,它对外部网的可见性(如作为服务群集),并建立在PAN上的设备类型,如网桥和路由器。
逻辑135还与存储管理接口逻辑710连接,使得管理员在初始分配或其后能定义PAN的存储器。配置定义包括上面讨论的存储对应关系(SCSI对SAN的关系)和访问控制许可。
如上讨论,每个PAN和每个处理器通过其虚拟连网(包括虚拟MAC地址)和虚拟存储器具有确定的个性。如下面讨论,记录那样个性的结构能由管理逻辑访问,以实现处理器的群集化。此外如上所述它们能被管理员访问,或由代理程序的管理员访问。例如,能响应如每天或每年的时间的某些事件使用代理程序重配置PAN,或响应系统上的某些负载而重配置。
处理器上操作系统软件包括在千兆网交换器115上将控制台I/O通讯量路由到在控制节点上运行的管理软件的串行控制台驱动器码。从那里管理软件使任何节点的控制台I/O流能通过控制节点的管理端口(其低速以太网端口机器紧急管理端口)或通过高速外部网125访问。为审查及记载历史的目的控制台的通信量能被记录。
群集管理逻辑
图9示出某些实施例的群集管理逻辑。群集管理逻辑905访问记录上述网络信息的数据结构910,如PAN的网络拓扑结构,在PAN中的MAC地址指定等。此外,群集管理逻辑905访问记录各个处理器106的存储对应关系的数据结构915。此外,群集管理逻辑905访问记录如平台100中未分配的服务器那样的空闲资源的数据结构920。
响应处理器的错误事件或管理员命令,群集管理逻辑905能改变数据结构,使给定处理器的存储和组网个性能“迁移”到新的处理器。新的处理器以这样方式“继承”以前处理器的个性。群集管理逻辑905能这样做,将新的处理器交换到PAN以替代故障的处理器。
新的处理器继承以前处理器的MAC地址并象以前那样工作。当新处理器自举时控制节点通知连接性信息,并在必要时为无故障的处理器更新连接信息。例如在某些实施例中,对其它处理器的RVI连接被透明地更新,即在其它处理器的软件不需要牵涉到建立到新交换入的处理器的连接。此外,新处理器继承以前的存储对应关系,因而继承以前处理器所维持的状态。
其它优点还有,允许有包括处理器的空闲资源的池,为整个平台共享,而不是只为给定的PAN共享。以此方式,能更有效地使用空闲资源(能保留来改善系统的可靠性及故障宽容度)。
当新的处理器被“交换入”,它需要重新ARP,以便掌握IP地址对MAC地址的联系。
另选方案
当交换结构115的每个千兆网端口能支持其上的1024个同时虚拟接口连接,并用硬件保护保持它们互相隔离,操作系统能安全地与应用程序共享节点的千兆网端口。这就允许在应用程序之间的直接连接,而不需要通过整个驱动器码运行。为此,操作系统的调用将建立虚拟接口通道并将其缓冲器和队列存储器映射到应用程序的地址空间。此外,封装接口到通道的低层细节的库方便了那样虚拟接口连接的使用。该库也能自动地建立冗余虚拟接口通道对,并在它们之间管理共享及故障在线恢复,而不需要调用应用程序的任何努力或了解。
上述实施例模拟内部通过类似ATM结构的以太网。该设计能改变成使用内部以太网结构,这很大地简化了结构,如减轻了对模拟特征的需要。若外部网按ATM通讯,另外的变种是使用内部不必模拟以太网的ATM,且ATM在外部与那样编址的外部网通讯。另外变种是在平台内部允许ATM(即不模拟以太网),只有外部通讯转换到以太网。这将是流线式内部通讯,但在控制器处需要模拟逻辑。
某些实施例根据软件配置命令配置PAN。可以看到,配置是根据程序控制。例如,对那个PAN在高峰运行期间在软件控制下能配置更多的处理器,或在软件算法控制下对PAN能配置对应的更多或更少的存储空间。
可以看到,本发明的范围不限于上述实施例,而是由附后的权利要求确定;这些权利要求应包容已经描述内容的修改及改进。
Claims (58)
1.在具有多个计算机处理器,一个交换结构和到诸处理器的点对点链路的平台中模拟交换的以太网局域网的方法,包括:
提供至少在两个计算机处理器上执行的以太网驱动器模拟逻辑;
提供至少在一个计算机处理器上执行的交换器模拟逻辑;
在交换器模拟逻辑和具有执行的以太网驱动器模拟逻辑的每个计算机处理器之间建立虚拟接口以允许它们之间的软件通讯,其中每个虚拟接口定义从一个计算机处理器到另一个计算机处理器经过交换结构的软件通讯路径;
在具有执行的以太网驱动器模拟逻辑的每个计算机处理器和具有执行的以太网驱动器模拟逻辑的另一个计算机处理器之间建立虚拟的接口;
若在一个计算机处理器和另一个之间满足预定准则地运行,一个计算机处理器的以太网驱动器模拟逻辑通过定义它们之间的软件通讯路径与另外的计算机处理器单播通讯。
若在一个计算机处理器和另一个之间不满足预定准则地运行,一个计算机处理器的以太网驱动器模拟逻辑通过连到发送单播通讯到另外计算机处理的交换模拟逻辑的虚拟接口与另外计算机处理器单播通讯。
2.如权利要求1的方法,其特征在于具有执行的以太网驱动器模拟逻辑的每个计算机处理器与一个虚拟的MAC地址相关,且其中MAC地址按规则形成,将计算机处理器识别成与外部网络的MAC地址不同的多个计算机处理器之一。
3.如权利要求2的方法,其特征在于平台通过用于与外部网络通讯的接口逻辑连接到外部网络,其中外部网络接口逻辑与它自己的MAC地址相关,且其中在外部网络上使用外部网络接口逻辑的MAC地址通讯报文。
4.如权利要求1的方法,其特征在于第一计算机处理器使用第一虚拟接口与第二计算机处理器单播通讯,而其中第二计算机处理器使用不同虚拟接口通讯到第一计算机处理器。
5.如权利要求1的方法,其特征在于每个计算机处理器包括用于在点对点链路上通讯的交换结构驱动器逻辑且包括求校验和的能力,其中以太网驱动器模拟逻辑包括求校验和的能力,但当交换结构驱动器逻辑已对一报文求校验和时,禁止那样的求校验和。
6.如权利要求5的方法,其特征在于交换结构驱动器逻辑实现可靠的通讯协议,以保证在交换结构上接收报文。
7.如权利要求1的方法,其特征在于交换结构和点对点通讯链路以冗余配置方式安排。
8.如权利要求1的方法,其特征在于以太网驱动器模拟逻辑通过经虚拟接口发送报文到交换模拟逻辑来广播通讯一报文,且其中交换模拟逻辑从虚拟接口接收和克隆广播报文,且发送克隆的报文到网络中其它计算机处理器。
9.如权利要求1的方法,其特征在于交换模拟逻辑对模拟的网络定义并维护计算机处理器成员。
10.如权利要求1的方法,其特征在于以太网驱动器模拟逻辑发送大于最大发送单位(MTU)长度的报文。
11.用于模拟交换以太局域网的系统,包括:
多个计算机处理器;
到这些处理器的交换结构和点对点链路;
在交换结构及点对点链路上建立虚拟接口的虚拟接口逻辑,其中每个虚拟接口定义从计算机处理器经交换结构到另外计算机处理器的软件通讯链路径。
在至少二个计算机处理器上执行的以太网驱动器模拟逻辑;
在至少一个计算机处理器上执行的交换模拟逻辑,包括:
建立在交换模拟逻辑和具有执行的以太网驱动器模拟逻辑之间的虚拟接口,使在其间能作软件通讯的逻辑;
接收从一个虚拟接口到具有执行的以太网驱动器模拟逻辑的计算机处理器的报文,并发送报文到具有执行的以太网驱动器模拟逻辑的另外的计算机处理器,以响应与该报文相关的地址信息的逻辑;及
建立在每个具有执行的以太网驱动器模拟逻辑的计算机处理器和每个另外的具有执行的以太网驱动器模拟逻辑的计算机处理器之间的虚拟接口的逻辑;
其中以太网驱动器模拟逻辑包括与模拟的以太网中另外计算机处理器单播通讯的逻辑,若虚拟接口满足预定准则地运行,通过定义它们之间软件通讯路径的虚拟接口;若虚拟接口不满足预定准则地运行,则通过交换模拟逻辑。
12.如权利要求11的系统,其特征在于具有执行的以太网驱动器模拟逻辑的每个计算机处理器与虚拟MAC地址相关,且其中MAC地址按规则形成,将计算机处理器识别成多个由外部网络的MAC地址区分的计算机处理器之一。
13.如权利要求12的系统,其特征在于还包括用于与外部网络通讯的外部网络接口逻辑,其中外部网络接口逻辑与它的MAC地址相关,且其中交换模拟逻辑包括用于发送报文到用于在外部网络上通讯的外部网络接口逻辑的逻辑,其中那样的报文使用外部网络接口逻辑的MAC地址在外部网络上通讯。
14.如权利要求11的系统,其特征在于第一计算机处理器使用第一虚拟接口与第二计算机处理器单播通讯,但其中第二计算机处理器使用不同的虚拟接口通讯到第一计算机处理器。
15.如权利要求11的系统,其特征在于每个计算机处理器包括用于在点对点链路上通讯的交换结构驱动器逻辑,且其中交换结构驱动器逻辑包括求校验和的能力,且其中以太网驱动器模拟逻辑包括求校验和的能力且包括在交换结构驱动器逻辑已对报文作了校验和时在以太网驱动器模拟逻辑中禁止求校验和的逻辑。
16.如权利要求15的系统,其特征在于交换结构驱动器逻辑实现可靠的通讯协议,以保证在交换结构上接收报文。
17.如权利要求11的系统,其特征在于交换结构和点对点链路以冗余配置方式安排。
18.如权利要求11的系统,其特征在于以太网驱动器模拟逻辑包括通过经虚拟接口发送报文到交换模拟逻辑而广播通讯一个报文的逻辑,且其中交换模拟逻辑包括从虚拟接口接收和克隆广播报文并发送克隆的报文到网络中其它计算机处理器的广播逻辑。
19.如权利要求11的系统,其特征在于交换模拟逻辑包括定义并维护模拟网络的计算机处理器成员的逻辑。
20.如权利要求11的系统,其特征在于以太网驱动器模拟逻辑包括发送大于最大发送单元(MUT)尺寸的报文的逻辑。
21.在具有多个处理器的计算平台中实现地址解析协议(ARP)的方法,包括:
定义在该计算平台上要模拟的以太网的拓扑结构,该拓扑结构包括处理器节点和交换节点;
从多个处理器指定一组处理器作为处理器节点作用的处理器;
指定一个处理器起交换节点的作用;
对模拟的以太网的每个处理器节点指定虚拟MAC地址;
在底层物理网络上分配虚拟接口,以提供从每个处理器节点到每个其它处理器节点的直接软件通讯,其中每个虚拟接口具有对应的标识符;
向交换节点发送ARP请求的处理器节点,其中ARP请求包括IP地址;
发送ARP请求到模拟的以太网中其他处理器节点的交换节点;
与IP地址相关向交换节点发出ARP回答的处理器节点,回答包含与该IP地址相关的处理器节点的虚拟MAC地址;
接收ARP回答并修改该ARP回答,使之包括对一虚拟接口的虚拟接口识别的交换节点,发出ARP请求的处理器节点将该虚拟接口用于与关于该IP地址的处理器节点的随后通讯。
22.如权利要求21的方法,其特征在于底层物理网络是连接多个处理器的点对点网络。
23.如权利要求21的方法,其特征在于处理器的子集被组合成群集,且该群集中的一个处理器是负载均衡处理器节点,且其中当群集中的任何处理器发出ARP请求时,交换节点修改该ARP回答,使之包括对负载均衡处理器节点的虚拟接口标识符。
24.如权利要求21的方法,其特征在于交换节点与外部IP网络通讯,且其中通讯ARP回答的动作包括识别该ARP回答是从平台的处理器节点而来。
25.地址解析协议(ARP)系统,包括:
具有由底层物理网络连接的多个处理器的计算平台;
在一个处理器上可执行以定义在计算平台上要模拟的以太网的拓扑结构的逻辑,该拓扑结构包括处理器节点和交换节点。
在一个处理器上可执行以便从多个处理器指定一组处理器作为用作处理器节点的处理器的逻辑;
在一个处理器上可执行以便对该模拟的以太网的每个处理器节点指定虚拟MAC地址的逻辑;
在一个处理器上可执行以便在底层物理网络上分配虚拟接口使得提供从每个处理器节点到每个另外处理器节点的直接软件通讯的逻辑,其中每个虚拟接口具有对应的标识符;
具有向交换节点通知ARP请求的ARP请求逻辑的每个处理器节点,其中ARP请求包括IP地址;
包括将ARP请求通讯到模拟的以太网上的所有其它节点的ARP请求广播逻辑的交换节点;
具有ARP回答逻辑的每个处理器节点。回答逻辑判断它是否为与ARP请求中的IP地址相关的处理器节点,若是,向交换节点发出ARP回答,其中ARP回答还包含与该IP地址相关的处理器节点的MAC地址;
包括ARP回答逻辑的交换节点,该逻辑接收ARP回答并修改ARP回答,使之包括对ARP请求的节点的虚拟接口标识符。
26.如权利要求25的系统,其特征在于底层物理网络是连接多个处理器的点对点网络。
27.如权利要求25的系统,其特征在于组织处理器的一个子集作为群集,且其中该群集中的一个处理器是负载均衡处理器节点,且其中交换节点包括检测从处理器节点来的ARP回答是否从群集中任何处理器来的逻辑,若是,则修改ARP回答使包括对负载均衡处理器节点的虚拟接口标识符。
28.如权利要求25的系统,其特征在于交换节点与外部IP网络通讯,且其中处理器节点的ARP回答逻辑包括识别该ARP回答是从平台中的一个处理器节点来的逻辑。
29.一个用于计算机处理的平台,包括:
连接到内部通讯网络的多个计算机处理器;
至少一个控制节点与外部通讯网络及具有外部存储地址空间的外部存储网络通讯,
且其中至少一个控制节点连接到内部网络,从而与多个计算机处理器通讯;
配置逻辑,它从多个处理器中定义并建立具有对应的计算机处理器组的虚拟处理区域网;定义并建立在该计算机处理器组中提供通讯但排除不在定义在组中的多个处理器的虚拟局域通讯网;定义并建立对存储网络的地址空间有定义的对应关系的虚拟存储空间。
30.如权利要求29的平台,其特征在于控制节点通过内部通讯网络接收编址到外部通讯网络的实体的通讯报文,且其中控制节点包括在对应于已接收的报文的外部通讯网络上提供报文的逻辑。
31.如权利要求29的平台,其特征在于控制节点通过外部通讯网络接收编址到平台上的实体的通讯报文,且其中控制节点包括将报文提供给对应于所接收的报文的编址实体的逻辑。
32.如权利要求29的平台,其特征在于计算机处理器和控制节点包括在内部通讯网络上模拟以太网功能的网络模拟逻辑。
33.如权利要求32的平台,其特征在于内部通讯网络是点对点交换结构。
34.如权利要求29的平台,其特征在于内部通讯网络包括将计算机处理器和至少一个控制节点连接到冗余交换结构的冗余互连。
35.如权利要求34的平台,其特征在于具有至少一个连接到该互连的其它控制节点,并形成冗余控制节点。
36.如权利要求29的平台,其特征在于控制节点通过内部通讯网络接收从计算机处理器来的存储报文,且其中控制节点包括从接收的存储报文提取一地址,以识别在外部存储地址空间中定义的对应地址,并在对应于接收的存储报文并具有对应地址的外部存储网络上提供报文的逻辑。
37.如权利要求36的平台,其特征在于控制节点包括缓冲对应于从计算机节点接收的写报文的数据并将提供的对应报文中的缓冲数据提供给外部存储网络的逻辑。
38.如权利要求36的平台,其特征在于控制节点从外部存储网络接收存储报文,且其中控制节点包括识别响应所接收的报文的对应计算机处理器或控制节点,并将对应的报文提供给识别的处理器或控制节点的逻辑。
39.部署虚拟处理区域网的方法,包括下列动作:
提供具有连接到内部通讯网络的多个计算机处理器及至少一个控制节点的平台,其中控制节点与外部通讯网络及具有外部存储地址空间的外部存储网络通讯;
对虚拟处理网络定义对应的计算机处理器组;
建立提供在计算机处理器组中通讯的虚拟局域通讯网络,但在多个处理器中排除未定义在组中的处理器;
定义在虚拟处理网络的虚拟存储空间与已定义的存储网络的地址空间之间的对应关系。
40.如权利要求39的方法,其特征在于控制节点通过内部通讯网络接收编址到外部通讯网络的实体的通讯报文,且其中该控制节点在对应于所接收的报文的外部通讯网上提供报文。
41.如权利要求39的方法,其特征在于控制节点通过外部网络接收编址到在平台上的实体的通讯报文。并其中控制节点提供报文给对应于接收的报文的编址实体。
42.如权利要求39的方法,其特征在于计算机处理器和控制节点在内部通讯网络上模拟以太网功能。
43.如权利要求42的方法,其特征在于内部通讯网络是点对点的交换结构,且其中在内部点对点交换结构上提供以太网功能的模拟。
44.如权利要求39的方法,其特征在于计算机处理器在连接计算机处理器及至少一个控制节点的冗余互连上通讯。
45.如权利要求44的方法,其特征在于具有至少一个连接到该互连的其它控制节点,并形成冗余的控制节点。
46.如权利要求39的方法,其特征在于控制节点通过内部通讯网络接收从计算机处理器来的存储报文,且其中控制节点从接收的存储报文提取地址,识别在外部存储地址空间中的定义的对应地址,并在对应于接收的存储报文且具有对应地址的外部存储网络上提供报文。
47.如权利要求46的方法,其特征在于控制节点缓冲对应于从计算机处理器接收的写报文的数据,并提供缓冲的数据在向外部存储网络提交的对应报文中。
48.如权利要求46的方法,其特征在于控制节点从外部存储网络接收存储报文,且其中控制节点识别应答该接收的报文的计算机处理器或控制节点,并提供相应的报文给识别的处理器或控制节点。
49.可连接到外部通讯网络和存储网络的用于计算机处理的平台,包括:连接到内部通讯网络的多个计算机处理器;
配置逻辑,用于定义并建立(a)在内部网络上的虚拟局域通讯网络,其中在虚拟局域通讯网络中的每个计算机处理器具有对应的虚拟MAC地址,且提供在一组计算机之间的通讯,但排除多个处理器中不在定义的组中的处理器,和(b)对该存储网络的地址空间有定义的对应关系的虚拟存储空间;
故障在线恢复逻辑,响应计算机处理器的故障,从多个处理器分配一个计算机处理器以替代故障的处理器,故障在线恢复逻辑包括:
将故障的处理器的MAC地址赋给替代故障处理器的处理器的逻辑;
将故障处理器的虚拟存储空间和定义的对应关系赋给处理器的逻辑;
和重建包括替代故障处理器的处理器并排除故障的处理器的虚拟局域网的逻辑。
50.如权利要求49的平台,其特征在于配置逻辑建立虚拟接口以在虚拟网络的处理器中定义软件通讯路径,且故障在线恢复逻辑包括建立从在虚拟网络中的处理器到替代故障处理器的处理器的虚拟接口的逻辑。
51.如权利要求49的平台,其特征在于配置逻辑从第二组计算机处理器和与存储网络地址空间有定义对应关系的第二虚拟存储空间建立第二虚拟局域网,且其中故障在线恢复逻辑使替代故障的处理器的处理器继承故障处理器的虚拟局域网和虚拟存储的个性。
52.在具有连接到内部通讯网络的多个计算机处理器的平台中进行计算机处理的方法:
在内部网络上定义并建立虚拟局域通讯网,
其中在虚拟局域通讯网中的每个计算机处理器具有对应的虚拟MAC地址,且虚拟局域网提供在一组计算机处理器之间的通讯,但排除多个处理器中不在定义的组中的处理器;
用对存储网络的地址空间的已定义的对应关系定义并建立虚拟存储空间;响应一个计算机处理器的故障,从多个处理器中分配一个计算机处理器以替代故障的处理器,包括将故障的处理器的MAC地址赋给替代故障的处理器的处理器,将虚拟存储空间以及故障处理器的定义的对应关系赋给替代故障处理器的处理器,并重建虚拟局域网使包括替代故障处理器的处理器并排除故障的处理器。
53.如权利要求52的方法,其特征在于在建立虚拟局域网时建立虚拟接口,以定义在虚拟网的诸处理器之间的软件通讯路径,并在一个处理器替代故障的处理器时,建立到替代故障的处理器的处理器的虚拟接口。
54.如权利要求52的方法,其特征在于用第二组计算机处理器和与存储网络地址空间有定义的对应关系的第二虚拟存储空间建立第二虚拟局域网,且在处理器故障时,替代故障处理器的处理器继承故障处理器的虚拟局域网和虚拟存储的个性。
55.提供由IP地址编址的服务的系统,包括:
至少两个计算机处理器,每个包括提供服务的逻辑;
用于接收对服务的请求报文的群集逻辑,该报文具有IP地址,并用于将请求分配到具有提供该服务的逻辑的至少两个计算机处理器中的一个。
56.如权利要求55的系统,其特征在于用于分配的逻辑包括在确定哪个处理器服务该报文时分析在输入报文中的源信息的逻辑。
57.提供由IP地址编址的服务的方法,包括:
包括在至少两个计算机处理器的每一个上提供该服务的逻辑;
接收对该服务的请求报文,该报文具有IP地址,且用于将请求分配到具有提供该服务的逻辑的至少两个计算机处理器中的一个。
58.如权利要求57的方法,其特征在于分析输入报文的源信息,以确定哪个处理器将服务该报文。
Applications Claiming Priority (10)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US28529601P | 2001-04-20 | 2001-04-20 | |
US60/285,296 | 2001-04-20 | ||
US10/038,355 US6971044B2 (en) | 2001-04-20 | 2002-01-04 | Service clusters and method in a processing system with failover capability |
US10/037,191 US20030130832A1 (en) | 2002-01-04 | 2002-01-04 | Virtual networking system and method in a processing system |
US10/038,355 | 2002-01-04 | ||
US10/038,354 US7174390B2 (en) | 2001-04-20 | 2002-01-04 | Address resolution protocol system and method in a virtual network |
US10/038,354 | 2002-01-04 | ||
US10/038,353 US7231430B2 (en) | 2001-04-20 | 2002-01-04 | Reconfigurable, virtual processing system, cluster, network and method |
US10/037,191 | 2002-01-04 | ||
US10/038,353 | 2002-01-04 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1520550A true CN1520550A (zh) | 2004-08-11 |
CN1290008C CN1290008C (zh) | 2006-12-13 |
Family
ID=27534612
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN02811128.1A Expired - Fee Related CN1290008C (zh) | 2001-04-20 | 2002-04-16 | 在处理系统中虚拟连网的系统及方法 |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP1388057A4 (zh) |
JP (1) | JP2005506726A (zh) |
CN (1) | CN1290008C (zh) |
CA (1) | CA2444066A1 (zh) |
DE (1) | DE10296675T5 (zh) |
WO (1) | WO2002086712A1 (zh) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100407823C (zh) * | 2004-11-10 | 2008-07-30 | 中兴通讯股份有限公司 | 一种通信系统内部节点编址和初始化方法 |
CN102124457A (zh) * | 2007-09-28 | 2011-07-13 | 杰恩邦德公司 | 用于管理与会话交换设备的虚拟分区有关的地址的方法和装置 |
CN101129032B (zh) * | 2005-02-25 | 2012-07-04 | Ip输入公司 | 硬件抽象层 |
CN102624597A (zh) * | 2012-03-09 | 2012-08-01 | 北京邮电大学 | 一种双向排序的虚拟网络映射方法 |
CN101616042B (zh) * | 2009-08-04 | 2012-09-05 | 中兴通讯股份有限公司 | 网络设备模拟器及数据发送、接收和传输方法 |
CN103051737A (zh) * | 2011-11-22 | 2013-04-17 | 微软公司 | 提供融合互联架构上的网络能力 |
CN103944768A (zh) * | 2009-03-30 | 2014-07-23 | 亚马逊技术有限公司 | 为受管计算机网络提供逻辑联网功能 |
CN101990663B (zh) * | 2008-04-08 | 2015-03-11 | 思科技术公司 | 对以太网光纤通道设备的发现 |
CN106559322A (zh) * | 2015-09-25 | 2017-04-05 | 北京计算机技术及应用研究所 | 一种基于多龙芯并行处理架构的安全防护网关 |
CN107113319A (zh) * | 2016-07-14 | 2017-08-29 | 华为技术有限公司 | 一种虚拟网络计算认证中应答的方法、装置、系统和代理服务器 |
CN109088953A (zh) * | 2017-06-14 | 2018-12-25 | 中兴通讯股份有限公司 | 一种Linux网关代理转换IP的方法及装置 |
CN111432044A (zh) * | 2020-03-17 | 2020-07-17 | 腾讯科技(深圳)有限公司 | 多链路设备mac地址管理方法、装置和多链路设备 |
CN111585889A (zh) * | 2013-10-13 | 2020-08-25 | Nicira股份有限公司 | 逻辑路由器 |
CN112445319A (zh) * | 2019-08-16 | 2021-03-05 | 广东电网有限责任公司广州供电局 | 配电房作业方法和装置、电子设备、计算机可读存储介质 |
CN113296926A (zh) * | 2020-05-29 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 一种资源分配方法、计算设备及存储介质 |
CN115460039A (zh) * | 2022-08-17 | 2022-12-09 | 珠海高凌信息科技股份有限公司 | 基于逻辑网络的大容量tdm交换系统和方法、存储介质 |
US11736394B2 (en) | 2014-03-27 | 2023-08-22 | Nicira, Inc. | Address resolution using multiple designated instances of a logical router |
US11799775B2 (en) | 2015-06-30 | 2023-10-24 | Nicira, Inc. | Intermediate logical interfaces in a virtual distributed router environment |
CN117729172A (zh) * | 2024-02-18 | 2024-03-19 | 成都深瑞同华科技有限公司 | 一种隔离网络环境下的数据传输方法、装置及存储介质 |
Families Citing this family (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7231430B2 (en) * | 2001-04-20 | 2007-06-12 | Egenera, Inc. | Reconfigurable, virtual processing system, cluster, network and method |
CA2476314A1 (en) | 2002-02-07 | 2003-08-14 | Think-Dynamics Inc. | Method and system for managing resources in a data center |
CA2487384C (en) | 2002-05-24 | 2009-12-22 | Baker Hughes Incorporated | A method and apparatus for high speed data dumping and communication for a downhole tool |
US7457300B2 (en) * | 2003-01-21 | 2008-11-25 | Telefonaktiebolaget L M Ericsson (Publ) | Ethernet address management system |
US8122453B2 (en) | 2003-02-04 | 2012-02-21 | International Business Machines Corporation | Method and system for managing resources in a data center |
US7664110B1 (en) | 2004-02-07 | 2010-02-16 | Habanero Holdings, Inc. | Input/output controller for coupling the processor-memory complex to the fabric in fabric-backplane interprise servers |
US7757033B1 (en) | 2004-02-13 | 2010-07-13 | Habanero Holdings, Inc. | Data exchanges among SMP physical partitions and I/O interfaces enterprise servers |
US7953903B1 (en) | 2004-02-13 | 2011-05-31 | Habanero Holdings, Inc. | Real time detection of changed resources for provisioning and management of fabric-backplane enterprise servers |
US7860097B1 (en) | 2004-02-13 | 2010-12-28 | Habanero Holdings, Inc. | Fabric-backplane enterprise servers with VNICs and VLANs |
US7990994B1 (en) | 2004-02-13 | 2011-08-02 | Habanero Holdings, Inc. | Storage gateway provisioning and configuring |
US7860961B1 (en) | 2004-02-13 | 2010-12-28 | Habanero Holdings, Inc. | Real time notice of new resources for provisioning and management of fabric-backplane enterprise servers |
US7873693B1 (en) | 2004-02-13 | 2011-01-18 | Habanero Holdings, Inc. | Multi-chassis fabric-backplane enterprise servers |
US7633955B1 (en) | 2004-02-13 | 2009-12-15 | Habanero Holdings, Inc. | SCSI transport for fabric-backplane enterprise servers |
US7685281B1 (en) | 2004-02-13 | 2010-03-23 | Habanero Holdings, Inc. | Programmatic instantiation, provisioning and management of fabric-backplane enterprise servers |
US8868790B2 (en) | 2004-02-13 | 2014-10-21 | Oracle International Corporation | Processor-memory module performance acceleration in fabric-backplane enterprise servers |
US7843907B1 (en) | 2004-02-13 | 2010-11-30 | Habanero Holdings, Inc. | Storage gateway target for fabric-backplane enterprise servers |
US7843906B1 (en) | 2004-02-13 | 2010-11-30 | Habanero Holdings, Inc. | Storage gateway initiator for fabric-backplane enterprise servers |
US8145785B1 (en) | 2004-02-13 | 2012-03-27 | Habanero Holdings, Inc. | Unused resource recognition in real time for provisioning and management of fabric-backplane enterprise servers |
US7561571B1 (en) | 2004-02-13 | 2009-07-14 | Habanero Holdings, Inc. | Fabric address and sub-address resolution in fabric-backplane enterprise servers |
US7296092B2 (en) * | 2004-06-30 | 2007-11-13 | Nokia, Inc. | Apparatus for inter-domain communications including a virtual switch for routing data packets between virtual interfaces of the virtual switch |
US8086755B2 (en) * | 2004-11-29 | 2011-12-27 | Egenera, Inc. | Distributed multicast system and method in a network |
JP4462024B2 (ja) | 2004-12-09 | 2010-05-12 | 株式会社日立製作所 | ディスク引き継ぎによるフェイルオーバ方法 |
US7586936B2 (en) * | 2005-04-01 | 2009-09-08 | International Business Machines Corporation | Host Ethernet adapter for networking offload in server environment |
CN100393060C (zh) * | 2005-04-01 | 2008-06-04 | 中兴通讯股份有限公司 | 一种设备内部的数据通讯方法 |
KR100528171B1 (ko) * | 2005-04-06 | 2005-11-15 | 스콥정보통신 주식회사 | 네트워크 상에서 특정 아이피 주소 또는 특정 장비를보호/차단하기 위한 아이피 관리 방법 및 장치 |
CN100450080C (zh) | 2005-05-17 | 2009-01-07 | 华为技术有限公司 | 收敛二层mac地址的方法及设备 |
JP4701929B2 (ja) | 2005-09-02 | 2011-06-15 | 株式会社日立製作所 | ブート構成変更方法、管理サーバ、及び計算機システム |
US8509218B2 (en) | 2006-02-28 | 2013-08-13 | Genband Us Llc | Prioritization within a session over internet protocol (SOIP) network |
US7564850B2 (en) | 2007-01-17 | 2009-07-21 | Huawei Technologies Co., Ltd. | Method for transmitting layer 2 packet and access device thereof |
JP4488077B2 (ja) | 2008-02-29 | 2010-06-23 | 日本電気株式会社 | 仮想化システム、仮想化方法、及び仮想化用プログラム |
CN102118259B (zh) * | 2009-12-30 | 2013-06-05 | 华为技术有限公司 | 以太网路径创建方法及装置 |
JP5316616B2 (ja) * | 2011-09-16 | 2013-10-16 | 株式会社日立製作所 | 業務引き継ぎ方法、計算機システム、及び管理サーバ |
US20140040477A1 (en) * | 2012-07-31 | 2014-02-06 | F5 Networks, Inc. | Connection mesh in mirroring asymmetric clustered multiprocessor systems |
US9417831B2 (en) | 2014-03-05 | 2016-08-16 | Tricerat | Method and system of providing computer network based limited visibility service discovery |
JP6383112B2 (ja) * | 2015-09-25 | 2018-08-29 | 株式会社東芝 | 制御装置 |
TW202344019A (zh) * | 2018-08-23 | 2023-11-01 | 美商阿爾克斯股份有限公司 | 具有主機確定學習及本地化路由與橋接整合的主機路由覆蓋機制的系統 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03148940A (ja) * | 1989-11-06 | 1991-06-25 | Hitachi Ltd | Lanとisdnとの相互接続方式 |
CA2433607A1 (en) * | 1993-07-28 | 1995-02-09 | 3Com Corporation | Multifunction network station with network addresses for functional units |
GB9401092D0 (en) * | 1994-01-21 | 1994-03-16 | Newbridge Networks Corp | A network management system |
US5473599A (en) * | 1994-04-22 | 1995-12-05 | Cisco Systems, Incorporated | Standby router protocol |
US5805805A (en) * | 1995-08-04 | 1998-09-08 | At&T Corp. | Symmetric method and apparatus for interconnecting emulated lans |
US5684800A (en) * | 1995-11-15 | 1997-11-04 | Cabletron Systems, Inc. | Method for establishing restricted broadcast groups in a switched network |
JP2974280B2 (ja) * | 1996-09-11 | 1999-11-10 | 日本電気通信システム株式会社 | ネットワーク接続のブリッジ装置における仮想グループ情報管理方法 |
US5835725A (en) * | 1996-10-21 | 1998-11-10 | Cisco Technology, Inc. | Dynamic address assignment and resolution technique |
US5970066A (en) * | 1996-12-12 | 1999-10-19 | Paradyne Corporation | Virtual ethernet interface |
US6091732A (en) * | 1997-11-20 | 2000-07-18 | Cisco Systems, Inc. | Method for configuring distributed internet protocol gateways with lan emulation |
US6178171B1 (en) * | 1997-11-24 | 2001-01-23 | International Business Machines Corporation | Route switching mechanisms for source-routed ATM networks |
US6195705B1 (en) * | 1998-06-30 | 2001-02-27 | Cisco Technology, Inc. | Mobile IP mobility agent standby protocol |
-
2002
- 2002-04-16 EP EP02764193A patent/EP1388057A4/en not_active Withdrawn
- 2002-04-16 DE DE10296675T patent/DE10296675T5/de not_active Withdrawn
- 2002-04-16 WO PCT/US2002/011827 patent/WO2002086712A1/en active Application Filing
- 2002-04-16 JP JP2002584166A patent/JP2005506726A/ja active Pending
- 2002-04-16 CA CA002444066A patent/CA2444066A1/en not_active Abandoned
- 2002-04-16 CN CN02811128.1A patent/CN1290008C/zh not_active Expired - Fee Related
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100407823C (zh) * | 2004-11-10 | 2008-07-30 | 中兴通讯股份有限公司 | 一种通信系统内部节点编址和初始化方法 |
CN101129032B (zh) * | 2005-02-25 | 2012-07-04 | Ip输入公司 | 硬件抽象层 |
CN102124457A (zh) * | 2007-09-28 | 2011-07-13 | 杰恩邦德公司 | 用于管理与会话交换设备的虚拟分区有关的地址的方法和装置 |
CN101990663B (zh) * | 2008-04-08 | 2015-03-11 | 思科技术公司 | 对以太网光纤通道设备的发现 |
CN103944768B (zh) * | 2009-03-30 | 2018-05-01 | 亚马逊技术有限公司 | 为受管计算机网络提供逻辑联网功能 |
CN103944768A (zh) * | 2009-03-30 | 2014-07-23 | 亚马逊技术有限公司 | 为受管计算机网络提供逻辑联网功能 |
CN101616042B (zh) * | 2009-08-04 | 2012-09-05 | 中兴通讯股份有限公司 | 网络设备模拟器及数据发送、接收和传输方法 |
CN103051737B (zh) * | 2011-11-22 | 2016-08-10 | 微软技术许可有限责任公司 | 提供融合互联架构上的网络能力的方法和系统 |
US9231846B2 (en) | 2011-11-22 | 2016-01-05 | Microsoft Technology Licensing, Llc | Providing network capability over a converged interconnect fabric |
CN103051737A (zh) * | 2011-11-22 | 2013-04-17 | 微软公司 | 提供融合互联架构上的网络能力 |
CN102624597B (zh) * | 2012-03-09 | 2014-12-17 | 北京邮电大学 | 一种双向排序的虚拟网络映射方法 |
CN102624597A (zh) * | 2012-03-09 | 2012-08-01 | 北京邮电大学 | 一种双向排序的虚拟网络映射方法 |
CN111585889A (zh) * | 2013-10-13 | 2020-08-25 | Nicira股份有限公司 | 逻辑路由器 |
US11736394B2 (en) | 2014-03-27 | 2023-08-22 | Nicira, Inc. | Address resolution using multiple designated instances of a logical router |
US11799775B2 (en) | 2015-06-30 | 2023-10-24 | Nicira, Inc. | Intermediate logical interfaces in a virtual distributed router environment |
CN106559322A (zh) * | 2015-09-25 | 2017-04-05 | 北京计算机技术及应用研究所 | 一种基于多龙芯并行处理架构的安全防护网关 |
CN106559322B (zh) * | 2015-09-25 | 2019-09-20 | 北京计算机技术及应用研究所 | 一种基于多龙芯并行处理架构的安全防护网关 |
CN107113319A (zh) * | 2016-07-14 | 2017-08-29 | 华为技术有限公司 | 一种虚拟网络计算认证中应答的方法、装置、系统和代理服务器 |
US11140162B2 (en) | 2016-07-14 | 2021-10-05 | Huawei Technologies Co., Ltd. | Response method and system in virtual network computing authentication, and proxy server |
CN109088953A (zh) * | 2017-06-14 | 2018-12-25 | 中兴通讯股份有限公司 | 一种Linux网关代理转换IP的方法及装置 |
CN112445319A (zh) * | 2019-08-16 | 2021-03-05 | 广东电网有限责任公司广州供电局 | 配电房作业方法和装置、电子设备、计算机可读存储介质 |
CN111432044A (zh) * | 2020-03-17 | 2020-07-17 | 腾讯科技(深圳)有限公司 | 多链路设备mac地址管理方法、装置和多链路设备 |
CN113296926A (zh) * | 2020-05-29 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 一种资源分配方法、计算设备及存储介质 |
CN115460039A (zh) * | 2022-08-17 | 2022-12-09 | 珠海高凌信息科技股份有限公司 | 基于逻辑网络的大容量tdm交换系统和方法、存储介质 |
CN117729172A (zh) * | 2024-02-18 | 2024-03-19 | 成都深瑞同华科技有限公司 | 一种隔离网络环境下的数据传输方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2002086712A1 (en) | 2002-10-31 |
EP1388057A1 (en) | 2004-02-11 |
DE10296675T5 (de) | 2004-04-22 |
EP1388057A4 (en) | 2009-07-01 |
JP2005506726A (ja) | 2005-03-03 |
CA2444066A1 (en) | 2002-10-31 |
CN1290008C (zh) | 2006-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1290008C (zh) | 在处理系统中虚拟连网的系统及方法 | |
CN1104687C (zh) | 传输网络中在包路由选择和包交换之间动态转换的改进方法及设备 | |
US8224902B1 (en) | Method and apparatus for selective email processing | |
TWI441476B (zh) | 用以安排胖樹網路中之資料封包傳送路由的方法 | |
US7174390B2 (en) | Address resolution protocol system and method in a virtual network | |
TWI242954B (en) | Method of evaluating a network configuration and tangible storage medium for storing a computer program of evaluating a network configuration | |
US7231430B2 (en) | Reconfigurable, virtual processing system, cluster, network and method | |
TWI251413B (en) | Peer to peer network communication | |
CN1604057A (zh) | 硬件实施通道适配器资源的逻辑分区的方法和系统 | |
CN103917966B (zh) | 设备集合中的资源利用优化 | |
US20070088980A1 (en) | Disaster recovery for processing resources using configurable deployment platform | |
EP3089412A1 (en) | Load balancing method and system | |
MX2012011618A (es) | Aparato y metodo para invitar a usuarios a sesiones en linea. | |
US20070038774A1 (en) | Translating Switch and Method | |
US7647434B2 (en) | Technique for in order delivery of traffic across a storage area network | |
CN101048981A (zh) | 用于混合交换机架构的光纤信道透明交换机 | |
TW200904052A (en) | Intelligent load balancing and failover of network traffic | |
WO2012157112A1 (ja) | ゲートウェイ装置、ゲートウェイ装置の通信方法、ノード装置、ノード装置の通信方法、及び通信システム | |
CN1914862A (zh) | 集群系统、集群成员、故障恢复方法及程序 | |
JP2013502840A (ja) | 親子リンクアグリゲーショングループを使用するサーバ側負荷均衡化 | |
CN101061476A (zh) | 在线初始镜像同步及存储区域网络中的镜像同步验证 | |
CN1601993A (zh) | 网络互连设备和方法、名字分辨设备和计算机程序 | |
CN107547346A (zh) | 一种报文传输方法和装置 | |
CN108833472B (zh) | 云主机的连接建立系统 | |
US20230421451A1 (en) | Method and system for facilitating high availability in a multi-fabric system |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20061213 Termination date: 20140416 |