[go: up one dir, main page]

DE10296675T5 - Virtual networking system and method in a processing system - Google Patents

Virtual networking system and method in a processing system Download PDF

Info

Publication number
DE10296675T5
DE10296675T5 DE10296675T DE10296675T DE10296675T5 DE 10296675 T5 DE10296675 T5 DE 10296675T5 DE 10296675 T DE10296675 T DE 10296675T DE 10296675 T DE10296675 T DE 10296675T DE 10296675 T5 DE10296675 T5 DE 10296675T5
Authority
DE
Germany
Prior art keywords
processor
logic
network
virtual
node
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.)
Withdrawn
Application number
DE10296675T
Other languages
German (de)
Inventor
Peter Schulter
Scott Westboro Geng
Peter Sterling Manca
Paul Sudbury Curtis
Ewan Stow Milne
Max Natick Smith
Alan Northboro Greenspan
Edward Arlington Duffy
Vern Chatham Brownell
Ben Hopkinton Sprachman
Dan Sterlin Busby
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.)
Egenera Inc
Original Assignee
Egenera Inc
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
Priority claimed from US10/038,353 external-priority patent/US7231430B2/en
Priority claimed from US10/037,191 external-priority patent/US20030130832A1/en
Priority claimed from US10/038,354 external-priority patent/US7174390B2/en
Priority claimed from US10/038,355 external-priority patent/US6971044B2/en
Application filed by Egenera Inc filed Critical Egenera Inc
Publication of DE10296675T5 publication Critical patent/DE10296675T5/en
Withdrawn legal-status Critical Current

Links

