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;
2A–C 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;
3A–B 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;
4A–C 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 2A–B 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 4A–C 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 4B–C 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 4B–C 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 )