-
Die
Erfindung bezieht sich auf vernetzte Computersysteme. Insbesondere
bezieht sich die Erfindung auf ein Verfahren und System, einschließlich eines
Ersatzbetriebssystems, zum Bündeln
mehrerer Verbindungen zwischen einem Schalter und einem Server.
-
Mit
zunehmender Verwendung vernetzter Computersysteme entstand auch
das Erfordernis, eine zusätzliche
Bandbreite bereitzustellen, um den elektronischen Verkehr in dem
Netzwerk zu handhaben. Beispielsweise kann eine unzureichende Bandbreite
dazu führen,
dass Daten in der Pipeline zwischen einem Klienten und einem Server
einen Stillstand erfahren. Dieser Stillstand kann die Leistungsfähigkeit
eines Netzwerks stark einschränken.
-
Netzwerkschnittstellenkarten
(NIC) sind die Zusätze,
die verwendet werden, um einen Server oder jegliche Rechenvorrichtung
mit einem Netzwerk zu verbinden. Derartige NICs umfassen z.B. Ethernet-Karten oder
Token-Ring-Karten, die man in einen Desktop-Computer oder Server
einsteckt. Die NIC implementiert die physische spätere Signalgebung
und die Medienzugriffssteuerung (MAC – Media Access Control) für einen
an ein Netzwerk angeschlossenen Computer. Ein Hinzufügen zusätzlicher
NICs zu einem Computer schließt
den Computer effektiv mehrere Male an ein Netzwerk an. Dies erhöht proportional
die potenzielle Bandbreite in das Netzwerk.
-
Belastungsausgleich
ist eine Technik, die verwendet wird, um Datenengpässe, die
durch ein überlastetes
Kommunikationsnetzwerk verursacht werden, zu verringern. Bei einem
Belastungsausgleich wird der Verkehr zwischen einem Server und einem
Netzwerk über
mehrere NICs ausgeglichen. Ein derartiger Belastungsausgleich erfordert üblicherweise
eine Software und einen Brücken-
oder Ethernet-Schalter zwischen dem Server und dem bzw. den Klienten.
Eine Belastungsausgleichssoftware, z.B. BALANCE.NLM von Network
Specialists, Inc., Lyndhurst, NJ, und SWITCH.NLM von Kalpana, Sunnyvale,
CA, ist in Form eines NetWare-ladbaren Moduls (NLM) erhältlich.
Diese Software wird für
Server verwendet, auf denen eine NetWare-NOS-Software von Novell,
Inc. läuft.
-
Einen
Belastungsausgleich liefert ferner eine Fehlertoleranz, was eine
Datenkommunikation zwischen dem Server und dem Netzwerk im Fall
einer Störung
in einer Datenverbindung aufrechterhält. Bei einem „Ersatzbetrieb"-System übernimmt
z.B. eine sekundäre
Verbindung die Last, wenn die Hauptverbindung ausfällt, so
dass eine Signalkontinuität
aufrechterhalten wird.
-
1 ist
ein schematisches Diagramm eines Ersatzbetriebssystems 10 gemäß dem Stand
der Technik, bei dem Daten zwischen dem Server 12 und den
Klienten 22 über
einen generischen Schalter 24 übertragen werden. Mehrere Verbindungen 18, 20 verbinden
den Schalter mit dem Server 12. Softwaretreiber 16 steuern
die Übertragung
von Daten zu und von dem Server über
diese Verbindungen. Wenn z.B. eine NIC oder ein Netzwerkkabel ausfällt, wird
der Verkehr zwischen dem Server und dem Netzwerk an andere funktionierende Verbindungen
weitergeleitet. Jede NIC weist eine zugeordnete MAC-Adresse auf,
die benötigt
wird, damit die NIC Pakete in dem Netzwerk empfangen kann. Bei 1 weisen
die NICs für
Verbindungen 18 und 20 jeweils unterschiedliche
MAC-Adressen auf, die mit „A" und „A'" bezeichnet sind. Zu einem bestimmten
Zeitpunkt ist immer nur eine dieser NICs aktiv. An der Bereitschafts-NIC
(A') sind keine
Klienten angeschlossen. Wenn die Haupt-NIC (A) ausfällt, nimmt
die Bereitschafts-NIC
somit gemäß dem Serverprotokoll 14 ihre
Adresse an.
-
„Bündeln" ist ein weiteres
Schema zum Erhöhen
der Bandbreite für
den Server. 2 ist ein schematisches Diagramm
eines Bündelungssystems 28 gemäß dem Stand
der Technik, bei dem Daten über
einen generischen Schalter 24 zwischen dem Server und den
Klienten 22 übertragen
werden. Eine Bündelung
wird bei mehreren Schnittstellen zwischen Server/Netzwerk verwendet.
Bei 2 verbinden mehrere Verbindungen 18, 26 den
Schalter mit dem Server. Die MAC-Adressen,
die mit „A" und „B" bezeichnet sind,
sind für
jede der NICs, die den Verbindungen 18, 26 zugeordnet
ist, unterschiedlich. Die Softwaretreiber 16 steuern den
Datenfluss durch diese Verbindungen zu und von dem Server. Eine
Verwendung mehrerer Netzwerkschnittstellen kann zu einer komplexen
Systemkonfiguration führen.
Ein Bündeln
minimiert diese Komplexität,
indem es den Klienten in dem Netzwerk den Server als einzelne Entität präsentiert.
Bei einer idealen Bündelungskonfiguration
werden mehrere Schnittstellen in dem Server dem Server ebenfalls
als einzelne Schnittstelle präsentiert.
-
Üblicherweise
weist ein Server drei Adressierungsebenen auf. Die erste Ebene ist
ein Name, oft eine ASCII-Zeichenkette
wie z.B. „Server1". Die zweite Adressierungsebene
ist die Netzwerkadresse, z.B. eine IP-Adresse wie z.B. „111.22.33.44". Die dritte Ebene
ist die MAC-Adresse. Verschiedene Softwareebenen in dem Klienten
identifizieren den Server anhand dieser unterschiedlichen Adressen.
-
Üblicherweise
wird eine Adresse einer höheren
Ebene in einen einzelnen Fall der Adresse auf der nächstniedrigeren
Ebene abgebildet. Beispielsweise bildet ein Name in eine einzelne
IP-Adresse ab, die in eine einzelne MAC-Adresse abbildet. Bei Anwendungen,
die ein Bündeln
verwenden, werden mehrere Fälle eines
Adressierens zur nächstniedrigeren
Ebene implementiert. Diese mehreren Fälle müssen in eine einzelne Oberschichtadresse
abgebildet werden. Diese Abbildungsfunktion wird durch die Netzwerkprotokolle 14 durchgeführt. Wenn
ein Klient z.B. den Namen des Servers hat, mit dem er verbunden
werden soll, jedoch nicht die Adresse des IP-Servers hat, ruft er
ein Adressauflösungsprotokoll
an, um die IP-Adresse des Servers zu bestimmen. Somit besteht eine
Funktion der Protokolle darin, eine Unterschichtadres se aufzulösen, wenn
die Adresse bei einer nächsthöheren Schicht
gegeben ist. Diese Protokolle sind üblicherweise Anforderungs-/Antwortprotokolle.
-
Ein
Bündeln
beinhaltet ein Identifizieren eines Abschnitts in dem Klient-Zu-Server-Kommunikationsprozess,
bei dem eine Abbildung durchgeführt
werden kann, um es einem einzelnen Server zu ermöglichen, mehrere Netzwerkschnittstellen
zu verwenden. Diese Abbildung kann an einem von zwei Punkten während des
Klient-zu-Server-Kommunikationsprozesses durchgeführt werden,
indem Adressauflösungsprotokolle
verwendet werden. Beispielsweise umfasst eine Abbildung eines Servernamens
auf eine Netzwerkebenenadresse Domain Name Services (DNS) und NetBIOS-Namensauflösung; und
eine Abbildung einer Netzwerkebenenadresse auf eine MAC-Adresse
umfasst ein Adressauflösungsprotokoll
(ARP – Address
Resolution Protocol) und eine allgemeine Serveranfrage/Anfrage in
Bezug auf den nächstliegenden
Server (GSQ/NSQ – General
Server Query/Nearest Server Query). DNS und ARP sind Internet-Protokolle, während GSQ/NSQ
ein Protokoll von Novell, Inc. ist.
-
Bei
einer Abbildung auf einer niedrigeren Ebene gibt es mehr Gelegenheiten
für NICs
und Schalter, sich an dem Bündelungsprozess
zu beteiligen. Beispielsweise unterstützt eine BALANCE.NLM-Bündelung jegliche
Dritt-NIC oder jeglichen Dritt-Schalter. Für jede NIC für eine einzelne
Netzwerkadresse wird eine separate Medienadresssteuerung-Adresse (MAC-Adresse)
verwendet. BALANCE.NLM erfordert einen hohen Zusatzaufwand an Software,
und sein Fehlertoleranzschema stützt
sich auf eine Unterstützung
auf höherer Ebene
oder auf fallengelassene Verbindungen.
-
Der
BALANCE.NLM-Treiber erfasst Informationen, die während des Abbildungsprozesses
von der Netzwerkadresse zu der MAC-Adresse erzeugt werden, um zu „schwindeln". Der Begriff „Schwindeln" (Spoofing) bezieht
sich darauf, einen Prozess auf eine solche Weise durchzuführen, dass
es scheint, als würde
der Prozess auf eine standardmäßige Weise
durchgeführt,
obwohl der Prozess tatsächlich
auf eine nicht-standardmäßige Weise
durchgeführt
wurde. Im Fall von BALANCE.NLM scheint es einem Klienten, dass er
die MAC-Adresse
empfängt,
die auf die Netzwerkadresse des Servers abbildet. Ferner erscheint
es dem Klienten, als gebe es lediglich eine derartige MAC-Adresse,
wie es normalerweise wahr ist. Tatsächlich beschwindelt die Software
den normalen Prozess, indem sie ermöglicht, dass mehrere MAC-Adressen verwendet
werden.
-
Schalter-/NIC-Koordinationsschemata
unterstützen
keine Dritt-NICs oder -Schalter. Ein geringes Maß an zusätzlicher Software ist für den Treiber
in der ausgehenden (sendenden) Richtung erforderlich. In der eingehenden
(empfangenden) Richtung ist keine Software erforderlich. Der Server
wählt über eine
einfache Funktion auf der Zieladresse eine Ausgangsverbindung aus.
Der Schalter wählt
die Bündelverbindung
zu dem Server auf der Basis derselben Funktion an der Quellenadresse
aus. Wenn die Verbindung in dem Bündel ausfällt, ist die Verbindbarkeit
nicht verloren. Bei einem derartigen Schema wird für alle NICs
dieselbe MAC-Adresse verwendet. Somit kann das NIC-Treiber-Zu-Schalter-Protokoll
entworfen sein, um eine Autokonfiguration zu ermöglichen.
-
Ein
weiteres Bündelungsschema
verwendet einen Schalter als NIC-Karte oder implementiert einen Schalter
in Software unter Verwendung mehrerer NIC-Karten. Bei diesem Schema
liegt eine einzige MAC-Adresse für
eine Serveridentifizierung von Klienten vor. Das Netzwerkbetriebssystem
behandelt den Schalter als NIC. Die richtige Ausgangsverbindung
zum Liefern eines Verkehrs an Klienten wird durch die Schalterkarte
gelöst.
Dieses Schema erfordert entweder ein Umschalten von NICs oder erfordert
einen beträchtlichen
Server-Zusatzaufwand.
Bei einem derartigen Schema wird eine Spanning-Tree-Konfiguration
verwendet, um in Fall eines Ersatzbetriebs eine Fehlertoleranz zu
liefern. Ein Schalteradressabbildungsschema kann zum Verringern
des Software- Zusatzaufwands
verwendet werden. Ein derartiges Schema unterstützt Dritt-NICs. Ein Schaltersoftwaremodul
ist erforderlich, um zu dem Schalter zu kommunizieren. Der Schalter
ist aktiv an dem Adressauflösungsprozess
beteiligt und führt
einen Belastungsausgleich durch, indem er eine Klientenanfrage mit
einer Adresse beantwortet, die einen Belastungsausgleich unterstützen sollte.
Ferner muss der Servertreiber einen Belastungsausgleich auf der
Basis der Lade- oder
der Zieladresse durchführen.
-
Jedoch
sind die bekannten Verfahren zum Installieren mehrerer NICs in einen
Server schwierig zu entwerfen und weisen verschiedene Probleme auf,
die sich aus den erforderlichen komplizierten Software- und Hardwarekonfigurationen
ergeben. Beispielsweise erfordern Abbildungsschemata auf höherer Ebene,
z.B. BALANCE.NLM, einen Treiber auf einem höheren Intelligenzniveau. Ferner
stützt
sich das BALANCE.NLM-Fehlertoleranzschema
auf eine Unterstützung
auf höherer
Ebene oder auf fallengelassene Verbindungen. BALANCE.NLM-Klienten werden ferner
insofern beschwindelt, als es erscheint, dass sie die einzige MAC-Adresse
empfangen, die auf die Netzwerkadresse des Servers abbildet, wenn
in Wirklichkeit mehrere MAC-Adressen verwendet werden. Dies kann
zu einer für
den Klienten verwirrenden Darstellung des Servers führen.
-
Wenn
mehrere NICs in standardmäßige Server
von Novell, Inc., oder Microsoft NT installiert werden, weist jede
NIC eine eindeutige MAC-Adresse auf. Diese eindeutige MAC-Adresse bildet auf
eine eindeutige IP- oder IPX-Netzwerkadresse
ab, die dann auf einen Servernamen abbildet. Ein Server, der zwei
NICs aufweist, weist auch zwei Namen und zwei Netzwerkadressen auf.
Dies ist komplex und für
den Netzwerkadministrator eventuell verwirrend. Wenn eine der NICs
ausfällt,
werden alle Klienten, die über
diese NIC mit dem Server verbunden sind, getrennt. Die Klienten
müssen
den Namen und die Netzwerkadresse der anderen NIC haben, um eine
Verbindung wiederherzustellen. Dies kann einen anderen Netzwerkpfad
als bei der anderen NIC erfordern. Zusätzlich kann die Verwendung
derartiger mehrerer Namen und Adressen für einen einzigen Server eine
Fehlertoleranz beeinträchtigen
oder sogar verhindern.
-
Wenn
mehrere NICs in einem Server installiert sind, ist in dem Server
eine spezielle Softwareschicht erforderlich, um den mehreren NICs
der Servernetzwerksoftware gegenüber
das Erscheinungsbild einer einzelnen NIC zu verleihen. Jedoch erscheinen
die mehreren ICs den Klienten nicht als eine einzelne IC, da jede NIC
ihre eindeutige MAC-Adresse aufweist. Diese eindeutigen MAC-Adressen
werden dem Klienten und den Schaltern bereitgestellt.
-
Die
Verwendung eines Schalters als NIC-Karte oder ein Umschalten in
Software erfordert Redundanzprotokolle (z.B. Spanning-Trees) und
erhöht
die Kosten. Das Schalterabbildungsunterstützungsbündelungsschema erfordert ein
hohes Intelligenzniveau in dem Schalter. Überdies können die bekannten Schemata
eine spezielle Hardwareunterstützung
auf der Serverseite sowie einen Server mit einem höheren Intelligenzniveau erfordern.
-
Somit
wäre es
ein Vorteil, ein Verfahren und System zum Unterstützen mehrerer
NICs in einem Server zu liefern, wobei derartige NICs sowohl für Klienten
als auch für
die höheren
Schichten der internen Serversoftware als eine einzige NIC betrachtet
werden. Es wäre
ein weiterer Vorteil, wenn ein solches Verfahren und System eine
Fehlertoleranz unterstützte.
Es wäre
ein weiterer Vorteil, wenn ein derartiges Verfahren und System die
Bandbreite erhöhte,
ohne eine Neukonfiguration des Servers zu erfordern.
-
Die
US-A-5,517,488 offenbart ein Computersystem, bei dem Hostsystem
mit einer Mehrzahl von Klientensystemen kommuniziert. Die Klientensysteme
führen
eine Nachrichtenübertragung
durch, ohne sich der Existenz von dazwischenliegenden LAN-Adaptern
für das
Hostsystem bewusst zu sein. Logische Adressen für das Hostsystem werden entsprechend
den physischen Adressen der LAN-Adapter eingestellt, und eine Willkürliche wird
ausgewählt,
die als logische Quellenadresse eingestellt wird, wenn das Hostsystem
eine Nachricht an eines der Klientensysteme sendet.
-
Die
Erfindung liefert ein Verfahren und System zum Bündeln mehrerer Verbindungen
zwischen einem Schalter und einem Server. Ein Merkmal, das die Erfindung
vom Stand der Technik unterscheidet, ist die Kombination von Schalterhardware
und Servertreibersoftware. Die Erfindung liefert sowohl ein Bündelungssystem als
auch ein Ersatzbetriebssystem, das eine aktive Schalterbeteiligung
an dem Server-NIC-Treiber während eines
Belastungsausgleichs aufweist.
-
Bei
der Erfindung werden zusätzliche
NICs oder Mehrtor-NICs in einen Server installiert. Die Treiber in
dem Server erkennen die zusätzlichen
NICs und konfigurieren jede zusätzliche
NIC automatisch, eine Angehörige
einer Gruppe zu sein, die NICs umfassen kann, die bereits in dem
Server installiert sind. Es ist keine zusätzliche Umkonfiguration des
Servers erforderlich, um die zusätzlichen
NICs hinzuzufügen.
Eine dünne Softwareschicht,
die als „Treiberklemmstück" bezeichnet wird,
liegt über
den Treibern, um zu bewirken, dass die Gruppe von NICs dem Netzwerkbetriebssystem
und den Klienten in dem Netzwerk als eine einzelne NIC erscheint.
-
Die
Erfindung unterstützt
mehrere NICs, die dieselbe MAC-Adresse
aufweisen, indem sie an mehreren Toren erscheinen. Die NICs in der
Gruppe sind direkt mit einem Schalter verbunden, der die Gruppe
als einzelnes logisches Tor, d.h. Bündel, erkennt. Die NICs in
der Gruppe fungieren als mehrere Verbindungen, um die Verkehrbelastung
zu den Klienten auszugleichen. Jede NIC verwendet dieselbe MAC-Adresse
für die Netzwerkschnittstelle.
-
Der
Treiber und der Schalter untersuchen die MAC-Adressfelder, um eine Verbindung auszuwählen. Wenn
ein Verkehr von einem Klienten an dem Server ankommt, führt der
Schalter an dem Datenpaket, das den Verkehr überträgt, einen deterministischen
Algorithmus aus. Auf einen Empfang eines Pakets hin identifiziert
der Schalter die Zieladresse in der Adresstabelle. Der entsprechende
Eintrag gibt eine Liste möglicher Tore,
die verwendet werden können,
um den Server zu erreichen, und ein Flag, das angibt, dass der Server über diese
gebündelte
Gruppe von Toren zu erreichen ist, zurück. Der Schalter wählt dann
auf der Basis der Quellenadresse in dem Paket ein Tor in dieser
Gruppe aus. Der Algorithmus betrachtet die Quellenadresse in dem
Paket und wählt
eine der Verbindungen in der Gruppe aus.
-
Der
Treiber in dem Server führt
denselben deterministischen Algorithmus an dem Bündel zu den Klienten, jedoch
an der Zieladresse aus. Die Serversoftware, einschließlich des
Treiberklemmstücks,
gibt der Gruppe von NICs das Erscheinungsbild einer einzelnen NIC
und führt
auf der Basis der Zieladresse einen Belastungsausgleich durch. Bei
einem alternativen Ausführungsbeispiel
der Erfindung wird ein monolithischer Treiber, der für eine NIC
eines Verkäufers
spezifisch ist, verwendet, um der Gruppe von NICs das Erscheinungsbild
einer einzelnen NIC zu verleihen.
-
Das
bevorzugte Ausführungsbeispiel
der Erfindung unterstützt
ein Fehlertoleranzmerkmal. Bei einem ersten bevorzugten Ausführungsbeispiel
der Erfindung ist ein einzelner Schalter über mehrere NIC-Verbindungen
mit einem Server verbunden. Die Verbindungen zu dem Server sind
als Bündel
konfiguriert, bei dem der Belastungsausgleichsalgorithmus die Quellenadresse
der Klienten verwendet, um eine Verbindung auszuwählen.
-
Die
mehreren NICs in dem Server programmieren ihre MAC-Adressen so, dass
sie auf allen Schnittstellen dieselben sind. Somit wird dieselbe
MAC-Adresse, die als Quellenad resse des Servers verwendet wird, dem
Schalter für
die mehreren NIC-Tore bereitgestellt. Wenn ein Klient ein Paket über eine
Zentralstation an den Server sendet, wählt der Schalter eines der
mehreren Tore aus, indem er die MAC-Adresse des Klienten betrachtet.
-
Bei
einem zweiten Ausführungsbeispiel
der Erfindung ist der Server über
mehrere NIC-Verbindungen mit einer Mehrzahl von Schaltern verbunden.
Eine Schalter-Zu-Schalter-Verbindung verbindet die Schalter direkt
miteinander. Ein Klient kann über
jeden Pfad des Baumes ein Paket an den Server senden. Jedoch ist
es vorzuziehen, dass ein Klient denselben Pfad für eine bestimmte Datenkommunikation
verwendet. Die Erfindung kann unter Verwendung einer beliebigen
Anzahl von Schaltern oder Verbindungen, die durch das Netzwerk und
den Server unterstützt
werden, implementiert sein.
-
Bei
einer bekannten generischen IEEE-802.1D-Brücke schlägt ein Schalter eine Ziel-MAC-Adresse
in der Adresstabelle nach, um das entsprechende Ausgangstor für ein Paket
zu finden. Diese Tabelle wird durch den Lernprozess des Betrachtens
der Quellen-MAC-Adressen in empfangenen Paketen erstellt. Wenn ein Schalter
ein Paket an einem bestimmten Tor empfängt, kann er davon ausgehen,
dass der Host, der das Paket sandte, ebenfalls Pakete von diesem
Tor empfangen kann. Der Schalter notiert das Eingangstor für ein empfangenes
Paket und aktualisiert anschließend
die Adresstabelle mit diesen Informationen.
-
Falls
die Adresstabelle bereits einen Eintrag für die Quellen-MAC-Adresse enthält, sollten
das Tor in der Adresstabelle und das Tor, durch das das Paket empfangen
wurde, dasselbe sein. Wenn die Tore nicht identisch sind, geht man
davon aus, dass die MAC-Adresse umgezogen ist. Dieser Umzugshinweis
erzeugt eine Umzugsbedingung, die durch die Software, die die Adresstabelle
verwaltet, identifiziert wird. Die Adresstabelle sollte mit dem
neuen Tor, zu dem die MAC-Adresse vermutlich gezogen ist, aktualisiert
werden.
-
Für einen
Schalter, der eine Bündelung
unterstützt,
ist es möglich,
dass dieselbe Quellen-MAC-Adresse für Pakete identifiziert wird,
die von einer beliebigen Anzahl von Toren in der Gruppe empfangen
werden. Es ist nicht wünschenswert,
kontinuierlich eine Umzugsbedingung zu erzeugen oder die Adresstabelle
zu aktualisieren. Wenn mehrere NICs in einem Server an ein Netzwerk
angeschlossen sind und diese NICs dieselbe MAC-Adresse verwenden,
ist es möglich,
Pakete mit dieser MAC-Adresse als Quellen-MAC-Adresse an vielen Toren
zu empfangen. Somit liefert die Erfindung ein Schema, das den Effekt
der Schalter-Zu-Schalter-Verbindung auf die Rückgabe derartiger Pakete von
dem Server an den Klienten abmildert und das dadurch bewirkte Unterbrechungen
in dem Server im Wesentlichen verhindert.
-
Bei
diesem Schema wird ermöglicht,
dass der Schalter die Umzugsunterbrechung sogar dann ignoriert,
wenn das Tor, wo die Adresse gesendet wurde, nicht in der Gruppe
von Bündeltoren
vorliegt. Ein Flag für die
MAC des Servers ist in der Adresstabelle des Schalters enthalten.
Das Flag benachrichtigt den Schalter, dass es akzeptabel ist, zu
sehen, dass die MAC-Adresse des Servers an mehreren Toren erscheint.
Der Schalter wird angewiesen, den Systembetreiber nicht davon zu
benachrichtigen, dass die Adresse umgezogen ist.
-
1 ist
ein schematisches Diagramm eines Ersatzbetriebssystems gemäß dem Stand
der Technik;
-
2 ist
ein schematisches Diagramm eines Bündelungssystems gemäß dem Stand
der Technik;
-
3 ist
ein schematisches Diagramm eines Bündelungs- und Ersatzbetriebssystems mit einer
Schalterbeteiligung gemäß der Erfindung;
-
4 ist
ein schematisches Diagramm eines Schalters, der ein Verbindungsebenenbündelungssystem
gemäß der Erfindung
umfasst;
-
5 ist
ein schematisches Diagramm des Verbindungsebenenserver-/schalterbündelungssystems gemäß einem
ersten bevorzugten Ausführungsbeispiel
der Erfindung; und
-
6 ist
ein schematisches Diagramm des Verbindungsebenenserver-/schalterbündelungssystems gemäß einem
zweiten Ausführungsbeispiel
der Erfindung.
-
Die
Erfindung liefert ein Verfahren und System zum Bündeln mehrerer Verbindungen
zwischen einem Schalter und einem Server. Ein Merkmal, das die Erfindung
vom Stand der Technik unterscheidet, ist die Kombination von Schalterhardware
und Servertreibersoftware. Die Erfindung liefert sowohl ein Bündelungssystem als
auch ein Ersatzbetriebssystem, das eine aktive Schalterbeteiligung
an dem Server-NIC-Treiber während eines
Belastungsausgleichs aufweist.
-
3 ist
ein schematisches Diagramm eines Bündelungs- und Ersatzbetriebssystems 30,
das eine Schalterbeteiligung gemäß der Erfindung
aufweist. Bei der Erfindung sind zusätzliche Verbindungen 38, 40 vorgesehen,
für die
NICs oder Mehrtor-NICs in einem Server 32 installiert sind.
Eine Mehrtor-NIC ist eine NIC, die mehrere Netzwerkanbindungen aufweist.
Die Anzahl von NICs in einem System wird durch die Anzahl von Schlitzen
in dem Server und die Anzahl von Toren an dem Schalter begrenzt.
Eine Mehrtor-NIC bietet den Vorteil, dass sie weniger Serverbuchtschlitze
verwendet, um dem Netzwerk mehrere Anbindungen zu liefern. Es ist
keine zusätzliche
Hardware- oder Softwarekonfiguration erforderlich, um derartige
Mehrtor-NICs zu verwenden.
-
Die
Treiber 36 in dem Server erkennen die zusätzlichen
NICs und konfigurieren jede zusätzliche
NIC automatisch so, dass sie eine Angehörige einer Gruppe ist, die
NICs umfassen kann, die bereits in dem Server installiert sind.
Eine dünne
Softwareschicht, als „Treiberklemmstück" 46 bezeichnet,
liegt über
den Treibern 36. Das Treiberklemmstück verleiht der Gruppe von
NICs dem Netzwerkbetriebssystem gegenüber das Erscheinungsbild einer
einzelnen NIC (NOS – network
operating system). Überdies
erscheint die Gruppe den Klienten 42 in dem Netzwerk als
eine einzelne NIC.
-
Wenn
ein Klient versucht, die MAC-Adresse für die einzelne Netzwerkadresse
des Servers aufzulösen,
empfängt
er in jeglichem Schema immer dieselbe MAC-Adresse. Bei den oben
erörterten
bekannten Schemata kann der Klient eine andere MAC-Adresse empfangen.
Wenn eine NIC, die eine dieser anderen MAC-Adressen aufweist, ausfällt bzw.
fehlschlägt,
schlagen alle Klientenverbindungen mit dem Server über diese
NIC ebenfalls fehl. Der Klient muss dann die Netzwerkadresse zu
einer MAC-Adressabbildung erneut lernen. Dies ist bei der Erfindung
nicht notwendig, da an allen NICs dieselbe MAC-Adresse verwendet
wird.
-
Die
NICs in der Gruppe sind direkt mit einem Schalter 44 verbunden,
der die Gruppe als einzelnes logisches Tor, d.h. Bündel, behandelt.
Diese Konfiguration erfordert, dass der Server direkt an den Schalter
angebunden ist. Die NICs in der Gruppe fungieren als mehrere Verbindungen,
um die Verkehrsbelastung zu den Klienten auszugleichen.
-
Schalter
treffen Schaltentscheidungen allgemein auf der Basis der Zieladresse
eines Datenpakets. Jedoch verwendet jede NIC bei der Erfindung dieselbe
MAC-Adresse für
die Netzwerkschnittstelle. Die MAC-Schnittstelle ist die Schnittstelle
zwischen der Netzwerkanbindung (NIC) und dem Computer, anhand derer
Informationen in dem Netzwerk gesendet und empfangen werden. Die
MAC implementiert ein Protokoll, das den Computer an das Netzwerk
anbindet. Die MAC-Schnittstelle
versieht die NIC mit einem Mechanismus zum Transferieren von Informationen
in die und aus der MAC. Die MAC-Schnittstelle ist in dem IEEE-Dokument
802.2 beschrieben.
-
Die
Erfindung unterstützt
mehrere NICs, die dieselbe MAC-Adresse
aufweisen, die jedoch an unterschiedlichen Toren erscheinen. Bei
der Erfindung implementiert ein Schalter einen (nachstehend erläuterten) deterministischen
Algorithmus, der Pakete an eine Adresse an den Bündelverbindungen weiterleitet.
Wenn ein Klient ein Paket an den Server sendet, ist die Ziel-MAC-Adresse
in dem Paket die Adresse des Servers, und die Quellenadresse ist
die Adresse des Klienten. Auf einen Empfang des Pakets hin schlägt der Schalter
die Zieladresse in der Adresstabelle nach. Da die Ziel-MAC-Adresse die des Servers
ist, liegt in der Tabelle ein Eintrag für den Server vor. Dieser Eintrag
gibt eine Liste möglicher
Tore, die verwendet werden können,
um den Server zu erreichen, und ein Flag, das angibt, dass der Server über diese
gebündelte
Gruppe von Toren erreicht werden kann, zurück. Der Schalter wählt anschließend auf
der Basis der Quellenadresse in dem Paket ein Tor in dieser Gruppe
aus.
-
Das
Flag lenkt den Schalter auf eine Tabelle von N Einträgen, wobei
N eine Potenz von zwei ist, bis zu einer maximalen Größe von N=2M=248. Die Tabelle
enthält üblicherweise
25 Einträge.
Die Quellen-MAC-Adresse des Pakets wird verwendet, um einen Index
in diese Tabelle zu berechnen. Die niedrigsten M Bits der Quellen-MAC-Adresse
werden verwendet, um einen Eintrag in die Tabelle zu berechnen.
Da 2M=N, werden die niedrigsten M Bits als
direkter Index in die Tabelle genommen. Der Eintrag in der Tabelle
ist die Tornummer, an die das Paket weitergeleitet wird.
-
Wenn
die Tabelle beispielsweise 32 Einträge enthält, gilt M=5. Wenn vier Tore
vorliegen (Tore 1-4), die zu dem Server gebündelt sind, weist die Tabelle
von 32 Einträgen
die Zahlen 1-4 gleichmäßig verteilt
als Einträge
in der Tabelle auf. Die Nummern können auf jede akzeptable Weise
gleichmäßig über die
Tabelle hinweg verteilt sein. Wenn ein Paket für die Server-MAC-Adresse, die
durch eines dieser Tore erreichbar ist, empfangen wird, werden die
niedrigsten fünf
Bits in der MAC-Adresse des Klienten verwendet, um direkt in die
Tabelle zu indexieren. Die an dem Tabellenindex gefundene Tornummer
ist das Tor, an das das Paket weitergeleitet wird.
-
An
dem Bündel
zu den Klienten führt
der Treiber 36 in dem Server denselben deterministischen
Algorithmus durch, jedoch an den Zieladressen. Die Serversoftware,
einschließlich
des Treiberklemmstücks,
verleihen der Gruppe von NICs das Erscheinungsbild einer einzelnen
IC und führen
auf der Basis der Zieladresse gemäß dem Serverprotokoll 34 einen
Belastungsausgleich durch.
-
Der
Algorithmus wird durch das Treiberklemmstück ausgeführt, um ein Tor in der Bündelgruppe
in dem Schalter für
an den Server adressierte Pakete auszuwählen. Die Bits der niedrigen
Order in der Ziel-MAC-Adresse werden verwendet, um in die Tabelle
zu indexieren. Dies stellt eine bedeutende Überlegung zum Senden von Paketen
dar. Beim Empfangen von Paketen akzeptiert der Servertreiber lediglich
rundgesendete Pakete auf einer der Verbindungen. Rundgesendete Pakete,
die auf anderen NICs in der Gruppe empfangen werden, werden verworfen.
-
Es
ist nicht erforderlich, dass der Treiber und der Schalter eine komplexe
Paketanalyse durchführen, um
eine Verbindung auszuwählen.
Vielmehr untersuchen der Treiber und der Schalter die MAC-Adressfelder. Diese
Felder liegen in dem Pakets in einem feststehenden Versatz von dem
Anfang des Pakets vor. Beispielsweise ist das Format eines Ethernet-Pakets: TABELLE
1
wobei: DA = Ziel-MAC-Adresse (48 Bits)
SA
= Quellen-MAC-Adresse (48 Bits)
Typ/Län = Paketlänge oder Ethertyp (16 Bits)
-
4 ist
ein schematisches Diagramm eines Schalters, der ein Verbindungsebenenbündelungssystem
gemäß der Erfindung
umfasst. Ein Standardschalter 70 leitet Pakete, die an
Eingangstoren 75-77 empfangen werden, an ein entsprechendes
Ausgangstor 71-74 weiter. Wenn ein Paket 80 durch
den Schalter empfangen wird, untersucht der Schalter das DA-Feld 81 in
dem Paket, um das Paket weiterzuleiten. Der Schalter hält eine
Adresstabelle 79, die eine Liste von MAC-Adressen und der
Tore, durch die sie erreicht werden können, enthält. Der Schalter schlägt die DA
in der Adresstabelle nach, um das Zielausgangstor zu finden. Wenn die
DA nicht gefunden wird, flutet der Schalter das Paket zu allen Ausgangstoren.
Falls die DA gefunden wird, sendet der Schalter das Paket lediglich
an das in der Tabelle aufgelistete Tor.
-
Bei
der Erfindung enthält
die Adresstabelle ferner ein Flag, das angibt, dass die DA durch
mehrere Ausgangstore und nicht nur durch ein Tor erreichbar ist.
Diese mehreren Ausgangstore sind die Bündelgruppe (oben erläutert).
Das Flag lenkt ferner den Schalter an die Tabelle von N Einträgen (oben
beschrieben). Der Schalter betrachtet die SA 82, um einen Index
in der Bündeltabelle 78 zu
finden und dadurch das entsprechende Ausgangstor auszuwählen.
-
Ein
bestimmtes Quellen- und Ziel-MAC-Adresspaar verwendet immer dieselbe
Verbindung in der Gruppe, gemäß Überbrückungsstandards,
z.B. dem Standard IEEE 802.1D. Dieser Standard gibt an, dass eine
Paketreihenfolge durch einen Schalter beibehalten werden muss. Eine
derartige Paketreihenfolge wird dadurch gewährleistet, dass immer dieselbe
Verbindung für
ein gegebenes SA/DA-Paar ausgewählt
wird.
-
Die
bekannten Verfahren zum Installieren mehrerer NICs in einen Server
erfordern komplexe Software- und Hardwarekonfigurationen. Abbildungsschemata
auf höherer
Ebene, z.B. BALANCE.NLM, erfordern einen Treiber auf einem höheren Intelligenzniveau.
Die Verwendung mehrerer NIC-Adressen kann zu einer für den Klienten
verwirrenden Darstellung des Servers führen und kann erfordern, dass
der Klient in dem Fall, dass es notwendig ist, eine fallen gelassene
Verbindung erneut herzustellen, den Namen und die Netzwerkadresse
anderer ICs hat. Die Verwendung derartiger mehrerer Namen und Adressen
für einen
einzelnen Server kann eine Fehlertoleranz beeinträchtigen
oder sogar verhindern.
-
Im
Gegensatz dazu führt
die Erfindung eine Abbildung zwischen mehreren NICs und einer Netzwerkadresse
durch, indem sie den Betrieb eines Schalters mit Software in dem
Server koordiniert. Die NICs weisen alle dieselbe MAC-Adresse auf
und sind gleichzeitig in dem Netzwerk aktiv. Dies ist im Stand der
Technik üblicherweise
eine unmögliche
oder illegale Situation. Die Erfindung funktioniert, da der Schalter
sich der Situation bewusst ist und jegliche damit verbundene Probleme
vor den Klienten versteckt.
-
Beispielsweise
eliminiert die Erfindung das Erfordernis, zwei Netzwerknamen zu
kreieren und zwei Netzwerkadressen zu verwenden, wenn zwei NICs
in einem Server verwendet werden. Für die Klienten weist der Server
lediglich einen Namen und eine Netzwerkadresse auf. Wenn also eine
der NICs ausfällt,
besteht kein Erfordernis, eine neue Verbindung mit dem Server herzustellen.
Der Schalter versteckt den Netzwerkausfall vor den Klienten.
-
Die
Erfindung ist vorteilhafter als die bekannten Abbildungsschemata
auf höherer
Ebene, da eine einzige Abbildung von Name zu Netzwerkadresse zu
MAC-Adresse erfolgt. Ferner erfordert die Erfindung einen geringeren
Server-Zusatzaufwand.
-
Ferner
stellt die Erfindung eine Verbesserung gegenüber bekannten Schemata dar,
die einen Schalter als NIC verwenden oder die in Software schalten,
z.B. erfordert die Erfindung keine Redundanzprotokolle, z.B. Spanning-Trees,
und ist kostengünstiger
als derartige Schalter-NICs. Ferner erfordert die Erfindung weniger Intelligenz
in dem Schalter als der gemischte Lösungsansatz und erfordert keine
spezielle Hardwareunterstützung
auf der Serverseite.
-
Das
bevorzugte Ausführungsbeispiel
der Erfindung unterstützt
ein Fehlertoleranzmerkmal. 5 ist ein
schematisches Diagramm des Verbindungsebenenserver-/schalterbündelungssystems
gemäß einem
ersten bevorzugten Ausführungsbeispiel
der Erfindung. Bei 5 ist ein einzelner Schalter 50 über mehrere
Verbindungen 54 mit einem Server 52 verbunden.
Die Verbindungen zu dem Server sind als Bündel konfiguriert, bei dem
der Belastungsausgleichsalgorithmus die Quellenadresse der Klienten 56 verwendet,
um eine Verbindung auszuwählen.
-
Mehrere
NICs in dem Server programmieren ihre MAC-Adressen derart, dass
sie auf allen Schnittstellen gleich sind. Somit wird die für die Quelle
des Servers verwendete selbe MAC-Adresse an mehrere Tore 62 angelegt.
Wenn ein Klient ein Paket über
eine Zentralstation 58, 60 an den Server sendet,
wählt der
Schalter eines der mehreren Tore aus, indem er die MAC-Adresse des
Klienten untersucht.
-
6 ist
ein schematisches Diagramm des Verbindungsebenenserver-/schalterbündelungssystems gemäß einem
zweiten Ausführungsbeispiel
der Erfindung. Bei diesem Ausführungsbeispiel
ist der Server 52 über
mehrere Verbindungen 54, 74 mit einem Schalter 64 und über mehrere
Verbindungen 70, 72 mit einem Schalter 66 verbunden.
Eine Schalter-Zu-Schalter- Verbindung 68 verbindet
die Schalter 64 und 66. Der Schalter 64 ist
mit einer Zentralstation 60 verbunden, und der Schalter 66 ist
mit einer Zentralstation 58 verbunden. Die Zentralstationen
sind dann mit den Klienten 56 verbunden. Während 6 den
mit zwei Schaltern verbundenen Server zeigt, werden Fachleute ohne
weiteres erkennen, dass die Erfindung unter Verwendung einer beliebigen
Anzahl von Schaltern oder Verbindungen, die durch das Netzwerk und
den Server unterstützt
werden, implementiert werden kann.
-
Ein
Verkehr von einem Klienten, der durch den nächstgelegenen Schalter zu dem
Server wandert, kann unter Verwendung des oben beschriebenen Verbindungsauswahlschemas
an die richtigen Verbindungen weitergeleitet werden. Bei diesem
System können
jedoch Pakte, die die Quellenadresse des Servers aufweisen, die
Schalter-Zu-Schalter-Verbindung überqueren.
Diese Schalter-Zu-Schalter-Verbindung ist nicht in der Serverbündelgruppe
enthalten.
-
Es
ist möglich,
dass ein Schalter, der eine Bündelung
unterstützt,
an Paketen, die von einer beliebigen Anzahl von Toren in der Gruppe
empfangen werden, dieselbe MAC-Adresse aufweist. Es ist nicht wünschenswert,
kontinuierlich eine Umzugsbedingung zu erzeugen oder die Adresstabelle
zu aktualisieren. Wenn mehrere NICs in einem Server an ein Netzwerk
angeschlossen sind und die NICs dieselbe MAC-Adresse verwenden,
ist es möglich,
Pakete mit dieser MAC-Adresse als Quellen-MAC-Adresse an vielen
Toren zu empfangen. Die Erfindung liefert somit auch ein Schema,
das die Auswirkung der Schalter-Zu-Schalter-Verbindung auf die Rückgabe derartiger
Pakete von dem Server an den Klienten abmildert und die dadurch
verursachten Unterbrechungen des Betriebs des Servers verhindert.
-
Bei
diesem Schema wird ermöglicht,
dass der Schalter die Umzugsunterbrechung sogar dann ignoriert,
wenn das Tor, wo die Adresse gesendet wurde, nicht in der Gruppe
von Bündeltoren
vorliegt. Ein Flag für die
MAC des Servers ist in der Adresstabelle des Schalters enthalten.
Das Flag benachrichtigt den Schalter, dass es akzeptabel ist, dass
die MAC-Adresse
des Servers an mehreren Toren erscheint. Der Schalter wird angewiesen,
den Systembetreiber nicht davon zu benachrichtigen, dass die Adresse
umgezogen ist. Fachleuten wird es ohne weiteres einleuchten, dass
andere Schemata oder Kombinationen der oben erörterten Schemata implementiert
werden können,
um die Server-Zu-Klient-Übertragung
von Verkehr, der die Schalter-Zu-Schalter-Verbindung überquert
hat, zu erleichtern.
-
Obwohl
die Erfindung hierin unter Bezugnahme auf das bevorzugte Ausführungsbeispiel
beschrieben wurde, werden Fachleute ohne weiteres erkennen, dass
die hierin dargelegten Anwendungen durch andere Anwendungen ersetzt
werden können,
ohne von der Wesensart und dem Schutzumfang der vorliegenden Erfindung
abzuweichen.
-
Der
Servertreiber, das Treiberklemmstück und Protokollsoftware werden
von Fachleuten unter Verwendung von hinreichend bekannten Programmierungstechniken
ohne weiteres hergestellt. Die Schalterhardware wird durch Fachleute
auf ähnliche
Weise konfiguriert.
-
Die
Erfindung ist ferner an eine Verwendung bei einem verkäuferspezifischen
monolithischen Treiber angepasst. Ein derartiger Treiber ist für die NIC
des Verkäufers
spezifisch.
-
Demgemäß sollte
die Erfindung lediglich durch die unten angefügten Patentansprüche eingeschränkt werden.