Classifications

    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1017Server selection for load balancing based on a round robin mechanism
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/354Switches specially adapted for specific applications for supporting virtual local area networks [VLAN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/55Prevention, detection or correction of errors
    • H04L49/557Error correction, e.g. fault recovery or fault tolerance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1034Reaction to server failures by a load balancer

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Hardware Redundancy (AREA)
  • Small-Scale Networks (AREA)

Abstract

Verfahren zum Emulieren eines vermittelten lokalen Ethernet-Netzes in einer Plattform mit einer Mehrzahl von Computerprozessoren, einer Switch Fabric und Punkt-zu-Punkt-Verbindungen zu den Prozessoren, umfassend:
Bereitstellen einer Ethernet-Treiber-Emulationslogik zur Ausführung in wenigstens zwei Computerprozessoren;
Bereitstellen einer Vermittlungs-Emulationslogik zur Ausführung in wenigstens einem der Computerprozessoren;
Herstellen einer virtuellen Schnittstelle zwischen der Vermittlungs-Emulationslogik und jedem Computerprozessor, in dem eine Ethernet-Treiber-Emulationslogik ausgeführt wird, um eine Software-Kommunikation dazwischen zu ermöglichen, wobei jede virtuelle Schnittstelle über die Switch Fabric einen Software-Kommunikationspfad von einem Computerprozessor zu einem anderen Computerprozessor definiert;
Herstellen einer virtuellen Schnittstelle zwischen jedem Computerprozessor, in dem eine Ethernet-Treiber-Emulationslogik ausgeführt wird, und jedem anderen Computerprozessor, in dem eine Ethernet-Treiber-Emulationslogik ausgeführt wird; wobei,
falls die virtuelle Schnittstelle zwischen einem Computerprozessor und einem anderen in der Weise arbeitet, dass sie vorgegebene Kriterien erfüllt, die Ethernet-Treiber-Emulationslogik des einen Computerprozessors über eine virtuelle Schnittstelle, die einen Software-Kommunikationspfad dazwischen definiert, von Punkt zu Punkt mit...
A method for emulating a switched local Ethernet network in a platform with a plurality of computer processors, a switch fabric and point-to-point connections to the processors, comprising:
Providing Ethernet driver emulation logic for execution in at least two computer processors;
Providing switching emulation logic for execution in at least one of the computer processors;
Establish a virtual interface between the switch emulation logic and each computer processor in which an Ethernet driver emulation logic is executed to enable software communication therebetween, each virtual interface via the switch fabric a software communication path from a computer processor to one other computer processor defined;
Establishing a virtual interface between each computer processor in which ethernet driver emulation logic is executed and each other computer processor in which ethernet driver emulation logic is executed; in which,
if the virtual interface between one computer processor and another works in such a way that it fulfills predetermined criteria, the ethernet driver emulation logic of the one computer processor via a virtual interface which defines a software communication path therebetween from point to point with .. ,

Figure 00000001
Figure 00000001

Description

Hintergrund 1. Gebiet der Erfindungbackground 1. Field of the Invention

Die vorliegende Erfindung bezieht sich auf EDV-Systeme für Unternehmen und Anwendungsdiensteanbieter und genauer auf Verarbeitungssysteme mit virtualisierten Kommunikationsnetzen.The present invention relates on computer systems for Businesses and application service providers, and more specifically on processing systems with virtualized communication networks.

2. Diskussion des verwandten Gebiets2. Discussion of the related area

In den momentanen Unternehmens-EDV- und Anwendungsdiensteanbieter-Umgebungen muss sich Personal von mehreren Informationstechnologiefunktionen (IT-Funktionen) (Elektro-, Vernetzungspersonal usw.) am Einsatz von Verarbeitungs- und Vernetzungsbetriebsmitteln beteiligen. Wegen Planungs- und anderen Schwierigkeiten bei der Koordinierung von Aktivitäten von mehreren Abteilungen kann der Einsatz eines neuen Computer-Servers folglich Wochen oder Monate dauern. Dieser langwierige, manuelle Prozess erhöht sowohl die Personal- als auch die Ausrüstungskosten und verzögert den Start von Anwendungen.In the current corporate IT and Application service provider environments need to be staffed by several Information technology functions (IT functions) (electrical, networking personnel etc.) in the use of processing and networking resources participate. Because of planning and other difficulties with the Coordination of activities several departments can consequently use a new computer server Take weeks or months. This lengthy, manual process elevated both personnel and equipment costs and delays the Start applications.

Da schwer vorauszusehen ist, wie viel Verarbeitungsleistung Anwendungen erfordern, sehen Manager außerdem typischerweise eine zu hohe Menge an Computerleistung vor. Im Ergebnis werden Datenzentrums-EDV-Betriebsmittel häufig nicht oder zu wenig ausgenutzt.Since it is difficult to predict how Much processing power requires applications, managers see Moreover typically too much computing power. As a result data center EDP equipment is often underused or underused.

Falls schließlich weitere Verarbeitungsleistung erforderlich ist, als ursprünglich vorgesehen war, müssen die verschiedenen IT-Funktionen die Aktivitäten erneut koordinieren, um mehr oder verbesserte Server einzusetzen, sie mit den Kommunikations- und Speichernetzen zu verbinden usw. Diese Aufgabe wird zunehmend schwierig, während die Systeme größer werden.Finally, if further processing power is required than originally was intended the different IT functions to coordinate the activities again deploy more or improved servers, they with the communication and to connect storage networks etc. This task is increasing difficult while the systems are getting bigger.

Der Einsatz ist ebenfalls problematisch. Beispielsweise können beim Einsatz von 24 herkömmlichen Servern mehr als 100 diskrete Verbindungen erforderlich sein, um das Gesamtsystem zu konfigurieren. Das Management dieser Kabel ist eine andauernde Herausforderung, und jedes stellt einen Ausfallpunkt dar. Versuche, das Risiko eines Ausfalls durch Hinzufügen von Redundanz zu mildern, können die Verkabelung verdoppeln, was das Problem verschärft, während es die Komplexität und die Kosten erhöht.The use is also problematic. For example when using 24 conventional Servers over 100 discrete connections may be required to to configure the entire system. The management of these cables is an ongoing challenge, and each represents a failure point Try to reduce the risk of failure by adding Can mitigate redundancy double the wiring, which exacerbates the problem while it the complexity and increases the cost.

Die Bereitstellung einer hohen Verfügbarkeit ist mit der heutigen Technologie eine schwierige und kostspielige Absicht. Allgemein muss für jeden Primär-Server ein Ausfallsicherungs-Server eingesetzt werden. Außerdem sind üblicherweise komplexe Management-Software und Fachdienste erforderlich.The provision of high availability is a difficult and costly goal with today's technology. General must for every primary server a failover server can be used. Also are common complex management software and specialist services required.

Allgemein ist es unmöglich, in einem älteren Server die Verarbeitungsleistung einzustellen oder die CPUs zu aktualisieren. Statt dessen erfordert die Skalierung der Prozessorkapazität und/oder die Umstellung auf die Architektur der nächsten Generation eines Anbieters häufig eine "Gabelstapler-Aktualisierung", d. h. das Hinzufügen weiterer Hardware/Software-Systeme, die neue Verbindungen und dergleichen benötigen.Generally it is impossible to an older server discontinue processing power or update CPUs. Instead, scaling processor capacity and / or required the transition to the architecture of the next generation of a provider frequently a "forklift update", i. H. adding more Hardware / software systems, new connections and the like need.

Folglich besteht ein Bedarf an einem System und an einem Verfahren zur Schaffung einer Plattform für die Unternehmens- und ASP-EDV, die die obigen Nachteile behandeln.Hence there is a need for one System and a process to create a platform for corporate and ASP-EDP, which deal with the above disadvantages.

ZusammenfassungSummary

Die vorliegende Erfindung schafft eine Plattform und ein Verfahren zur Computerverarbeitung, in denen virtuelle Verarbeitungsbereichsnetze konfiguriert und eingesetzt werden können.The present invention provides a platform and method for computer processing in which virtual processing area networks configured and used can be.

Gemäß einem Aspekt der Erfindung werden ein Verfahren und ein System zum Emulieren eines vermittelten lokalen Ethernet-Netzes geschaffen. Es werden mehrere Computerprozessoren und eine Switch Fabric sowie Punkt-zu-Punkt-Verbindungen zu den Prozessoren geschaffen. Eine virtuelle Schnittstellenlogik stellt virtuelle Schnittstellen über die Switch Fabric und die Punkt-zu-Punkt-Verbindungen her. Jede virtuelle Schnittstelle definiert über die Switch Fabric einen Software-Kommunikationspfad von einem Computerprozessor zu einem weiteren Computerprozessor. In wenigstens zwei Computerprozessoren wird eine Ethernet-Treiber-Emulationslogik ausgeführt, während in wenigstens einem der Computerprozessoren eine Vermittlungsemulationslogik ausgeführt wird. Die Vermitt lungsemulationslogik schafft eine virtuelle Schnittstelle zwischen der Vermittlungsemulationslogik und jedem Computerprozessor, indem eine Ethernet-Treiber-Emulationslogik ausgeführt wird, um eine Software-Kommunikation dazwischen zu ermöglichen. Außerdem empfängt sie eine Nachricht von einer der virtuellen Schnittstellen zu einem Computerprozessor, in dem die Ethernet-Treiber-Emulationslogik ausgeführt wird, wobei sie in Reaktion auf der Nachricht zugeordnete Adressierungsinformationen eine Nachricht an einen weiteren Computerprozessor sendet, in dem eine Ethernet-Treiber-Emulationslogik ausgeführt wird. Außerdem stellt sie eine virtuelle Schnittstelle zwischen jedem Computerprozessor, in dem eine Ethernet-Treiber-Emulationslogik ausgeführt wird, und jedem anderen Computerprozessor, in dem eine Ethernet-Treiber-Emulationslogik ausgeführt wird, her. Falls die virtuelle Schnittstelle zufrieden stellend arbeitet, kommuniziert die Ethernet-Treiber-Emulationslogik über eine virtuelle Schnittstelle, die einen Software-Kommunikationspfad dazwischen definiert, von Punkt zu Punkt mit einem anderen Computerprozessor in dem emulierten Ethernet-Netz, während sie über die Vermittlungsemulationslogik von Punkt zu Punkt kommuniziert, falls die virtuelle Schnittstelle nicht zufrieden stellend arbeitet.According to one aspect of the invention are a method and system for emulating a mediated local Ethernet network created. There will be several computer processors and a switch fabric and point-to-point connections to the Processors created. A virtual interface logic provides virtual interfaces over the Switch fabric and the point-to-point connections. Any virtual Interface defined via the switch fabric a software communication path from one computer processor to another computer processor. In Ethernet driver emulation logic is used for at least two computer processors executed while switch emulation logic in at least one of the computer processors accomplished becomes. The switching emulation logic creates a virtual interface between the switch emulation logic and each computer processor, by using an ethernet driver emulation logic accomplished to enable software communication in between. Moreover receives a message from one of the virtual interfaces to one Computer processor in which the Ethernet driver emulation logic is executed being assigned addressing information in response to the message sends a message to another computer processor in which Ethernet driver emulation logic is running. Also poses a virtual interface between each computer processor, in which an ethernet driver emulation logic is executed, and any other computer processor that contains an ethernet driver emulation logic is performed, forth. If the virtual interface works satisfactorily, the Ethernet driver emulation logic communicates via a virtual interface that defines a software communication path in between, from point to point with another computer processor in the emulated Ethernet network while them over the switching emulation logic communicates from point to point, if the virtual interface is not working satisfactorily.

Gemäß einem weiteren Aspekt der Erfindung werden ein Verfahren und ein System zur Implementierung eines Adressenauflösungsprotokolls (ARP) geschaffen. Eine EDV-Plattform besitzt eine Mehrzahl von Prozessoren, die durch ein zu Grunde liegendes physikalisches Netz verbunden sind. Eine in einem der Prozessoren ausführbare Logik definiert eine Topologie eines in der EDV-Plattform zu emulierenden Ethernet-Netzes. Die Topologie umfasst Prozessorknoten und einen Vermittlungsknoten. Eine in einem der Prozessoren ausführbare Logik weist eine Menge von Prozessoren aus der Mehrzahl als Prozessoren zu, die als die Prozessorknoten wirken. Eine in einem der Prozessoren ausführbare Logik weist jedem Prozessorknoten des emulierten Ethernet-Netzes virtuelle MAC-Adressen zu. Eine in einem der Prozessoren ausführbare Logik ordnet über das zu Grunde liegende physikalische Netz virtuelle Schnittstellen zu, um eine direkte Software-Kommunikation von jedem Prozessorknoten zu jedem anderen Prozessorknoten bereitzustellen. Jede virtuelle Schnittstelle besitzt eine entsprechende Kennung. Jeder Prozessorknoten besitzt eine ARP-Anforderungslogik, die eine ARP-Anforderung an den Vermittlungsknoten übermittelt, wobei die ARP-Anforderung eine IP-Adresse enthält. Der Vermittlungsknoten enthält eine ARP-Anforderungs-Rundsendelogik, die die ARP-Anforderung an alle anderen Prozessorknoten in dem emulierten Ethernet-Netz übermittelt. Jeder Prozessorknoten besitzt eine ARP-Antwortlogik, die bestimmt, ob er der Prozessorknoten ist, der der IP-Adresse in einer ARP-Anforderung zugeordnet ist, und, wenn das der Fall ist, an den Vermittlungsknoten eine ARP-Antwort ausgibt, die die virtuelle MAC-Adresse desjenigen Prozessorknotens enthält, der der IP-Adresse zugeordnet ist. Der Vermittlungsknoten enthält eine ARP-Antwortlogik, die die ARP-Antwort empfängt und in der Weise ändert, dass sie eine virtuelle Schnittstellenkennung für den ARP-Anforderungsknoten enthält.According to a further aspect of the invention, a method and a system for implementing an address resolution protocol (ARP) created. An EDP platform has a plurality of processors that are connected by an underlying physical network. A logic executable in one of the processors defines a topology of an Ethernet network to be emulated in the EDP platform. The topology includes processor nodes and a switching node. Logic executable in one of the processors assigns a set of processors from the plurality as processors to act as the processor nodes. A logic executable in one of the processors assigns virtual processor addresses to each processor node of the emulated Ethernet network. A logic executable in one of the processors assigns virtual interfaces via the underlying physical network in order to provide direct software communication from each processor node to every other processor node. Each virtual interface has a corresponding identifier. Each processor node has ARP request logic that transmits an ARP request to the switch node, the ARP request containing an IP address. The switching node contains ARP request broadcast logic that transmits the ARP request to all other processor nodes in the emulated Ethernet network. Each processor node has ARP response logic that determines whether it is the processor node associated with the IP address in an ARP request and, if so, an ARP response at the switch node that outputs the virtual Contains the MAC address of the processor node that is assigned to the IP address. The switching node contains ARP response logic that receives the ARP response and changes it to include a virtual interface identifier for the ARP request node.

Gemäß einem weiteren Aspekt der Erfindung werden eine Plattform und ein Verfahren für die Computerverarbeitung geschaffen, die die Prozessorausfallsicherung unterstützen. Mehrere Computerprozessoren sind zu einem internen Kommunikationsnetz verbunden. Über das interne Netz wird ein virtuelles lokales Kommunikationsnetz definiert und hergestellt. Jeder Computerprozessor in dem virtuellen lokalen Kommunikationsnetz besitzt eine entsprechende virtuelle MAC-Adresse, wobei das virtuelle lokale Netz eine Kommunikation unter einer Menge von Computerprozessoren ermöglicht, während es diejenigen Prozessoren aus der Mehrzahl, die nicht in der definierten Menge sind, ausschließt. Es wird ein virtueller Ablageraum mit einer definierten Entsprechung zu dem Adressenraum des Ablagenetzes definiert und hergestellt. In Reaktion auf einen Ausfall eines Computerprozessors wird ein Computerprozessor aus der Mehrzahl zugeordnet, der den ausgefallenen Prozessor ersetzt. Die MAC-Adresse des ausgefallenen Prozessors wird dem Prozessor zugewiesen, der den ausgefallenen Prozessor ersetzt. Der virtuelle Ablageraum und die definierte Entsprechung des ausgefallenen Prozessors werden dem Prozessor zugewiesen, der den ausgefallenen Prozessor ersetzt. Das virtuelle lokale Netz wird wiederhergestellt, so dass es den Prozessor enthält, der den ausgefallenen Prozessor ersetzt, während der ausgefallene Prozessor ausgeschlossen ist.According to another aspect of Invention will be a platform and method for computer processing created that support processor failover. Several Computer processors are connected to an internal communication network. About the internal network, a virtual local communication network is defined and manufactured. Every computer processor in the virtual local Communication network has a corresponding virtual MAC address, the virtual local area network communication among a lot of computer processors allows while it those processors from the majority that are not defined in the Amount are excluding. It becomes a virtual storage room with a defined correspondence to the address space of the filing network defined and manufactured. In response to a computer processor failure, a Computer processor from the majority assigned to the failed Processor replaced. The MAC address of the failed processor is assigned to the processor that replaces the failed processor. The virtual storage room and the defined correspondence of the failed Processors are assigned to the processor that is the failed processor replaced. The virtual local area network is restored so that it contains the processor which replaces the failed processor while the failed processor is excluded.

Gemäß einem weiteren Aspekt der Erfindung werden ein System und ein Verfahren zur Bereitstellung eines durch eine IP-Adresse adressierten Dienstes geschaffen. Wenigstens zwei Computerprozessoren enthalten jeweils eine Logik, die den Dienst bereitstellt. Eine Cluster-Logik empfängt Anforderungsnachrichten für den Dienst. Die Nachricht besitzt die IP-Adresse. Die Cluster-Logik verteilt die Anforderungen an einen der wenigstens zwei Computerprozessoren, der eine Logik zur Bereitstellung des Dienstes besitzt.According to another aspect of Invention will be a system and method of providing of a service addressed by an IP address. At least two computer processors each contain logic that provides the service. Cluster logic is receiving Request messages for the service. The message has the IP address. The cluster logic distributes the requirements to one of the at least two computer processors, who has logic to provide the service.

Gemäß einem weiteren Aspekt der Erfindung enthält eine Computerverarbeitungs- Plattform mehrere Computerprozessoren, die mit einem internen Kommunikationsnetz verbunden sind. Wenigstens ein Steuerknoten steht in Kommunikation mit einem externen Kommunikationsnetz und mit einem externen Ablagenetz, das einen externen Ablageadressenraum besitzt. Der wenigstens eine Steuerknoten ist mit dem internen Netz verbunden und kommuniziert dabei mit der Mehrzahl der Computerprozessoren. Die Konfigurationslogik definiert und stellt her: ein virtuelles Verarbeitungsnetz mit einer entsprechenden Menge von Computerprozessoren aus der Mehrzahl der Prozessoren, ein virtuelles lokales Kommunikationsnetz, das eine Kommunikation unter der Menge der Computerprozessoren ermöglicht, aber diejenigen Prozessoren aus der Mehrzahl, die nicht in der definierten Menge sind, ausschließt, und einen virtuellen Ablageraum mit einer definierten Entsprechung zu dem Adressenraum des Ablagenetzes.According to another aspect of Invention contains one computer processing platform several Computer processors connected to an internal communication network are. At least one control node is in communication with one external communication network and with an external filing network that has an external filing address space. The at least one control node is connected to the internal network and communicates with the Most of the computer processors. The configuration logic defines and manufactures: a virtual processing network with a corresponding one Set of computer processors from the majority of processors, a virtual local communication network that is a communication among the set of computer processors allows, but those processors excludes from the majority that are not in the defined amount, and one virtual storage room with a defined correspondence to the Filing network address space.

Kurzbeschreibung der ZeichnungSummary the drawing

In der Zeichnung:In the drawing:

1 ist ein Systemdiagramm, das eine Ausführungsform der Erfindung veranschaulicht; 1 Fig. 10 is a system diagram illustrating an embodiment of the invention;

2AC sind Diagramme, die Kommunikationsverbindungen veranschaulichen, die gemäß einer Ausführungsform der Erfindung hergestellt werden; 2A - C 14 are diagrams illustrating communication links established in accordance with an embodiment of the invention;

3AB sind Diagramme, die die Vernetzungs-Software-Architektur bestimmter Ausführungsformen der Erfindung veranschaulichen; 3A - B 14 are diagrams illustrating the networking software architecture of certain embodiments of the invention;

4AC sind Ablaufpläne, die die Treiberlogik gemäß bestimmten Ausführungsformen der Erfindung veranschaulichen; 4A - C 14 are flowcharts illustrating driver logic in accordance with certain embodiments of the invention;

5 veranschaulicht Dienst-Cluster gemäß bestimmten Ausführungsformen der Erfindung; 5 illustrates service clusters according to certain embodiments of the invention;

6 veranschaulicht die Ablage-Software-Architektur bestimmter Ausführungsformen der Erfindung; 6 illustrates the filing software architecture of certain embodiments of the invention;

7 veranschaulicht die prozessorseitige Ablagelogik bestimmter Ausführungsformen der Erfindung; 7 illustrates the processor-side filing logic of certain embodiments of the Er invention;

8 veranschaulicht die Ablageadressen-Zuordnungslogik bestimmter Ausführungsformen der Erfindung; und 8th illustrates filing address mapping logic of certain embodiments of the invention; and

9 veranschaulicht die Cluster-Management-Logik bestimmter Ausführungsformen der Erfindung. 9 illustrates the cluster management logic of certain embodiments of the invention.

Ausführliche BeschreibungFull description

Bevorzugte Ausführungsformen der Erfindung schaffen eine Verarbeitungsplattform, von der virtuelle Systeme über Konfigurationsbefehle eingesetzt werden können. Die Plattform schafft einen großen Pool von Prozessoren, aus denen eine Teilmenge durch Software-Befehle ausgewählt und konfiguriert werden können, so dass sie ein virtualisiertes Netz von Computern ("Verarbeitungsbereichsnetz" oder "Prozessor-Cluster") bilden, das eingesetzt werden kann, so dass es einer gegebenen Menge von Anwendungen oder einem Kunden dient. Das virtualisierte Verarbeitungsbereichsnetz (PAN) kann daraufhin verwendet werden, um kundenspezifische Anwendungen wie etwa Web-gestützte Server-Anwendungen auszuführen. Die Virtualisierung kann die Virtualisierung lokaler Netze (LANs) oder die Virtualisierung der E/A-Ablage umfassen. Dadurch, dass eine solche Plattform geschaffen wird, können Verarbeitungsbetriebsmittel schnell und leicht über Konfigurationsbefehle, z. B. von einem Administrator, über Software eingesetzt werden, anstatt physikalisch Server, ein Verkabelungsnetz und Ablageverbindungen vorzusehen, an jeden Server Leistung zu liefern usw.Preferred embodiments of the invention create a processing platform, from virtual systems to configuration commands can be used. The platform creates a big one Pool of processors that make up a subset through software instructions selected and can be configured so that they form a virtualized network of computers ("processing area network" or "processor cluster") that are used can be so that there is a given set of applications or serves a customer. The virtualized processing area network (PAN) can then be used to create custom applications such as web-based Run server applications. Virtualization can virtualize local area networks (LANs) or include virtualization of the I / O repository. As a result of that Such a platform can be created using processing resources quickly and easily over Configuration commands, e.g. B. by an administrator, via software are used instead of a physical server, a cabling network and filing connections, delivering power to each server, etc.

Überblick über die Plattform und ihr VerhaltenOverview of the Platform and their behavior

Wie in 1 gezeigt ist, enthält eine bevorzugte Hardware-Plattform 100 eine Menge von Verarbeitungsknoten 105a–n, die über eine schnelle Verbindung 110a, b mit einer Switch Fabric 115a, b, verbunden sind. Außerdem ist die Switch Fabric 115a, b, mit wenigstens einem Steuerknoten 120a, b, der in Kommunikation mit einem externen IP-Netz 125 (oder mit einem anderen Datenkommunikationsnetz) steht, sowie mit einem Ablagebereichsnetz (SAN) 130 verbunden. Eine z. B. remote ausgeführte Management-Anwendung 135 kann über das IP-Netz 125 auf einen oder auf mehrere der Steuerknoten zugreifen, um bei der Konfiguration der Plattform 100 und bei dem Einsatz virtueller PANs zu helfen.As in 1 a preferred hardware platform is shown 100 a lot of processing nodes 105a-n that have a fast connection 110a , b with a switch fabric 115a, b , are connected. In addition, the switch fabric 115a, b , with at least one control node 120a, b in communication with an external IP network 125 (or with another data communication network), as well as with a storage area network (SAN) 130 connected. A z. B. Remote management application 135 can over the IP network 125 access one or more of the control nodes to help configure the platform 100 and to help with the use of virtual PANs.

Gemäß bestimmten Ausführungsformen sind in einem einzigen Chassis etwa 24 Verarbeitungsknoten 105a–n, zwei Steuerknoten 120 und zwei Switch Fabrics 115a, b, enthalten und mit einem festen, vorverdrahteten Maschennetz von Punkt-zu-Punkt-Verbindungen (PzP-Verbindungen) miteinander verbunden. Jeder Verarbeitungsknoten 105 ist eine Platine, die einen oder mehrere (z. B. 4) Prozessoren 106j–l, eine oder mehrere Netzkarten (NICs) 107 und einen lokalen Speicher (der z. B. größer als 4 GBytes ist) enthält und der unter anderem eine gewisse BIOS-Firmware zum Booten und zur Initialisierung enthält. Für die Prozessoren 106 gibt es keine lokale Platte; statt dessen wird die gesamte Ablage einschließlich der für den Seitenwechsel erforderlichen Ablage durch die SAN-Ablagevorrichtungen 130 behandelt.According to certain embodiments, there are approximately 24 processing nodes in a single chassis 105a-n , two control nodes 120 and two switch fabrics 115a, b , contained and connected to each other with a fixed, pre-wired mesh network of point-to-point connections (PzP connections). Every processing node 105 is a circuit board that has one or more (e.g. 4) processors 106j-l , one or more network cards (NICs) 107 and contains local memory (which is, for example, larger than 4 GB) and which contains, among other things, a certain BIOS firmware for booting and for initialization. For the processors 106 there is no local plate; instead, the entire tray, including the tray required for the page change, is provided by the SAN trays 130 treated.

Jeder Steuerknoten 120 ist eine einzelne Platine, die eine oder mehrere (z. B. 4) Prozessoren, einen lokalen Speicher und eine lokale Plattenablage, die unabhängige Kopien des Boot-Abbilds und des Anfangsdateisystems enthält, die verwendet werden, um die Betriebssystem-Software für die Verarbeitungsknoten 105 und für die Steuerknoten 106 zu booten, enthält. Jeder Steuerknoten kommuniziert mit dem SAN 130 über 100-Megabyte/s-Adapterkarten 128 mit zweitem Glasfaserkanal, die mit den Glasfaserkanalverbindungen 122, 124 verbunden sind, und über eine externe Netzschnittstelle 129 mit Ein- oder Mehr-Gigabit-Ethernet-NICs, die mit den Gigabit-Ethernet-Verbindungen 121, 123 verbunden sind, mit dem Internet (oder mit irgendeinem anderen externen Netz) 125. (Für die Konnektivität von SAN und externem Netz können viele andere Techniken und viele andere Hardware verwendet werden.) Jeder Steuerknoten enthält einen (nicht gezeigten) langsamen Ethernet-Port als einen hierzu vorgesehenen Management-Port, der anstelle eines Web-gestützten Remote-Managements über die Management-Anwendung 135 verwendet werden kann.Each control node 120 is a single board that contains one or more (e.g., 4) processors, local memory, and local disk storage that contains independent copies of the boot image and initial file system used to run the operating system software for the processing nodes 105 and for the control nodes 106 to boot contains. Each control node communicates with the SAN 130 over 100 megabyte / s adapter cards 128 with a second fiber optic channel that with the fiber optic channel connections 122 . 124 are connected, and via an external network interface 129 with single or multi-gigabit ethernet NICs using the gigabit ethernet connections 121 . 123 connected to the Internet (or any other external network) 125 , (Many other techniques and hardware can be used for SAN and external network connectivity.) Each control node contains a slow Ethernet port (not shown) as a dedicated management port, instead of web-based remote management about the management application 135 can be used.

Die Switch Fabric ist aus einer oder aus mehreren 30-Port-Giganet-Vermittlungen 115 wie etwa der Vermittlung NIC-CLAN 1000 und der Vermittlung clan 5300 zusammengesetzt, wobei die verschiedenen Verarbeitungs- und Steuerknoten entsprechende NICs für die Kommunikation mit einem solchen Fabric-Modul verwenden. Giganet-Switch-Fabrics besitzen die Semantik eines Nicht-Rundsende-Mehrfachzugriffnetzes (NBMA-Netzes). Die gesamte Kommunikation zwischen den Knoten erfolgt über eine Switch-Fabric. Jede Verbindung ist als eine serielle Verbindung zwischen einer NIC 107 und einem Port in der Switch Fabric 115 ausebifdet. Jede Verbindung arbeitet mit 112 Megabytes/Sekunde.The switch fabric is made up of one or more 30-port Giganet switches 115 such as switch NIC-CLAN 1000 and switch clan 5300, with the various processing and control nodes using corresponding NICs to communicate with such a fabric module. Giganet switch fabrics have the semantics of a non-broadcast multiple access network (NBMA network). All communication between the nodes takes place via a switch fabric. Each connection is as a serial connection between a NIC 107 and a port in the switch fabric 115 ausebifdet. Each connection works at 112 megabytes / second.

In einigen Ausführungsformen können mehrere Schränke oder Chassis miteinander verbunden sein, so dass sie größere Plattformen bilden. Außerdem kann sich die Konfiguration in weiteren Ausführungsformen unterscheiden; beispielsweise können redundante Verbindungen, Vermittlungen und Steuerknoten weggelassen sein.In some embodiments, multiple cabinets or chassis connected together so that they have larger platforms form. Moreover the configuration may differ in further embodiments; for example, redundant ones Connections, switches and control nodes can be omitted.

Die Plattform unterstützt gemäß Software-Steuerung mehrere gleichzeitige und unabhängige Verarbeitungsbereichsnetze (PANs). Jedes PAN wird über Software-Befehle so konfiguriert, dass es eine entsprechende Teilmenge der Prozessoren 106 besitzt, die über ein virtuelles lokales Netz kommunizieren können, das über das PzP-Maschennetz emuliert wird. Außerdem ist jedes PAN so konfiguriert, dass es ein entsprechendes virtuelles E/A-Teilsystem besitzt. Um ein PAN herzustellen, ist kein physikalischer Einsatz oder keine physikalische Verkabelung erforderlich. Gemäß bestimmten bevorzugten Ausführungsformen emuliert Software-Logik, die in den Prozessorknoten und/oder in den Steuerknoten ausgeführt wird, die Semantik eines vermittelten Ethernet; weitere Software-Logik, die in den Prozessorknoten und/oder in den Steuerknoten ausgeführt wird, stellt die Funktionalität eines virtuellen Ablageteilsystems bereit, das der SCSI-Semantik folgt und unabhängige E/A-Adressenräume für jedes PAN bereitstellt.According to software control, the platform supports several simultaneous and independent processing area networks (PANs). Each PAN is configured via software commands so that it has a corresponding subset of the processors 106 owns, which can communicate via a virtual local area network, which emu via the PzP mesh network is gated. Each PAN is also configured to have a corresponding virtual I / O subsystem. No physical use or physical wiring is required to manufacture a PAN. According to certain preferred embodiments, software logic that executes in the processor nodes and / or in the control nodes emulates the semantics of a switched Ethernet; additional software logic that executes in the processor nodes and / or in the control nodes provides the functionality of a virtual filing subsystem that follows SCSI semantics and provides independent I / O address spaces for each PAN.

Netzarchitekturnetwork architecture

Bestimmte bevorzugt Ausführungsformen ermöglichen, dass ein Administrator unter Verwendung virtueller Komponenten, Schnittstellen und Verbindungen virtuelle, emulierte LANs aufbaut. Jedes der virtuellen LANs kann zu der Plattform 100 intern und privat sein, oder es können mehrere Prozessoren zu einem Prozessor-Cluster gebildet sein, das extern als eine einzige IP-Adresse sichtbar ist.Certain preferred embodiments allow an administrator to build virtual, emulated LANs using virtual components, interfaces, and connections. Each of the virtual LANs can go to the platform 100 be internal and private, or multiple processors can be formed into a processor cluster that is externally visible as a single IP address.

Obgleich das physikalische zu Grunde liegende Netz ein PzP-Maschennetz ist, emulieren die auf diese Weise erzeugten virtuellen Netze gemäß bestimmten Ausführungsformen ein vermitteltes Ethernet-Netz. Das virtuelle Netz verwendet IEEE-MAC-Adressen, und die Verarbeitungsknoten unterstützen die IETF-ARP-Verarbeitung, um IP-Adressen zu identifizieren und MAC-Adressen zuzuordnen. Folglich antwortet ein gegebener Prozessorknoten auf eine ARP-Anforderung konsistent, gleich, ob die ARP-Anforderung von einem zu der Plattform internen oder externen Knoten gekommen ist.Although the physical is based lying network is a PzP mesh network, they emulate in this way generated virtual networks according to certain embodiments a mediated ethernet network. The virtual network uses IEEE MAC addresses and the processing nodes support IETF-ARP processing to IP addresses identify and assign MAC addresses. Hence answer a given processor node consistent to an ARP request, equal to, whether the ARP request from an internal to the platform or external node has come.

2A zeigt eine beispielhafte Netzanordnung, die modelliert oder emuliert werden kann. Ein erstes Teilnetz 202 wird von den Verarbeitungsknoten PN1, PN2 und PNk gebildet, die über die Vermittlung 206 miteinander kommunizieren können. Ein zweites Teilnetz 204 wird von den Verarbeitungsknoten PNk und PNm gebildet, die über die Vermittlung 208 miteinander kommunizieren können. Gemäß der Semantik eines vermittelten Ethernet kann ein Knoten in einem Teilnetz direkt mit einem anderen Knoten in dem Teilnetz kommunizieren; beispielsweise kann PN1 eine Nachricht an PN2 senden. Außerdem ermöglicht die Semantik, dass ein Knoten mit einer Menge der anderen Knoten kommuniziert; beispielsweise kann PN1 eine Rundsendenachricht an andere Knoten senden. Da PNm in einem anderen Teilnetz ist, können die Verarbeitungsknoten PN1 und PN2 nicht direkt mit PNm kommunizieren. Damit PN1 und PN2 mit PNm kommunizieren, müsste Netz-Software einer höheren Schicht verwendet werden, die ein umfassenderes Verständnis beider Teilnetze besitzt. Obgleich dies in der Figur nicht gezeigt ist, kann eine gegebene Vermittlung über eine "Aufwärtsstecke" mit einer weiteren Vermittlung oder dergleichen kommunizieren. Wie aus der gegebenen Beschreibung klar ist, ist die Notwendigkeit solcher Aufwärtsstrecken verschieden von ihrer Notwendigkeit, wenn die Vermittlungen physikalisch sind. Genauer können die Vermittlungen, da sie virtuell und in Software modelliert sind, horizontal so breit wie nötig skalieren. (Demgegenüber besitzen physikalische Vermittlungen eine feste Anzahl physikalischer Ports, wobei die Aufwärtsstrecken gelegentlich erforderlich sind, um die horizontale Skalierbarkeit bereitzustellen.) 2A shows an exemplary network arrangement that can be modeled or emulated. A first subnet 202 is formed by the processing nodes PN 1 , PN 2 and PN k , via the switch 206 can communicate with each other. A second subnet 204 is formed by the processing nodes PN k and PN m , via the switch 208 can communicate with each other. According to the semantics of a switched Ethernet, a node in a subnet can communicate directly with another node in the subnet; for example, PN 1 can send a message to PN 2 . Semantics also allow one node to communicate with a set of the other nodes; for example, PN 1 can send a broadcast message to other nodes. Since PN m is in another subnet, the processing nodes PN 1 and PN 2 cannot communicate directly with PN m . In order for PN 1 and PN 2 to communicate with PN m , network software from a higher layer would have to be used, which has a more comprehensive understanding of both subnets. Although not shown in the figure, a given switch may communicate with another switch or the like via an "uplink". As is clear from the description given, the need for such uplinks is different from their need if the switches are physical. More precisely, as they are virtual and modeled in software, the exchanges can scale horizontally as wide as necessary. (In contrast, physical switches have a fixed number of physical ports, and the uplinks are sometimes required to provide horizontal scalability.)

2B zeigt beispielhafte Software-Kommunikationspfade sowie Software-Kommunikationslogik, die gemäß bestimmten Ausführungsformen zum Modellieren der Teilnetze 202 und 204 aus 2A verwendet wird. Die Kommunikationspfade 212 verbinden die Verarbeitungsknoten PN1, PN2, PNk und PNm, genauer ihre entsprechende prozessorseitige Netzkommunikationslogik 210, und verbinden außerdem die Verarbeitungsknoten mit den Steuerknoten. (Obgleich PNk aus Klarheitsgründen als einzige Instanz der Logik gezeigt ist, kann PNk mehrere Instanzen der entsprechenden Prozessorlogik, z. B. eine pro Teilnetz, besitzen.) Gemäß bevorzugten Ausführungsformen sind die Management-Logik und die Steuerknotenlogik verantwortlich für den Aufbau, das Management und den Abbau der Kommunikationspfade. Die einzelnen Verarbeitungsknoten dürfen solche Pfade nicht aufbauen. 2 B shows exemplary software communication paths and software communication logic, which according to certain embodiments for modeling the subnets 202 and 204 out 2A is used. The communication paths 212 connect the processing nodes PN 1 , PN 2 , PN k and PN m , more precisely their corresponding processor-side network communication logic 210 , and also connect the processing nodes to the control nodes. (Although PN k is shown as the only instance of the logic for reasons of clarity, PN k can have several instances of the corresponding processor logic, for example one per subnet.) According to preferred embodiments, the management logic and the control node logic are responsible for the structure, the management and dismantling of the communication paths. The individual processing nodes must not set up such paths.

Wie unten ausführlich erläutert wird, emulieren die Prozessorlogik und die Steuerknotenlogik über diese Kommunikationspfade gemeinsam die Semantik eines vermittelten Ethernet. Beispielsweise besitzen die Steuerknoten eine steuerknotenseitige virtuelle Vermittlungslogik 214, die einen Teil der (jedoch nicht notwendig die gesamte) Semantik einer Ethernet-Vermittlung emuliert, während die Prozessorlogik eine Logik enthält, die einen Teil der (jedoch nicht notwendig die gesamte) Semantik eines Ethernet-Treibers emuliert.As explained in detail below, the processor logic and the control node logic together emulate the semantics of a switched Ethernet via these communication paths. For example, the control nodes have a virtual switching logic on the control node side 214 that emulates part (but not necessarily all) of an Ethernet switch's semantics, while processor logic includes logic that emulates part (but not necessarily all) of an Ethernet driver's semantics.

Ein Prozessorknoten kann in einem Teilnetz über eine entsprechende virtuelle Schnittstelle 212 direkt mit einem anderen kommunizieren. Gleichfalls kann ein Prozessorknoten über eine getrennte virtuelle Schnittstelle mit der Steuerknotenlogik kommunizieren. Gemäß bestimmten Ausführungsformen stellen die zu Grunde liegende Switch Fabric und die zugeordnete Logik (z. B. die nicht gezeigte Manager-Logik der Switch Fabric) die Fähigkeit bereit, solche virtuelle Schnittstellen (VIs) über das Punkt-zu-Punkt-Maschennetz aufzubauen und ihr Management auszuführen. Außerdem können diese virtuellen Schnittstellen auf zuverlässige, redundante Weise aufgebaut werden, wobei sie hier als RVIs bezeichnet werden. Da die Wahl zwischen einer VI gegenüber einer RVI zum größten Teil von der Höhe der Zuverlässigkeit abhängt, die von dem System auf Kosten der Systemressourcen gewünscht wird, werden die Begriffe virtuelle Schnittstelle (VI) und zuverlässige virtuelle Schnittstelle (RVI) an Punkten dieser Beschreibung austauschbar verwendet.A processor node can be in a subnet via a corresponding virtual interface 212 communicate directly with another. Likewise, a processor node can communicate with the control node logic via a separate virtual interface. In certain embodiments, the underlying switch fabric and associated logic (e.g., switch fabric manager logic, not shown) provide the ability to build such virtual interfaces (VIs) over the point-to-point mesh network and to carry out their management. In addition, these virtual interfaces can be constructed in a reliable, redundant manner, whereby they are referred to here as RVIs. Since the choice between a VI versus an RVI largely depends on the level of reliability that the system desires at the expense of system resources, the terms virtual interface (VI) and verver casual virtual interface (RVI) used interchangeably at points of this description.

Falls der Knoten PN1 mit gemeinsamem Bezug auf die 2AB mit dem Knoten PN2 kommunizieren soll, tut er dies gewöhnlich über die virtuelle Schnittstelle 2121-2 . Allerdings ermöglichen bevorzugte Ausführungsformen, dass eine Kommunikation zwischen PN1 und PN2 über die Vermittlungsemulationslogik stattfindet, falls beispielsweise die VI 2121–2 nicht zufrieden stellend arbeitet. In diesem Fall kann eine Nachricht über die VI 2121-Vermittlung206 und über die VI 212Vermittlung206-2 gesendet werden. Falls der PN1 eine Nachricht an andere Knoten in dem Teilnetz 202 rund- oder sammelsenden soll, tut er dies dadurch, dass er die Nachricht über die virtuelle Schnittstelle 2121-Vermittlung206 an die steuerknotenseitige Logik 214 sendet. Die steuerknotenseitige Logik 214 emuliert daraufhin die Rund- oder Sammelsendefunktionalität dadurch, dass sie die Nachricht klont und unter Verwendung der relevanten VIs an die anderen relevanten Knoten sendet. Die gleichen oder analoge VIs können verwendet werden, um andere Nachrichten zu befördern, die eine steuerknotenseitige Logik erfordern.If the node PN 1 with common reference to the 2A - B to communicate with the node PN 2 , it usually does this via the virtual interface 212 1-2 , However, preferred embodiments enable communication between PN 1 and PN 2 to take place via the switching emulation logic if, for example, the VI 212 1-2 not working satisfactorily. In this case, a message about the VI 212 1 operator206 and about the VI 212 Mediation 206-2 be sent. If the PN 1 sends a message to other nodes in the subnet 202 broadcast or collective, it does so by sending the message via the virtual interface 212 1 operator206 to the logic on the control node side 214 sends. The logic on the control node side 214 then emulates the broadcast or multicast functionality by cloning the message and sending it to the other relevant nodes using the relevant VIs. The same or analog VIs can be used to carry other messages that require node logic.

Beispielsweise enthält die steuerknotenseitige Logik, wie unten beschrieben wird, eine Logik, die das Adressenauflösungsprotokoll (ARP) unterstützt, wobei die VIs dazu verwendet werden, ARP-Antworten und -Anforderungen an den Steuerknoten zu übermitteln. Obgleich die obige Beschreibung nur eine VI zwischen Prozessorlogik und Steuerlogik nahelegt, verwenden viele Ausführungsformen mehrere solche Verbindungen. Außerdem ermöglicht die Architektur, obgleich die Figuren eine Symmetrie in den Software-Kommunikationspfaden nahelegt, tatsächlich eine asymmetrische Kommunikation. Beispielsweise werden die Pakete für kommunikations-geclusterte Dienste, wie unten diskutiert wird, über den Steuerknoten geleitet. Allerdings kann die Rückkommunikation direkt zwischen den Knoten erfolgen.For example, it contains the control node side Logic, as described below, logic that the address resolution protocol (ARP) supports where The VIs are used to provide ARP responses and requests to be transmitted to the control node. Although the description above is just a VI between processor logic and control logic, many embodiments use several such Links. Moreover allows the architecture, although the figures have symmetry in the software communication paths suggests, actually asymmetrical communication. For example, the packages for communication-clustered Services as discussed below are routed through the control node. However, the back communication done directly between the nodes.

Es wird angemerkt, dass es wie in dem Netz aus 2A keinen Mechanismus zur Kommunikation zwischen den Knoten PN2 und PNm gibt. Außerdem kann ein solcher Pfad dadurch, dass das Management und der Aufbau der Kommunikationspfade (anstatt über die Verarbeitungsknoten) zentral erfolgt, nicht durch die Verarbeitungsknoten erzeugt werden, wobei die definierte Teilnetzkonnektivität nicht durch einen Prozessor verletzt werden kann.It is noted that it looks like the net 2A there is no mechanism for communication between the nodes PN 2 and PN m . In addition, such that the management and the establishment of the communication paths (instead of via the processing nodes) is carried out centrally by the processing nodes, and the defined subnetwork connectivity cannot be infringed by a processor.

2C zeigt die beispielhaften physikalischen Verbindungen bestimmter Ausführungsformen, die die Teilnetze der 2A und B realisieren. Genauer kommuniziert jede Instanz der Verarbeitungsnetzlogik 210 über eine PzP-Verbindung 216 der Verdrahtung 110 mit der Switch Fabric 115. Gleichfalls besitzt der Steuerknoten mehrere Instanzen der Vermittlungslogik 214, wobei jede über eine PzP-Verbindung 216 mit der Switch Fabric kommuniziert. Wie weiter unten beschrieben wird, enthalten die virtuellen Schnittstellen aus 2B die Logik zur Beförderung von Informationen über diese physikalischen Verbindungen. 2C shows the exemplary physical connections of certain embodiments that the subnets of FIG 2A and B realize. Each instance of the processing network logic communicates more precisely 210 via a PzP connection 216 the wiring 110 with the switch fabric 115 , The control node also has several instances of the switching logic 214 , each via a PzP connection 216 communicates with the switch fabric. As will be described below, the virtual interfaces are included 2 B the logic to convey information about these physical connections.

Um solche Netze zu erzeugen und zu konfigurieren, definiert ein Administrator die Netztopologie eines PAN, wobei er (z. B. über ein Dienstprogramm in der Management-Software 135) MAC-Adressenzuweisungen der verschiedenen Knoten spezifiziert. Die MAC-Adresse ist virtuell, identifiziert eine virtuelle Schnittstelle und ist nicht an irgendeinen spezifischen physikalischen Knoten gebunden. Gemäß bestimmten Ausführungsformen folgt die MAC-Adresse dem IEEE-48-Bit-Adressenformat, in dem der Inhalt aber ein "lokal organisiertes" Bit (das auf 1 gesetzt ist), die laufende Nummer des Steuerknotens 120, in dem die virtuelle Schnittstelle ursprünglich definiert war (weiteres unten), und einen Zählwert von einem perma nenten Folgezähler in dem Steuerknoten, der in dem NVRAM in dem Steuerknoten gehalten wird, enthält. Diese MACs werden (wie herkömmlich) dazu verwendet, die Knoten in einer Ebene der Schicht 2 zu identifizieren. Beispielsweise werden diese MACs beim Beantworten von ARP-Anforderungen (entweder von einem zu dem PAN internen Knoten oder von einem Knoten in einem externen Netz) in die ARP-Antwort aufgenommen.In order to create and configure such networks, an administrator defines the network topology of a PAN, whereby he (e.g. via a utility in the management software 135 ) MAC address assignments of the various nodes specified. The MAC address is virtual, identifies a virtual interface, and is not tied to any specific physical node. In certain embodiments, the MAC address follows the IEEE 48-bit address format, but in which the content is a "locally organized" bit (set to 1), the serial number of the control node 120 , in which the virtual interface was originally defined (further below) and contains a count of a permanent sequence counter in the control node, which is held in the NVRAM in the control node. These MACs are used (as is conventional) to place the nodes in one layer 2 to identify. For example, these MACs are included in the ARP response when responding to ARP requests (either from a node internal to the PAN or from a node in an external network).

Die steuerknotenseitige Netzlogik unterhält Datenstrukturen, die Informationen enthalten, die die Konnektivität des LAN (z. B., welche Knoten mit welchen anderen Knoten kommunizieren können) widerspiegeln. Außerdem ordnet die Steuerknotenlogik VI- (oder RVI-) Zuordnungen zu und weist sie den definierten MAC-Adressen zu und ordnet sie VIs oder (RVIs) zu und weist sie zwischen den Steuerknoten sowie zwischen den Steuerknoten und den Verarbeitungsknoten zu. In dem Beispiel aus 2A ordnet die Logik die VIs 212 aus 2B zu und weist sie zu. (In einigen Ausführungsformen ist die Benennung der VIs und der RVIs eine Folge der verwendeten Switching Fabric und der verwendeten Manager-Logik der Switch Fabric.) Während jeder Prozessor bootet, initialisiert die BIOS-gestützte Boot-Logik jeden Prozessor 106 des Knotens 105, wobei sie unter anderem eine VI 212 zu der Steuerknotenlogik aufbaut (oder diese entdeckt). Daraufhin erhält der Prozessorknoten von dem Steuerknoten relevante Datenverbindungsinformationen wie etwa die MAC-Adresse des Prozessorknotens sowie die MAC-Identitäten anderer Vorrichtungen in der gleichen Datenverbindungskonfiguration. Daraufhin registriert jeder Prozessor seine IP-Adresse bei dem Steuerknoten, der daraufhin die IP-Adresse an den Knoten und an eine RVI (z. B. an die RVI, an der die Registrierung angekommen ist) bindet. Auf diese Weise kann der Steuerknoten IP-Adressen für jede virtuelle MAC für jeden Knoten in einem Teilnetz binden. Außer dem obigen erhält der Prozessorknoten die RVI- oder VI-bezogenen Informationen für seine Verbindungen zu anderen Knoten oder zur Steuerknoten-Netzlogik.The control node-side network logic maintains data structures that contain information that reflects the connectivity of the LAN (for example, which nodes can communicate with which other nodes). The control node logic also maps VI (or RVI) maps and assigns them to the defined MAC addresses and maps them to VIs or (RVIs) and maps them between the control nodes as well as between the control nodes and the processing nodes. In the example 2A logic arranges the VIs 212 out 2 B and assigns them. (In some embodiments, the naming of the VIs and RVIs is a consequence of the switching fabric and manager logic used for the switch fabric.) As each processor boots, the BIOS-based boot logic initializes each processor 106 of the knot 105 , including a VI 212 builds up to (or discovers) the control node logic. The processor node then receives relevant data connection information from the control node, such as the MAC address of the processor node and the MAC identities of other devices in the same data connection configuration. Each processor then registers its IP address with the control node, which then binds the IP address to the node and to an RVI (for example to the RVI to which the registration has arrived). In this way, the control node can bind IP addresses for each virtual MAC for every node in a subnet. In addition to the above, the processor node receives the RVI or VI related information for its connections to other nodes or to the control node network logic.

Somit sollten die verschiedenen Prozessorknoten nach dem Booten und der Initialisierung ihre Konnektivität der Schicht 2, der Sicherungsschicht, verstehen. Wie unten erläutert wird, wird die Konnektivität der Schicht 3 (IP) und werden genauer die Zuordnungen der Schicht 3 zur Schicht 2 als Folge des Adressenauflösungsprotokolls während der normalen Verarbeitung der Prozessoren bestimmt.Thus, the various processor nodes should have their connectivity to the layer after booting and initialization 2 , the data link layer, understand. As explained below, the connectivity of the layer 3 (IP) and become more specific the assignments of the layer 3 to the shift 2 determined as a result of the address resolution protocol during normal processing of the processors.

3A zeigt ausführlich die prozessorseitige Netzlogik 210, während 3B ausführlich die steuerknotenseitige Logik der Vernetzung 310 bestimmter Ausführungsformen zeigt. Die prozessorseitige Logik 210 enthält den IP-Stapel 305, den virtuellen Netztreiber 310, die ARP-Logik 350, die RCLAN-Schicht 315 und die redundanten Giganet-Treiber 320a, b. Die steuerknotenseitige Logik 310 enthält die redundanten Giganet-Treiber 325a, b, die RCLAN-Schicht 330, die Proxy-Logik 360 für virtuelle Cluster, den virtuellen LAN-Server 335, die ARP-Server-Logik 355, den virtuellen LAN-Proxy 340 und die physikalischen LAN-Treiber 345. 3A shows the processor-side network logic in detail 210 , while 3B the logic of networking on the control node side 310 certain embodiments. The processor-side logic 210 contains the IP stack 305 , the virtual network driver 310 who have favourited ARP logic 350 who have favourited RCLAN Layer 315 and the redundant Giganet drivers 320a, b , The logic on the control node side 310 contains the redundant Giganet drivers 325a, b who have favourited RCLAN Layer 330 who have favourited Proxy Logic 360 for virtual clusters, the virtual LAN server 335 who have favourited ARP Server Logic 355 , the virtual LAN proxy 340 and the physical LAN drivers 345 ,

IP-StapelIP stack

Der IP-Stapel 305 ist der Kommunikationsprotokollstapel, der mit dem von den Verarbeitungsknoten 106 verwendeten Betriebssystem (z. B. Linux) bereitgestellt wird. Der IP-Stapel stellt eine Schnittstelle der Schicht 3 für die Anwendungen bereit, während das Betriebssystem in einem Prozessor 106 ausgeführt wird, der mit dem simulierten Ethernet-Netz kommuniziert. Der IP-Stapel stellt Informationspakete für die virtuelle Ethernet-Schicht 310 in Verbindung mit einer Schicht-3-IP-Adresse als Ziel für dieses Paket bereit. Abgesehen davon, dass bestimmte Ausführungsformen Prüfsummenberechnungen und eine Prüfsummenlogik vermeiden, ist die Logik des IP-Stapels herkömmlich.The IP stack 305 is the communication protocol stack that is associated with that from the processing nodes 106 operating system used (e.g. Linux) is provided. The IP stack represents an interface of the layer 3 ready for applications while the operating system is in a processor 106 that communicates with the simulated Ethernet network. The IP stack provides information packets for the virtual Ethernet layer 310 in conjunction with a Layer 3 IP address as the destination for this packet. In addition to certain embodiments avoiding checksum calculations and checksum logic, the logic of the IP stack is conventional.

Virtueller Ethernet-TreiberVirtual ethernet driver

Der virtuelle Ethernet-Treiber 310 erscheint für den IP-Stapel 305 wie ein "realer" Ethernet-Treiber. Diesbezüglich empfängt der virtuelle Ethernet-Treiber 310 IP-Pakete oder -Datagramme von dem IP-Stapel zur nachfolgenden Sendung in dem Netz und empfängt er Paketinformationen aus dem Netz zur Lieferung an den Stapel als ein IP-Paket.The virtual ethernet driver 310 appears for the IP stack 305 like a "real" ethernet driver. In this regard, the virtual ethernet driver receives 310 IP packets or datagrams from the IP stack to the subsequent broadcast on the network and it receives packet information from the network for delivery to the stack as an IP packet.

Der Stapel baut den MAC-Anfangsblock auf. In dem Stapel kann der "normale" Ethernet-Code verwendet werden. Der virtuelle Ethernet-Treiber empfängt das Paket, bei dem der MAC-Anfangsblock bereits aufgebaut und die richtige MAC-Adresse bereits in dem Anfangsblock ist.The stack builds the MAC header on. The "normal" Ethernet code can be used in the stack become. The virtual Ethernet driver receives the packet in which the MAC header already set up and the correct MAC address already in the starting block is.

Im Wesentlichen und wie in den 4AC gezeigt ist, entnimmt 405 der virtuelle Ethernet-Treiber 310 abgehende IP-Datagramme aus der Warteschlange, so dass das Paket im Netz gesendet werden kann. Es wird die Standard-ARP-Logik des IP-Stapels verwendet. Wie unten erläutert wird, fängt der Treiber alle ARP-Pakete ab, die in das System eintreten und es verlassen, um sie in der Weise zu ändern, dass in den ARP-Tabellen jedes Knotens die richtigen Informationen ankommen. Die normale ARP-Logik ordnet die richtige MAC-Adresse in dem Sicherungsschicht-Anfangsblock des abgehenden Pakets an, bevor das Paket für den Ethernet-Treiber in die Warteschlange eingereiht wird. Daraufhin untersucht der Treiber lediglich den Sicherungsschicht-Anfangsblock und die Ziel-MAC, um zu bestimmen, wie das Paket zu senden ist. Der Treiber manipuliert (bis auf die gelegentliche Annullierung der ARP-Einträge) nicht direkt die ARP-Tabelle.Essentially and as in the 4A - C is shown 405 the virtual ethernet driver 310 outgoing IP datagrams from the queue so that the packet can be sent on the network. The standard ARP logic of the IP stack is used. As explained below, the driver intercepts all ARP packets entering and leaving the system to change them in such a way that the correct information arrives in the ARP tables of each node. Normal ARP logic places the correct MAC address in the data link header of the outbound packet before the packet is queued for the Ethernet driver. The driver then examines only the data link header and destination MAC to determine how to send the packet. The driver does not directly manipulate the ARP table (apart from the occasional cancellation of the ARP entries).

Der Treiber 310 bestimmt 415, ob die ARP-Logik 350 MAC-Adresseninformationen (weiteres unten) besitzt, die der IP-Adresse in dem der Warteschlange entnommenen Paket zugeordnet sind. Falls die ARP-Logik 350 die Informationen besitzt, werden die Informationen dazu verwendet, das Paket dementsprechend zu senden 420. Falls die ARP-Logik 350 die Informationen nicht besitzt, muss der Treiber diese Informationen bestimmen, wobei diese Informationen in bestimmten bevorzugten Ausführungsformen, wie in Verbindung mit den 4BC diskutiert wird, im Ergebnis einer Implementierung des ARP-Protokolls erhalten werden.The driver 310 certainly 415 whether the ARP logic 350 Has MAC address information (below) associated with the IP address in the queued packet. If the ARP logic 350 the information has, the information is used to send the packet accordingly 420 , If the ARP logic 350 the driver does not possess the information, the driver must determine this information, which information is provided in certain preferred embodiments, such as in connection with the 4B - C is discussed as a result of implementing the ARP protocol.

Falls die ARP-Logik 350 die MAC-Adresseninformationen besitzt, analysiert der Treiber die von der ARP-Logik 350 zurückgegebenen Informationen, um zu bestimmen, wohin und wie das Paket zu senden ist. Genauer betrachtet der Treiber die Adresse, um zu bestimmen, ob die MAC-Adresse in einem gültigen Format oder in einem besonderen ungültigen Format ist. Beispielsweise werden in einer Ausführungsform interne Knoten (d. h. zu der Plattform interne PAN-Knoten) durch eine Kombination der Einstellung des lokal organisierten Bits, des Sammelsendebits und eines weiteren vorgegebenen Bitmusters in dem ersten Byte der MAC-Adresse signalisiert. Das allumfassende Muster ist ein Muster, bei dem sehr unwahrscheinlich ist, dass es ein gültiges Muster ist.If the ARP logic 350 Having the MAC address information, the driver analyzes that from the ARP logic 350 information returned to determine where and how to send the package. More specifically, the driver looks at the address to determine whether the MAC address is in a valid format or in a special invalid format. For example, in one embodiment, internal nodes (ie PAN nodes internal to the platform) are signaled by a combination of the setting of the locally organized bit, the collective send bit and a further predetermined bit pattern in the first byte of the MAC address. The overarching pattern is a pattern that is very unlikely to be a valid pattern.

Falls die von der ARP-Logik zurückgegebene MAC-Adresse in einem gültigen Format ist, ist die dieser MAC-Adresse zugeordnete IP-Adresse für einen Knoten, der wenigstens extern zu dem relevanten Teilnetz und in bevorzugten Ausführungsformen extern zu der Plattform ist. Um ein solches Paket zu liefern, stellt der Treiber dem Paket einen TLV-Anfangsblock (Typ-Länge-Wert-Anfangsblock) voran. Daraufhin sendet die Logik das Paket über eine zuvor aufgebaute VI an den Steuerknoten. Daraufhin behandelt der Steuerknoten so weit angemessen den Rest der Übertragung.If the one returned by the ARP logic MAC address in a valid Format is the IP address assigned to this MAC address for one Node that is at least external to the relevant subnet and in preferred embodiments externally to the platform is. To deliver such a package, the Drive the packet a TLV header (type length value header). thereupon the logic sends the packet a previously built VI on the control nodes. Then treated the control node, as far as appropriate, the rest of the transmission.

Falls die von der ARP-Logik 350 zurückgegebenen MAC-Adresseninformationen in einem besonderen ungültigen Format sind, signalisiert das ungültige Format, dass der IP-adressierte Knoten für einen internen Knoten ist, wobei die Informationen in den MAC-Adresseninformationen dazu verwendet werden, die VI (oder RVI) identifizieren zu helfen, die die zwei Verarbeitungsknoten direkt verbindet. Beispielsweise kann der ARP-Tabelleneintrag Informationen halten, die die zu verwendende RVI 212, z. B. die 2121-2 , identifizieren, um das Paket an einen anderen Verarbeitungsknoten zu senden. Der Treiber stellt dem Paket einen TLV-Anfangsblock voran. Daraufhin ordnet er in dem Anfangsblock Adresseninformationen sowie Informationen, die den Ethernet-Protokolltyp identifizieren, an. Daraufhin wählt die Logik die richtige VI (oder RVI) aus, auf der das gekapselte Paket zu senden ist. Falls diese VI (oder RVI) zufrieden stellend arbeitet, wird sie zum Befördern des Pakets verwendet; wenn sie unbefriedigend arbeitet, wird das Paket an die Steuerknoten-Vermittlungslogik gesendet (weiteres unten), so dass es die Vermittlungslogik an den richtigen Knoten senden kann. Obgleich die ARP-Tabelle Informationen enthalten kann, die die zu verwendende RVI tatsächlich spezifizieren, können viele andere Techniken verwendet werden. Beispielsweise können die Informationen in der Tabelle diese Informationen direkt liefern, indem sie z. B. auf die interessierenden Informationen zeigen oder die Informationen auf andere Weise identifizieren, obgleich sie sie nicht enthalten.If that's from the ARP logic 350 returned MAC address information is in a special invalid format, the invalid format signals that the IP addressed node is for an internal node, the information in the MAC address information being used to help identify the VI (or RVI), the that directly connects two processing nodes. For example, the ARP table entry can hold information that the RVI to be used 212 , e.g. B. the 212 1-2 , identify to send the packet to another processing node. The driver prepends the packet with a TLV header. He then arranges address information and information identifying the Ethernet protocol type in the header. The logic then selects the correct VI (or RVI) on which to send the encapsulated packet. If this VI (or RVI) works satisfactorily, it will be used to move the package; if it does not work satisfactorily, the packet is sent to the control node switching logic (see below) so that it can send the switching logic to the correct node. Although the ARP table may contain information that actually specifies the RVI to be used, many other techniques can be used. For example, the information in the table can provide this information directly, e.g. For example, point to the information of interest or otherwise identify the information although it does not contain it.

Für irgendwelche Sammelsende- oder Rundsendenachrichten sendet der Treiber die Nachricht auf einer definierten VI an den Steuerknoten. Der Steuerknoten klont daraufhin das Paket und sendet es dementsprechend an alle Knoten (mit Ausnahme des Sendeknotens) und an die Aufwärtsstrecke.For the driver sends any multicast or broadcast messages the message on a defined VI to the control node. The The control node then clones the packet and sends it accordingly to all nodes (with the exception of the sending node) and to the uplink.

Wenn es keine ARP-Zuordnung gäbe, hätten die oberen Schichten das Paket nie an den Treiber gesendet. Wenn keine Sicherungsschichtzuordnung verfügbar ist, wird das Paket abgelegt, bis die ARP-Auflösung abgeschlossen ist. Wenn die ARP-Schicht die ARP-Verarbeitung abgeschlossen hat, werden die Datenverbindungs-Anfangsblöcke der Pakete aufgebaut, deren ARP unerledigt gehalten wird, und die Pakete daraufhin an den Treiber gesendet.If there was no ARP mapping, they would have upper layers never sent the packet to the driver. If no Data link mapping available the packet is dropped until ARP resolution is complete. If the ARP layer has completed the ARP processing, the Data Link Headers of Packets built, the ARP is kept pending and the packets then sent to the driver.

Wenn die ARP-Logik keine Zuordnung für eine IP-Adresse eines IP-Pakets aus dem IP-Stapel besitzt und der Treiber 310 folglich die zugeordneten Adressie rungsinformationen (d. h. die MAC-Adresse oder die RVI-bezogenen Informationen) nicht bestimmen kann, erhält der Treiber diese Informationen dadurch, dass er das ARP-Protokoll befolgt. Wie in den 4BC gezeigt ist, baut 425 der Treiber ein ARP-Anforderungspaket auf, das die relevante IP-Adresse enthält, für die es keine MAC-Zuordnung in der lokalen ARP-Tabelle gibt. Daraufhin stellt er Knoten dem ARP-Paket einen TLV-Anfangsblock voran 430. Daraufhin wird die ARP-Anforderung über eine hierzu vorgesehene RVI an die steuerknotenseitige Netzlogik – genauer, an den virtuellen LAN-Server 335 – gesendet.If the ARP logic has no assignment for an IP address of an IP packet from the IP stack and the driver 310 consequently, cannot determine the assigned addressing information (ie, the MAC address or the RVI-related information), the driver obtains this information by following the ARP protocol. As in the 4B - C is shown, builds 425 the driver issues an ARP request packet that contains the relevant IP address for which there is no MAC mapping in the local ARP table. It then precedes the ARP packet with a TLV header 430 , The ARP request is then sent to the control node-side network logic via a dedicated RVI - more precisely, to the virtual LAN server 335 - Posted.

Wie unten ausführlicher diskutiert wird, wird das ARP-Anforderungspaket durch den Steuerknoten verarbeitet 435 und an die relevanten Knoten rundgesendet 440. Beispielsweise kennzeichnet der Steuerknoten, ob der anfordernde Knoten Teil eines IP-Dienst-Clusters ist.As discussed in more detail below, the ARP request packet is processed by the control node 435 and broadcast to the relevant nodes 440 , For example, the control node indicates whether the requesting node is part of an IP service cluster.

Die Ethernet-Treiber-Logik 310 in den relevanten Knoten empfängt 445 die ARP-Antwort und bestimmt 450 dadurch, dass sie die Ziel-IP-Adresse mit einer Liste lokal konfigurierter IP-Adressen vergleicht, indem sie Rufe zum IP-Stapel des Knotens ausführt, ob sie das Ziel der ARP-Anforderung ist. Wenn sie nicht das Ziel ist, übergibt sie das Paket ohne Änderung nach oben. Wenn sie das Ziel ist, erzeugt 460 der Treiber aus dem TLV-Anfangsblock einen lokalen MAC-Anfangsblock und aktualisiert er 465 die lokale ARP-Tabelle und erzeugt er eine ARP-Antwort. Der Treiber ändert die Informationen in der ARP-Anforderung (hauptsächlich der Quell-MAC) und übergibt daraufhin die ARP-Anforderung, normalerweise zur Behandlung durch die oberen Schichten, nach oben. Es sind die oberen Schichten, die bei Bedarf die ARP-Antwort bilden. Die Antwort enthält unter anderem die MAC-Adresse des antwortenden Knotens, wobei sie ein in dem TLV-Anfangsblock gesetztes Bit besitzt, das angibt, dass die Antwort von einem lokalen Knoten kommt. Diesbezüglich reagiert der Knoten (im Gegensatz zu den ATM-ARP-Protokollen, in denen ARP-Antworten zentral behandelt werden) gemäß der IETF-ARP-Semantik. Daraufhin wird die Antwort gesendet 470.The ethernet driver logic 310 receives in the relevant node 445 the ARP response and determined 450 by comparing the destination IP address to a list of locally configured IP addresses by making calls to the node's IP stack to see if it is the destination of the ARP request. If it is not the destination, it passes the package up without any change. If it is the goal, generated 460 the driver from the TLV header updates a local MAC header and updates it 465 the local ARP table and it generates an ARP response. The driver changes the information in the ARP request (mainly the source MAC) and then passes the ARP request up, usually for handling by the upper layers. It is the upper layers that form the ARP response if necessary. The response includes, among other things, the responding node's MAC address, and has a bit set in the TLV header indicating that the response is from a local node. In this regard, the node (in contrast to the ATM-ARP protocols in which ARP responses are handled centrally) responds in accordance with the IETF-ARP semantics. The response is then sent 470 ,

Wie unten ausführlicher erläutert wird, empfängt 473 die Steuerknotenlogik 335 die Antwort und ändert sie. Beispielsweise kann der Steuerknoten die MAC-Adresse eines antwortenden internen Knotens durch Informationen ersetzen, die den Quellschrank, die Verarbeitungsknotennummer, die RVI-Verbindungsnummer, den Kanal, die Nummer der virtuellen Schnittstelle und den Namen des virtuellen LAN identifizieren. Wenn die ARP-Antwort geändert ist, sendet 475 die Steuer knotenlogik die ARP-Antwort an einen richtigen Knoten, d. h. an den Knoten, der die ARP-Anforderung gesendet hat, oder in spezifischen Fällen an den unten diskutierten Lastverteiler in einem IP-Dienstcluster.As explained in more detail below 473 the control node logic 335 the answer and changes it. For example, the control node can replace the MAC address of a responding internal node with information identifying the source cabinet, the processing node number, the RVI connection number, the channel, the virtual interface number and the name of the virtual LAN. If the ARP response is changed, send 475 the control node logic sends the ARP response to a correct node, ie the node that sent the ARP request, or in specific cases to the load balancer in an IP service cluster discussed below.

Schließlich wird eine gekapselte ARP-Antwort empfangen 480. Falls der antwortende Knoten ein externer Knoten ist, enthält die ARP-Antwort die MAC-Adresse des antwortenden Knotens. Falls der antwortende Knoten ein interner Knoten ist, enthält die ARP-Antwort statt dessen Informationen, die die relevante RVI für die Kommunikation mit dem Knoten identifizieren. Auf jeden Fall wird die lokale Tabelle aktualisiert 485.Finally, an encapsulated ARP response is received 480 , If the responding node is an external node, the ARP response contains the MAC address of the responding node. If the responding node is an internal node, the ARP response instead contains information that identifies the relevant RVI for communicating with the node. In any case, the local table is updated 485 ,

Das unerledigte Datagramm wird aus der Warteschlange entnommen 487 und die richtige RVI ausgewählt 493. Wie oben diskutiert wurde, wird die richtige RVI anhand dessen ausgewählt, ob der Zielknoten intern oder extern ist. Dem Paket wird ein TLV-Anfangsblock vorangestellt und es wird gesendet 495.The pending datagram is removed from the queue 487 and selected the right RVI 493 , As discussed above, the correct RVI is selected based on whether the target node is internal or external. The packet is prefixed with a TLV header and sent 495 ,

Für Kommunikationen in einem virtuellen LAN ist die maximale Übertragungseinheit (MTU) als 16896 Bytes konfiguriert. Obgleich die konfigurierte MTU 16896 Bytes ist, erkennt der Ethernet-Treiber 310, wenn ein Paket an ein externes Netz gesendet wird. Durch die Verwendung der Entdeckung der Pfad-MTU, von ICMP- und IP-Stapeländerungen wird die Pfad-MTU in dem Quellknoten 105 geändert. Dieser Mechanismus wird außerdem dazu verwendet, die Prüfsummenbildung für das Paket auszulösen.For communications in a virtual LAN, the maximum transmission unit (MTU) is configured as 16896 bytes. Although the configured MTU 16896 Bytes is recognized by the Ethernet driver 310 when a packet is sent to an external network. By using the discovery of the path MTU, ICMP and IP batch changes, the path MTU becomes in the source node 105 changed. This mechanism is also used to trigger checksum formation on the package.

Bestimmte Ausführungsformen der Erfindung unterstützen durch eine Kombination der Logik in dem virtuellen LAN-Server 335 und in den virtuellen LAN-Treibern 310 die Promiscuous-Betriebsart. Wenn ein virtueller LAN-Treiber 310 von dem virtuellen LAN-Server 335 eine Promiscuous-Betriebsart-Nachricht empfängt, enthält die Nachricht Informationen über die Identität des Empfängers, der in die Promiscuous-Betriebsart eintreten möchte. Diese Informationen enthalten den Ort des Empfängers (Schrank, Knoten usw.), die Schnittstellennummer der virtuellen Promiscuous-Schnittstelle 310 in dem Empfänger (die für Demultiplexierungspakete benötigt wird) und den Namen des virtuellen LAN, zu dem der Empfänger gehört. Diese Informationen werden daraufhin von dem Treiber 310 verwendet, um zu bestimmen, wie Promiscuous-Pakete an den Empfänger zu senden sind (welche RVI oder welcher andere Mechanismus zum Senden der Pakete zu verwenden ist). Die virtuelle Schnittstelle 310 unterhält eine Liste der Promiscuous- Hörer in dem gleichen virtuellen LAN. Wenn ein sendender Knoten eine Promiscuous-Betriebsart-Nachricht empfängt, aktualisiert er dementsprechend seine Promiscuous-Liste.Certain embodiments of the invention support by combining the logic in the virtual LAN server 335 and in the virtual LAN drivers 310 the promiscuous mode. If a virtual LAN driver 310 from the virtual LAN server 335 receives a promiscuous mode message, the message contains information about the identity of the recipient who wants to enter the promiscuous mode. This information includes the location of the recipient (cabinet, node, etc.), the interface number of the virtual promiscuous interface 310 in the receiver (which is required for demultiplexing packets) and the name of the virtual LAN to which the receiver belongs. This information is then provided by the driver 310 used to determine how promiscuous packets are to be sent to the recipient (which RVI or other mechanism to use to send the packets). The virtual interface 310 maintains a list of promiscuous listeners on the same virtual LAN. When a sending node receives a promiscuous mode message, it updates its promiscuous list accordingly.

Wenn ein Paket über einen virtuellen Ethernet-Treiber 310 gesendet wird, wird diese Liste untersucht. Wenn die Liste nicht leer ist, tut die virtuelle Ethernet-Schnittstelle 310 das folgende:

  • – Falls das abgehende Paket rund- oder sammelgesendet wird, wird keine Promiscuous-Kopie gesendet. Die normale Rundsendeoperation sendet das Paket an den bzw. an die Promiscuous-Hörer.
  • – Falls das Paket ein Punkt-zu-Punkt-Sendepaket mit einem anderen Ziel als dem Promiscuous-Hörer ist, wird das Paket geklont und an die Promiscuous-Hörer gesendet.
If a package has a virtual ethernet driver 310 is sent, this list is examined. If the list is not empty, the virtual ethernet interface does 310 the following:
  • - If the outgoing packet is broadcast or bulk, no promiscuous copy will be sent. The normal broadcast operation sends the packet to the promiscuous listener.
  • If the packet is a point-to-point transmission packet with a destination other than the promiscuous listener, the packet is cloned and sent to the promiscuous listener.

Der Anfangsblock TLV enthält Zusatzinformationen, die das Ziel nutzen kann, um das ankommende Paket zu demultiplexieren und zu überprüfen. Ein Teil dieser Informationen ist die Zielschnittstellennummer des virtuellen Ethernet (die Zielvorrichtungsnummer in dem empfangenden Knoten). Da diese zwischen dem tatsächlichen Paketziel und dem Promiscuous-Ziel verschieden sein können, kann dieser Anfangsblock nicht einfach geklont werden. Somit muss für jeden Anfangsblock für jeden Paket-Klon zu jedem Promiscuous-Hörer Speicher zugeordnet werden. Wenn der Paketanfangsblock für ein Promiscuous-Paket aufgebaut ist, wird der Pakettyp gesendet, um anzugeben, dass das Paket eine Promiscuous-Sendung anstelle einer Punkt-zu-Punkt-Sendung ist.The TLV header contains additional information, which the destination can use to demultiplex the incoming packet and check. On Part of this information is the destination interface number of the virtual Ethernet (the target device number in the receiving node). Since this is between the actual Package target and the promiscuous target may be different this initial block cannot simply be cloned. So for everyone Header for every packet clone can be allocated to every promiscuous listener memory. If the packet header for a promiscuous packet is built, the packet type is sent, to indicate that the package is a promiscuous shipment instead of a point-to-point shipment is.

Der virtuelle Ethernet-Treiber 310 ist außerdem verantwortlich für die Behandlung der redundanten Steuerknotenverbindungen. Beispielsweise testen die virtuellen Ethernet-Treiber periodisch die Ende-Ende-Konnektivität, indem sie an jede verbundene RVI einen Heartbeat-TLV senden. Dies ermöglicht, dass die virtuellen Ethernet-Treiber bestimmen, ob ein Knoten nicht mehr antwortet oder ob ein angehaltener Knoten wieder zu antworten begonnen hat. Wenn bestimmt wird, dass eine RVI oder ein Steuerknoten 120 betriebsunfähig ist, sendet der Ethernet-Treiber Verkehr über den fortbestehenden Steuerknoten. Falls beide Steuerknoten funktionsfähig sind, versucht der Treiber 310 einen Lastausgleich des Verkehrs zwischen den zwei Knoten.The virtual ethernet driver 310 is also responsible for handling the redundant control node connections. For example, the virtual Ethernet drivers periodically test end-to-end connectivity by sending a heartbeat TLV to each connected RVI. This allows the virtual Ethernet drivers to determine whether a node has stopped responding or whether a stopped node has started to respond again. If it is determined that an RVI or a control node 120 is inoperable, the Ethernet driver sends traffic through the persistent control node. If both control nodes are functional, the driver tries 310 load balancing the traffic between the two nodes.

Bestimmte Ausführungsformen der Erfindung schaffen Leistungsverbesserungen. Da alle Elemente der Plattform 100 eine Fehlererfassung und eine garantierte Datenlieferung bereitstellen, wird beispielsweise bei Änderungen an dem IP-Stapel 305 keine Prüfsumme der Pakete berechnet, die lediglich in der Plattform 100 gesendet werden.Certain embodiments of the invention provide performance improvements. Because all elements of the platform 100 provide error detection and guaranteed data delivery, for example when there are changes to the IP stack 305 no checksum of the packages is calculated, which is only in the platform 100 be sent.

Außerdem kann die RVI für Kommunikationen in einem PAN (oder sogar in einer Plattform 100) so konfiguriert werden, dass die Pakete größer als die vom Ethernet zugelassene Maximalgröße sein können. Somit kann die maximale Paketgröße verletzt werden, um die Leistung zu verbessern, obgleich das Modell in bestimmten Ausführungsformen das Ethernet-Verhalten emuliert. Die tatsächliche Paketgröße wird als Teil der Sicherungsschicht ausgehandelt.The RVI can also be used for communications in a PAN (or even in a platform 100 ) are configured so that the packets can be larger than the maximum size permitted by the Ethernet. Thus, the maximum packet size can be violated to improve performance, although in certain embodiments the model emulates Ethernet behavior. The actual packet size is negotiated as part of the data link layer.

Ein Ausfall eines Steuerknotens wird entweder durch eine Benachrichtigung von der RCLAN-Schicht oder durch einen Ausfall der Heartbeat-TLVs erfasst. Falls ein Steuerknoten ausfällt, sendet der Ethernet-Treiber 310 den Verkehr lediglich an den verbleibenden Steuerknoten. Der Ethernet-Treiber 310 erkennt die Wiedergewinnung eines Steuerknotens über die Benachrichtigung von der RCLAN-Schicht oder über die Wiederaufnahme der Heartbeat-TLVs. Wenn ein Steuerknoten wiederhergestellt worden ist, setzt der Ethernet-Treiber 310 den Lastausgleich fort.A failure of a control node is detected either by a notification from the RCLAN layer or by a failure of the heartbeat TLVs. If a control node fails, the Ethernet driver sends 310 traffic only to the remaining control nodes. The ethernet driver 310 recognizes the recovery of a control node via the notification from the RCLAN layer or the resumption of the heartbeat TLVs. When a control node has been restored, the Ethernet driver sets 310 load balancing continues.

Falls ein Knoten erfasst, dass er mit einem anderen Knoten nicht über eine direkte RVI (wie oben skizziert) kommunizieren kann, versucht der Knoten über den Steuerknoten zu kommunizieren, der als eine Vermittlung wirkt. Dieser Ausfall kann durch die untere RCLAN-Schicht, beispielsweise von einem Ausfall des Empfangs einer virtuellen Schnittstellenquittierung oder von über den Heartbeat-Mechanismus erfassten Ausfällen, signalisiert werden. In diesem Fall markiert der Treiber dementsprechend Bits in dem TLV-Anfangsblock zur Angabe, dass die Nachricht von Punkt zu Punkt zu senden ist, wobei er das Paket an den Steuerknoten sendet, so dass er das Paket (z. B. bei Bedarf anhand der IP-Adresse) an den gewünschten Knoten senden kann.If a node detects that it with another knot not over a direct RVI (as outlined above) tries to communicate the knot over communicate with the control node, which acts as an intermediary. This failure can be caused by the lower RCLAN layer, for example a failure to receive a virtual interface acknowledgment or from over the heartbeat mechanism recorded failures, be signaled. In this case, the driver marks accordingly Bits in the TLV header to indicate that the message is from To be sent point to point, taking the packet to the control node sends so that it sends the packet (e.g. if necessary based on the IP address) the wished Node can send.

RCLAN-SchichtRCLAN layer

Die RCLAN-Schicht 315 ist verantwortlich für die Handhabung der Redundanz-, Ausfallsicherungs- und Lastausgleichlogik der redundanten Verdrahtungs-NICs 107. Dies umfasst die Erfassung von Ausfällen, die Umleitung von Verkehr über eine redundante Verbindung bei Ausfällen, den Lastausgleich und das Berichten der Unfähigkeit, Verkehr an die virtuellen Netztreiber 310 zurückzuliefern. Die virtuellen Ethernet-Treiber 310 erwarten, dass sie asynchron benachrichtigt werden, wenn es in irgendeiner RVI einen schweren Fehler gibt, der die RVI unbrauchbar macht, oder wenn irgendeine RVI aus irgendeinem Grund betriebsunfähig ist.The RCLAN layer 315 is responsible for handling the redundancy, failover and load balancing logic of the redundant wiring NICs 107 , This includes capturing outages, redirecting traffic over a redundant connection in the event of outages, load balancing, and reporting the inability to deliver traffic to the virtual network drivers 310 return them. The virtual ethernet drivers 310 expect them to be notified asynchronously if there is a serious error in any RVI that renders the RVI unusable, or if any RVI is inoperative for any reason.

Unter normalen Umständen versucht der virtuelle Netztreiber 310 in jedem Prozessor einen Lastausgleich abgehender Pakete zwischen verfügbaren Steuerknoten auszuführen. Dies kann über einen einfachen zyklischen Wechsel zwischen den verfügbaren Steuerknoten oder dadurch, dass verfolgt wird, wie viel Bytes an jedem gesendet worden sind, wobei immer an den Steuerknoten gesendet wird, über die die wenigsten Bytes gesendet worden sind, erfolgen.Under normal circumstances, the virtual network driver tries 310 perform load balancing of outgoing packets between available control nodes in each processor. This can be done by simply cycling between the available control nodes or by tracking how many bytes have been sent to each, always sending to the control node that has sent the fewest bytes.

Das RCLAN schafft eine zuverlässige asynchrone Punkt-zu-Punkt-Kommunikation mit hoher Bandbreite (224 MB/s in jeder Richtung) und niedriger Latenzzeit zwischen den Kernen. Wenn die Daten nicht geliefert werden können, wird der Absender der Daten benachrichtigt, wobei die größten Anstrengungen unternommen werden, sie zu liefern. Das RCLAN verwendet zwei Karten Giganet clan 1000, um zwischen den Kernen redundante Kommunikationspfade bereitzustellen Es ersetzt nahtlos Einzelausfälle in den clan-1000-Karten oder in den Giganet-Vermittlungen. Es erfasst verlorene Daten und Datenfehler und sendet die Daten bei Bedarf erneut. So lange eine der Verbindungen teilweise arbeitet, d. h. die Fehlerrate 5 % nicht übersteigt, wird die Kommunikation nicht unterbrochen. Clients des RCLAN umfassen den RPC-Mechanismus, den Remote-SCSI-Mechanismus und das Remote Ethernet. Außerdem stellt das RCLAN eine einfache Form der Flusssteuerung bereit. Dadurch, dass ermöglicht wird, dass mehrere gleichzeitige Anforderungen für jede Vorrichtung durch den Prozessorknoten an den Steuerknoten gesendet werden, so dass sie so schnell wie möglich an die Vorrichtung weitergeleitet werden können, oder alternativ, so dass sie, anstatt alle Anforderungen in dem Prozessorknoten für den Abschluss einzureihen, so nahe bei der Vorrichtung wie möglich in die Warteschlange für den Abschluss eingereiht werden können, können eine niedrige Latenzzeit und ein hoher gleichzeitiger Zugriff ermöglicht werden.The RCLAN creates a reliable asynchronous High bandwidth point-to-point communication (224 MB / s in each Direction) and low latency between the cores. If the Data cannot be provided the sender of the data is notified, making the greatest effort be made to deliver them. The RCLAN uses two cards Giganet clan 1000 to redundant communication paths between the cores It seamlessly replaces individual failures in the clan 1000 cards or in the Giganet switchboards. It captures lost data and data errors and sends the data if necessary again. As long as one of the connections is partially working, d. H. the error rate does not exceed 5%, communication is not interrupted. Include clients of the RCLAN the RPC mechanism, the remote SCSI mechanism and the remote Ethernet. Moreover the RCLAN provides a simple form of flow control. Thereby, that enables is that multiple simultaneous requests for each device by the Processor nodes are sent to the control node so that they as quickly as possible can be forwarded to the device, or alternatively, so that them rather than completing all of the requirements in the processor node queued as close to the device as possible for the Degree can be classified can low latency and high simultaneous access are made possible.

Die RCLAN-Schicht 330 auf der Steuerknotenseite arbeitet analog zur obigen.The RCLAN layer 330 on the control node side works analogously to the above.

Giganet-TreiberGiganet driver

Die Giganet-Treiberlogik 320 ist die Logik, die dafür verantwortlich ist, entweder in einem Prozessor 106 oder in dem Steuerknoten 120 eine Schnittstelle für die Giganet-NIC 107 bereitzustellen. Kurz gesagt, baut die Giganet-Treiberlogik VI-Verbindungen auf, denen VI-Ids zugeordnet sind, so dass die höheren Schichten, z. B. das RCLAN 315 und der Ethernet-Treiber 310, lediglich die Semantik der VIs zu verstehen brauchen.The Giganet driver logic 320 is the logic that is responsible for it, either in a processor 106 or in the control node 120 an interface for the Giganet NIC 107 provide. In short, the Giganet driver logic establishes VI connections to which VI IDs are assigned so that the higher layers, e.g. B. the RCLAN 315 and the ethernet driver 310 , just need to understand the semantics of the VIs.

Die Giganet-Treiberlogik 320 ist verantwortlich dafür, in jedem Knoten Speicher für die Puffer und Warteschlangen für die VIs zuzuordnen und die NIC 107 so aufzubereiten, dass sie die Verbindung und ihre Speicherzuordnung kennt. Bestimmte Ausführungsformen verwenden VI-Verbindungen, die durch den Giganet-Treiber bereitgestellt werden. Der Giganet-NIC-Treibercode stellt ein virtuelles Schnittstellenpaar (d. h. VI) her und weist ihm eine entsprechende Id der virtuellen Schnittstelle zu.The Giganet driver logic 320 is responsible for allocating memory for the buffers and queues for the VIs and the NIC in each node 107 to be prepared so that it knows the connection and its memory allocation. Certain embodiments use VI connections provided by the Giganet driver. The Giganet NIC driver code creates a virtual interface pair (ie VI) and assigns it a corresponding Id of the virtual interface.

Jede VI ist eine bidirektionale Verbindung, die zwischen einem Giganet-Port und einem weiteren oder genauer zwischen den Speicherpuffern und Speicherwarteschlangen in einem Knoten zu den Puffern und Warteschlangen in dem anderen aufgebaut wird. Wie oben festgestellt wurde, wird die Zuordnung der Ports und des Speichers durch die NIC-Treiber behandelt. Die Daten werden dadurch gesendet, dass sie in einem Puffer angeordnet werden, den die NIC kennt, und dadurch, dass durch Schreiben in ein spezifisches speicheradressiertes Register die Aktion ausgelöst wird. Auf der empfangenden Seite erscheinen die Daten in einem Puffer, während der Abschlussstatus in einer Warteschlange erscheint. Falls die sendenden und empfangenden Programme Nachrichten in den Verbindungspuffern erzeugen und verbrauchen können, brauchen die Daten nie kopiert zu werden. Wenn das Betriebssystem die Verbindungspuffer und -steuerregister dem Anwendungsadressenraum zuordnet, kann die Sendung sogar direkt von Anwendungsprogramm zu Anwendungsprogramm erfolgen. Jeder Giganet-Port kann 1024 gleichzeitige VI-Verbindungen über sich unterstützen und sie mit Hardware-Schutz getrennt voneinander halten, so dass das Betriebssystem sowie verschiedene Anwendungen einen einzigen Port sicher gemeinsam nutzen können. Gemäß einer Ausführungsform der Erfindung können von jedem Port zu jedem anderen Port 14 VI-Verbindungen gleichzeitig aufgebaut werden.Each VI is a bi-directional connection that is established between one gigantic port and another, or more precisely, between the memory buffers and queues in one node to the buffers and queues in the other. As noted above, the mapping of ports and memory is handled by the NIC drivers. The data is sent by placing it in a buffer that the NIC knows and by triggering the action by writing to a specific memory-addressed register. On the receiving side, the data appears in a buffer, while the completion status appears in a queue. If the sending and receiving programs can generate and consume messages in the connection buffers, the data never need to be copied. If the operating system maps the connection buffers and control registers to the application address space, the transmission can even take place directly from application program to application program. Each Giganet port can support 1024 simultaneous VI connections and keep them separate with hardware protection so that the operating system and various applications can securely share a single port. According to one embodiment of the invention, any port can be used to any other port 14 VI connections are established simultaneously.

In bevorzugten Ausführungsformen bauen die NIC-Treiber VI-Verbindungen in redundanten Paaren auf, wobei eine Verbindung des Paars über eine der zwei Switch Fabrics 115a, b und die andere über die andere Vermittlung geht. Außerdem werden die Daten in bevorzugten Ausführungsformen abwechselnd in den zwei Schenkeln des Paars gesendet, was die Last in den Vermittlungen ausgleicht. Alternativ können die redundanten Paare nach Art einer Ausfallsicherung verwendet werden.In preferred embodiments, the NIC drivers set up VI connections in redundant pairs, one connection of the pair via one of the two switch fabrics 115a , b and the other goes through the other operator. In addition, in preferred embodiments, the data is alternately sent in the two legs of the pair, which balances the load on the switches. Alternatively, the redundant pairs of type ei Failover can be used.

Alle von dem Knoten aufgebauten Verbindungspaare bestehen so lange, wie das Betriebssystem betriebsfähig bleibt. Der Aufbau eines Verbindungspaars zur Simulation einer Ethernet-Verbindung soll analog und genauso beständig sein wie das physikalische Einstecken eines Kabels zwischen Netzkarten. Falls sich die definierte Konfiguration eines Knotens ändert, während sein Betriebssystem läuft, werden anwendbare redundante virtuelle Schnittstellenverbindungspaare zum Zeitpunkt der Änderung auf- oder abgebaut.All connection pairs established by the node exist as long as the operating system remains operational. Establishing a connection pair to simulate an Ethernet connection should be analog and just as stable be like physically plugging a cable between network cards. If the defined configuration of a node changes while its Operating system running, become applicable redundant virtual interface connection pairs at the time of the change assembled or dismantled.

Die Giganet-Treiberlogik 325 auf der Steuerknotenseite arbeitet analog zum obigen.The Giganet driver logic 325 on the control node side works analogously to the above.

Virtueller LAN-ServerVirtual LAN server

Die Logik 335 des virtuellen LAN-Servers erleichtert die Emulation eines Ethernet-Netzes über das zu Grunde liegende NBMA-Netz. Die Logik des virtuellen LAN-Servers

  • 1. führt das Management der Mitgliedschaft in einem entsprechenden virtuellen LAN aus;
  • 2. stellt die RVI-Zuordnung und das RVI-Management bereit;
  • 3. ARP-Verarbeitung und IP-Zuordnung zu den RVI;
  • 4. stellt Rund- und Sammelsendedienste bereit;
  • 5. erleichtert die Überbrückung und Leitung zu anderen Domänen; und
  • 6. führt das Management von Dienst-Clustern aus.
The logic 335 of the virtual LAN server facilitates the emulation of an Ethernet network via the underlying NBMA network. The logic of the virtual LAN server
  • 1. performs membership management in a corresponding virtual LAN;
  • 2. Provides RVI mapping and RVI management;
  • 3. ARP processing and IP assignment to the RVI;
  • 4. Provides broadcast and collective broadcasting services;
  • 5. Facilitates bridging and routing to other domains; and
  • 6. performs the management of service clusters.

1. Management der Mitgliedschaftt in virtuellen LANs1. Management membership in virtual LANs

Die Administratoren konfigurieren die virtuellen LANs unter Verwendung der Ma nagement-Anwendung 135. Die Zuweisung und Konfiguration von IP-Adressen in virtuellen LANs kann auf die gleiche Weise wie in einem "normalen" Teilnetz erfolgen. Die Wahl der zuvor verwendenden IP-Adressen hängt von der externen Sichtbarkeit der Knoten in einem virtuellen LAN ab. Falls das virtuelle LAN nicht global sichtbar ist (entweder von außerhalb der Plattform 100 oder vom Internet aus unsichtbar ist), sollten private IP-Adressen verwendet werden. Ansonsten müssen die IP-Adressen aus dem Bereich konfiguriert werden, der von dem Internetdiensteanbieter (ISP) bereitgestellt wird, der die Internetkonnektivität bereitstellt. Im Allgemeinen muss die IP-Adressenzuweisung virtueller LANs genauso wie die IP-Adressenzuweisung normaler LANs behandelt werden. Konfigurationsdateien, die auf den lokalen Platten des Steuerknotens 120 gespeichert sind, definieren die IP-Adressen in einem virtuellen LAN. Für eine virtuelle Netzschnittstelle erzeugt ein IP-Alias lediglich eine weitere IP-RVI-Zuordnung in der Logik 335 des virtuellen LAN-Servers. Bei Bedarf kann jeder Prozessor mehrere virtuelle Schnittstellen konfigurieren. Die Hauptbeschränkungen an die Erzeugung und Konfiguration virtueller Netzschnittstellen sind die IP-Adressenzuordnung und -konfiguration.The administrators configure the virtual LANs using the management application 135 , The assignment and configuration of IP addresses in virtual LANs can be done in the same way as in a "normal" subnet. The choice of the previously used IP addresses depends on the external visibility of the nodes in a virtual LAN. If the virtual LAN is not globally visible (either from outside the platform 100 or invisible from the Internet), private IP addresses should be used. Otherwise, the IP addresses must be configured from the range provided by the Internet service provider (ISP) that provides Internet connectivity. In general, the IP address assignment of virtual LANs must be treated in exactly the same way as the IP address assignment of normal LANs. Configuration files on the local disks of the control node 120 are stored, define the IP addresses in a virtual LAN. For a virtual network interface, an IP alias only creates another IP-RVI assignment in the logic 335 of the virtual LAN server. If required, each processor can configure several virtual interfaces. The main restrictions on the creation and configuration of virtual network interfaces are IP address assignment and configuration.

Jedes virtuelle LAN besitzt eine entsprechende Instanz der Server-Logik 335, die sowohl in den beiden Steuerknoten 120 als auch in einer Anzahl der Prozessorknoten 105 ausgeführt wird. Die Topologie wird durch den Administrator definiert.Each virtual LAN has a corresponding instance of the server logic 335 that are both in the two control nodes 120 as well as in a number of processor nodes 105 is performed. The topology is defined by the administrator.

Jeder virtuelle LAN-Server 335 ist so konfiguriert, dass er das Management genau einer Rundsendedomäne ausführt, wobei in der gegebenen Rundsendedomäne der Schicht 2 irgendeine Anzahl von Teilnetzen der Schicht 3 (IP) vorhanden sein können. Die Server 335 werden in Reaktion auf Administratorbefehle konfiguriert und erzeugt, um virtuelle LANs zu erzeugen.Any virtual LAN server 335 is configured to manage exactly one broadcast domain, in the given broadcast domain of the layer 2 any number of subnets of the layer 3 (IP) can be present. The servers 335 are configured and generated in response to administrator commands to create virtual LANs.

Wenn ein Prozessor 106 bootet und seine virtuellen Netze konfiguriert, verbindet er sich über eine Spezialmanagement-RVI mit dem virtuellen LAN-Server 335. Daraufhin erhalten die Prozessoren ihre Datenverbindungs-Konfigurationsinformationen wie etwa die ihnen zugewiesenen virtuellen MAC-Adressen, die virtuellen LAN-Mitgliedschaftsinformationen und dergleichen. Der virtuelle LAN-Server 335 bestimmt und bestätigt, dass der Prozessor, der sich mit ihm zu verbinden versucht, ein richtiges Mitglied des virtuellen LAN ist, dem dieser Server 335 dient. Falls der Prozessor kein Mitglied des virtuellen LAN ist, wird die Verbindung zu dem Server zurückgewiesen. Falls er ein Mitglied ist, registriert der virtuelle Netztreiber 310 seine IP-Adresse bei dem virtuellen LAN-Server. (Die IP-Adresse wird durch den IP-Stapel 305 bereitgestellt, wenn der Treiber 310 konfiguriert wird.) Daraufhin bindet der virtuelle LAN-Server diese IP-Adresse an eine RVI, in der die Registrierung angekommen ist. Dies ermöglicht, dass der virtuelle LAN-Server den einer spezifischen IP-Adresse zugeordneten Prozessor findet. Außerdem kann die Zuordnung von IP-Adressen zu einem Prozessor über die virtuelle LAN-Managementschnittstelle 135 ausgeführt werden. Das letztere Verfahren ist erforderlich, um die IP-Adressen der Cluster oder die IP-Adressen mit Spezialbehandlung, die unten diskutiert werden, richtig zu konfigurieren.If a processor 106 boots and configures its virtual networks, it connects to the virtual LAN server via a special management RVI 335 , The processors then receive their data link configuration information, such as the virtual MAC addresses assigned to them, the virtual LAN membership information, and the like. The virtual LAN server 335 determines and confirms that the processor that tries to connect to it is a real member of the virtual LAN, that of this server 335 serves. If the processor is not a member of the virtual LAN, the connection to the server is rejected. If he is a member, the virtual network driver registers 310 his IP address at the virtual LAN server. (The IP address is through the IP stack 305 provided if the driver 310 The virtual LAN server then binds this IP address to an RVI in which the registration has arrived. This enables the virtual LAN server to find the processor assigned to a specific IP address. In addition, the assignment of IP addresses to a processor via the virtual LAN management interface 135 be carried out. The latter procedure is required to properly configure the cluster IP addresses or the special-treatment IP addresses discussed below.

2. RVI-Zuordnung und -Management2. RVI assignment and management

Wie oben skizziert wurde, verwenden bestimmte Ausführungsformen RVIs, die Knoten in der Sicherungsschicht verbinden und Steuerverbindungen bilden. Einige dieser Verbindungen werden als Teil des Bootens und der Initialisierung der Steuerknoten erzeugt und zugewiesen. Die Sicherungsschichtverbindungen werden aus den oben beschriebenen Gründen verwendet. Die Steuerverbindungen werden verwendet, um Management-, Konfigurations- und Gesundheitsinformationen auszutauschen.Use as outlined above certain embodiments RVIs that connect nodes in the data link layer and control connections form. Some of these connections are considered part of booting and generated and assigned the initialization of the control nodes. The Data link connections are made from those described above establish used. The tax connections are used to manage, Exchange configuration and health information.

Einige RVI-Verbindungen sind zwischen Knoten für den Punkt-zu-Punkt-Verkehr, z. B. 2121-2 . Andere RVI-Verbindungen sind für die Logik des virtuellen LAN-Servers 335, so dass der Server die Anforderungen, z. B. ARP-Verkehr, Rundsendungen usw., behandeln kann. Um die RVI zu erzeugen, erzeugt und entfernt der virtuelle LAN-Server 335 RVIs über Rufe zu einem Giganet-Vermittlungsmanager 360 (der mit der Switch Fabric und mit den Giganet-NICs bereitgestellt wird). Der Vermittlungsmanager kann in den Steuerknoten 120 ausgeführt werden und arbeitet mit den Giganet-Treibern zusammen, die die RVIs erzeugen.Some RVI connections are between nodes for point-to-point traffic, e.g. B. 212 1-2 , Other RVI connections are for the logic of the virtual LAN server 335 so that the server accepts the claims, e.g. B. ARP traffic, broadcasts, etc. can handle. The virtual LAN server creates and removes the RVI 335 RVIs on calls to a Giganet attendant manager 360 (provided with the switch fabric and with the Giganet NICs). The operator can be in the control node 120 and works with the Giganet drivers that generate the RVIs.

Hinsichtlich der Prozessorverbindungen erzeugt der virtuelle LAN-Server wie oben beschrieben virtuelle MAC-Adressen für die Knoten und weist sie zu, während sich die Knoten bei dem virtuellen LAN-Server 335 anmelden. In Verbindung damit unterhält die Logik des virtuellen LAN-Servers die Datenstrukturen, die die Topologie widerspiegeln, und die MAC-Zuweisungen für die verschiedenen Knoten. Die Logik des virtuellen LAN-Servers erzeugt dann die entsprechenden RVIs für die Punkt-zu-Punkt-Sendepfade zwischen Knoten. Während die Knoten booten, werden diese RVIs nachfolgend zugeordnet und den Knoten bekannt gemacht.With regard to the processor connections, the virtual LAN server generates and assigns virtual MAC addresses for the nodes as described above while the nodes are with the virtual LAN server 335 Sign in. In connection with this, the logic of the virtual LAN server maintains the data structures that reflect the topology and the MAC assignments for the various nodes. The logic of the virtual LAN server then generates the corresponding RVIs for the point-to-point transmission paths between nodes. While the nodes are booting, these RVIs are subsequently assigned and made known to the nodes.

Außerdem werden den RVIs IP-Adressen zugeordnet, während der virtuelle LAN-Server den ARP-Verkehr behandelt. Falls ein Knoten aus der Topologie entfernt wird, werden die RVI-Verbindungen abgebaut.In addition, the RVIs are assigned IP addresses while the virtual LAN server handles ARP traffic. If a node is removed from the topology the RVI connections are cleared down.

Falls ein Knoten 106 an einem Ende einer aufgebauten RVI-Verbindung neu gebootet wird, stellen die zwei Betriebssysteme an dem jeweiligen Ende der Verbindung und die RVI-Management-Logik die Verbindung erneut her. Die Software, die die Verbindung in dem Verarbeitungsknoten nutzt, der betriebsbereit bleibt, merkt nicht, dass irgendetwas mit der Verbindung selbst geschehen ist. Ob die Software merkt oder beachtet, dass die Software am anderen Ende neu gebootet wurde, hängt davon ab, wofür sie die Verbindung nutzt, sowie von dem Umfang, in dem das neu gebootete Ende seinen Zustand aus der permanenten Speicherung wiederherstellen kann. Beispielsweise merkt irgendeine Software, die über das Übertragungssteuerungsprotokoll (TCP) kommuniziert, dass durch ein Neubooten alle TCP-Sitzungen geschlossen werden. Andererseits ist ein Netzdateisystem-Zugriff (NFS-Zugriff) zustandslos und wird von einem Neubooten nicht beeinflusst, wenn es innerhalb einer zulässigen Zeitablaufdauer stattfindet.If a knot 106 is rebooted at one end of an established RVI connection, the two operating systems at the respective end of the connection and the RVI management logic re-establish the connection. The software that uses the connection in the processing node that remains operational does not notice that anything has happened to the connection itself. Whether the software notices or notices that the software has been rebooted at the other end depends on what it uses the connection for and the extent to which the newly booted end can restore its state from permanent storage. For example, any software that communicates over the Transmission Control Protocol (TCP) will notice that rebooting will close all TCP sessions. On the other hand, network file system access (NFS access) is stateless and is not affected by a reboot if it takes place within a permissible period of time.

Falls ein Knoten ein Paket zu irgendeinem Zeitpunkt nicht auf einer direkten RVI senden kann, kann er immer versuchen, das Paket über den virtuellen LAN-Server 335 an ein Ziel zu senden. Da der virtuelle LAN-Server 335 über die Steuerverbindungen mit allen Schnittstellen mit virtuellem Ethernet-Treiber 310 in dem virtuellen LAN verbunden ist, kann der virtuelle LAN-Server 335 außerdem als letzter Ausweg des Paketvermittlungsmechanismus dienen.If at any time a node cannot send a packet on a direct RVI, it can always try to send the packet through the virtual LAN server 335 to send to a destination. Because the virtual LAN server 335 via the control connections with all interfaces with virtual Ethernet driver 310 connected in the virtual LAN, the virtual LAN server 335 also serve as the last resort of the packet switching mechanism.

Hinsichtlich der Verbindungen mit dem virtuellen LAN-Server 335 verwenden bestimmte Ausführungsformen virtuelle Ethernet-Treiber 310, die algorithmisch diejenige RVI bestimmen, die sie nutzen sollten, um sich mit ihrem zugeordneten virtuellen LAN-Server 335 zu verbinden. Je nach Ausführungsform kann der Algorithmus Kennungsinformationen wie etwa die Schranknummer betrachten müssen, um die RVI zu identifizieren.Regarding the connections with the virtual LAN server 335 Certain embodiments use virtual Ethernet drivers 310 who algorithmically determine the RVI they should use to connect to their assigned virtual LAN server 335 connect to. Depending on the embodiment, the algorithm may need to look at identification information such as the cabinet number to identify the RVI.

3. ARP-Verarbeitung und IP-Umsetzung zu RVIs3. ARP processing and IP implementation to RVIs

Wie oben erläutert wurde, unterstützen die virtuellen Ethernet-Treiber 310 bestimmter Ausführungsformen das ARP. In diesen Ausführungsformen wird die ARP-Verarbeitung vorteilhaft verwendet, um an den Knoten Umsetzungen zwi schen IP-Adressen und RVIs zu erzeugen, die dazu verwendet werden können, Punkt-zu-Punkt-Verkehr einschließlich IP-Paketen zwischen den Knoten zu befördern.As explained above, the virtual Ethernet drivers support 310 certain embodiments the ARP. In these embodiments, ARP processing is advantageously used to create, at the nodes, translations between IP addresses and RVIs that can be used to carry point-to-point traffic, including IP packets, between the nodes.

Hierzu senden die virtuellen Ethernet-Treiber 310 ARP-Paketanforderungen und -antworten über eine hierzu vorgesehene RVI an den virtuellen LAN-Server 335. Der virtuelle LAN-Server 335 und genauer die ARP-Server-Logik 355 behandelt die Pakete, indem er Informationen zu dem Paketanfangsblock hinzufügt. Wie oben erläutert wurde, ermöglichen diese Informationen die Identifizierung der Quelle und des Ziels und identifizieren sie die RVI, die zwischen den Knoten verwendet werden kann.To do this, send the virtual Ethernet drivers 310 ARP packet requests and responses to the virtual LAN server via a dedicated RVI 335 , The virtual LAN server 335 and more precisely the ARP server logic 355 treats the packets by adding information to the packet header. As discussed above, this information enables the source and destination to be identified and the RVI to be used between the nodes.

Die ARP-Server-Logik 355 empfängt die ARP-Anforderungen, verarbeitet den TLV-Anfangsblock und rundsendet die Anforderung, falls geeignet, an alle relevanten Knoten in der Internet-Plattform und in dem externen Netz. Die Server-Logik 355 bestimmt unter anderen, wer die ARP-Antwort, die sich aus der Anforderung ergibt, empfangen sollte. Falls die Quelle beispielsweise eine geclusterte IP-Adresse ist, sollte die Antwort an den Cluster-Lastverteiler und nicht notwendig an die Quelle der ARP-Anforderung gesendet werden. Die Server-Logik 355 gibt dies dadurch an, dass sie Informationen in den TLV-Anfangsblock der ARP-Anforderung aufnimmt, so dass das Ziel der ARP dementsprechend antwortet. Der Server 335 verarbeitet das ARP-Paket dadurch, dass er weitere Informationen in den angefügten Anfangsblock aufnimmt und das Paket an die Knoten in der relevanten Domäne rundsendet. Beispielsweise kann der geänderte Anfangsblock Informationen enthalten, die den Zielschrank, die Verarbeitungsknoten, die RVI-Verbindungsnummer, den Kanal, die Nummer der virtuellen Schnittstelle und den Namen des virtuellen LAN identifizieren (von denen einige nur dem Server 335 bekannt sind).The ARP server logic 355 receives the ARP requests, processes the TLV header and broadcasts the request, if appropriate, to all relevant nodes in the internet platform and in the external network. The server logic 355 determines, among others, who should receive the ARP response resulting from the request. For example, if the source is a clustered IP address, the response should be sent to the cluster load balancer and not necessarily to the source of the ARP request. The server logic 355 indicates this by including information in the TLV header of the ARP request so that the destination of the ARP responds accordingly. The server 335 processes the ARP packet by including more information in the attached header and broadcasting the packet to the nodes in the relevant domain. For example, the modified header may contain information that identifies the target cabinet, processing nodes, RVI connection number, channel, virtual interface number, and virtual LAN name (some of which only the server 335 are known).

Die ARP-Antworten werden von der Server-Logik 355 empfangen, die die MAC-Informationen daraufhin in der Antwort in entsprechende RVI-bezogene Informationen umsetzt. Die RVI-bezogenen Informationen werden in dem Ziel-MAC-Eintrag der Antwort angeordnet und an den geeigneten Quellknoten gesendet (der z. B. der Absender der Anforderung sein kann, in einigen Fällen wie etwa bei einer geclusterten IP-Adresse aber ein anderer Knoten sein kann).The ARP responses are from the server logic 355 received, which then converts the MAC information in the response into corresponding RVI-related information. The RVI-related information is placed in the destination MAC entry of the response and sent to the appropriate source node (which may be the sender of the request, for example, in some cases such as at a clustered IP address but can be another node).

4. Rund- und Sammelsendedienste4. Round and Multicast services

Wie oben erläutert wurde, werden Rundsendungen dadurch behandelt, dass das Paket auf einer hierzu vorgesehenen RVI empfangen wird. Daraufhin wird das Paket von dem Server 335 geklont und an alle virtuellen Schnittstellen 310 in der relevanten Rundsendedomäne von Punkt zu Punkt gesendet.As explained above, broadcasts are handled by receiving the packet on a dedicated RVI. Thereupon the packet from the server 335 cloned and to all virtual interfaces 310 broadcast from point to point in the relevant broadcast domain.

Der gleiche Zugang kann für die Sammelsendung verwendet werden. Alle Sammelsendungspakete werden an den virtuellen LAN-Server gespiegelt. Gemäß einigen alternativen Ausführungsformen behandelt der virtuelle LAN-Server die Sammelsendung genauso wie die Rundsendung, wobei er sich zum Herausfiltern unerwünschter Pakete an jedem Knoten auf die IP-Filterung stützt.The same access can be used for the bulk shipment be used. All bulk mailing packages are sent to the virtual LAN server mirrored. According to some alternative embodiments discussed the virtual LAN server the collective broadcast as well as the broadcast, being used to filter out unwanted packets at each node relies on IP filtering.

Wenn eine Anwendung Sammelsendeadressen senden oder empfangen möchte, muss sie zunächst einer Sammelsendegruppe beitreten. Wenn ein Prozess in einem Prozessor einen Sammelsendebeitritt ausführt, sendet der virtuelle Netztreiber 310 des Prozessors über eine hierzu vorgesehene RVI eine Beitrittsanforderung an den virtuellen LAN-Server 335. Der virtuelle LAN-Server konfiguriert daraufhin eine spezifische Sammelsende-MAC-Adresse in der Schnittstelle und informiert erforderlichenfalls wie unten diskutiert den LAN-Proxy 340. Der Proxy 340 muss Nutzungszählungen in spezifischen Sammelsendegruppen verfolgen, so dass eine Sammelsendeadresse nur dann entfernt wird, wenn kein Prozessor zu dieser Sammelsendegruppe gehört.If an application wants to send or receive multicast addresses, it must first join a multicast group. When a process in a processor makes a multicast join, the virtual network driver sends 310 the processor sends an access request to the virtual LAN server via an RVI provided for this purpose 335 , The virtual LAN server then configures a specific multicast MAC address in the interface and if necessary informs the LAN proxy as discussed below 340 , The proxy 340 must track usage counts in specific multicast groups so that a multicast address is removed only when no processor belongs to that multicast group.

5. Überbrückung und Leitung zu anderen Domänen5. Bridging and Line to other domains

Aus Sicht des Systems 100 kann das externe Netz 125 in einer von zwei Betriebsarten arbeiten: gefiltert oder ungefiltert. In der gefilterten Betriebsart wird für das gesamte System für alle abgehenden Pakete eine einzige MAC-Adresse verwendet. Dies verbirgt die virtuellen MAC-Adressen eines Verarbeitungsknotens 107 hinter dem virtuellen LAN-Proxy 340 und lässt das System in dem Netz 125 als einen einzigen Knoten (oder als mehrere Knoten hinter einer Brücke oder einem Proxy) erscheinen. Da dies nicht die eindeutigen Sicherungsschichtinformationen für jeden internen Knoten 107 freilegt, sind einige weitere eindeutige Kennungen erforderlich, um ankommende Pakete richtig zu liefern. Da die MAC-Adresse lediglich das System identifiziert, wird beim Betrieb in der Filterbetriebsart die Ziel-IP-Adresse jedes ankommenden Pakets verwendet, um den beabsichtig ten Empfänger eindeutig zu identifizieren. In der ungefilterten Betriebsart sind die virtuellen MACs eines Knotens 107 außerhalb des Systems sichtbar, so dass sie verwendet werden können, um den ankommenden Verkehr zu leiten. Das heißt, die gefilterte Betriebsart beauftragt die Vermittlung der Schicht 3, während die ungefilterte Betriebsart die Vermittlung der Schicht 2 zulässt. Die gefilterte Betriebsart erfordert, dass eine Komponente (in diesem Fall der virtuelle LAN-Proxy 340) in allen abgehenden Paketen den Ersatz der virtuellen MAC-Adresse des Knotens durch die MAC-Adresse des externen Netzes 125 ausführt.From a system perspective 100 can the external network 125 work in one of two modes: filtered or unfiltered. In the filtered mode, a single MAC address is used for the entire system for all outgoing packets. This hides the virtual MAC addresses of a processing node 107 behind the virtual LAN proxy 340 and leaves the system on the network 125 appear as a single node (or as multiple nodes behind a bridge or proxy). Because this is not the unique data link information for each internal node 107 exposed, some more unique identifiers are required to properly deliver incoming packets. Since the MAC address only identifies the system, when operating in the filter mode, the destination IP address of each incoming packet is used to uniquely identify the intended recipient. The virtual MACs of a node are in the unfiltered mode 107 Visible outside the system so that they can be used to route incoming traffic. This means that the filtered operating mode orders the switching of the shift 3 , while the unfiltered mode of operation is the mediation of the shift 2 allows. The filtered operating mode requires that a component (in this case the virtual LAN proxy 340 ) in all outgoing packets the replacement of the virtual MAC address of the node by the MAC address of the external network 125 performs.

Einige Ausführungsformen unterstützen die Fähigkeit, dass ein virtuelles LAN mit externen Netzen verbunden sein kann. Dementsprechend muss das virtuelle LAN IP-Adressen behandeln, die nicht lokal konfiguriert sind. Um dies zu behandeln, erlegt eine Ausführungsform eine Beschränkung auf, dass jedes auf diese Weise verbundene virtuelle LAN auf eine externe Rundsendedomäne beschränkt ist. IP-Adressen und Teilnetzzuweisungen für die internen Knoten des virtuellen LAN müssen in Übereinstimmung mit der externen Domäne stehen.Some embodiments support the ability that a virtual LAN can be connected to external networks. Accordingly, the virtual LAN must handle IP addresses that are not configured locally. To deal with this, shoot one embodiment a limitation that each virtual LAN connected in this way is on a external broadcast domain limited is. IP addresses and subnet assignments for The internal nodes of the virtual LAN must match the external ones domain stand.

Der virtuelle LAN-Server 335 dient der externen Verbindung, indem er effektiv als Sicherungsschichtsbrücke wirkt, indem er Pakete zwischen dem externen Ethernet-Treiber 345 und den internen Prozessoren verschiebt und keine IP-Verarbeitung ausführt. Allerdings kann sich der Server anders als eine Sicherungsschichtbrücke nicht immer auf unterschiedliche Adressen der Schicht zwei von dem externen Netz zu internen Knoten stützen, wobei die Verbindung statt dessen Informationen der Schicht 3 (IP) verwenden kann, um die Überbrückungsentscheidungen zu treffen. Hierzu entnimmt die Software der externen Verbindung IP-Adresseninformationen aus den ankommenden Paketen und verwendet diese Informationen, um den richtigen Knoten 106 zu identifizieren, so dass sie das Paket an den Knoten verschieben kann.The virtual LAN server 335 serves the external connection by effectively acting as a data link bridge by placing packets between the external ethernet driver 345 and shifts the internal processors and does no IP processing. However, unlike a data link layer bridge, the server cannot always rely on different layer two addresses from the external network to internal nodes, with the connection instead of layer information 3 (IP) can be used to make the bridging decisions. To do this, the software extracts IP address information from the incoming packets from the external connection and uses this information to find the right node 106 to identify so that they can move the package to the node.

Ein virtueller LAN-Server 335 mit einer angefügten externen Rundsendedomäne muss Pakete von und zu der externen Domäne abfangen und verarbeiten, so dass externe Knoten eine konsistente Ansicht des Teilnetzes bzw. der Teilnetze in der Rundsendedomäne haben.A virtual LAN server 335 With an attached external broadcast domain, packets must intercept and process packets from and to the external domain so that external nodes have a consistent view of the subnet or subnets in the broadcast domain.

Wenn der virtuelle LAN-Server 335 mit einer angefügten externen Rundsendedomäne eine ARP-Anforderung von einem externen Knoten empfängt, leitet er die Anforderung an alle internen Knoten weiter. Der richtige Knoten setzt daraufhin die Antwort zusammen und sendet sie über den virtuellen LAN-Server 335 an den Anforderer zurück. Der virtuelle LAN-Server wirkt mit dem virtuellen LAN-Proxy 340 zusammen, so dass der Proxy irgendeine erforderliche MAC-Adressenübersetzung an den abgehenden Anforderungen behandeln kann. Alle ARP-Antworten und ARP-Ankündigungen von externen Quellen werden direkt an die Zielknoten weitergeleitet.If the virtual LAN server 335 with an attached external broadcast domain receiving an ARP request from an external node, it forwards the request to all internal nodes. The correct node then assembles the response and sends it via the virtual LAN server 335 back to the requester. The virtual LAN server works with the virtual LAN proxy 340 together so that the proxy can handle any required MAC address translation on the outgoing requests. All ARP responses and ARP announcements from external sources are forwarded directly to the target node.

Die virtuellen Ethernet-Schnittstellen 310 senden alle Punkt-zu-Punkt-Sendepakete mit einem externen Ziel über die Steuerverbindungs-RVI an den virtuellen LAN-Server 335. (Die externen Ziele können durch das MAC-Adressenformat von dem Treiber erkannt werden.) Daraufhin verschiebt der virtuelle LAN-Server das Paket dementsprechend in das externe Netz 125.The virtual Ethernet interfaces 310 send all point-to-point transmission packets with an external destination to the virtual LAN server via the control connection RVI 335 , (The external goals can can be recognized by the driver through the MAC address format.) The virtual LAN server then moves the packet accordingly into the external network 125 ,

Falls der virtuelle LAN-Server 335 von einem internen Knoten ein Rund- oder Sammelsendepaket empfängt, leitet er das Paket außer an alle internen Mitglieder des virtuellen LAN an das externe Netz weiter. Falls der virtuelle LAN-Server 335 ein Rund- oder Sammelsendepaket von einer externen Quelle empfängt, leitet er das Paket an alle verbundenen internen Knoten weiter.If the virtual LAN server 335 receives a broadcast or multicast packet from an internal node, it forwards the packet except to all internal members of the virtual LAN to the external network. If the virtual LAN server 335 receives a broadcast or multicast packet from an external source, it forwards the packet to all connected internal nodes.

Gemäß bestimmten Ausführungsformen wird das Verbinden virtueller LANs durch die Verwendung von IP-Routern oder -Firewalls unter Verwendung eines analogen Mechanismus wie dem beim Verbinden physikalischer LANs verwendeten ausgeführt. In beiden LANs wird ein Prozessor konfiguriert, wobei das Leiten (und möglicherweise die IP-Maskerade) in dem Linux-Kern auf diesem Prozessor freigegeben sein muss. Die normale IP-Teilnetz- und Leitungssemantik wird selbst für zwei Knoten, die sich in der gleichen Plattform befinden, immer aufrechterhalten.According to certain embodiments connecting virtual LANs using IP routers or firewalls using an analog mechanism such as the one used when connecting physical LANs. In A processor is configured on both LANs, with routing (and possibly the IP masquerade) in the Linux core released on this processor have to be. The normal IP subnet and line semantics itself for two Always keep nodes that are on the same platform.

Ein Prozessor könnte als Router zwischen zwei externen Teilnetzen, zwischen einem externen und einem internen Teilnetz und zwischen zwei internen Teilnetzen konfiguriert werden. Wenn ein interner Knoten ein Paket über einen Router sendet, gibt es wegen der Punkt-zu-Punkt-Topologie des internen Netzes keine Probleme. Der Sender sendet ohne den Eingriff des virtuellen LAN-Servers direkt an den Router (d. h. an den in der Weise konfigurierten Prozessor mit der Leitlogik) (d. h. eine oben diskutierte typische Prozessor-Prozessor-Kommunikation).A processor could act as a router between two external subnets, between an external and an internal Subnet and between two internal subnets can be configured. When an internal node sends a packet over a router, there is none due to the point-to-point topology of the internal network Problems. The transmitter sends without the intervention of the virtual LAN server directly to the router (i.e. to the processor configured in this way with the control logic) (i.e., typical processor-processor communication discussed above).

Wenn ein externer Knoten ein Paket an einen internen Router sendet und das externe Netz 125 in der gefilterten Betriebsart läuft, ist die Ziel-MAC-Adresse des ankommenden Pakets die der Plattform 100. Somit kann die MAC Adresse nicht verwendet werden, um den Zielknoten des Pakets eindeutig zu identifizieren. Für ein Paket, dessen Ziel ein interner Knoten in dem virtuellen LAN ist, wird die Ziel-IP-Adresse in dem IP-Anfangsblock verwendet, um das Paket zu dem richtigen Zielknoten zu leiten. Da die Router nicht die Endziele sind, ist die Ziel-IP-Adresse in dem IP-Anfangsblock aber die des Endziels anstelle der des nächsten Sprungs (der der interne Router ist). Somit gibt es in dem ankommenden Paket nichts, das verwendet werden kann, um es zu dem richtigen internen Knoten zu leiten. Um diese Situation zu behandeln, erlegt eine Ausführungsform eine Grenze von nicht mehr als einem Router auf, der zu einem externen Netz in einem virtuellen LAN freiliegt. Dieser Router wird bei dem virtuellen LAN-Server 335 als ein Standardziel registriert, so dass ankommende Pakete ohne gültiges Ziel zu diesem Standardknoten gelenkt werden.When an external node sends a packet to an internal router and the external network 125 running in the filtered mode, the destination MAC address of the incoming packet is that of the platform 100 , The MAC address can therefore not be used to uniquely identify the destination node of the packet. For a packet whose destination is an internal node in the virtual LAN, the destination IP address in the IP header is used to route the packet to the correct destination node. Since the routers are not the final destinations, the destination IP address in the IP header is that of the final destination instead of the next hop (which is the internal router). Thus, there is nothing in the incoming packet that can be used to route it to the correct internal node. To deal with this situation, one embodiment imposes a limit of no more than one router exposed to an external network in a virtual LAN. This router is the virtual LAN server 335 registered as a default destination so that incoming packets without a valid destination are routed to that default node.

Wenn ein externer Knoten ein Paket an einen internen Router sendet und das externe Netz 125 in der ungefilterten Betriebsart läuft, ist die Ziel-MAC-Adresse des ankommenden Pakets die virtuelle MAC-Adresse des internen Zielknotens. Der LAN-Server 335 verwendet dann diese virtuelle MAC, um das Paket direkt an den internen Zielknoten zu senden. Da die MAC-Adresse des ankommenden Pakets den Zielknoten eindeutig identifiziert, können in diesem Fall irgendeine Anzahl interner Knoten als Router wirken.When an external node sends a packet to an internal router and the external network 125 running in the unfiltered mode, the destination MAC address of the incoming packet is the virtual MAC address of the internal destination node. The LAN server 335 then uses this virtual MAC to send the packet directly to the internal destination node. In this case, since the MAC address of the incoming packet uniquely identifies the destination node, any number of internal nodes can act as a router.

Falls eine Konfiguration mehrere Router in einem Teilnetz erfordert, kann ein Router als der freiliegende Router herausgegriffen werden. Dieser Router könnte bei Bedarf seinerseits zu den anderen Routern leiten.If one configuration has several A router in a subnet may require a router as the exposed one Router can be picked out. This router could in turn, if necessary route to the other routers.

Gemäß bestimmten Ausführungsformen wird dadurch eine Router-Redundanz geschaffen, dass ein Router zu einem geclusterten Dienst gemacht wird und ein Lastausgleich oder eine Ausfallsicherung auf zustandsloser Basis (d. h. jedes IP-Paket anstatt pro TCP-Verbindung) ausgeführt wird.According to certain embodiments thereby creating router redundancy that a router becomes one clustered service is done and a load balancing or one Failover on a stateless basis (i.e. each IP packet instead of per TCP connection) becomes.

Bestimmte Ausführungsformen der Erfindung unterstützen die Funktionalität der Promiscuous-Betriebsart, indem sie eine Vermittlungssemantik bereitstellen, in der ein gegebener Port als ein Promiscuous-Port bestimmt werden kann, so dass der gesamte über die Vermittlung gehende Verkehr an den Promiscuous-Port wiederholt wird. Die Knoten, die in der Promiscuous-Betriebsart hören dürfen, werden organisatorisch dem virtuellen LAN-Server zugewiesen.Certain embodiments of the invention support the functionality the promiscuous mode by providing mediation semantics deploy in the given port as a promiscuous port can be determined so that the entire going through the mediation Traffic to the promiscuous port is repeated. The knots that hear in promiscuous mode may be organizational assigned to the virtual LAN server.

Wenn eine virtuelle Ethernet-Schnittstelle 310 in die Promiscuous-Empfangsbetriebsart eintritt, sendet sie eine Nachricht über die Management-RVI an den virtuellen LAN-Server 335. Diese Nachricht enthält sämtliche Informationen über die virtuelle Ethernet-Schnittstelle 310, die in die Promiscuous-Betriebsart eintritt. Wenn der virtuelle LAN-Server von einem Knoten eine Promiscuous-Betriebsart-Nachricht empfängt, prüft er ihre Konfigurationsinformationen, um zu bestimmen, ob der Knoten promisk hören darf. Wenn das nicht der Fall ist, lässt der virtuelle LAN-Server die Promiscuous-Betriebsart-Nachricht ohne Weiterverarbeitung fallen. Falls der Knoten in die Promiscuous-Betriebsart eintreten darf, rundsendet der virtuelle LAN-Server die Promiscuous-Betriebsart-Nachricht an die anderen Knoten in dem virtuellen LAN. Außerdem markiert der virtuelle LAN-Server den Knoten als promisk, so dass er Kopien der ankommenden externen Pakete an ihn weiterleiten kann. Wenn ein Promiscuous-Hörer irgendeine Änderung in seiner RVI-Konfiguration erfasst, sendet er an das virtuelle LAN eine Promiscuous-Betriebsart-Nachricht, die den Zustand aller anderen Knoten in der relevanten Rundsendedomäne aktualisiert. Dies aktualisiert irgendwelche Knoten, die in ein virtuelles LAN eintreten oder es verlassen. Wenn eine virtuelle Ethernet-Schnittstelle 310 die Promiscuous-Betriebsart verlässt, sendet sie dem virtuellen LAN-Server eine Nachricht, die ihn darüber informiert, dass die Schnittstelle die Promiscuous-Betriebsart verlässt. Daraufhin sendet der virtuelle LAN-Server diese Nachricht an alle anderen Knoten in dem virtuellen LAN. Die Promiscuous-Einstellungen ermöglichen, eine externe Verbindung in die Promiscuous-Betriebsart zu versetzen, wenn irgendeine interne virtuelle Schnittstelle ein Promiscuous-Hörer ist. Dies macht den zu der Plattform externen Verkehr (aber in dem gleichen virtuellen LAN) für den Promiscuous-Hörer verfügbar.If a virtual ethernet interface 310 enters the promiscuous receive mode, it sends a message to the virtual LAN server through the management RVI 335 , This message contains all information about the virtual Ethernet interface 310 entering the promiscuous mode. When the virtual LAN server receives a promiscuous mode message from a node, it checks its configuration information to determine whether the node is allowed to hear promisk. If not, the virtual LAN server drops the promiscuous mode message without further processing. If the node is allowed to enter promiscuous mode, the virtual LAN server broadcasts the promiscuous mode message to the other nodes in the virtual LAN. The virtual LAN server also marks the node as promisk so that it can forward copies of the incoming external packets to it. When a promiscuous listener detects any change in its RVI configuration, it sends a promiscuous mode message to the virtual LAN that updates the status of all other nodes in the relevant broadcast domain. This updates any nodes that enter or leave a virtual LAN. If a virtual ethernet interface 310 exits promiscuous mode, it sends a message to the virtual LAN server informing it that the Interface leaves the promiscuous mode. The virtual LAN server then sends this message to all other nodes in the virtual LAN. The promiscuous settings allow an external connection to be put into promiscuous mode if any internal virtual interface is a promiscuous handset. This makes the traffic external to the platform (but in the same virtual LAN) available to the promiscuous listener.

6. Management der Dienst-Cluster6. Management the service cluster

Ein Dienst-Cluster ist eine Menge von Diensten, die an einer oder an mehreren IP-Adressen (oder Host-Namen) verfügbar sind. Beispiele dieser Dienste sind HTTP, FTP, telnet, NFS usw. Eine IP-Adresse und ein Portnummernpaar repräsentieren einen spezifischen Diensttyp (obgleich keine Dienst-Instanz), der den Clients einschließlich der Clients in dem externen Netz 125 von dem Cluster angeboten wird.A service cluster is a set of services that are available at one or more IP addresses (or host names). Examples of these services are HTTP, FTP, telnet, NFS, etc. An IP address and a pair of port numbers represent a specific type of service (although not a service instance) that serves the clients, including the clients in the external network 125 is offered by the cluster.

5 zeigt, wie bestimmte Ausführungsformen ein virtuelles Cluster 405 von Diensten zu dem Internet oder zu einem anderen externen Netz 125 über eine IP-Adresse des Clusters als einen einzelnen virtuellen Host repräsentieren. Alle Dienste des Clusters 505 werden über eine einzige IP-Adresse, jedoch über verschiedene Ports an dieser IP-Adresse, adressiert. In dem Beispiel aus 5 ist der Dienst B ein lastausgeglichener Dienst. 5 shows how certain embodiments use a virtual cluster 405 of services to the Internet or to another external network 125 Represent as a single virtual host via an IP address of the cluster. All services of the cluster 505 are addressed via a single IP address, but via different ports at this IP address. In the example 5 Service B is a load-balanced service.

Anhand von 3B werden virtuelle Cluster durch die Aufnahme einer virtuellen Cluster-Proxy-Logik (VCP-Logik) 360 unterstützt, die mit dem virtuellen LAN-Server 335 zusammenwirkt. Kurz gesagt, ist die VCP 360 verantwortlich für die Behandlung der Verteilung von ankommender Verbindungen, von Port-Filtern und von realen Server-Verbindungen für jede konfigurierte virtuelle IP-Adresse. Für jede konfigurierte geclusterte IP-Adresse gibt es eine VPC.Based on 3B become virtual clusters by incorporating virtual cluster proxy logic (VCP logic) 360 supported with the virtual LAN server 335 interacts. In short, is the VCP 360 responsible for handling the distribution of incoming connections, port filters and real server connections for each configured virtual IP address. There is one VPC for each configured clustered IP address.

Wenn ein Paket an der IP-Adresse des virtuellen Clusters ankommt, sendet die virtuelle LAN-Proxy-Logik 340 das Paket zur Verarbeitung an den VCP 360. Der VCP entscheidet dann anhand des Paketinhalts, seines Caches des internen Verbindungszustands sowie irgendwelcher Lastausgleichsalgorithmen, die auf den ankommenden Verkehr angewendet werden, und der Verfügbarkeit der konfigurierten Dienste, wohin das Paket zu senden ist. Der VCP leitet ankommende Pakete sowohl anhand der Ziel-IP-Adresse als auch der TCP- oder UDP-Portnummer weiter. Ferner verteilt er lediglich Pakete, die für Portnummern, die dem VCP bekannt sind, (oder für bestehende TCP-Verbindungen) bestimmt sind. Es ist die Konfiguration dieser Ports und die Umsetzung der Portnummer zu einem oder zu mehreren Prozessoren, die das virtuelle Cluster erzeugt und spezifische Dienst-Instanzen in dem Cluster verfügbar macht. Falls von mehreren Anwendungsprozessoren mehrere Instanzen des gleichen Dienstes konfiguriert sind, kann der VCP den Lastausgleich zwischen den Dienst-Instanzen ausführen.When a packet arrives at the IP address of the virtual cluster, the virtual LAN proxy logic sends 340 the package for processing to the VCP 360 , The VCP then decides where to send the packet based on the packet content, its internal connection cache, any load balancing algorithms that apply to incoming traffic, and the availability of the configured services. The VCP forwards incoming packets based on the destination IP address as well as the TCP or UDP port number. It also only distributes packets that are intended for port numbers known to the VCP (or for existing TCP connections). It is the configuration of these ports and the conversion of the port number to one or more processors that creates the virtual cluster and makes specific service instances available in the cluster. If multiple instances of the same service are configured by multiple application processors, the VCP can load balance the service instances.

Der VCP 360 unterhält einen Cache aller aktiven Verbindungen, die an der IP-Adresse des Clusters vorhanden sind. Irgendwelche Lastausgleichsentscheidungen, die getroffen werden, erfolgen nur dann, wenn eine neue Verbindung zwischen einem Client und einem Dienst aufgebaut wird. Wenn die Verbindung aufgebaut worden ist, verwendet der VCP die Quell- und Zielinformationen in dem Anfangsblock des ankommenden Pakets, um sicherzustellen, dass alle Pakete in einem TCP-Strom zu dem gleichen Prozessor 106 geleitet werden, der dazu konfiguriert ist, den Dienst bereitzustellen. Bei Fehlen der Fähigkeit zur Bestim mung einer Client-Sitzung (z. B. HTTP-Sitzungen) leitet der tatsächliche Verbindungs-/Lastausgleich-Umsetzungs-Cache die Pakete anhand der Client-Adresse, so dass nachfolgende Verbindungen von dem gleichen Client zu dem gleichen Prozessor gehen (was eine Client-Sitzung permanent oder "klebrig" macht). Da lediglich bestimmte Typen von Diensten eine Sitzungspermanenz erfordern, sollte die Sitzungspermanenz auf der Grundlage der Sitzungsportnummer wählbar sein.The VCP 360 maintains a cache of all active connections that exist at the cluster's IP address. Any load balancing decisions that are made are made only when a new connection is established between a client and a service. When the connection is established, the VCP uses the source and destination information in the header of the incoming packet to ensure that all packets in a TCP stream go to the same processor 106 which is configured to provide the service. In the absence of the ability to determine a client session (e.g., HTTP sessions), the actual connection / load balancing translation cache routes packets based on the client address so that subsequent connections from the same client to the same Processor go (which makes a client session permanent or "sticky"). Since only certain types of services require session persistence, session persistence should be selectable based on the session port number.

Antworten auf ARP-Anforderungen und das Leiten von ARP-Anforderungen werden durch den VCP behandelt. Wenn ein Prozessor irgendein ARP-Paket sendet, sendet er es über den virtuellen Ethernet-Treiber 310 aus. Daraufhin wird das Paket zur normalen ARP-Verarbeitung an den virtuellen LAN-Server 335 gesendet. Der virtuelle LAN-Server rundsendet das Paket wie üblich, stellt aber sicher, dass es nicht an jedes Mitglied des Clusters (nicht gerade den Sender) rundgesendet wird. Außerdem ordnet er in dem Paketanfangsblock-TLV Informationen an, die dem ARP-Ziel angeben, dass die ARP-Quelle lediglich über den virtuellen LAN-Server und genauer über den Lastverteiler erreicht werden kann. Das ARP-Ziel, ob intern oder extern, verarbeitet die ARP-Anforderung normal und sendet eine Antwort über den virtuellen LAN-Server zurück. Da die Quelle des ARP eine IP-Adresse des Clusters war, kann der virtuelle LAN-Server nicht bestimmen, welcher Prozessor die ursprüngliche Anforderung ausgesendet hat. Somit sendet der virtuelle LAN-Server die Antwort an jedes Cluster-Mitglied, so dass sie sie richtig behandeln können. Wenn ein ARP-Paket von einer Quelle mit einer IP-Adresse des Clusters als das Ziel gesendet wird, sendet der virtuelle LAN-Server die Anforderung an jedes Cluster-Mitglied. Jedes Cluster-Mitglied empfängt die ARP-Anforderung und verarbeitet sie normal. Daraufhin stellen sie eine ARP-Antwort zusammen und senden sie über den virtuellen LAN-Server an die Quelle zurück. Wenn der virtuelle LAN-Server irgendeine ARP-Antwort von einem Cluster-Mitglied empfängt, lässt er diese Antwort fallen, während der virtuelle LAN-Server eine ARP-Antwort zusammenstellt und an die ARP-Quelle sendet. Somit antwortet der virtuelle LAN-Server an alle ARPs der IP-Adresse des Clusters. Die ARP-Antwort enthält die Informationen, die für die ARP-Adresse erforderlich sind, um alle Pakete für die IP-Adresse des Clusters an den VCP zu senden. Für externe ARP-Quellen ist dies einfach eine ARP-Antwort mit der externen MAC-Adresse als die Quell-Hardware-Adresse. Für interne ARP-Quellen sind dies diejenigen Informationen, die erforderlich sind, um der Quelle mitzuteilen, dass sie Pakete für die IP-Adresse des Clusters die virtuelle LAN-Management-RVI entlang anstatt über eine direkt verbundene RVI senden soll. Irgend welche überflüssigen ARP-Pakete, die empfangen werden, werden an alle Cluster-Mitglieder weitergeleitet. Irgendwelche überflüssigen durch ein Cluster-Mitglied gesendeten ARP-Pakete werden normal gesendet.Responses to ARP requests and routing ARP requests are handled by the VCP. When a processor sends any ARP packet, it sends it through the virtual Ethernet driver 310 out. The packet is then sent to the virtual LAN server for normal ARP processing 335 Posted. The virtual LAN server broadcasts the packet as usual, but ensures that it is not broadcast to every member of the cluster (not just the sender). In addition, it arranges in the packet header TLV information which indicates to the ARP target that the ARP source can only be reached via the virtual LAN server and more precisely via the load balancer. The ARP target, whether internal or external, processes the ARP request normally and sends back a response via the virtual LAN server. Since the source of the ARP was an IP address of the cluster, the virtual LAN server cannot determine which processor sent the original request. Thus, the virtual LAN server sends the response to each cluster member so that they can handle it correctly. When an ARP packet is sent from a source with an IP address of the cluster as the destination, the virtual LAN server sends the request to each cluster member. Each cluster member receives the ARP request and processes it normally. They then compile an ARP response and send it back to the source via the virtual LAN server. If the virtual LAN server receives any ARP response from a cluster member, it drops that response while the virtual LAN server assembles an ARP response and sends it to the ARP source. The virtual LAN server thus replies to all ARPs of the cluster's IP address. The ARP-Ant word contains the information required for the ARP address to send all packets for the cluster's IP address to the VCP. For external ARP sources, this is simply an ARP response with the external MAC address as the source hardware address. For internal ARP sources, this is the information required to tell the source to send packets for the cluster's IP address along the virtual LAN management RVI rather than through a directly connected RVI. Any redundant ARP packets that are received are forwarded to all cluster members. Any redundant ARP packets sent by a cluster member are sent normally.

Virtueller LAN-ProxyVirtual LAN proxy

Der virtuelle LAN-Proxy 340 führt die grundlegende Koordination der physikalischen Netz-Betriebsmittel unter allen Prozessoren aus, die virtuelle Schnittstellen zu dem externen physikalischen Netz 125 besitzen. Er überbrückt den virtuellen LAN-Server 335 zu dem externen Netz 125. Wenn das externe Netz 125 in der gefilterten Betriebsart läuft, setzt der virtuelle LAN-Proxy 340 die internen MAC-Adressen von jedem Knoten in die einzelne externe MAC um, die dem System 100 zugewiesen ist. Wenn das externe Netz 125 in der ungefilterten Betriebsart arbeitet, ist keine solche MAC-Übersetzung erforderlich. Außerdem führt der virtuelle LAN-Proxy 340 die Einfügung und Entfernung von virtuellen LAN-ID-Kennzeichnungsinformationen gemäß IEEE 802.1Q und das Demultiplexieren von Paketen anhand ihrer VLAN-Ids aus. Außerdem serialisiert er den Zugriff auf die physikalische Ethernet-Schnittstelle 129 und koordiniert er die Zuordnung und Entfernung der MAC-Adressen wie etwa der Sammelsendeadressen in dem physikalischen Netz.The virtual LAN proxy 340 performs the basic coordination of the physical network resources among all processors, the virtual interfaces to the external physical network 125 have. It bridges the virtual LAN server 335 to the external network 125 , If the external network 125 runs in the filtered mode, the virtual LAN proxy sets 340 the internal MAC addresses of each node into the single external MAC assigned to the system 100 is assigned. If the external network 125 In the unfiltered mode, no such MAC translation is required. The virtual LAN proxy also works 340 inserting and removing IEEE 802.1Q virtual LAN ID tagging information and demultiplexing packets based on their VLAN IDs. It also serializes access to the physical Ethernet interface 129 and coordinates the assignment and removal of the MAC addresses such as the multicast addresses in the physical network.

Wenn das externe Netz 125 in der gefilterten Betriebsart läuft und der virtuelle LAN-Proxy 340 abgehende Pakete (ARP oder anderweitig) von einem virtuellen LAN-Server 335 empfängt, ersetzt er die MAC-Adresse im internen Format durch die MAC-Adresse der physikalischen Ethernet-Vorrichtung 129 als die Quell-MAC-Adresse. Wenn das externe Netz 125 in der ungefilterten Betriebsart läuft, ist keine solche Ersetzung erforderlich.If the external network 125 in the filtered mode and the virtual LAN proxy is running 340 outgoing packets (ARP or otherwise) from a virtual LAN server 335 receives, it replaces the MAC address in the internal format with the MAC address of the physical Ethernet device 129 as the source MAC address. If the external network 125 No such replacement is required in the unfiltered mode.

Wenn der virtuelle LAN-Proxy 340 die ankommenden ARP-Pakete empfängt, verschiebt er das Paket zu dem virtuellen LAN-Server 335, der das Paket behandelt und an das richtige Ziel bzw. an die richtigen Ziele weiterleitet. Wenn das ARP-Paket ein Rundsendepaket ist, wird das Paket an alle internen Knoten in dem virtuellen LAN weitergeleitet. Wenn das Paket ein Punkt-zu-Punkt-Sendepaket ist, wird es lediglich an den Zielknoten gesendet. Der Zielknoten ist durch die IP-Adresse in dem ARP-Paket, wenn das externe Netz 125 in der gefilterten Betriebsart läuft, oder durch die MAC-Adresse in dem Ethernet-Anfangsblock des ARP-Pakets bestimmt (nicht die MAC-Adresse ist das ARP-Paket).If the virtual LAN proxy 340 receives the incoming ARP packets, it moves the packet to the virtual LAN server 335 who handles the package and forwards it to the right goal or goals. If the ARP packet is a broadcast packet, the packet is forwarded to all internal nodes in the virtual LAN. If the packet is a point-to-point send packet, it is only sent to the destination node. The destination node is by the IP address in the ARP packet when the external network 125 runs in the filtered mode, or determined by the MAC address in the Ethernet header of the ARP packet (not the MAC address is the ARP packet).

Physikalischer LAN-Treiberphysical LAN driver

Gemäß bestimmten Ausführungsformen erfolgt die Verbindung mit dem externen Netz 125 über Gigabit- oder 100/10baseT-Ethernet-Verbindungen, die mit dem Steuerknoten verbunden sind. Die physikalischen LAN-Treiber 345 sind verantwortlich für die Bildung einer Schnittstelle mit solchen Verbindungen. Pakete, die in die Schnittstelle gesendet werden, werden auch auf normale Weise in die Warteschlange zu der Vorrichtung eingereiht, was das Anordnen der Pakete in Socket-Puffern umfasst. Die Warteschlange, die verwendet wird, um die Pakete einzureihen, ist diejenige, die von dem Protokollstapel verwendet wird, um Pakete in die Warteschlange für die Senderoutine der Vorrichtung einzureihen. Für ankommende Pakete werden die Socket-Puffer, die die Pakete enthalten, herumgereicht, wobei die Paketdaten nie kopiert werden (obgleich sie bei Bedarf für Sammelsendeoperationen geklont werden). Gemäß diesen Ausführungsformen können in dem Steuerknoten allgemeine Linux-Netzvorrichtungstreiber ohne Änderung verwendet werden. Dies ermöglicht die Hinzufügung neuer Vorrichtung zu der Plattform, ohne zu erfordern, dass zusätzliche Vorrichtungstreiber arbeiten.According to certain embodiments, the connection to the external network is made 125 via Gigabit or 100 / 10baseT Ethernet connections that are connected to the control node. The physical LAN drivers 345 are responsible for forming an interface with such connections. Packets sent into the interface are also normally queued to the device, which includes placing the packets in socket buffers. The queue used to queue the packets is that used by the protocol stack to queue packets for the sending routine of the device. For incoming packets, the socket buffers containing the packets are passed around, and the packet data is never copied (although it may be cloned for multicast operations if necessary). According to these embodiments, general Linux network device drivers can be used in the control node without modification. This allows new devices to be added to the platform without requiring additional device drivers to work.

Die physikalische Netzschnittstelle 345 steht lediglich mit dem virtuellen LAN-Proxy 340 in Kommunikation. Dies verhindert, dass der Steuerknoten die externe Verbindung in irgendeiner Weise verwendet, die den Betrieb der virtuellen LANs stören würde, und verbessert die Sicherheit und Isolation der Anwenderdaten, d. h., ein Administrator kann nicht in irgendwelchen Anwenderpaketen "schnüffeln".The physical network interface 345 is only available with the virtual LAN proxy 340 in communication. This prevents the control node from using the external connection in any way that would interfere with the operation of the virtual LANs and improves the security and isolation of the user data, ie an administrator cannot "sniff" in any user packages.

Lastausgleich und Ausfallsicherungload balancing and failover

Gemäß einigen Ausführungsformen werden die redundanten Verbindungen zu dem externen Netz 125 alternativ verwendet, um einen Lastausgleich der Paketübertragungen zwischen zwei redundanten Schnittstellen zu dem externen Netz 125 auszuführen. Andere Ausführungsformen führen einen Lastausgleich dadurch aus, dass sie jede virtuelle Netzschnittstelle in abwechselnden Steuerknoten konfigurieren, so dass die virtuellen Schnittstellen gleichmäßig zwischen den zwei Steuerknoten verteilt sind. Eine weitere Ausführungsform sendet über einen Steuerknoten und empfängt über einen anderen.According to some embodiments, the redundant connections to the external network 125 alternatively used to load balance the packet transfers between two redundant interfaces to the external network 125 perform. Other embodiments perform load balancing by configuring each virtual network interface in alternate control nodes so that the virtual interfaces are evenly distributed between the two control nodes. Another embodiment sends over one control node and receives over another.

In der gefilterten Betriebsart gibt es eine extern sichtbare MAC-Adresse, an die externe Knoten die Pakete für eine Menge virtueller Netzschnittstellen senden. Falls dieser Adapter betriebsunfähig wird, müssen nicht nur die virtuellen Netzschnittstellen eine Ausfallsicherung zu dem anderen Steuerknoten herstellen, sondern muss auch die MAC-Adresse eine Ausfallsicherung herstellen, so dass die externen Knoten weiter Pakete an die MAC-Adresse senden können, die bereits in den ARP-Caches sind. Gemäß einer Ausführungsform der Erfindung wird eine einzelne MAC-Adresse manipuliert, wobei die MAC-Adresse bei der Wiedergewinnung nicht erneut umgesetzt zu werden braucht, wenn ein ausgefallener Steuerknoten wiedergewonnen wird.In the filtered mode, there is an externally visible MAC address to which external nodes send the packets for a number of virtual network interfaces. If this adapter becomes inoperable, not only must the virtual network interfaces establish a failover to the other control node, but the MAC address must also establish a failover that the external nodes can continue to send packets to the MAC address that are already in the ARP caches. In accordance with one embodiment of the invention, a single MAC address is manipulated, the MAC address not having to be converted again during the recovery if a failed control node is recovered.

Gemäß einer weiteren Ausführungsform der Erfindung wird ein Lastausgleich dadurch ausgeführt, dass die Sendung an beiden Steuerknoten zugelassen wird, während der Empfang nur über einen zugelassen wird. Der Ausfallsicherungsfall ist der, dass beide über den gleichen Steuerknoten senden und empfangen. Der Wiedergewinnungsfall ist das Senden über den wiedergewonnenen Steuerknoten, da dies keine MAC-Manipulation erfordert.According to a further embodiment the invention a load balancing is carried out in that the shipment is permitted at both control nodes during the Reception only over one is admitted. The failover case is that both are over the send and receive the same control node. The recovery case is sending over the recovered control node as this is no MAC manipulation requires.

Derjenige Steuerknoten, der den Empfang vornimmt, besitzt IP-Informationen zur Filterung sowie Sammelsende-Adresseninformationen für die Sammelsende-MAC-Konfiguration. Diese Informationen sind erforderlich für die Verarbeitung ankommender Pakete und sollten ausfallgesichert werden, falls der empfangende Steuerknoten ausfällt. Falls der sendende Steuerknoten ausfällt, brauchen die virtuellen Netztreiber lediglich mit dem Senden abgehender Pakete lediglich an den empfangenden Steuerknoten zu beginnen. Abgesehen von der Erkennung, dass der sendende Steuerknoten ausgefallen ist, ist keine spezielle Ausfallsicherungsverarbeitung erforderlich. Falls der ausgefallene Steuerknoten wiedergewonnen wird, können die virtuellen Netztreiber ohne zusätzliche spezielle Wiedergewinnungsverarbeitung weiter abgehende Pakete an die wiedergewonnenen Steuerknoten senden. Falls der empfangende Steuerknoten ausfällt, muss der sendende Steuerknoten die Rolle der empfangenden Schnittstelle annehmen. Hierzu muss er alle MAC-Adressen an seiner physikalischen Schnittstelle konfigurieren, so dass sie den Paketempfang ermöglichen. Alternativ könnten beide Steuerknoten an ihren Schnittstellen die gleiche MAC-Adresse konfiguriert haben, während Empfänge durch den Vorrichtungstreiber an der Ethernet-Vorrichtung physikalisch gesperrt sein könnten, bis ein Steuerknoten zum Empfang der Pakete bereit ist. Daraufhin würde die Ausfallsicherung einfach Empfänge an der Vor richtung ermöglichen.The control node that performs the reception has IP information for filtering as well as multicast address information for the multicast MAC configuration. This information is required for processing incoming Packets and should be fail-safe if the recipient Control node fails. If the sending control node fails, the virtual ones need Network drivers only with sending outgoing packets only to begin at the receiving control node. Apart from that Detection that the sending control node has failed is none special failover processing required. If the failed control nodes can be recovered without the virtual network drivers additional special recovery processing for outgoing packets send the recovered control nodes. If the receiving one Control node fails, the sending control node must assume the role of the receiving interface accept. For this, he must have all MAC addresses on his physical Configure the interface so that it enables packet reception. Alternatively, you could both control nodes have the same MAC address at their interfaces configured while receptions by the device driver on the ethernet device physically could be locked until a control node is ready to receive the packets. thereupon would Failover simple receipts enable on the device.

Da die Schnittstellen mit Sammelsende-MAC-Adressen konfiguriert werden müssen, wenn irgendein Prozessor einer Sammelsendegruppe beigetreten ist, müssen die Sammelsendeinformationen unter den Steuerknoten gemeinsam genutzt werden, so dass die Ausfallsicherung für den Prozessor transparent erfolgt. Da die virtuellen Netztreiber die Sammelsendegruppen-Mitgliedschaft ohnehin verfolgen müssen, sind diese Informationen für den LAN-Proxy bei Bedarf über den virtuellen LAN-Server immer verfügbar. Somit führt eine Ausfallsicherung dazu, dass eine Sammelsendegruppen-Mitgliedschaft von den virtuellen Netztreibern abgefragt wird, um die lokalen Sammelsendegruppen-Mitgliedschaftstabellen neu aufzubauen. Diese Operationen besitzen einen niedrigen Organisationsaufwand und erfordern mit Ausnahme während der Ausfallsicherung und Wiedergewinnung keine spezielle Verarbeitung sowie keine spezielle Wiederholung der Daten zwischen den Steuerknoten. Wenn der Empfang ausfallgesichert wurde und der ausgefallene Steuerknoten wiedergewonnen wird, werden lediglich Sendungen zu dem wiedergewonnenen Steuerknoten verschoben. Somit umfasst der Algorithmus zur Wiedergewinnung an virtuellen Netzschnittstellen, die Sendungen stets an den wiedergewonnenen Steuerknoten zu verschieben und die Empfangsverarbeitung dort zu belassen, wo sie ist.Because the interfaces with multicast MAC addresses need to be configured if any processor has joined a multicast group, the Collective transmission information shared among the control nodes be so that the failover is transparent to the processor he follows. Because the virtual network drivers the multicast membership have to track anyway is this information for the LAN proxy if necessary via the virtual LAN server is always available. So one leads Failover to a group membership is queried by the virtual network drivers to the local multicast group membership tables rebuild. These operations have a low level of organization and require except during failover and recovery no special processing and no special repetition of the data between the control nodes. If the reception has been secured against failure and the failed control node is recovered, only shipments to the recovered control node postponed. Thus, the recovery algorithm includes virtual network interfaces, the programs always on the recovered Move control nodes and receive processing there too leave where it is.

Virtuelle Dienst-Cluster können ebenfalls Lastausgleich und Ausfallsicherung verwenden.Virtual service clusters can also load balance and use failover.

Mehrschrank-PlattformenMore cabinet platforms

Einige Ausführungsformen ermöglichen, dass Schränke miteinander verbunden werden, um größere Plattformen zu bilden. Jeder Schrank besitzt wenigstens einen Steuerknoten, der für Verbindungen zwischen Schränken verwendet wird. Jeder Steuerknoten enthält einen virtuellen LAN-Server 335 zur Behandlung lokaler Verbindungen und lokalen Verkehrs. Einer der Server wie etwa derjenige, der sich an dem Steuerknoten mit der externen Verbindung für das virtuelle LAN befindet, ist als ein Master konfiguriert. Der andere virtuelle LAN-Server wirkt als die Proxy-Server oder Slaves, so dass sich die lokalen Prozessoren dieser Schränke beteiligen können. Der Master unterhält den gesamten Zustand und die Steuerung des virtuellen LAN, während die Proxies Pakete zwischen den Prozessoren und Mastern weiterleiten.Some embodiments allow cabinets to be connected together to form larger platforms. Each cabinet has at least one control node that is used for connections between cabinets. Each control node contains a virtual LAN server 335 to treat local connections and local traffic. One of the servers, such as the one located at the control node with the external connection for the virtual LAN, is configured as a master. The other virtual LAN server acts as the proxy server or slaves, so that the local processors of these cabinets can participate. The master maintains the overall state and control of the virtual LAN, while the proxies forward packets between the processors and masters.

Jeder virtuelle LAN-Server-Proxy unterhält eine RVI zu jedem virtuellen Master-LAN-Server. Jeder lokale Prozessor verbindet sich mit dem virtuellen LAN-Proxy-Server so, als ob er ein Master wäre. Wenn ein Prozessor eine IP- und eine MAC-Adresse verbindet und anmeldet, meldet der Proxy diese IP- und MAC-Adresse bei dem Master an. Dies bewirkt, dass der Master die Adressen an die RVI von dem Proxy bindet. Somit enthält der Master RVI-Bindungen für alle internen Knoten, während die Proxies Bindungen lediglich für Knoten in dem gleichen Schrank enthalten.Any virtual LAN server proxy maintains one RVI to every virtual master LAN server. Each local processor connects to the virtual LAN proxy server as if he would be a master. If a processor connects an IP and a MAC address and registers, reports the proxy sends this IP and MAC address to the master. This causes the master binds the addresses to the RVI from the proxy. Thus the master contains RVI bindings for all internal nodes while the proxies bind only to nodes in the same closet contain.

Wenn ein Prozessor irgendwo in einem virtuellen LAN mit mehreren Schränken irgendein Paket an seinen virtuellen LAN-Server sendet, wird das Paket zur Verarbeitung an den Master weitergeleitet. Der Master führt daraufhin eine normale Verarbeitung an dem Paket aus. Erforderlichenfalls leitet der Master Pakete zur Sammel- und Rundsendung an die Proxies weiter. Außerdem leitet der Master Punkt-zu-Punkt-Sendepakete anhand der Ziel-IP-Adresse des Punkt-zu-Punkt-Sendepakets und der registrierten IP-Adressen an den Proxies. Es wird angemerkt, dass eine Proxyverbindung in dem Master sehr wie ein Knoten mit vielen konfigurierten IP-Adressen aussieht.If a processor sends any packet to its virtual LAN server anywhere in a multi-cabinet virtual LAN, the packet is forwarded to the master for processing. The master then performs normal processing on the packet. If necessary, the master forwards packets for collective and broadcast transmission to the proxies. In addition, the master routes point-to-point transmission packets to the proxies based on the destination IP address of the point-to-point transmission packet and the registered IP addresses. It it is noted that a proxy connection in the master looks very much like a node with many configured IP addresses.

Vernetzungs-Management-LogikNetworking management logic

Während Zeiten, in denen in einem Verarbeitungsknoten kein Betriebssystem läuft, wie etwa während des Bootens oder während des Kern-Austestens, werden der serielle Konsolenverkehr und Boot-Abbild-Anforderungen des Knotens durch den Vermittlungstreibercode, der sich in der Kern-Austest-Software oder im BIOS des Verarbeitungsknotens befindet, zur Management-Software geleitet, die in einem Steuerknoten (nicht gezeigt) läuft. Von dort kann auf den Konsolenverkehr entweder von dem schnellen externen Netz 125 oder über die Management-Ports des Steuerknotens erneut zugegriffen werden. Die Boot-Abbild-Anforderungen können entweder von den lokalen Platten des Steuerknotens oder von Partitionen, die sich draußen in dem externen SAN 130 befinden, erfüllt werden. Vorzugsweise ist der Steuerknoten 120 gebootet und läuft er normal, bevor irgendetwas in einem Verarbeitungsknoten erfolgen kann. Der Steuerknoten selbst wird von seinen Management-Ports gebootet oder ausgetestet.During times when an operating system is not running in a processing node, such as during booting or during core debugging, the serial console traffic and boot image requests of the node are handled by the switch driver code located in the core debugging software or located in the BIOS of the processing node, routed to the management software that runs in a control node (not shown). From there you can access the console traffic either from the fast external network 125 or be accessed again via the control node's management ports. The boot image requests can either come from the local disks of the control node or from partitions that are outside in the external SAN 130 are fulfilled. The control node is preferably 120 it boots and runs normally before anything can happen in a processing node. The control node itself is booted or tested from its management ports.

Einige Kunden möchten möglicherweise das Booten und Austesten der Controller lediglich auf den lokalen Zugriff beschränken, während sie ihre Management-Ports bei Bedarf in einen Computer am Standort einstecken. Andere können sich dafür entscheiden, ein Remote-Booten und -Austesten zuzulassen, indem sie ein geeignet von dem Internet isoliertes sicheres Netzsegment für Management-Zwecke herstellen, in das sie ihre Management-Ports einstecken. Wenn ein Controller gebootet ist und normal läuft, kann auf alle anderen Management-Funktionen für ihn und für den Rest der Plattform von dem schnellen externen Netz 125 sowie, falls vom Administrator zugelassen, von den Management-Ports zugegriffen werden.Some customers may want to limit controller booting and debugging to local access only while plugging their management ports into a local computer when needed. Others may choose to allow remote booting and debugging by creating a management-safe, secure, isolated network segment into which to plug their management ports. When a controller is booted and running normally, all other management functions for it and for the rest of the platform can be accessed from the fast external network 125 and, if permitted by the administrator, can be accessed from the management ports.

Der serielle Konsolenverkehr zu und von jedem Verarbeitungsknoten 105 wird durch einen Betriebssystemkerntreiber über die Switch Fabric 115 zur Management-Software gesendet, die in einem Steuerknoten 120 läuft. Von dort kann entweder von dem normalen, schnellen externen Netz 125 oder über einen der Management-Ports des Steuerknotens auf den Konsolenverkehr irgendeines Knotens zugegriffen werden.Serial console traffic to and from each processing node 105 is by an operating system core driver over the switch fabric 115 sent to management software in a control node 120 running. From there, either from the normal, fast external network 125 or the console traffic of any node is accessed through one of the control node's management ports.

Ablagearchitekturstorage architecture

Bestimmte Ausführungsformen folgen einem SCSI-Ablagemodell. Jedes virtuelle PAN besitzt seinen eigenen virtualisierten E/A-Raum und gibt innerhalb dieses Raums SCSI-Befehle und den SCSI-Status aus. Bei Bedarf übersetzt die Logik in dem Steuerknoten die Adressen und Befehle von einem PAN oder wandelt sie um und sendet sie dementsprechend an das SAN 130, das die Befehle bedient. Aus Sicht des SAN ist der Client die Plattform 100, während die tatsächlichen PANs, die die Befehle ausgegeben haben, verborgen und anonym sind. Da der SAN-Adressenraum virtualisiert ist, kann die Vorrichtungsnummerierung eines PAN, das in der Plattform 100 arbeitet, mit einer Vorrichtungsnummer 1 beginnen, während ein zweites PAN ebenfalls eine Vorrichtungsnummer 1 besitzen kann. Dennoch entspricht jede der Vorrichtungsnummern 1 einem anderen, eindeutigen Abschnitt der SAN-Ablage.Certain embodiments follow a SCSI filing model. Each virtual PAN has its own virtualized I / O space and issues SCSI commands and SCSI status within this space. If necessary, the logic in the control node translates or converts the addresses and commands from a PAN and sends them to the SAN accordingly 130 that operates the commands. From the SAN perspective, the client is the platform 100 while the actual PANs that issued the commands are hidden and anonymous. Since the SAN address space is virtualized, the device numbering of a PAN that is in the platform 100 works with a device number 1 start while a second PAN also has a device number 1 can own. However, each of the device numbers corresponds 1 another, distinct section of the SAN repository.

Gemäß bestimmten Ausführungsformen kann ein Administrator eine virtuelle Ablage aufbauen. Jedes der PANs besitzt seinen eigenen unabhängigen Blickwinkel der Massenablage. Wie unten erläutert wird, kann somit ein erstes PAN eine gegebene Vorrichtungs-/LUN-Adressenzuordnung zu einem ersten Ort in dem SAN besitzen, während ein zweites PAN die gleiche gegebene Vorrichtungs-/LUN- Zuodnung zu einem zweiten, anderen Ort in dem SAN besitzen kann. Jeder Prozessor setzt eine Vorrichtungs-/LUN-Adresse in eine Haupt- und eine Untervorrichtungsnummer um, um beispielsweise eine Platte und eine Partition zu identifizieren. Obgleich die Haupt- und Untervorrichtungsnummern von dem PAN und von den Prozessoren in einem PAN als eine physikalische Adresse wahrgenommen werden, werden sie von der Plattform tatsächlich als eine virtuelle Adresse zu der durch das SAN bereitgestellten Massenablage behandelt. Das heißt, die Haupt- und die Untervorrichtungsnummer jedes Prozessors werden in entsprechende SAN-Orte umgesetzt.According to certain embodiments an administrator set up a virtual repository. Each of the PANs has its own independent View of the mass storage. As explained below, a First PAN assigns a given device / LUN address own a first location in the SAN while a second PAN the same given device / LUN mapping to a second, different location in the SAN. Any processor sets a device / LUN address into a main and a device number um, for example to identify a disk and a partition. Although the major and minor numbers of the PAN and by the processors in a PAN as a physical address are actually perceived by the platform as a virtual address to the bulk storage provided by the SAN treated. This means, the major and minor numbers of each processor are implemented in corresponding SAN locations.

6 zeigt die Software-Komponenten, die zur Implementierung der Ablagearchitektur bestimmter Ausführungsformen verwendet werden. Eine Konfigurationskomponente 605, die typischerweise in einem Steuerknoten 120 ausgeführt wird, steht in Kommunikation mit dem externen SAN 130. Eine Management-Schnittstellenkomponente 610 stellt eine Schnittstelle zu der Konfigurationskomponente 605 bereit und steht in Kommunikation mit dem IP-Netz 125 und somit mit der Remote-Management-Logik 135 (siehe 1). Jeder Prozessor 106 in dem System 100 enthält eine Instanz der prozessorseitigen Ablagelogik 620. Jede solche Instanz 620 kommuniziert über 2 RVI-Verbindungen 625 mit einer entsprechenden Instanz der steuerknotenseitigen Ablagelogik 615. 6 shows the software components used to implement the filing architecture of certain embodiments. A configuration component 605 that are typically in a control node 120 is in communication with the external SAN 130 , A management interface component 610 provides an interface to the configuration component 605 ready and in communication with the IP network 125 and thus with the remote management logic 135 (please refer 1 ). Any processor 106 in the system 100 contains an instance of the processor-side storage logic 620 , Any such instance 620 communicates via 2 RVI connections 625 with a corresponding instance of the storage logic on the control node side 615 ,

Kurz gesagt, sind die Konfigurationskomponente 605 und die Schnittstelle 610 dafür verantwortlich, dass jene Abschnitte der SAN-Ablage entdeckt werden, die der Plattform 100 zugeordnet sind, und dass ermöglicht wird, dass ein Administrator Abschnitte spezifischen PANs oder Prozessoren 106 unter-zuordnet. Außerdem ist die Ablagekonfigurationslogik 605 verantwortlich für die Übermittlung der SAN-Ablagezuordnungen zur steuerknotenseitigen Logik 615. Die prozessorseitige Ablagelogik 620 ist verantwortlich für die Übermittlung der Ablageanforderungen des Prozessors über die interne Verdrahtung 110 und die Ablage-Fabric 115 über hierzu vorgesehene RVIs 625 zu der steuerknotenseitigen Logik 615. Gemäß bestimmten Ausführungen enthalten die Anforderungen virtuelle Ablageadressen und SCSI-Befehle. Die steuerknotenseitige Logik ist verantwortlich für den Empfang und für die Behandlung dieser Befehle, indem sie die entsprechende tatsächliche Adresse für das SAN identifiziert und die Befehle und das Protokoll in die für das SAN, das beispielsweise einen Glasfaserkanal umfasst, aber nicht darauf beschränkt ist (das Gigabit-Ethernet mit iSCSI ist eine weitere beispielhafte Konnektivität), geeignete Form umsetzt.In short, are the configuration component 605 and the interface 610 responsible for discovering those sections of the SAN repository that those of the platform 100 are assigned, and that enables an administrator to section specific PANs or processors 106 assigns sub. In addition, the filing configuration logic 605 responsible for the transfer of the SAN storage assignments to the logic on the control node side 615 , The processor-side filing logic 620 is responsible for the transmission of the filing request processor changes via internal wiring 110 and the filing fabric 115 via RVIs provided for this purpose 625 to the logic on the control node side 615 , According to certain implementations, the requirements include virtual filing addresses and SCSI commands. The control node logic is responsible for receiving and handling these commands by identifying the appropriate actual address for the SAN and limiting the commands and protocol to that for the SAN, which includes, for example, an optical fiber channel (i.e. Gigabit Ethernet with iSCSI is another exemplary connectivity), suitable form implements.

Konfigurationskomponenteconfiguration component

Die Konfigurationskomponente 605 bestimmt, welche Elemente in dem SAN 130 für jeden einzelnen Prozessor 106 sichtbar sind. Sie stellt eine Zuordnungsfunktion bereit, die die Vorrichtungsnummern (z. B. SCSI-Ziel und LUN), die der Prozessor verwendet, in die Vorrichtungsnummern übersetzt, die für die Steuerknoten über ihre angebrachten SCSI- und Glasfaserkanal-E/A-Schnittstellen 128 sichtbar sind. Außerdem stellt sie eine Zugangskontrollfunktion bereit, die verhindert, dass Prozessoren auf externe Ablagevorrichtungen zugreifen, die an den Steuerknoten angebracht, aber nicht in der Konfiguration des Prozessors enthalten sind. Das dem Prozessor (und dem Systemadministrator sowie Anwendungen/Anwendern an diesem Prozessor) dargestellte Modell lässt ihn so erscheinen, als ob jeder Prozessor seine eigenen Masseablagevorrichtungen besitzen würde, die mit den Schnittstellen an dem Prozessor verbunden sind.The configuration component 605 determines what elements in the SAN 130 for every single processor 106 are visible. It provides a mapping function that translates the device numbers (e.g., SCSI target and LUN) that the processor uses into the device numbers that are used for the control nodes via their attached SCSI and fiber channel I / O interfaces 128 are visible. It also provides an access control feature that prevents processors from accessing external storage devices attached to the control nodes but not included in the processor configuration. The model presented to the processor (and the system administrator and applications / users on this processor) makes it appear as if each processor had its own mass storage devices connected to the interfaces on the processor.

Unter anderem ermöglicht diese Funktionalität, dass die Software in einem Prozessor 106 leicht zu einem anderen Prozessor verschoben wird. Beispielsweise kann der Steuerknoten in bestimmten Ausführungsformen über Software (ohne irgendeine physikalische Neuverkabelung) die PAN-Konfigurationen ändern, um zu ermöglichen, dass ein neuer Prozessor auf die geforderten Vorrichtungen zugreift. Somit kann ein neuer Prozessor dazu gebracht werden, die Ablagepersonalität eines anderen zu erben.Among other things, this functionality enables the software in a processor 106 easily moved to another processor. For example, in certain embodiments, the control node can change software PAN configurations (without any physical rewiring) to allow a new processor to access the required devices. Thus, a new processor can be made to inherit another's filing personality.

Gemäß bestimmen Ausführungsformen erscheinen die Steuerknoten als Hosts in den SANs, während alternative Ausführungsformen ermöglichen, dass die Prozessoren als solche wirken.According to certain embodiments the control nodes appear as hosts in the SANs, while alternate ones embodiments enable, that the processors act as such.

Wie oben skizziert wurde, entdeckt die Konfigurationslogik die der Plattform 100 (beispielsweise während des Bootens der Plattform) zugeordnete SAN-Ablage, wobei dieser Pool nachfolgend durch einen Administrator zugeordnet wird. Falls die Entdeckung später aktiviert wird, vergleicht derjenige Steuerknoten, der die Entdeckungsoperation ausführt, die neue Ansicht mit der früheren. Zu dem Ablage-Pool wird eine neu verfügbare Ablage hinzugefügt, die durch einen Administrator zugeordnet werden kann. Verschwindende Partitionen, die nicht zugewiesen waren, werden aus dem verfügbaren Ablage-Pool, der den PANs zugeordnet werden kann, entfernt. Verschwindende Partitionen, die zugewiesen waren, lösen Fehlermeldungen aus.As outlined above, the configuration logic discovers that of the platform 100 (for example during the booting of the platform) assigned SAN storage, this pool being subsequently assigned by an administrator. If the discovery is activated later, the control node that performs the discovery operation compares the new view with the previous one. A new available storage is added to the storage pool, which can be assigned by an administrator. Disappearing partitions that were not assigned are removed from the available storage pool that can be assigned to the PANs. Disappearing partitions that were assigned trigger error messages.

Management-SchnittstellenkomponenteManagement interface component

Die Konfigurationskomponente 605 ermöglicht, dass Management-Software auf die Informationen zugreift und Informationen aktualisiert, die die Vorrichtungsumsetzung zwischen den für die Steuerknoten 120 sichtbaren Vorrichtungen und den für die einzelnen Prozessoren 106 sichtbaren virtuellen Vorrichtungen beschreibt. Außerdem ermöglicht sie, auf Steuerinformationen zuzugreifen. Die Zuweisungen können durch den Verarbeitungsknoten in Verbindung mit einer Kennung der simulierten SCSI-Platten z. B. gemäß dem Namen des simulierten Controllers, des simulierten Kabels, der simulierten Einheit oder der simulierten Logikeinheitsnummer (LUN) identifiziert werden.The configuration component 605 Allows management software to access and update information that the device implementation between for the control nodes 120 visible devices and for the individual processors 106 visible virtual devices. It also enables you to access tax information. The assignments can be made by the processing node in conjunction with an identifier of the simulated SCSI disks e.g. B. according to the name of the simulated controller, the simulated cable, the simulated unit or the simulated logic unit number (LUN).

Gemäß bestimmten Ausführungsformen arbeitet die Schnittstellenkomponente 610 mit der Konfigurationskomponente zusammen, um Informationen und Statistiken zu sammeln und zu überwachen, wie etwa:

  • – Gesamtzahl der ausgeführten E/A-Operationen
  • – Gesamtzahl der übertragenen Bytes
  • – Gesamtzahl der ausgeführten Leseoperationen
  • – Gesamtzahl der ausgeführten Schreiboperationen
  • – Gesamtmenge der Zeit, in der die E/A im Gang war.
According to certain embodiments, the interface component operates 610 with the configuration component to collect and monitor information and statistics, such as:
  • - Total number of I / O operations performed
  • - Total number of bytes transferred
  • - Total number of read operations performed
  • - Total number of write operations performed
  • - Total amount of time the I / O was in progress.

Prozessorseitige Ablagelogikprocessor side Holder logic

Die prozessorseitige Logik 620 des Protokolls ist als ein Host-Adaptermodul implementiert, das ein SCSI-Teilsystem emuliert, indem es in den Prozessoren 106 eine hardwarenahe virtuelle Schnittstelle zu dem Betriebssystem bereitstellt. Die Prozessoren 106 verwenden diese virtuelle Schnittstelle, um SCSI-E/A-Befehle zur Verarbeitung an die Steuerknoten 120 zu senden.The processor-side logic 620 of the protocol is implemented as a host adapter module that emulates a SCSI subsystem by being in the processors 106 provides a hardware-related virtual interface to the operating system. The processors 106 use this virtual interface to send SCSI I / O commands for processing to the control nodes 120 to send.

Gemäß Ausführungsformen, die redundante Steuerknoten 120 verwenden, enthält jeder Verarbeitungsknoten 105 eine Instanz der Logik 620 pro Steuerknoten 120. Gemäß bestimmen Ausführungsformen nehmen die Prozessoren unter Verwendung der physikalischen Vorrichtungsnummerierung anstelle der logischen auf die Ablage Bezug. Das heißt, die Adresse wird als ein Vorrichtungsname spezifiziert, der die LUN, das SCSI-Ziel, den Kanal, den Host-Adapter und den Steuerknoten 120 (z. B. den Knoten 120a oder 120b) identifiziert. Wie in 8 gezeigt ist, setzt eine Ausführungsform das Ziel (T) und die LUN (L) in einen Host-Adapter (H), in einen Kanal (C), in ein umgesetztes Ziel (mT) und in eine umgesetzte LUN (mL) um.According to embodiments, the redundant control node 120 each processing node contains 105 an instance of logic 620 per control node 120 , According to certain embodiments, the processors refer to storage using physical device numbering instead of logical. That is, the address is specified as a device name that includes the LUN, the SCSI target, the channel, the host adapter, and the control node 120 (e.g. the knot 120a or 120b ) identified. As in 8th an embodiment converts the target (T) and the LUN (L) into a host adapter (H), into a channel (C), into a converted target (mT) and into a converted LUN (mL).

7 zeigt eine beispielhafte Architektur für die prozessorseitige Logik 720. Die Logik 720 enthält einen vorrichtungstypspezifischen Treiber (z. B. einen Plattentreiber) 705, einen SCSI-E/A-Treiber 710 der mittleren Ebene und eine Wrapper- und Verdrahtungslogik 715. 7 shows an exemplary architecture for the processor-side logic 720 , The logic 720 contains a device type specific driver (e.g. a disk driver) 705 , a SCSI I / O driver 710 middle tier and wrapper and wiring logic 715 ,

Der vorrichtungstypspezifische Treiber 705 ist ein herkömmlicher Treiber, der mit dem Betriebssystem geliefert wird und spezifischen Vorrichtungstypen zugeordnet ist.The device type specific driver 705 is a traditional driver that comes with the operating system and is associated with specific device types.

Der SCSI-E/A-Treiber 710 der mittleren Ebene ist ein herkömmlicher Treiber der mittleren Ebene, der durch den vorrichtungstypspezifischen Treiber 705 aufgerufen wird, wenn der Treiber 705 bestimmt, dass die Vorrichtung eine SCSI-Vorrichtung ist.The SCSI I / O driver 710 The middle level is a conventional middle level driver by the device type specific driver 705 is called when the driver 705 determines that the device is a SCSI device.

Die Wrapper- und Verdrahtungslogik 715 wird durch den SCSI-E/A-Treiber 710 der mittleren Ebene aufgerufen. Diese Logik stellt die Schnittstelle des SCSI-Teilsystems bereit und emuliert somit das SCSI-Teilsystem. In bestimmten Ausführungsformen, die die Giganet-Fabric nutzen, ist die Logik 715 verantwortlich dafür, dass die SCSI-Befehle bei Bedarf eingehüllt werden, sowie für die Wechselwirkung mit der Giganet- und RCLAN-Schnittstelle, die bewirkt, dass die NIC die Pakete über die oben beschriebenen hierzu vorgesehenen RVIs zu den Steuerknoten an die Steuerknoten sendet. Die Anfangsblockinformationen für das Giganet-Paket werden geändert, so dass sie angeben, dass dies ein Ablagepaket ist, das weitere Informationen enthält, die unten im Kontext beschrieben werden. Obgleich dies in 7 nicht gezeigt ist, kann die Wrapper-Logik 715 die RCLAN-Schicht verwenden, um redundante Verdrahtungen 110 und Fabrics 115 zu unterstützen und zu verwenden.The wrapper and wiring logic 715 is through the SCSI I / O driver 710 called the middle level. This logic provides the interface of the SCSI subsystem and thus emulates the SCSI subsystem. In certain embodiments that use the Giganet fabric, the logic is 715 responsible for wrapping the SCSI commands when needed, and for interacting with the Giganet and RCLAN interfaces, which causes the NIC to send the packets to the control nodes via the dedicated RVIs described above to the control nodes. The header information for the Giganet package is changed to indicate that this is a filing package that contains other information that is described below in context. Although this is in 7 not shown, the wrapper logic can 715 use the RCLAN layer to make redundant wiring 110 and fabrics 115 to support and use.

Für Ausführungsformen, die die Giganet-Fabric 115 verwenden, werden den RVIs der Verbindung 725 virtuelle Schnittstellennummern (VI-Nummern) aus dem Bereich der 1024 verfügbaren VIs zugewiesen. Damit die zwei Endpunkte kom munizieren, ist die Vermittlung 115 mit einem bidirektionalen Pfad zwischen dem Paar (Vermittlungsport des Steuerknotens, VI-Nummer der Steuerknotens), (Vermittlungsport des Prozessorknotens 105, VI-Nummer des Prozessorknotens) programmiert.For embodiments that use the Giganet fabric 115 use the RVIs of the connection 725 assigned virtual interface numbers (VI numbers) from the range of 1024 available VIs. The mediation is for the two endpoints to communicate 115 with a bidirectional path between the pair (switching node of the control node, VI number of the control node), (switching port of the processor node 105 , VI number of the processor node).

Für jeden Nachrichtentyp, der in einer Richtung gesendet wird, wird eine getrennte RVI verwendet. Somit ist in jeder RVI für eine Nachricht immer ein Empfangspuffer unerledigt, der von der anderen Seite des Protokolls gesendet werden kann. Da in jeder Richtung in jeder RVI nur ein Nachrichtentyp gesendet wird, können die an jedem der RVI-Kanäle postierten Empfangspuffer außerdem geeignet für die maximale Nachrichtenlänge bemessen werden, die das Protokoll für diesen Nachrichtentyp verwendet. Gemäß anderen Ausführungsformen werden alle möglichen Nachrichtentypen an eine einzige RVI multiplexiert, anstatt 2 VIs zu verwenden. Das Protokoll und das Nachrichtenformat erfordern nicht genau die Verwendung von 2 RVIs, während die Nachrichten selbst in ihren Anfangsblöcken Nachrichtentypinformationen besitzen, so dass sie demultiplexiert werden könnten.For any message type that is sent in one direction used a separate RVI. So in every RVI is for a message always has a receive buffer pending from the other side of the Protocol can be sent. Because in every direction in every RVI only one message type is sent, the ones posted on each of the RVI channels Receive buffer as well suitable for the maximum message length measured using the protocol for this message type. According to others embodiments be all sorts Message types multiplexed to a single RVI instead of 2 VIs to use. The protocol and message format require not exactly using 2 RVIs while the news itself in their early blocks Have message type information so that it is demultiplexed could.

Einer der zwei Kanäle wird zum Austausch von SCSI-Befehlen (CMD) und Statusnachrichten (STAT-Nachrichten) verwendet. Der andere Kanal wird dazu verwendet, Puffer- (BUF-Nachrichten) und Sendenachrichten (TRAN-Nachrichten) auszutauschen. Außerdem wird dieser Kanal zur Behandlung von Datennutzlasten der SCSI-Befehle verwendet.One of the two channels will for exchanging SCSI commands (CMD) and status messages (STAT messages) used. The other channel is used to buffer (BUF messages) and exchange transmission messages (TRAN messages). Besides, will this channel for handling data payloads of the SCSI commands used.

CMD-Nachrichten enthalten Steuerinformationen, den auszuführenden SCSI-Befehl und die virtuellen Adressen und Größen der E/A-Puffer in dem Knoten 105. STAT-Nachrichten enthalten Steuerinformationen und einen Abschlussstatuscode, der irgendwelche Fehler widerspiegelt, die während der Verarbeitung des SCSI-Befehls aufgetreten sein können. BUF-Nachrichten enthalten Steuerinformationen und die virtuellen Adressen und Größen der E/A-Puffer in dem Steuerknoten 120. TRAN-Nachrichten enthalten Steuerinformationen und werden dazu verwendet, die erfolgreiche Übertragung von Daten vom Knoten 105 zum Steuerknoten 120 zu bestätigen.CMD messages contain control information, the SCSI command to be executed, and the virtual addresses and sizes of the I / O buffers in the node 105 , STAT messages contain control information and a completion status code that reflects any errors that may have occurred while processing the SCSI command. BUF messages contain control information and the virtual addresses and sizes of the I / O buffers in the control node 120 , TRAN messages contain control information and are used to successfully transfer data from the node 105 to the control node 120 to confirm.

Die prozessorseitige Wrapper-Logik 715 untersucht den zu sendenden SCSI-Befehl, um zu bestimmen, ob der Befehl die Übertragung von Daten erfordert, und, wenn das der Fall ist, in welcher Richtung. In Abhängigkeit von der Analyse setzt die Wrapper-Logik 715 dementsprechend Merkerinformationen in dem Nachrichtenanfangsblock. Der Abschnitt, der die steuerknotenseitige Logik beschreibt, beschreibt, wie die Merkerinformationen verwendet werden.The processor-side wrapper logic 715 examines the SCSI command to be sent to determine whether the command requires data to be transferred, and if so, in which direction. Depending on the analysis, the wrapper logic sets 715 accordingly flag information in the message header. The section that describes the control node logic describes how the flag information is used.

Gemäß bestimmten Ausführungsformen der Erfindung kann die Verbindung 725 zwischen der prozessorseitigen Ablagelogik 720 und der steuerknotenseitigen Ablagelogik 715 dazu verwendet werden, Steuernachrichten zu befördern, die nicht Teil des SCSI-Protokolls sind und nicht an das SAN 130 zu übermitteln sind. Diese Steuernachrichten sind statt dessen durch die steuerknotenseitige Logik 715 zu behandeln.According to certain embodiments of the invention, the connection 725 between the processor-side filing logic 720 and the storage logic on the control node side 715 used to carry control messages that are not part of the SCSI protocol and are not sent to the SAN 130 are to be transmitted. These control messages are instead through the control node logic 715 to treat.

Die Protokollsteuernachrichten werden stets von der Prozessorseite des Protokolls erzeugt und über eine der zwei virtuellen Schnittstellen (VIs), die die prozessorseitige Logik 720 mit der steuerknotenseitigen Ablagelogik 715 verbinden, an die Steuerknotenseite des Protokolls gesendet. Abgesehen davon, dass zur Unterscheidung der Nachricht als eine Protokollsteuernachricht andere Merkerbits verwendet werden, ist der für die Protokollsteueroperationen verwendete Nachrichtenanfangsblock der gleiche wie ein Befehlsnachrichten-Anfangsblock. Der Steuerknoten 120 führt die angeforderte Operation aus und antwortet über die RVI mit einem Nachrichtenanfangsblock, der der gleiche ist, wie er von einer Statusnachricht verwendet wird. Auf diese Weise ist für die selten verwendeten Protokollsteueroperationen keine getrennte RVI erforderlich.The protocol control messages are always generated by the processor side of the protocol and via one of the two virtual interfaces (VIs) that define the processor-side logic 720 with the storage logic on the control node side 715 connect, sent to the control node side of the protocol. Except that other flag bits are used to distinguish the message from a protocol control message, the message header used for protocol control operations is the same as a command message header. The control node 120 performs the requested operation and responds via the RVI with a message header that is the same as that used by a status message. In this way, a separate RVI is not required for the rarely used protocol control operations.

Gemäß bestimmten Ausführungsformen, die redundante Steuerknoten verwenden, erfasst die prozessorseitige Logik 720 bestimmte Fehler von ausgegebenen Befehlen und gibt den Befehl in Reaktion darauf erneut an den anderen Steuerknoten aus. Diese Wiederholung kann in einem Treiber 710 der mittleren Ebene implementiert sein.According to certain embodiments that use redundant control nodes, the processor-side logic captures 720 certain errors from issued commands and, in response, reissues the command to the other control node. This repetition can be done in a driver 710 the middle level.

Steuerknotenseitige AblagelogikControl node-side Holder logic

Gemäß bestimmten Ausführungsformen ist die steuerknotenseitige Ablagelogik 715 als ein Vorrichtungstreibermodul implementiert. Die Logik 715 stellt in dem Steuerknoten 120 eine Schnittstelle auf Vorrichtungsebene zu dem Betriebssystem bereit. Diese Schnittstelle auf Vorrichtungsebene wird auch dazu verwendet, auf die Konfigurationskomponente 705 zuzugreifen. Wenn dieses Vorrichtungstreibermodul initialisiert ist, antwortet es auf Protokollnachrichten von allen Pro zessoren 106 und der Plattform 100. Durch die Schnittstelle auf Vorrichtungsebene wird die gesamte Konfigurationsaktivität eingeführt. Die gesamte E/A-Aktivität wird durch Nachrichten eingeführt, die über die Verdrahtung 110 und über die Switch Fabric 115 gesendet und empfangen werden. In dem Steuerknoten 120 gibt es eine Instanz der Logik 715 pro Prozessorknoten 105 (obgleich sie in 7 lediglich als Kasten gezeigt ist). Gemäß bestimmten Ausführungsformen kommuniziert die steuerknotenseitige Logik 715 über das FCP- oder über das FCP-2-Protokoll oder über das iSCSI- oder über andere Protokolle, die den SCSI-2- oder den SCSI-3-Befehlssatz verwenden, über verschiedene Medien mit dem SAN 130.According to certain embodiments, the storage node-side storage logic 715 implemented as a device driver module. The logic 715 puts in the control node 120 a device level interface to the operating system. This device level interface is also used on the configuration component 705 access. When this device driver module is initialized, it responds to protocol messages from all processors 106 and the platform 100 , The device level interface introduces all configuration activity. All I / O activity is introduced through messages that are wired 110 and over the switch fabric 115 be sent and received. In the control node 120 there is an instance of logic 715 per processor node 105 (although in 7 is only shown as a box). According to certain embodiments, the node logic communicates 715 through the FCP or FCP-2 protocol or through the iSCSI or other protocols using the SCSI-2 or SCSI-3 instruction set, through various media with the SAN 130 ,

Wie oben beschrieben wurde, setzt die prozessorseitige Logik in den RVI-Nachrichtenanfangsblöcken Merker, die angeben, ob dem Befehl ein Datenfluss zugeordnet ist, und, wenn das der Fall ist, in welcher Richtung. Die steuerknotenseitige Ablagelogik 715 empfängt Nachrichten von der prozessorseitigen Logik und analysiert daraufhin die Anfangsblockinformationen, um zu bestimmen, wie zu handeln ist, um z. B. Puffer zuzuordnen oder dergleichen. Außerdem übersetzt die Logik die in den Nachrichten von dem Prozessor enthaltenen Adresseninformationen in die entsprechende umgesetzte SAN-Adresse und gibt sie die Befehle (z. B. über FCP oder FCP-2) an das SAN 130 aus.As described above, the processor logic in the RVI message headers sets flags that indicate whether the command is associated with a data flow and, if so, in which direction. The storage logic on the control node side 715 receives messages from the processor logic and then analyzes the header information to determine how to act, e.g. B. allocate buffers or the like. The logic also translates the address information contained in the messages from the processor into the corresponding translated SAN address and gives the commands (e.g. via FCP or FCP-2) to the SAN 130 out.

Ein SCSI-Befehl wie etwa ein Befehl TEST UNIT READY, der keine SCSI-Datenübertragungsphase erfordert, wird von der prozessorseitigen Logik 720, die einen einzelnen Befehl in der für Befehlsnachrichten verwendeten RVI sendet, und von der steuerknotenseitigen Logik, die eine einzelne Statusnachricht über die gleiche RVI zurücksendet, behandelt. Genauer konstruiert die Prozessorseite des Protokolls die Nachricht mit einem Standardnachrichtenanfangsblock, einer neuen Folgenummer für diesen Befehl, dem gewünschten SCSI-Ziel und der gewünschten LUN, dem auszuführenden SCSI-Befehl und einer Listengröße von null. Die Steuerknotenseite der Logik empfängt die Nachricht, entnimmt die Informationen des SCSI-Befehls und befördert sie über die Schnittstelle 128 in das SAN 130. Nachdem der Steuerknoten den Befehlsabschluss-Rückruf empfangen hat, konstruiert er unter Verwendung eines Standard-Nachrichtenanfangsblocks, der Folgenummer für diesen Befehl, des Status des abgeschlossenen Befehls und optional der Anforderungsabtastdaten, falls der Befehl mit einem Prüfzustandsstatus abgeschlossen wurde, eine Statusnachricht für den Prozessor.A SCSI command, such as a TEST UNIT READY command, that does not require a SCSI data transfer phase is provided by the processor logic 720 that sends a single command in the RVI used for command messages and handled by the node logic that sends a single status message back over the same RVI. More specifically, the processor side of the protocol constructs the message with a standard message header, a new sequence number for this command, the desired SCSI target and LUN, the SCSI command to be executed, and a list size of zero. The control node side of the logic receives the message, takes the information from the SCSI command and transports it via the interface 128 into the SAN 130 , After receiving the command completion recall, the control node constructs a status message for the processor using a standard message header, the sequence number for this command, the status of the completed command, and optionally the request scan data if the command was completed with a test status.

Ein SCSI-Befehl wie etwa ein READ-Befehl, der eine SCSI-Datenübertragungs phase erfordert, um Daten von der SCSI-Vorrichtung in den Host-Speicher zu übertragen, wird durch die prozessorseitige Logik behandelt, die eine Befehlsnachricht an die steuerknotenseitige Logik 715 sendet, wobei der Steuerknoten mit einer oder mit mehreren RDMA-WRITE-Operationen in den Speicher in dem Prozessorknoten 105 und mit einer einzigen Statusnachricht von der steuerknotenseitigen Logik antwortet. Genauer konstruiert die prozessorseitige Logik 720 eine Befehlsnachricht mit einem Standard-Nachrichtenanfangsblock, einer neuen Folgenummer für diesen Befehl, dem gewünschten SCSI-Ziel und der gewünschten LUN, dem auszuführenden SCSI-Befehl und einer Liste von Speicherbereichen, in denen die Daten von dem Befehl gespeichert werden sollen. Die steuerknotenseitige Logik 715 ordnet temporäre Speicherpuffer zu, die die Daten von der SCSI-Operation speichern, während der SCSI-Befehl in dem Steuerknoten ausgeführt wird. Nachdem die steuerknotenseitige Logik 715 den SCSI-Befehl zur Verarbeitung an das SAN 130 gesendet hat und der Befehl abgeschlossen ist, sendet sie die Daten mit einer Folge einer oder mehrerer RDMA-WRITE-Operationen an den Speicher des Prozessors 105 zurück. Daraufhin konstruiert sie eine Statusnachricht mit einem Standard-Nachrichtenanfangsblock, der Folgenummer für diesen Befehl, dem Status des abgeschlossenen Befehls und optional den REQUEST-SENSE-Daten, falls der Befehl mit einem Status SCSI CHECK CONDITION abgeschlossen wurde.A SCSI command, such as a READ command, that requires a SCSI data transfer phase to transfer data from the SCSI device to host memory is handled by the processor-side logic that sends a command message to the node logic 715 sends, the control node having one or more RDMA WRITE operations in the memory in the processor node 105 and respond with a single status message from the control node logic. The processor-side logic constructs more precisely 720 a command message with a standard message header, a new sequence number for this command, the desired SCSI target and LUN, the SCSI command to be executed and a list of storage areas in which the data of the command are to be stored. The logic on the control node side 715 allocates temporary memory buffers that store the data from the SCSI operation while the SCSI command is being executed in the control node. After the control node logic 715 the SCSI command for processing to the SAN 130 and the command is complete, it sends the data to the processor's memory with a sequence of one or more RDMA-WRITE operations 105 back. It then constructs a status message with a standard message header, the sequence number for this command, the status of the completed command and optionally the REQUEST-SENSE data if the command was completed with a SCSI CHECK CONDITION status.

Ein SCSI-Befehl wie etwa ein WRITE-Befehl, der eine SCSI-Datenübertragungsphase erfordert, um Daten aus dem Host-Speicher in die SCSI-Vorrichtung zu übertragen, wird dadurch behandelt, dass die prozessorseitige Logik 720 eine einzelne Befehlsnachricht an die steuerknotenseitige Logik 715 sendet, eine oder mehrere BUF-Nachrichten von der steuerknotenseitigen Logik 715 an die prozessorseitige Logik sendet, eine oder mehrere RDMA-WRITE-Operationen von der prozessorseitigen Ablagelogik in den Speicher in dem Steuerknoten sendet, eine oder mehrere TRAN-Nachrichten von der prozessorseitigen Logik zu der steuerknotenseitigen Logik sendet und eine einzelne Statusnachricht von der steuerknotenseitigen Logik zurück zu der prozessorseitigen Logik sendet. Die Verwendung der BUF-Nachrichten, um den Ort des temporären Pufferspeichers in dem Steuerknoten an die prozessorseitige Ablagelogik zu übermitteln, und die Verwendung der TRAN-Nachrichten, um den Abschluss der RDMA-WRITE-Datenübertragung anzugeben, erfolgt wegen des Fehlens der RDMA-READ-Fähigkeit in der zu Grunde liegenden Giganet-Fabric. Falls die zu Grunde liegende Fabric RDMA-READ-Operationen unterstützt, kann eine andere Folge entsprechender Aktionen verwendet werden. Genauer konstruiert die prozessorseitige Logik 720 eine CMD-Nachricht mit einem Standard-Nachrichtenanfangsblock, einer neuen Folgenummer für diesen Befehl, einem gewünschten SCSI-Ziel und einer gewünschten LUN sowie dem auszuführenden SCSI-Befehl. Während der SCSI-Befehl in dem Steuerknoten ausgeführt wird, ordnet die steuerknotenseitige Logik 715 temporäre Speicherpuffer zu, die die Daten von der SCSI-Operation speichern. Daraufhin konstruiert die Steuerknotenseite des Protokolls eine BUF-Nachricht mit einem Standard-Nachrichtenanfangsblock, der Folgenummer für diesen Befehl und einer Liste von Bereichen des virtuellen Speichers, die für die temporären Speicherpuffer in dem Steuerknoten zu verwenden sind. Daraufhin sendet die prozessorseitige Logik 720 die Daten mit einer Folge einer oder mehrerer RDMA-WRITE-Operationen an den Steuerknotenspeicher hinüber. Daraufhin konstruiert sie eine TRAN-Nachricht mit einem Standard-Nachrichtenanfangsblock und einer Folgenummer für diesen Befehl. Nachdem die steuerknotenseitige Logik den SCSI-Befehl zur Verarbeitung an das SAN 130 gesendet hat und den Befehlsabschluss empfangen hat, konstruiert sie eine STAT-Nachricht mit einem Standard-Nachrichtenanfangsblock, der Folgenummer für diesen Befehl, dem Status des abgeschlossenen Befehls und optional den REQUEST-SENSE-Daten, falls der Befehl mit einem Status CHECK CONDITION abgeschlossen wurde.A SCSI command, such as a WRITE command, that requires a SCSI data transfer phase to transfer data from host memory to the SCSI device is handled by the processor-side logic 720 a single command message to the control node logic 715 sends one or more BUF messages from the control node logic 715 sends to the processor side logic, sends one or more RDMA WRITE operations from the processor side filing logic to the memory in the control node, sends one or more TRAN messages from the processor side logic to the control node side logic, and returns a single status message from the control node side logic to the processor-side logic. The use of the BUF messages, to transmit the location of the temporary buffer memory in the control node to the processor-side filing logic and the use of the TRAN messages to indicate the completion of the RDMA-WRITE data transfer is due to the lack of RDMA-READ capability in the underlying Giganet fabric. If the underlying fabric supports RDMA-READ operations, another sequence of appropriate actions can be used. The processor-side logic constructs more precisely 720 a CMD message with a standard message header, a new sequence number for this command, a desired SCSI target and a desired LUN as well as the SCSI command to be executed. While the SCSI command is being executed in the control node, the control node logic orders 715 temporary storage buffers that store the data from the SCSI operation. The control node side of the protocol then constructs a BUF message with a standard message header, the sequence number for this command, and a list of areas of virtual memory to be used for the temporary memory buffers in the control node. The processor-side logic then sends 720 the data to the control node memory with a sequence of one or more RDMA-WRITE operations. It then constructs a TRAN message with a standard message header and a sequence number for this command. After the control node logic sends the SCSI command to the SAN for processing 130 has sent and received the command completion, it constructs a STAT message with a standard message header, the sequence number for this command, the status of the completed command and optionally the REQUEST-SENSE data if the command was completed with a status CHECK CONDITION ,

Gemäß einigen Ausführungsformen enthält die CMD-Nachricht eine Liste von Bereichen des virtuellen Speichers, von denen aus die Daten für den Befehl gespeichert werden. Außerdem enthalten die BUF- und die TRAN-Nachricht ein Indexfeld, das ermöglicht, dass die Steuerknotenseite des Protokolls eine getrennte BUF-Nachricht für jeden Eintrag in der Bereichsliste in der CMD-Nachricht sendet. Die Prozessorseite des Protokolls antwortet auf eine solche Nachricht damit, dass sie die RDMA-WRITE-Operationen für die in der BUF-Nachricht beschriebene Datenmenge ausführt, worauf eine TRAN-Nachricht folgt, die den Abschluss eines einzelnen Segments der Datenübertragung angibt.According to some embodiments contains the CMD message a list of areas of virtual memory, from which the data for the command can be saved. In addition, the BUF and The TRAN message is an index field that enables the control node side of the log a separate BUF message for each entry in the area list sends in the CMD message. The processor side of the protocol responds on such a message that it is the RDMA-WRITE operations for the executes what amount of data described in the BUF message a TRAN message follows that concludes a single segment of the data transfer indicates.

Das Protokoll zwischen der prozessorseitigen Logik 720 und der steuerknotenseitigen Logik 715 ermöglicht Streu-Sammel-E/A-Operationen. Diese Funktionalität ermöglicht, dass die von einer E/A-Anforderung betroffenen Daten von mehreren verschiedenen Bereichen des virtuellen und/oder physikalischen Speichers gelesen oder in sie geschrieben werden. Dies ermöglicht, mehrere nicht zusammenhängende Puffer für die Anforderung an den Steuerknoten zu verwenden.The protocol between the processor-side logic 720 and the logic of the control node 715 enables scatter-collect I / O operations. This functionality enables the data affected by an I / O request to be read from or written to several different areas of the virtual and / or physical memory. This enables multiple non-contiguous buffers to be used for the request to the control node.

Wie oben festgestellt wurde, ist die Konfigurationslogik 705 für die Entdeckung der SAN-Ablage, die der Plattform zugeordnet ist, und für die Wechselwirkung mit der Schnittstellenlogik 710 verantwortlich, so dass ein Administrator die Ablage spezifischen PANs unter-zuordnen kann. Als Teil dieser Zuordnung erzeugt und unterhält die Konfigurationskomponente 705 eine Ablagedatenstruktur 915, die Informationen enthält, welche die Entsprechung zwischen Prozessoradressen und tatsächlichen SAN-Adressen identifizieren. 7 zeigt eine solche Struktur. Wie oben beschrieben wurde, kann die Entsprechung zwischen dem Verarbeitungsknoten und der Kennung der simulierten SCSI-Platten z. B. nach dem Namen des simulierten Controllers, nach dem Kabel, nach der Einheit oder nach der Logikeinheitsnummer (LUN) erfolgen.As stated above, the configuration logic is 705 for the discovery of the SAN storage assigned to the platform and for the interaction with the interface logic 710 responsible so that an administrator can sub-assign the storage to specific PANs. As part of this assignment, the configuration component creates and maintains 705 a filing data structure 915 that contains information that identifies the correspondence between processor addresses and actual SAN addresses. 7 shows such a structure. As described above, the correspondence between the processing node and the identifier of the simulated SCSI disks can e.g. B. by the name of the simulated controller, by the cable, by the unit or by the logic unit number (LUN).

Management-LogikManagement logic

Die Management-Logik 135 wird zur Herstellung einer Schnittstelle, um die PANs zu beliefern, verwendet. Unter anderem ermöglicht die Logik 135, dass ein Administrator die virtuelle Netztopologie eines PAN, seine Sichtbarkeit für das externe Netz (z. B. als ein Dienst-Cluster) und die Typen der Vorrichtungen in den PAN, z. B. Brücken und Leitung, festsetzt.The management logic 135 is used to create an interface to supply the PANs. Among other things, logic enables 135 that an administrator knows the virtual network topology of a PAN, its visibility to the external network (e.g. as a service cluster) and the types of devices in the PAN, e.g. B. bridges and line.

Außerdem stellt die Logik 135 eine Schnittstelle mit der Ablage-Management-Schnittstellenlogik 710 her, so dass ein Administrator während der Anfangszuordnung oder nachfolgend die Ablage für ein PAN definieren kann. Die Konfigurationsdefinition enthält die oben diskutierte Ablageentsprechung (SCSI zu SAN) sowie Zugangskontrollberechtigungen.It also represents logic 135 an interface with the filing management interface logic 710 so that an administrator can define the storage for a PAN during the initial assignment or afterwards. The configuration definition contains the storage correspondence (SCSI to SAN) discussed above as well as access control authorizations.

Wie oben beschrieben wurde, besitzt jedes der PANs und jeder der Prozessoren eine durch seine virtuelle Vernetzung (einschließlich einer virtuellen MAC-Adresse) und durch seine virtuelle Ablage definierte Personalität. Wie unten beschrieben kann auf die Strukturen, die diese Personalität aufzeichnen, durch die Management-Logik zugegriffen werden, um die Prozessor-Clusterung zu implementieren. Außerdem kann auf sie wie oben beschrieben durch einen Administrator oder mit einem Agent-Administrator zugegriffen werden. Ein Agent kann beispielsweise verwendet werden, um ein PAN in Reaktion auf bestimmte Ereignisse wie etwa die Tages- oder Jahreszeit oder in Reaktion auf bestimmte Lasten in dem System neu zu konfigurieren.As described above each of the PANs and each of the processors one by its virtual Networking (including a virtual MAC address) and defined by its virtual filing Personality. As described below, the structures that record this personality can be characterized by the management logic is accessed to the processor clustering to implement. Moreover can be accessed by an administrator or as described above be accessed with an agent administrator. An agent can for example used to be a PAN in response to certain Events such as the time of day or season or in response to reconfigure to certain loads in the system.

Die Betriebssystem-Software in einem Prozessor enthält Code für den seriellen Konsolentreiber, der den Konsolen-E/A-Verkehr für den Knoten über die Giganet-Vermittlung 115 zu der Management-Software leitet, die in einem Steuerknoten läuft. Von dort kann die Management-Software den Konsolen-E/A-Strom irgendeines Knoten über die Management-Ports des Steuerknotens (seinen langsamen Ethernet-Port und seinen Notfall-Management-Port) oder über das schnelle externe Netz 125, wie es vom Administrator zugelassen ist, zugänglich machen. Der Konsolenverkehr kann für Revisions- und Verlaufsprotokollzwecke protokolliert werden.The operating system software in a processor contains code for the serial console driver that handles the console I / O traffic for the node through the Giganet switch 115 to the management software that runs in a control node. From there, the management software can run the Konso len I / O stream of any node through the control node's management ports (its slow Ethernet port and its emergency management port) or through the fast external network 125 as permitted by the administrator. Console traffic can be logged for audit and history log purposes.

Cluster-Management-LogikCluster management logic

9 veranschaulicht die Cluster-Management-Logik bestimmter Ausführungsformen. Die Cluster-Management-Logik 905 greift auf die Datenstrukturen 910 zu, die die oben beschriebenen Netzinformationen wie etwa die Netztopologien der PANs, die MAC-Adressenzuweisungen in einem PAN usw. aufzeichnen. Außerdem greift die Cluster-Management-Logik 905 auf die Datenstrukturen 915 zu, die die Ablageentsprechung der verschiedenen Prozessoren 106 aufzeichnen. Außerdem greift die Cluster-Management-Logik 905 auf eine Datenstruktur 920 zu, die freie Betriebsmittel wie etwa nicht zugeordnete Prozessoren in der Plattform 100 aufzeichnet. 9 illustrates the cluster management logic of certain embodiments. The cluster management logic 905 accesses the data structures 910 that record the network information described above, such as the network topologies of the PANs, the MAC address assignments in a PAN, etc. The cluster management logic also applies 905 on the data structures 915 to which the filing correspondence of the different processors 106 record. The cluster management logic also applies 905 on a data structure 920 too, the free resources such as unallocated processors in the platform 100 records.

Die Cluster-Management-Logik 905 kann in Reaktion auf Prozessorfehlerereignisse oder Administratorbefehle die Datenstrukturen ändern, um zu bewirken, dass die Ablage- und Vernetzungspersonalitäten eines gegebenen Prozessors auf einen neuen Prozessor "umgestellt werden". Auf diese Weise "erbt" der neue Prozessor die Personalität des früheren Prozessors. Es kann veranlasst werden, dass die Cluster-Management-Logik 905 dies tut, um in ein PAN einen neuen Prozessor einzuwechseln, der einen ausgefallenen ersetzt.The cluster management logic 905 may change data structures in response to processor failure events or administrator commands to cause the filing and networking personalities of a given processor to be "switched" to a new processor. In this way, the new processor "inherits" the personality of the previous processor. It can be arranged for the cluster management logic 905 does this to replace a new processor in a PAN to replace a failed one.

Der neue Prozessor erbt die MAC-Adresse eines früheren Prozessors und wirkt wie der frühere. Der Steuerknoten übermittelt die Konnektivitätsinformationen, wenn der neue Prozessor bootet, und aktualisiert bei Bedarf die Konnektivitätsinformationen für die nicht ausgefallenen Prozessoren. Beispielsweise werden in bestimmten Ausführungsformen die RVI-Verbindungen für die anderen Prozessoren transparent aktualisiert; d. h., die Software in den anderen Prozessoren braucht an der Herstellung der Konnektivität zu dem neu eingewechselten Pro zessor nicht beteiligt zu sein. Außerdem erbt der neue Prozessor die Ablagekorrespondenz des früheren und folglich den permanenten Zustand des früheren Prozessors.The new processor inherits a MAC address earlier Processor and acts like the previous one. The Control node transmitted the connectivity information, when the new processor boots and updates the if necessary Connectivity information for the not failed processors. For example, in certain embodiments the RVI connections for the other processors updated transparently; d. that is, the software in the other processors needs to connect to that newly substituted processor not to be involved. Also inherits the new processor the filing correspondence of the previous and hence the permanent state of the previous processor.

Neben anderen Vorteilen ermöglicht dies, einen freien Pool von Betriebsmitteln einschließlich Prozessoren über die gesamte Plattform anstatt über gegebene PANs gemeinsam zu nutzen. Auf diese Weise können die freien Betriebsmittel (die als solche gehalten werden können, um die Zuverlässigkeit und Fehlertoleranz des Systems zu erhöhen) effizienter verwendet werden.Among other advantages, this enables a free pool of resources including processors through the entire platform rather than given Share PANs. In this way, the free resources (which as such can be considered to be reliability and to increase fault tolerance of the system) used more efficiently become.

Wenn ein neuer Prozessor "eingewechselt" wird, muss für ihn erneut eine ARP-Verarbeitung ausgeführt werden, um die Zuordnung der IP-Adressen zu MAC-Adressen zu lernen.When a new processor is "substituted", it has to be renewed for it an ARP processing accomplished to learn how to assign IP addresses to MAC addresses.

Alternativenalternatives

Da jeder Giganet-Port der Switch Fabric 115 1024 gleichzeitige virtuelle Schnittstellenverbindungen über sich unterstützen und sie mit Hardware-Schutz getrennt voneinander halten kann, kann das Betriebssystem die Giganet-Ports eines Knotens sicher mit Anwendungsprogrammen gemeinsam nutzen. Dies ermöglicht die direkte Verbindung zwischen Anwendungsprogrammen ohne die Notwendigkeit, dass sie über den vollen Stapel des Treibercodes laufen. Hierzu stellt ein Betriebssystemaufruf einen virtuellen Schnittstellenkanal her, führt er eine Speicherumsetzung von dessen Puffern aus und reiht er dessen Anwendungsadressenraum in eine Warteschlange ein. Außerdem erleichtert eine Bibliothek, die die hardwarenahen Einzelheiten der Herstellung der Schnittstelle zu dem Kanal kapselt, die Verwendung solcher virtueller Schnittstellenverbindungen. Außerdem könnte die Bibliothek automatisch redundante virtuelle Schnittstellenkanalpaare herstellen und das Management der gemeinsamen Nutzung oder der Ausfallsicherung über sie ausführen, ohne dass von der aufgerufenen Anwendung irgendeine Anstrengung oder Kenntnis erforderlich ist.Because each Giganet port of the switch fabric 115 Supporting 1024 simultaneous virtual interface connections and keeping them separate with hardware protection, the operating system can safely share a node's Giganet ports with application programs. This enables direct connection between application programs without the need to run over the full stack of driver code. For this purpose, an operating system call creates a virtual interface channel, it carries out a memory conversion of its buffers, and it queues its application address space. In addition, a library that encapsulates the hardware-related details of the interface to the channel facilitates the use of such virtual interface connections. In addition, the library could automatically establish redundant virtual interface channel pairs and manage or fail over them without any effort or knowledge from the application being called.

Die obenbeschriebenen Ausführungsformen emulieren das Ethernet intern über eine ATM-ähnliche Fabric. Der Entwurf könnte geändert werden, um eine interne Ethernet-Fabric zu verwenden, was die Architektur wesentlich vereinfachen würde und z. B. die Notwendigkeit der Emulation von Merkmalen beseitigen würde. Falls das externe Netz gemäß dem ATM kommuniziert, würde eine weitere Abwandlung den ATM intern ohne Emulation des Ethernet verwenden, während der ATM extern an das externe Netz übermittelt werden könnte, wenn er in dieser Weise adressiert ist. Eine weitere Abwandlung würde einen ATM intern zu der Plattform (d. h. ohne Emulation des Ethernet) ermöglichen, während nur externe Kommunikationen an das Ethernet umgewandelt werden. Dies würde die internen Kommunikationen rationalisieren, jedoch eine Emulationslogik in dem Controller erfordern.Emulate the above-described embodiments the ethernet internally an ATM-like Fabric. The draft could changed to use an internal ethernet fabric whatever the architecture would significantly simplify and Z. B. Eliminate the need to emulate features would. If the external network according to the ATM would communicate a further modification of the ATM internally without emulation of the Ethernet use while the ATM could be communicated externally to the external network if it is addressed in this way. Another variation would be one ATM internal to the platform (i.e. without emulation of the Ethernet) enable, while only external communications are converted to the ethernet. This would rationalize internal communications, but emulation logic in the controller.

Bestimmte Ausführungsformen setzen PANs ein, die auf Software-Konfigurationsbefehlen beruhen. Es ist klar, dass der Einsatz auf einer Programmsteuerung beruhen kann. Beispielsweise können während der Spitzenbetriebszeit für dieses PAN gemäß Software-Steuerung mehr Prozessoren verwendet werden oder kann gemäß Steuerung eines Software-Algorithmus entsprechend mehr oder weniger Speicher für ein PAN eingesetzt werden.Certain embodiments use PANs based on software configuration commands. It is clear that the application can be based on program control. For example can while the peak operating time for this PAN according to software control more processors can be used or can be controlled according to a software algorithm accordingly more or less memory can be used for a PAN.

Es ist klar, dass der Umfang der vorliegenden Erfindung nicht auf die obenbeschriebenen Ausführungsformen beschränkt, sondern durch die beigefügten Ansprüche definiert ist; wobei diese Ansprüche Änderungen und Verbesserungen des Beschriebenen umfassen.It is clear that the scope of the present invention is not limited to the above-described embodiments, but is defined by the appended claims; these claims changes and improvements to the Be include written.

ZusammenfassungSummary

Virtuelles Vernetzungssystem und -verfahren in einem Verarbeitungssystem System und Verfahren zur virtuellen Vernetzung (100). Über ein zu Grunde liegendes Punkt-zu-Punkt-Maschennetz wird eine Semantik eines vermittelten lokalen Ethernet-Netzes bereitgestellt. Die Computerprozessorknoten können über virtuelle Schnittstellen über eine Switch Fabric direkt kommunizieren oder können über einen Ethernet-Vermittlungsemulator (115a, 115b) kommunizieren. Um virtuellen Schnittstellen IP-Adressen zuzuordnen, wird eine ARP-Logik (Adressenauflösungsprotokoll-Logik) (135) verwendet, wobei ermöglicht wird, dass Computerprozessoren mit virtuellen MAC-Adressen auf ARP-Anforderungen antworten.
(1)
Virtual networking system and method in a processing system System and method for virtual networking ( 100 ). A semantics of a mediated local Ethernet network is provided via an underlying point-to-point mesh network. The computer processor nodes can communicate directly via virtual interfaces via a switch fabric or can use an Ethernet switching emulator ( 115a . 115b ) communicate. To assign IP addresses to virtual interfaces, ARP logic (address resolution protocol logic) ( 135 ) is used, allowing computer processors with virtual MAC addresses to respond to ARP requests.
( 1 )

Claims (58)

Verfahren zum Emulieren eines vermittelten lokalen Ethernet-Netzes in einer Plattform mit einer Mehrzahl von Computerprozessoren, einer Switch Fabric und Punkt-zu-Punkt-Verbindungen zu den Prozessoren, umfassend: Bereitstellen einer Ethernet-Treiber-Emulationslogik zur Ausführung in wenigstens zwei Computerprozessoren; Bereitstellen einer Vermittlungs-Emulationslogik zur Ausführung in wenigstens einem der Computerprozessoren; Herstellen einer virtuellen Schnittstelle zwischen der Vermittlungs-Emulationslogik und jedem Computerprozessor, in dem eine Ethernet-Treiber-Emulationslogik ausgeführt wird, um eine Software-Kommunikation dazwischen zu ermöglichen, wobei jede virtuelle Schnittstelle über die Switch Fabric einen Software-Kommunikationspfad von einem Computerprozessor zu einem anderen Computerprozessor definiert; Herstellen einer virtuellen Schnittstelle zwischen jedem Computerprozessor, in dem eine Ethernet-Treiber-Emulationslogik ausgeführt wird, und jedem anderen Computerprozessor, in dem eine Ethernet-Treiber-Emulationslogik ausgeführt wird; wobei, falls die virtuelle Schnittstelle zwischen einem Computerprozessor und einem anderen in der Weise arbeitet, dass sie vorgegebene Kriterien erfüllt, die Ethernet-Treiber-Emulationslogik des einen Computerprozessors über eine virtuelle Schnittstelle, die einen Software-Kommunikationspfad dazwischen definiert, von Punkt zu Punkt mit dem anderen Computerprozessor kommuniziert; und falls die virtuelle Schnittstelle zwischen einem Computerprozessor und einem anderen nicht in der Weise arbeitet, dass sie vorgegebene Kriterien erfüllt, die Ethernet-Treiber-Emulationslogik des einen Computerprozessors über eine virtuelle Schnittstelle zu der Vermittlungs-Emulations-Logik, die die Punkt-zu-Punkt-Kommunikation zu dem anderen Computerprozessor überträgt, von Punkt zu Punkt mit dem anderen Computerprozessor kommuniziert.Method for emulating a mediated local Ethernet network in a platform with a plurality of computer processors, a switch fabric and point-to-point connections to the processors, full: Providing Ethernet driver emulation logic for execution in at least two computer processors; Deploy one Switch emulation logic for execution in at least one of the Computer processors; Establish a virtual interface between the switch emulation logic and each computer processor, in which an ethernet driver emulation logic is executed, to enable software communication in between, with each virtual interface via the Switch fabric a software communication path from a computer processor defined to another computer processor; Making one virtual interface between each computer processor in which an ethernet driver emulation logic is running, and each other Computer processor in which an ethernet driver emulation logic accomplished becomes; in which, if the virtual interface between one Computer processor and another works in such a way that it fulfills predetermined criteria, the ethernet driver emulation logic of a computer processor a virtual interface that is a software communication path defined in between, point to point with the other computer processor communicating; and if the virtual interface between one computer processor and another does not work in the way that it meets specified criteria, the ethernet driver emulation logic of a computer processor a virtual interface to the switching emulation logic, which is the point-to-point communication to the other computer processor, point to point with communicates with the other computer processor. Verfahren nach Anspruch 1, bei dem jedem der Computerprozessoren, in denen eine Ethernet-Treiber-Emulationslogik ausgeführt wird, eine virtuelle MAC-Adresse zugeordnet wird, und bei dem die MAC-Adressen gemäß Regeln gebildet werden, die den Computerprozessor als einen der Mehrzahl der Computerprozessoren identifizieren, und von den MAC-Adressen eines externen Netzes verschieden sind.The method of claim 1, wherein each of the computer processors in which an Ethernet driver emulation logic is executed a virtual MAC address is assigned, and in which the MAC addresses according to rules be formed that the computer processor as one of the majority of Identify computer processors, and one of the MAC addresses external network are different. Verfahren nach Anspruch 2, bei dem die Plattform über eine Schnittstellenlogik zur Kommunikation mit einem externen Netz verbunden ist, bei dem der externen Netzschnittstellenlogik ihre eigene MAC-Adresse zugeordnet wird und bei dem die Nachrichten in dem externen Netz unter Verwendung der MAC-Adresse der externen Netzschnittstellenlogik kommuniziert werden.The method of claim 2, wherein the platform via a Interface logic for communication with an external network connected is where the external network interface logic has its own MAC address is assigned and in which the messages in the external network using the MAC address the external network interface logic are communicated. Verfahren nach Anspruch 1, bei dem der erste Prozessor eine erste virtuelle Schnittstelle zur Punkt-zu-Punkt-Kommunikation mit einem zweiten Computerprozessor verwendet, während der zweite Computerprozessor eine andere virtuelle Schnittstelle zur Kommunikation mit dem ersten Computerprozessor verwendet.The method of claim 1, wherein the first processor a first virtual interface for point-to-point communication used with a second computer processor while the second computer processor another virtual interface for communication with the first Computer processor used. Verfahren nach Anspruch 1, bei dem jeder Computerprozessor eine Switch-Fabric-Treiberlogik zur Kommunikation an den Punkt-zu-Punkt-Verbindungen enthält sowie eine Fähigkeit zur Bildung von Prüfsummen enthält, und bei dem die Ethernet-Treiber-Emulationslogik eine Fähigkeit zur Bildung von Prüfsummen enthält, wobei sie diese Bildung von Prüfsummen aber sperrt, falls die Switch-Fabric-Treiberlogik bereits die Prüfsumme einer Nachricht gebildet hat.The method of claim 1, wherein each computer processor switch fabric driver logic Communication on the point-to-point connections includes as well an ability for the creation of checksums contains and where the ethernet driver emulation logic is a capability for the creation of checksums contains taking this formation of checksums but locks if the switch fabric driver logic already the checksum a message. Verfahren nach Anspruch 5, bei dem die Switch-Fabric-Treiberlogik ein zuverlässiges Kommunikationsprotokoll implementiert, um den Empfang von Nachrichten über die Switch Fabric sicherzustellen.The method of claim 5, wherein the switch fabric driver logic a reliable Communication protocol implemented to receive messages over the Ensure switch fabric. Verfahren nach Anspruch 1, bei dem die Switch Fabric und die Punkt-zu-Punkt-Verbindungen in einer redundanten Konfiguration angeordnet sind.The method of claim 1, wherein the switch fabric and the point-to-point connections in are arranged in a redundant configuration. Verfahren nach Anspruch 1, bei dem die Ethernet-Treiber-Emulationslogik eine Nachricht als Rundsendung kommuniziert, indem sie die Nachricht über eine virtuelle Schnittstelle an die Vermittlungsemulationslogik sendet, und bei dem die Vermittlungsemulationslogik eine Rundsendenachricht von einer virtuellen Schnittstelle empfängt und klont und die geklonte Nachricht an andere Computerprozessoren in dem Netz sendet.The method of claim 1, wherein the Ethernet driver emulation logic communicates a message by broadcasting the message to the switch emulation logic through a virtual interface, and wherein the switch emulation logic receives and clones a broadcast message from a virtual interface and clones the clone sends th message to other computer processors on the network. Verfahren nach Anspruch 1, bei dem die Vermittlungsemulationslogik eine Computerprozessormitgliedschaft in einem emulierten Netz definiert und unterhält.The method of claim 1, wherein the switch emulation logic defines a computer processor membership in an emulated network and entertains. Verfahren nach Anspruch 1, bei dem die Ethernet-Treiber-Emulationslogik Nachrichten sendet, die größer als die Größe der maximalen Übertragungseinheit (MTU) sind.The method of claim 1, wherein the Ethernet driver emulation logic is messages sends that larger than the size of the maximum transmission unit (MTU) are. System zum Emulieren eines vermittelten lokalen Ethernet-Netzes, umfassend: eine Mehrzahl von Computerprozessoren; eine Switch Fabric und Punkt-zu-Punkt-Verbindungen zu den Prozessoren; eine virtuelle Schnittstellenlogik zur Herstellung virtueller Schnittstellen über die Switch Fabric und über die Punkt-zu-Punkt-Verbindungen, wobei jede virtuelle Schnittstelle einen Software-Kommunikationspfad von einem Computerprozessor zu einem anderen Computerprozessor über die Switch Fabric definiert; eine Ethernet-Treiber-Emulationslogik, die in wenigstens zwei Computerprozessoren ausgeführt wird; eine Vermittlungsemulationslogik, die in wenigstens einem der Computerprozessoren ausgeführt wird, enthaltend eine Logik zur Herstellung einer virtuellen Schnittstelle zwischen der Vermittlungsemulationslogik und jedem Computerprozessor, in dem die Ethernet-Treiber-Emulationslogik ausgeführt wird, um eine Software-Kommunikation dazwischen zu ermöglichen, eine Logik zum Empfang einer Nachricht von einer der virtuellen Schnittstellen für einen Computerprozessor, in dem eine Ethernet-Treiber-Emulationslogik ausgeführt wird, und zum Senden einer Nachricht zu einem anderen Computerprozessor, in dem eine Ethernet-Treiber-Emulationslogik ausgeführt wird, in Reaktion auf Adressierungsinformationen, die der Nachricht zugeordnet sind; und eine Logik zum Herstellen einer virtuellen Schnittstelle zwischen jedem Computerprozessor, in dem eine Ethernet-Treiber-Emulationslogik ausgeführt wird, und jedem anderen Computerprozessor, in dem eine Ethernet-Treiber-Emulationslogik ausgeführt wird; wobei die Ethernet-Treiber-Emulationslogik von Punkt zu Punkt über eine virtuelle Schnittstelle, die einen Software-Kommunikationspfad dazwischen definiert, mit einem anderen Computerprozessor in dem emulierten Ethernet-Netz kommuniziert, falls die virtuelle Schnittstelle in der Weise arbeitet, dass sie vorgegebene Kriterien erfüllt, während sie von Punkt zu Punkt über die Vermittlungsemulationslogik mit ihm kommuniziert, falls die virtuelle Schnittstelle nicht in der Weise arbeitet, dass sie vorgegebene Kriterien erfüllt.System for emulating a mediated local Ethernet network, comprising: a plurality of computer processors; a Switch fabric and point-to-point connections to the processors; a virtual interface logic for creating virtual interfaces via the Switch fabric and over that Point-to-point connections, each virtual interface a software communication path from a computer processor to another computer processor defines the switch fabric; an Ethernet driver emulation logic, executed in at least two computer processors; a Switch emulation logic that is in at least one of the computer processors accomplished is containing a logic for making a virtual Interface between the switch emulation logic and everyone Computer processor in which the Ethernet driver emulation logic is executed to enable software communication in between, a logic to Receive a message from one of the virtual interfaces for one Computer processor in which an Ethernet driver emulation logic is executed and send a message to another computer processor, in which an ethernet driver emulation logic is executed, in response to addressing information associated with the message are; and logic for establishing a virtual interface between each computer processor in which an ethernet driver emulation logic accomplished and any other computer processor that contains an Ethernet driver emulation logic accomplished becomes; in which the ethernet driver emulation logic from Punkt to point over a virtual interface that is a software communication path defined in between, with another computer processor in the emulated ethernet network communicates if the virtual interface works in such a way that it meets predetermined criteria while it is from point to point over the switch emulation logic communicates with it if the virtual interface does not work in such a way that it is predetermined Criteria met. System nach Anspruch 11, bei dem jedem der Computerprozessoren, in denen eine Ethernet-Treiber-Emulationslogik ausgeführt wird, eine virtuelle MAC-Adresse zugeordnet ist, und bei dem die MAC-Adressen gemäß Regeln gebildet werden, die den Computerprozessor als einen der Mehrzahl der Computerprozessoren identifizieren, und von den MAC-Adressen eines externen Netzes verschieden sind.The system of claim 11, wherein each of the computer processors in which an Ethernet driver emulation logic is executed a virtual MAC address is assigned, and in which the MAC addresses are formed according to rules that the Computer processor as one of the majority of computer processors identify, and are different from the MAC addresses of an external network. System nach Anspruch 12, ferner umfassend eine externe Netzschnittstellenlogik zur Kommunikation mit einem externen Netz, bei dem der externen Netzschnittstellenlogik ihre eigene MAC-Adresse zugeordnet wird und bei dem die Vermittlungsemulationslogik eine Logik zum Senden von Nachrichten an die externe Netzschnittstellenlogik zur Kommunikation in das externe Netz enthält, wobei diese Nachrichten unter Verwendung der MAC-Adresse der externen Netzschnittstellenlogik in das externe Netz kommuniziert werden.The system of claim 12, further comprising an external one Network interface logic for communication with an external network, where the external network interface logic has its own MAC address is assigned and in which the switching emulation logic is a Logic for sending messages to the external network interface logic contains for communication in the external network, these messages using the MAC address of the external network interface logic be communicated in the external network. System nach Anspruch 11, bei dem der erste Prozessor eine erste virtuelle Schnittstelle zur Punkt-zu-Punkt-Kommunikation mit einem zweiten Computerprozessor verwendet, während der zweite Computerprozessor eine andere virtuelle Schnittstelle zur Kommunikation mit dem ersten Computerprozessor verwendet.The system of claim 11, wherein the first processor a first virtual interface for point-to-point communication used with a second computer processor while the second computer processor another virtual interface for communication with the first Computer processor used. System nach Anspruch 11, bei dem der Computerprozessor eine Switch-Fabric-Treiberlogik zur Kommunikation in den Punkt-zu-Punkt-Verbindungen enthält und bei dem die Switch-Fabric-Treiberlogik eine Fähigkeit zur Bildung von Prüfsummen besitzt und bei dem die Ethernet-Treiber-Emulationslogik eine Fähigkeit zur Bildung von Prüfsummen besitzt und eine Logik enthält, die die Bildung von Prüfsummen in der Ethernet-Treiber-Emulationslogik sperrt, falls die Switch-Fabric-Treiberlogik die Prüfsumme einer Nachricht gebildet hat.The system of claim 11, wherein the computer processor switch fabric driver logic for communication in the point-to-point connections and at which has switch fabric driver logic an ability to generate checksums and in which the Ethernet driver emulation logic has a capability for the creation of checksums owns and contains logic which is the formation of checksums locks in the ethernet driver emulation logic if the switch fabric driver logic the checksum a message. System nach Anspruch 15, bei dem die Switch-Fabric-Treiberlogik ein zuverlässiges Kommunikationsprotokoll implementiert, um den Empfang von Nachrichten über die Switch Fabric sicherzustellen.The system of claim 15, wherein the switch fabric driver logic a reliable Communication protocol implemented to receive messages over the Ensure switch fabric. System nach Anspruch 11, bei dem die Switch Fabric und die Punkt-zu-Punkt-Verbindungen in einer redundanten Konfiguration angeordnet sind.The system of claim 11, wherein the switch fabric and the point-to-point connections in are arranged in a redundant configuration. System nach Anspruch 11, bei dem die Ethernet-Treiber-Emulationslogik eine Logik zum Kommunizieren einer Nachricht über Rundsendung enthält, indem sie die Nachricht über eine virtuelle Schnittstelle an die Vermittlungsemulationslogik sendet, und bei dem die Vermittlungsemulationslogik eine Rundsendelogik zum Empfangen und Klonen einer Rundsendenachricht von einer virtuellen Schnittstelle und zum Senden der geklonten Nachricht an andere Computerprozessoren in dem Netz enthält.The system of claim 11, wherein the Ethernet driver emulation logic includes logic for communicating a broadcast message by sending the message to the switch emulation logic via a virtual interface, and wherein the switch emulation logic includes broadcast logic for receiving and cloning a broadcast message from a virtual interface and for sending the cloned message to other computer processors on the network. System nach Anspruch 11, bei dem die Vermittlungsemulationslogik eine Logik zum Definieren und Unterhalten einer Computerprozessormitgliedschaft in einem emulierten Netz enthält.The system of claim 11, wherein the switch emulation logic logic to define and maintain computer processor membership in an emulated network. System nach Anspruch 11, bei dem die Ethernet-Treiber-Emulationslogik eine Logik zum Senden von Nachrichten enthält, die größer als die Größe der maximalen Übertragungseinheit (MTU) sind.The system of claim 11, wherein the Ethernet driver emulation logic contains logic for sending messages that are larger than the size of the maximum transmission unit (MTU) are. Verfahren zum Implementieren des Adressenauflösungsprotokolls (ARP) in einer EDV-Plattform mit einer Mehrzahl von Prozessoren, umfassend: Definieren einer Topologie eines in der EDV-Plattform zu emulierenden Ethernet-Netzes, wobei die Topologie Prozessorknoten und einen Vermittlungsknoten enthält; Zuweisen einer Menge von Prozessoren aus der Mehrzahl als Prozessoren, die als die Prozessorknoten wirken; Zuweisen eines Prozessors, der als der Vermittlungsknoten wirkt; Zuweisen virtueller MAC-Adressen zu jedem Prozessorknoten des emulierten Ethernet-Netzes; Zuordnen virtueller Schnittstellen über ein zu Grunde liegendes physikalisches Netz zur Bereitstellung einer direkten Software-Kommunikation von jedem Prozessorknoten zu jedem anderen Prozessorknoten, wobei jede virtuelle Schnittstelle eine entsprechende Kennung besitzt; wobei ein Prozessorknoten eine ARP-Anforderung an den Vermittlungsknoten kommuniziert, wobei die ARP-Anforderung eine IP-Adresse enthält; der Vermittlungsknoten die ARP-Anforderung an alle anderen Prozessorknoten in dem emulierten Ethernet-Netz kommuniziert; ein Prozessorknoten, dem die IP-Adresse zugeordnet ist, an den Vermittlungsknoten eine ARP-Antwort ausgibt, die die virtuelle MAC-Adresse des der IP-Adresse zugeordneten Prozessorknotens enthält; der Vermittlungsknoten die ARP-Antwort empfängt und sie in der Weise ändert, dass sie eine virtuelle Schnittstellenkennung für eine virtuelle Schnittstelle enthält, die der Prozessorknoten, der die ARP-Anforderung ausgibt, für die nachfolgende Kommunikation mit dem Prozessorknoten, dem die IP-Adresse zugeordnet ist, verwenden soll.Method for implementing the address resolution protocol (ARP) in a computer platform with a plurality of processors, full: Define a topology in the IT platform Ethernet network to be emulated, the topology being processor nodes and contains a switching node; Allocate a lot of processors from the majority as processors acting as the processor nodes Act; Assign a processor that acts as the switch node acts; Assign virtual MAC addresses to each processor node the emulated Ethernet network; Assign virtual interfaces via a underlying physical network to provide a direct software communication from every processor node to everyone other processor nodes, with each virtual interface one has the corresponding identifier; in which a processor node a ARP request communicates to the switching node, the ARP request contains an IP address; the switching node sends the ARP request to all other processor nodes communicates in the emulated Ethernet network; a processor node, to which the IP address is assigned, one at the switching node ARP response that outputs the virtual MAC address associated with the IP address Processor node contains; the Switching node receives the ARP response and changes it in such a way that it contains a virtual interface identifier for a virtual interface that the processor node that issues the ARP request for the subsequent one Communication with the processor node to which the IP address is assigned is to use. Verfahren nach Anspruch 21, bei dem das zu Grunde liegende physikalische Netz ein Punkt-zu-Punkt-Maschennetz ist, das die Mehrzahl der Prozessoren verbindet.A method according to claim 21, in which the basis lying physical network is a point-to-point mesh network, that connects the majority of processors. Verfahren nach Anspruch 21, bei dem eine Teilmenge der Prozessoren als ein Cluster organisiert ist und bei dem einer der Prozessoren in dem Cluster ein Lastverteilungs-Prozessorknoten ist und bei dem, wenn irgendein Prozessor in dem Cluster eine ARP-Anforderung ausgibt, der Vermittlungsknoten die ARP-Antwort in der Weise ändert, dass sie die virtuelle Schnittstellenkennung für den Lastverteilungs-Prozessorknoten enthält.22. The method of claim 21, wherein a subset the processors are organized as a cluster and one of the processors in the cluster is a load balancing processor node and when any processor in the cluster makes an ARP request outputs, the switching node changes the ARP response in such a way that the virtual interface identifier for the load balancing processor node contains. Verfahren nach Anspruch 21, bei dem der Vermittlungsknoten in Kommunikation mit einem externen IP-Netz steht und bei dem der Akt des Kommunizierens einer ARP-Antwort das Identifizieren, dass die ARP-Antwort von einem Prozessorknoten in der Plattform kommt, enthält.22. The method of claim 21, wherein the switching node is in communication with an external IP network and in which the Act of communicating an ARP response identifying that the ARP response comes from a processor node in the platform, contains. Adressenauflösungsprotokollsystem (ARP-System), umfassend: eine EDV-Plattform mit einer Mehrzahl von Prozessoren, die durch ein zu Grunde liegendes physikalisches Netz verbunden sind; eine Logik, die in einem der Prozessoren ausführbar ist, um eine Topologie eines in der EDV-Plattform zu emulierenden Ethernet-Netzes zu definieren, wobei die Topologie Prozessorknoten und einen Vermittlungsknoten enthält; eine Logik, die in einem der Prozessoren ausführbar ist, um eine Menge von Prozessoren aus der Mehrzahl zuzuweisen, die Prozessoren sind, die als die Prozessorknoten wirken; eine Logik, die in einem der Prozessoren ausführbar ist, um jedem Prozessorknoten des emulierten Ethernet-Netzes eine virtuelle MAC-Adresse zuzuweisen; eine Logik, die in einem der Prozessoren ausführbar ist, um virtuelle Schnittstellen über das zu Grunde liegende physikalische Netz zuzuordnen, so dass eine direkte Software-Kommunikation von jedem Prozessorknoten zu jedem anderen Prozessorknoten bereitgestellt wird, wobei jede virtuelle Schnittstelle eine entsprechende Kennung besitzt; wobei jeder Prozessorknoten eine ARP-Anforderungslogik besitzt, um eine ARP-Anforderung an den Vermittlungsknoten zu kommunizieren, wobei die ARP-Anforderung eine IP-Adresse enthält; der Vermittlungsknoten eine ARP-Anforderungs-Rundsendelogik enthält, um die ARP-Anforderung an alle anderen Prozessorknoten in dem emulierten Ethernet-Netz zu kommunizieren; jeder Prozessorknoten eine ARP-Antwortlogik besitzt, um zu bestimmen, ob er der Prozessorknoten ist, dem die IP-Adresse in einer ARP-Anforderung zugeordnet ist, und um eine ARP-Antwort an den Vermittlungsknoten auszugeben, wenn das der Fall ist, wobei die ARP-Antwort die virtuelle MAC-Adresse des Prozessorknotens enthält, dem die IP-Adresse zugeordnet ist; der Vermittlungsknoten eine ARP-Antwortlogik enthält, um die ARP-Antwort zu empfangen und sie in der Weise zu ändern, dass sie eine virtuelle Schnittstellenkennung für den ARP-Anforderungsknoten enthält.Address resolution protocol system (ARP system), full: an IT platform with a plurality of processors, connected by an underlying physical network are; logic that is executable in one of the processors, a topology of an Ethernet network to be emulated in the IT platform to define, with the topology processor node and a switching node contains; a Logic that is executable in one of the processors to a lot of Assign processors from the plurality that are processors that act as the processor nodes; a logic that is in one of the Processors is executable, a virtual one around each processor node of the emulated Ethernet network Assign MAC address; a logic in one of the processors is executable, around virtual interfaces assign the underlying physical network so that a direct Software communication from every processor node to every other Processor node is provided, each virtual interface has a corresponding identifier; in which  every processor node has ARP request logic around an ARP request to the switch node communicate, the ARP request containing an IP address; the Switching node contains an ARP request broadcast logic to the ARP request to all other processor nodes in the emulated Ethernet network to communicate; each processor node one ARP response logic to determine if it is the processor node to which the IP address is assigned in an ARP request, and to issue an ARP response to the switch node if that is the case where the ARP response is the virtual MAC address of the Processor node contains to which the IP address is assigned; the switching node one ARP response logic contains to receive the ARP response and change it in such a way that it contains a virtual interface identifier for the ARP request node. System nach Anspruch 25, bei dem das zu Grunde liegende physikalische Netz ein Punkt-zu-Punkt-Maschennetz ist, das die Mehrzahl der Prozessoren verbindet.The system of claim 25, wherein the underlying physical network is a point-to-point mesh network that the majority of Processors connects. System nach Anspruch 25, bei dem eine Teilmenge der Prozessoren als ein Cluster organisiert ist und bei dem einer der Prozessoren in dem Cluster ein Lastverteilungs-Prozessorknoten ist und bei dem der Vermittlungsknoten eine Logik enthält, um zu erfassen, ob eine ARP-Antwort von einem Prozessorknoten von irgendeinem Prozessor in dem Cluster kommt, und um die ARP-Antwort in der Weise zu ändern, dass sie die virtuelle Schnittstellenkennung für den Lastverteilungs-Prozessorknoten enthält, wenn das der Fall ist.The system of claim 25, wherein a subset the processors are organized as a cluster and one of the processors in the cluster is a load balancing processor node and in which the switching node contains logic to detect whether an ARP response from a processor node from any Processor comes in the cluster, and around the ARP response in the way to change, that they are the virtual interface identifier for the load balancing processor node contains if that's the case. System nach Anspruch 25, bei dem der Vermittlungsknoten in Kommunikation mit einem externen IP-Netz steht und bei dem die ARP-Antwortlogik des Prozessorknotens eine Logik enthält, um zu identifizieren, dass die ARP-Antwort von einem Prozessorknoten in der Plattform kommt.The system of claim 25, wherein the switching node is in communication with an external IP network and in which the ARP response logic of the processor node contains logic to identify that the ARP response from a processor node in the platform comes. Plattform für die Computerverarbeitung, umfassend: eine Mehrzahl von Computerprozessoren, die mit einem internen Kommunikationsnetz verbunden sind; wenigstens einen Steuerknoten in Kommunikation mit einem externen Kommunikationsnetz und mit einem externen Ablagenetz, das einen externen Ablage adressenraum besitzt, und wobei der wenigstens eine Steuerknoten mit dem internen Netz verbunden ist und dadurch in Kommunikation mit der Mehrzahl der Computerprozessoren steht; eine Konfigurationslogik, um ein virtuelles Verarbeitungsbereichsnetz zu definieren und herzustellen mit: einer entsprechenden Menge von Computerprozessoren aus der Mehrzahl der Prozessoren, einem virtuellen lokalen Kommunikationsnetz, das eine Kommunikation unter der Menge der Computerprozessoren bereitstellt, während es diejenigen Prozessoren aus der Mehrzahl, die nicht in der definierten Menge sind, ausschließt, und einem virtuellen Speicherraum mit einer definierten Entsprechung zu dem Adressenraum des Ablagenetzes.Platform for computer processing, comprising: a plurality of computer processors, connected to an internal communication network; at least a control node in communication with an external communication network and with an external filing network that addresses an external filing space has, and wherein the at least one control node with the internal Is connected and thereby in communication with the majority of the Computer processors stands; a configuration logic to a Define and manufacture a virtual processing area network with: a corresponding set of computer processors from the majority of processors, a virtual local communication network that provides communication among the crowd of computer processors, while there are those processors from the majority that are not in the defined amount are excludes and a virtual storage space with a defined correspondence to the address space of the filing network. Plattform nach Anspruch 29, bei der der Steuerknoten über das interne Kommunikationsnetz Kommunikationsnachrichten empfängt, die an Entitäten in dem externen Kommunikationsnetz adressiert sind, und bei der der Steuerknoten eine Logik enthält, die Nachrichten, die den empfangenen Nachrichten entsprechen, in dem externen Kommunikationsnetz bereitstellt.The platform of claim 29, wherein the control node is via the internal communication network receives communication messages that of entities are addressed in the external communication network, and at the control node contains logic that Messages that correspond to the messages received in the provides external communication network. Plattform nach Anspruch 29, bei der der Steuerknoten über das externe Kommunikationsnetz Kommunikationsnachrichten empfängt, die an Entitäten in der Plattform adressiert sind, und bei der der Steuerknoten eine Logik enthält, die Nachrichten, die den empfangenen Nachrichten entsprechen, für die adressierten Entitäten bereitstellt.The platform of claim 29, wherein the control node is via the external communication network receives communication messages that of entities are addressed in the platform, and at which the control node is a Logic contains the messages that correspond to the received messages for the addressed ones entities provides. Plattform nach Anspruch 29, bei der die Computerprozessoren und der Steuerknoten eine Netzemulationslogik enthalten, um über das interne Kommunikationsnetz die Ethernet-Funktionalität zu emulieren.The platform of claim 29, wherein the computer processors and the control node includes network emulation logic to communicate over the internal communication network to emulate the ethernet functionality. Plattform nach Anspruch 32, bei der das interne Kommunikationsnetz eine Punkt-zu-Punkt-Switch-Fabric ist.The platform of claim 32, wherein the internal Communication network is a point-to-point switch fabric. Plattform nach Anspruch 29, bei der das interne Kommunikationsnetz eine redundante Verdrahtung umfasst, die die Computerprozessoren und den wenigstens einen Steuerknoten mit redundanten Switch Fabrics verbindet.The platform of claim 29, wherein the internal Communication network includes redundant wiring that the Computer processors and the at least one control node with a redundant switch Fabrics connects. Plattform nach Anspruch 34 mit wenigstens einem weiteren Steuerknoten, der mit der Verdrahtung verbunden ist, um redundante Steuerknoten zu bilden.The platform of claim 34 having at least one another control node connected to the wiring to form redundant control nodes. Plattform nach Anspruch 29, bei der der Steuerknoten über das interne Kommunikationsnetz Ablagenachrichten von den Computerprozessoren empfängt und bei der der Steuerknoten eine Logik enthält, um aus einer empfangenen Ablagenachricht eine Adresse zu entnehmen, die die definierte entsprechende Adresse in dem externen Ablageadressenraum identifiziert und die Nachrichten, die den empfangenen Ablagenachrichten entsprechen und die die entsprechende Adresse besitzen, in dem externen Ablagenetz bereitstellt.The platform of claim 29, wherein the control node is via the internal communication network filing messages from computer processors receives and the control node includes logic to extract from a received one Filing message to extract an address that corresponds to the defined one Address in the external filing address space identified and the Messages that correspond to the received filing messages and that have the appropriate address in the external filing network. Plattform nach Anspruch 36, bei der der Steuerknoten eine Logik enthält, um die Daten, die den von dem Computerprozessor empfangenen Schreibnachrichten entsprechen, zu puffern und die gepufferten Daten in der entsprechenden in dem externen Ablagenetz bereitgestellten Nachricht bereitzustellen.The platform of claim 36, wherein the control node contains logic the data representing the write messages received by the computer processor correspond to buffer and the buffered data in the corresponding to provide message provided in the external filing network. Plattform nach Anspruch 36, bei der der Steuerknoten Ablagenachrichten von dem externen Ablagenetz enthält und bei der der Steuerknoten eine Logik enthält, um einen entsprechenden Computerprozessor oder Steuerknoten zu identifizieren, für den die empfangene Nachricht eine Antwort ist, und um eine entsprechende Nachricht für den identifizierten Prozessor oder Steuerknoten bereitzustellen.The platform of claim 36, wherein the control node Contains filing messages from the external filing network and at the control node contains logic to match a corresponding one Identify computer processor or control node for which the received message is a reply, and a corresponding one Message for to provide the identified processor or control node. Verfahren zum Einsetzen eines virtuellen Verarbeitungsbereichsnetzes, das die folgenden Schritte umfasst: Bereitstellen einer Plattform mit einer Mehrzahl von Computerprozessoren und mit wenigstens einen Steuerknoten, der mit einem internen Kommunikationsnetz verbunden ist, und bei der der Steuerknoten in Kommunikation mit einem externen Kommunikationsnetz und mit einem externen Ablagenetz ist, das einen externen Ablageadressenraum besitzt, Definieren einer entsprechenden Menge von Computerprozessoren für das virtuelle Verarbeitungsnetz, Herstellen eines virtuellen lokalen Kommunikationsnetzes, das eine Kommunikation unter der Menge der Computerprozessoren bereitstellt, während es diejenigen Prozessoren aus der Mehrzahl, die nicht in der definierten Menge sind, ausschließt, Definieren einer Entsprechung zwischen einem virtuellen Ablageraum des virtuellen Verarbeitungsnetzes und dem Adressenraum des Ablagenetzes.A method for deploying a virtual processing area network, comprising the following steps: providing a platform with a plurality of computer processors and with at least one control node which is connected to an internal communication onsnetz is connected, and in which the control node is in communication with an external communication network and with an external filing network, which has an external filing address space, defining a corresponding amount of computer processors for the virtual processing network, establishing a virtual local communication network that communicates under the Provides set of computer processors while excluding those processors from the plurality that are not in the defined set, defining a correspondence between a virtual storage space of the virtual processing network and the address space of the storage network. Verfahren nach Anspruch 39, bei dem der Steuerknoten über das interne Kommunikationsnetz Kommunikationsnachrichten empfängt, die an Entitäten in dem externen Kommunikationsnetz adressiert sind, und bei dem der Steuerknoten Nachrichten, die den empfangenen Nachrichten entsprechen, in dem externen Kommunikationsnetz bereitstellt.A method according to claim 39, wherein the control node via the internal communication network receives communication messages that of entities are addressed in the external communication network, and in which the control node messages which correspond to the received messages, in the external communication network. Verfahren nach Anspruch 39, bei dem der Steuerknoten über das externe Kommunikationsnetz Kommunikationsnachrichten empfängt, die an Entitäten in der Plattform adressiert sind, und bei dem der Steuerknoten Nachrichten, die den empfangenen Nachrichten entsprechen, für die adressierten Entitäten bereitstellt.A method according to claim 39, wherein the control node via the external communication network receives communication messages that of entities are addressed in the platform and where the control node messages, which correspond to the received messages for the addressed entities. Verfahren nach Anspruch 39, bei dem die Computerprozessoren und der Steuerknoten über das interne Kommunikationsnetz eine Ethernet-Funktionalität emulieren.The method of claim 39, wherein the computer processors and the control node over that internal communication network emulate an ethernet functionality. Verfahren nach Anspruch 42, bei dem das interne Kommunikationsnetz eine Punkt-zu-Punkt-Switch-Fabric ist und bei dem die Emulation der Ethernet-Funktionalität über die interne Punkt-zu-Punkt-Switch-Fabric bereitgestellt wird.The method of claim 42, wherein the internal Communication network is a point-to-point switch fabric and at the emulation of the Ethernet functionality via the internal point-to-point switch fabric provided. Verfahren nach Anspruch 39, bei dem die Computerprozessoren über eine redundante Verdrahtung kommunizieren, die die Computerprozessoren und den wenigstens einen Steuerknoten verbindet.The method of claim 39, wherein the computer processors have a redundant wiring that communicate the computer processors and connects the at least one control node. Verfahren nach Anspruch 44 mit wenigstens einem weiteren Steuerknoten, der mit der Verdrahtung verbunden ist, um redundante Steuerknoten zu bilden.The method of claim 44 with at least one another control node connected to the wiring to form redundant control nodes. Verfahren nach Anspruch 39, bei dem der Steuerknoten über das interne Kommunikationsnetz Ablagenachrichten von den Computerprozessoren empfängt und bei dem der Steuerknoten aus einer empfangenen Ablagenachricht eine Adresse entnimmt, die definierte entsprechende Adresse in dem externen Ablageadressenraum identifiziert und Nachrichten, die den empfangenen Ablagenachrichten entsprechen und die die entsprechende Adresse besitzen, in dem externen Ablagenetz bereitstellt.A method according to claim 39, wherein the control node via the internal communications network receives and receives filing messages from the computer processors in which the control node from a received filing message Address takes the defined corresponding address in the external Filing address space identifies and messages that are received Correspond to filing messages and have the corresponding address, in the external filing network. Verfahren nach Anspruch 46, bei dem der Steuerknoten Daten, die den von einem Computerprozessor empfangenen Schreibnachrichten entsprechen, puffert und die gepufferten Daten in der entsprechenden Nachricht bereitstellt, die für das externe Ablagenetz bereitgestellt wird.The method of claim 46, wherein the control node Data that corresponds to the write messages received by a computer processor correspond, buffers and the buffered data in the corresponding Providing message for the external filing network is provided. Verfahren nach Anspruch 46, bei dem der Steuerknoten Ablagenachrichten von dem externen Ablagenetz empfängt und bei dem der Steuerknoten einen entsprechenden Computerprozessor oder Steuerknoten identifiziert, für den die empfangende Nachricht eine Antwort ist, und eine entsprechende Nachricht für den identifizierten Prozessor oder Steuerknoten bereitstellt.The method of claim 46, wherein the control node Receives filing messages from the external filing network and in which the control node has a corresponding computer processor or control node for which the receiving message is identified is an answer, and a corresponding message for the identified Provides processor or control node. Plattform für die Computerverarbeitung, die mit einem externen Kommunikationsnetz und mit einem Ablagenetz verbunden werden kann und die umfasst: eine Mehrzahl von Computerprozessoren, die mit einem internen Kommunikationsnetz verbunden sind; eine Konfigurationslogik, um zu definieren und herzustellen: (a) ein virtuelles lokales Kommunikationsnetz über das interne Netz, bei dem jeder Computerprozessor in dem virtuellen lokalen Kommunikationsnetz eine entsprechende virtuelle MAC-Adresse besitzt und bei dem das virtuelle lokale Netz eine Kommunikation unter einer Menge von Computerprozessoren bereitstellt, während es diejenigen Prozessoren aus der Mehrzahl, die nicht in der definierten Menge sind, ausschließt, und (b) einen virtuellen Ablageraum mit einer definierten Entsprechung zu dem Adressenraum des Ablagenetzes; eine Ausfallsicherungslogik, die auf einen Ausfall eines Computerprozessors reagiert, um einen Computerprozessor aus der Mehrzahl zuzuordnen, so dass er den ausgefallenen Prozessor ersetzt, wobei die Ausfallsicherungslogik eine Logik enthält, die die MAC-Adresse des ausgefallenen Prozessors dem Prozessor zuweist, der den ausgefallenen Prozessor ersetzt, eine Logik enthält, die den virtuellen Ablageraum und die definierte Entsprechung des ausgefallenen Prozessors dem Prozessor zuweist, der den ausgefallenen Prozessor ersetzt, und eine Logik enthält, die das virtuelle lokale Netz wiederherstellt, so dass es den Prozessor enthält, der den ausgefallenen Prozessor ersetzt, während es den ausgefallenen Prozessor ausschließt.Platform for computer processing using an external communication network and can be connected to a filing network and includes: a Plurality of computer processors connected to an internal communication network are connected; a configuration logic to define and manufacture: (a) a virtual local communication network through the internal network where every computer processor in the virtual local communication network a corresponding virtual MAC address owns and in which the virtual local network communicates deployed under a lot of computer processors while it those processors from the majority that are not defined in the Amount are excludes and (b) a virtual storage space with a defined correspondence to the address space of the filing network; failover logic, that responds to a failure of a computer processor Assign computer processor from the majority, so that it is the failed Processor replaced, the failover logic includes logic that assigns the MAC address of the failed processor to the processor, that replaces the failed processor contains logic that the virtual storage room and the defined equivalent of the failed Processor assigns the processor that the failed processor replaced, and contains logic which restores the virtual local area network so that it is the processor contains which replaces the failed processor while it replaces the failed Processor excludes. Plattform nach Anspruch 49, bei der die Konfigurationslogik virtuelle Schnittstellen herstellt, um Software-Kommunikationspfade unter den Prozessoren des virtuellen Netzes zu definieren, und bei der die Ausfallsicherungslogik eine Logik enthält, die virtuelle Schnittstellen von den Prozessoren in dem virtuellen Netz zu dem Prozessor herstellt, der den ausgefallen Prozessor ersetzt.The platform of claim 49, wherein the configuration logic creates virtual interfaces to define software communication paths among the processors of the virtual network, and wherein the failover logic includes logic that virtual interfaces from the processors in the vir current network to the processor that replaces the failed processor. Plattform nach Anspruch 49, bei der die Konfigurationslogik ein zweites virtuelles lokales Netz aus einer zweiten Menge von Computerprozessoren und einem zweiten virtuellen Ablageraum mit einer definierten Entsprechung zu dem Ablagenetzadressenraum herstellt und bei der die Ausfallsicherungslogik bewirkt, dass der Prozessor, der den ausgefallenen Prozessor ersetzt, die Personalität des virtuellen lokalen Netzes und der virtuellen Ablage des ausgefallenen Prozessors erbt.The platform of claim 49, wherein the configuration logic a second virtual local area network from a second set of Computer processors and a second virtual storage room with produces a defined correspondence to the filing network address space and where the failover logic causes the processor to which replaces the failed processor, the personality of the virtual local network and the virtual filing of the failed processor inherits. Verfahren zur Computerverarbeitung in einer Plattform mit einer Mehrzahl von Computerprozessoren, die mit einem internen Kommunikationsnetz verbunden sind, umfassend: Definieren und Herstellen eines virtuellen lokalen Kommunikationsnetzes über das interne Netz, in dem jeder Computerprozessor in dem virtuellen lokalen Kommunikationsnetz eine entsprechende virtuelle MAC-Adresse besitzt und in dem das virtuelle lokale Netz eine Kommunikation unter einer Menge von Computerprozessoren bereitstellt, während es diejenigen Prozessoren aus der Mehrzahl, die nicht in der definierten Menge sind, ausschließt; Definieren und Herstellen eines virtuellen Ablageraums mit einer definierten Entsprechung zu dem Adressenraum des Ablagenetzes; in Reaktion auf einen Ausfall eines Computerprozessors, Zuordnen eines Computerprozessors aus der Mehrzahl, um den ausgefallenen Prozessor zu ersetzen, einschließlich Zuweisen der MAC-Adresse des ausgefallenen Prozessors zu dem Prozessor, der den ausgefallenen Prozessor ersetzt, Zuweisen des virtuellen Ablageraums und der definierten Entsprechung des ausgefallenen Prozessors zu dem Prozessor, der den ausgefallenen Prozessor ersetzt, und Wiederherstellen des virtuellen lokalen Netzes, so dass es den Prozessor enthält, der den ausgefallenen Prozessor ersetzt, während es den ausgefallenen Prozessor ausschließt.Computer processing methods in a platform with a plurality of computer processors that work with an internal Communication network, comprising: Define and Establish a virtual local communication network via the internal network in which each computer processor in the virtual local Communication network has a corresponding virtual MAC address and in which the virtual local area network communicates under one Lot of computer processors while providing those processors excludes from the majority that are not in the defined amount; Define and creating a virtual storage space with a defined one Correspondence to the address space of the filing network; in reaction on a failure of a computer processor, assigning a computer processor the majority to replace the failed processor, including assignments the MAC address of the failed processor to the processor that the failed processor replaced, allocating the virtual storage space and the defined correspondence of the failed processor the processor to replace the failed processor and restore of the virtual local area network so that it contains the processor that replaced the failed processor while it replaced the failed Processor excludes. Verfahren nach Anspruch 52, bei dem beim Herstellen eines virtuellen lokalen Netzes virtuelle Schnittstellen hergestellt werden, die Software-Kommunikationspfade unter den Prozessoren des virtuellen Netzes definieren, wobei, wenn ein Prozessor einen ausgefallenen Prozessor ersetzt, virtuelle Schnittstellen zu dem Prozessor hergestellt werden, der den ausgefallenen Prozessor ersetzt.53. The method of claim 52, wherein in manufacturing of a virtual local area network the software communication paths among the processors of the define virtual network, where if a processor has a failed Processor replaced, virtual interfaces to the processor established to replace the failed processor. Verfahren nach Anspruch 52, bei dem ein zweites virtuelles lokales Netz mit einer zweiten Menge von Computerprozessoren und mit einem zweiten virtuellen Ablageraum mit einer definierten Entsprechung zu dem Ablagenetz-Adressenraum hergestellt wird und bei dem, wenn ein Prozessor ausfällt, derjenige Prozessor, der den ausgefallenen Prozessor ersetzt, die Personalität des virtuellen lokalen Netzes und der virtuellen Ablage des ausgefallenen Prozessors erbt.The method of claim 52, wherein a second virtual local area network with a second set of computer processors and with a second virtual storage room with a defined one Correspondence to the filing network address space is established and where if a processor fails, the processor that replaces the failed processor, the personality the virtual local network and the virtual filing of the failed Processor inherits. System zum Bereitstellen eines durch eine IP-Adresse adressierten Dienstes, umfassend: wenigstens zwei Computerprozessoren, die jeweils eine Logik enthalten, um den Dienst bereitzustellen; eine Cluster-Logik, die eine Anforderungsnachricht für den Dienst empfängt, wobei die Nachrichten die IP-Adresse besitzen, und die die Anforderung an einen der wenigstens zwei Computerprozessoren verteilt, der eine Logik zum Bereitstellen des Dienstes besitzt.System for providing one by an IP address addressed service, including: at least two computer processors, each containing logic to provide the service; a Cluster logic that receives a request message for the service, wherein the messages have the IP address and the request distributed to one of the at least two computer processors, the one Has logic to provide the service. System nach Anspruch 55, bei dem die Logik, die verteilt, eine Logik enthält, die bei der Bestimmung, welcher Prozessor die Nachricht bedienen sollte, die Quellinformationen in einer ankommenden Nachricht analysiert.The system of claim 55, wherein the logic that distributed, contains logic, in determining which processor should serve the message the source information is analyzed in an incoming message. Verfahren zur Bereitstellung eines durch eine IP-Adresse adressierten Dienstes, umfassend: Aufnehmen einer Logik, die den Dienst in jedem der wenigstens zwei Computerprozessoren bereitstellt; Empfangen einer Anforderungsnachricht für den Dienst, wobei die Nachricht die IP-Adresse besitzt, und Verteilen der Anforderung an einen der wenigstens zwei Computerprozessoren, der eine Logik zum Bereitstellen des Dienstes besitzt.Procedure for providing one by an IP address addressed service, including: Incorporating a logic that provides the service in each of the at least two computer processors; Receive a request message for the service, where the message has the IP address, and distribute the request to one of the at least two computer processors, which has logic to provide the service. Verfahren nach Anspruch 57, bei dem die Quellinformationen einer ankommenden Nachricht analysiert werden, um zu bestimmen, welcher Prozessor die Nachricht bedienen soll.The method of claim 57, wherein the source information an incoming message can be analyzed to determine which processor should serve the message.
DE10296675T 2001-04-20 2002-04-16 Virtual networking system and method in a processing system Withdrawn DE10296675T5 (en)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US28529601P 2001-04-20 2001-04-20
US60/285,296 2001-04-20
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/037,191 US20030130832A1 (en) 2002-01-04 2002-01-04 Virtual networking system and method in a processing system
US10/038,354 US7174390B2 (en) 2001-04-20 2002-01-04 Address resolution protocol system and method in a virtual network
US10/038,355 US6971044B2 (en) 2001-04-20 2002-01-04 Service clusters and method in a processing system with failover capability
US10/038,353 2002-01-04
US10/038,355 2002-01-04
PCT/US2002/011827 WO2002086712A1 (en) 2001-04-20 2002-04-16 Virtual networking system and method in a processing system

Publications (1)

Publication Number Publication Date
DE10296675T5 true DE10296675T5 (en) 2004-04-22

Family

ID=27534612

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10296675T Withdrawn DE10296675T5 (en) 2001-04-20 2002-04-16 Virtual networking system and method in a processing system

Country Status (6)

Country Link
EP (1) EP1388057A4 (en)
JP (1) JP2005506726A (en)
CN (1) CN1290008C (en)
CA (1) CA2444066A1 (en)
DE (1) DE10296675T5 (en)
WO (1) WO2002086712A1 (en)

Families Citing this family (60)

* Cited by examiner, † Cited by third party
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
EP1476834A1 (en) 2002-02-07 2004-11-17 Thinkdynamics Inc. Method and system for managing resources in a data center
US7145472B2 (en) 2002-05-24 2006-12-05 Baker Hughes Incorporated Method and apparatus for high speed data dumping and communication for a down hole 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
US7757033B1 (en) 2004-02-13 2010-07-13 Habanero Holdings, Inc. Data exchanges among SMP physical partitions and I/O interfaces enterprise servers
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
US7860097B1 (en) 2004-02-13 2010-12-28 Habanero Holdings, Inc. Fabric-backplane enterprise servers with VNICs and VLANs
US7633955B1 (en) 2004-02-13 2009-12-15 Habanero Holdings, Inc. SCSI transport for fabric-backplane enterprise servers
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
US7843906B1 (en) 2004-02-13 2010-11-30 Habanero Holdings, Inc. Storage gateway initiator for 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
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
US7685281B1 (en) 2004-02-13 2010-03-23 Habanero Holdings, Inc. Programmatic instantiation, provisioning and management of 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
US7990994B1 (en) 2004-02-13 2011-08-02 Habanero Holdings, Inc. Storage gateway provisioning and configuring
US7561571B1 (en) 2004-02-13 2009-07-14 Habanero Holdings, Inc. Fabric address and sub-address resolution in fabric-backplane enterprise servers
US7843907B1 (en) 2004-02-13 2010-11-30 Habanero Holdings, Inc. Storage gateway target for fabric-backplane enterprise servers
US7873693B1 (en) 2004-02-13 2011-01-18 Habanero Holdings, Inc. Multi-chassis 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
CN100407823C (en) * 2004-11-10 2008-07-30 中兴通讯股份有限公司 A communication system internal node addressing and initialization method
US8086755B2 (en) 2004-11-29 2011-12-27 Egenera, Inc. Distributed multicast system and method in a network
JP4462024B2 (en) 2004-12-09 2010-05-12 株式会社日立製作所 Failover method by disk takeover
US8254285B2 (en) * 2005-02-25 2012-08-28 Ip Infusion, Inc. Hardware abstraction layer
US7586936B2 (en) * 2005-04-01 2009-09-08 International Business Machines Corporation Host Ethernet adapter for networking offload in server environment
CN100393060C (en) * 2005-04-01 2008-06-04 中兴通讯股份有限公司 A data communication method inside a device
KR100528171B1 (en) * 2005-04-06 2005-11-15 스콥정보통신 주식회사 Ip management method and apparatus for protecting/blocking specific ip address or specific device on network
CN100450080C (en) 2005-05-17 2009-01-07 华为技术有限公司 Method and device for converging layer 2 MAC address
JP4701929B2 (en) 2005-09-02 2011-06-15 株式会社日立製作所 Boot configuration change method, management server, and computer system
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
US7912062B2 (en) * 2007-09-28 2011-03-22 Genband Us Llc Methods and apparatus for managing addresses related to virtual partitions of a session exchange device
JP4488077B2 (en) 2008-02-29 2010-06-23 日本電気株式会社 Virtualization system, virtualization method, and virtualization program
US8817656B2 (en) * 2008-04-08 2014-08-26 Cisco Technology, Inc. Discovery for fibre channel over ethernet devices
US9106540B2 (en) * 2009-03-30 2015-08-11 Amazon Technologies, Inc. Providing logical networking functionality for managed computer networks
CN101616042B (en) * 2009-08-04 2012-09-05 中兴通讯股份有限公司 Network equipment simulator and method for sending, receiving and transmitting data
CN102118259B (en) * 2009-12-30 2013-06-05 华为技术有限公司 Method and device for creating Ethernet route
JP5316616B2 (en) * 2011-09-16 2013-10-16 株式会社日立製作所 Business takeover method, computer system, and management server
US9231846B2 (en) 2011-11-22 2016-01-05 Microsoft Technology Licensing, Llc Providing network capability over a converged interconnect fabric
CN102624597B (en) * 2012-03-09 2014-12-17 北京邮电大学 Two-way sequencing virtual network mapping method
US20140040477A1 (en) * 2012-07-31 2014-02-06 F5 Networks, Inc. Connection mesh in mirroring asymmetric clustered multiprocessor systems
US9575782B2 (en) * 2013-10-13 2017-02-21 Nicira, Inc. ARP for logical router
US9417831B2 (en) 2014-03-05 2016-08-16 Tricerat Method and system of providing computer network based limited visibility service discovery
US9893988B2 (en) 2014-03-27 2018-02-13 Nicira, Inc. Address resolution using multiple designated instances of a logical router
US10225184B2 (en) 2015-06-30 2019-03-05 Nicira, Inc. Redirecting traffic in a virtual distributed router environment
CN106559322B (en) * 2015-09-25 2019-09-20 北京计算机技术及应用研究所 A security protection gateway based on multi-Loongson parallel processing architecture
JP6383112B2 (en) * 2015-09-25 2018-08-29 株式会社東芝 Control device
EP3300331B1 (en) 2016-07-14 2019-11-20 Huawei Technologies Co., Ltd. Response method, apparatus and system in virtual network computing authentication, and proxy server
CN109088953B (en) * 2017-06-14 2022-02-25 中兴通讯股份有限公司 Method and device for Linux gateway proxy to convert IP
TWI889632B (en) * 2018-08-23 2025-07-01 美商阿爾克斯股份有限公司 System for host routed overlay with deterministic host learning and localized integrated routing and bridging
CN112445319B (en) * 2019-08-16 2025-02-07 广东电网有限责任公司广州供电局 Power distribution room operation method and device, electronic equipment, and computer-readable storage medium
CN111432044B (en) * 2020-03-17 2021-10-15 腾讯科技(深圳)有限公司 Multi-link device MAC address management method, device and multi-link device
CN113296926B (en) * 2020-05-29 2022-06-21 阿里巴巴集团控股有限公司 Resource allocation method, computing device and storage medium
US12093716B2 (en) * 2021-06-15 2024-09-17 Hewlett Packard Enterprise Development Lp Method and system for deploying a production system in a virtualized environment
US12170642B2 (en) * 2021-09-14 2024-12-17 Dell Products L.P. Managing failover between information handling systems
CN114240442B (en) * 2021-12-01 2025-08-29 北京达佳互联信息技术有限公司 Resource transfer data verification method, device, electronic device and storage medium
CN115460039B (en) * 2022-08-17 2023-07-11 珠海高凌信息科技股份有限公司 High-capacity TDM switching system and method based on logic network and storage medium
FR3148340A1 (en) * 2023-04-27 2024-11-01 Thales Decentralized process for interconnecting N devices
CN117729172A (en) * 2024-02-18 2024-03-19 成都深瑞同华科技有限公司 A data transmission method, device and storage medium in an isolated network environment
CN120596412B (en) * 2025-08-07 2025-10-21 苏州元脑智能科技有限公司 Node communication method, electronic device and storage medium

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03148940A (en) * 1989-11-06 1991-06-25 Hitachi Ltd Interconnection method between LAN and 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 (en) * 1996-09-11 1999-11-10 日本電気通信システム株式会社 Virtual group information management method in network-connected bridge device
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

Also Published As

Publication number Publication date
WO2002086712A1 (en) 2002-10-31
EP1388057A4 (en) 2009-07-01
CA2444066A1 (en) 2002-10-31
CN1290008C (en) 2006-12-13
EP1388057A1 (en) 2004-02-11
JP2005506726A (en) 2005-03-03
CN1520550A (en) 2004-08-11

Similar Documents

Publication Publication Date Title
DE10296675T5 (en) Virtual networking system and method in a processing system
US7174390B2 (en) Address resolution protocol system and method in a virtual network
US7231430B2 (en) Reconfigurable, virtual processing system, cluster, network and method
US7305581B2 (en) Service clusters and method in a processing system with failover capability
US20030130832A1 (en) Virtual networking system and method in a processing system
DE112011100822B4 (en) Maintaining the transmission of a data transmission path in a data storage network
DE60019640T2 (en) Digital computer system and method for answering requests received over an external network
DE69837938T2 (en) OVERALL EDUCATION OF SERVER CLUSTERS BY A NETWORK FLOW TRANSMISSION
DE112004002797B4 (en) Failover and load balancing
DE69832744T2 (en) System and method for automatic dynamic ring address changes
DE69812777T2 (en) Connection of Ethernet compatible networks
DE60122782T2 (en) ADDRESSING METHOD AND SYSTEM FOR USE OF ANYCAST ADDRESS
DE60212626T2 (en) FINAL NODE DISTRIBUTION BY LOCAL IDENTIFIERS
EP1482711A2 (en) Virtual networking system and method in a processing system
DE112008001682B4 (en) Storage area network with detection on the target side and upload of a routing table
DE60318878T2 (en) METHOD AND SYSTEMS FOR EXCHANGE OF ACCOUNTABILITY INFORMATION AND FOR SWITCHING BETWEEN REDUNDANT INTERFACES IN A NETWORK CLUSTER
DE69636663T2 (en) System and method for access distribution of multiple storage matrixes between multiple host systems
DE60026231T2 (en) Method and apparatus for performing a quick service lookup in a network group
US6445704B1 (en) Method and apparatus for virtualizing a locally initiated outbound connection from a connection manager
DE112013004187B4 (en) Technology for network data transmission through a computer system using at least two communication protocols
DE60025129T2 (en) Method and apparatus for providing scalable services using a packet distribution table
DE112008003966T5 (en) Selective re-mapping of a network topology
DE112013007296T5 (en) Determining a suitable target for an initiator by a controller-level processor
DE10124514A1 (en) Communication mechanism for error-tolerant system resource e.g. network-data file system for high-availability communication has system resource services for clients
DE10394206T5 (en) Data communication load distribution control program and data load distribution control method

Legal Events

Date Code Title Description
8141 Disposal/no request for examination