-
TECHNISCHES GEBIET
-
Die vorliegende Erfindung betrifft ein Verfahren zum Realisieren eines konvergenten Netzwerkprotokolls, um die Datenübertragung zwischen Netzwerken mit unterschiedlichen Datenübertragungsprotokollen zu erleichtern.
-
HINTERGRUND
-
Bei „Fibre Channel over Ethernet” (FCoE) handelt es sich um einen Protokollstandard, der Fibre-Channel(FC)-Rahmen in Ethernet-Rahmen kapselt, damit ein Ethernet-Netzwerk mit Netzwerken mit niedrigen Latenzzeiten und hoher Leistung, wie beispielsweise Fibre Channel, Daten austauschen kann. FCoE erfordert Erweiterungen oder Verbesserungen (enhancements) des Ethernet-Protokolls. Die bereitgestellten verbesserten Funktionen werden als Rechenzentrumsüberbrückung (Data Center Bridging (DCB)) und konvergentes verbessertes Ethernet (Converged Enhanced Ethernet (CEE)) bezeichnet. Ein FCoE-Fabric ist aus Switches und Adaptern aufgebaut, welche die CEE- und DCB-Protokolle unterstützen. Ein FCoE-Fabric enthält einen CEE/DCB-Switch, der Anschlüsse für Fibre-Channel-Verbindungen und Anschlüsse zum Verbinden mit CEE-Anschlüssen besitzt, welche die verbesserten CEE/DCB-Funktionen unterstützen. Enhanced-Ethernet-Anschlüsse sind in konvergenten Netzwerkadaptern (Converged Network Adaptors (CNA)) realisiert, und die Switches zum Verbinden zwischen dem FCoE-Fabric und dem Fibre-Channel-Netzwerk sind auch als Fibre-Channel-Weiterleiter (Fibre Channel Forwarders (FCF)) bekannt. Das FCoE-Fabric, das auch als „Data Center Fabric” bezeichnet wird, interagiert mit einem echten Fibre-Channel-Fabric, und FCoE unterstützt erweiterte Fibre-Channel-Funktionen.
-
Bei FCoE werden Rahmen von Fibre-Channel-Paketen durch einen logischen Endpunkt (logical end point (LEP)), der einen Übersetzer zwischen dem Ethernet- und dem Fibre-Channel-Protokoll darstellt, in einem Ethernet-Rahmen gekapselt. Die CNA-Adapter, FCoE-Switches und FCFs weisen LEPs auf. Ferner kann Software bereitgestellt werden, um die LEP-Operationen auf einem Server durchzuführen.
-
Zum Integrieren von Ethernet-Netzwerken und FCoE-Switches müssen jedoch die Server und Hosts im Ethernet-Netzwerk Adapter besitzen, die das CEE-Protokoll unterstützen, wie beispielsweise CNA-Adapter. Ein Ersetzen der relativ kostengünstigen Bestands-Ethernet-Adapter, d. h. derjenigen, die IEEE 802.11 unterstützen, durch FCoE unterstützende Adapter kann teuer sein.
-
Es besteht im Stand der Technik ein Bedarf nach verbesserten Techniken zum Integrieren eines Bestands-Ethernet-Netzwerkes in ein FCoE-Netzwerk, um einen verlustfreien Datenaustausch mit einem Fibre-Channel-Fabric zu ermöglichen.
-
KURZDARSTELLUNG
-
Bereitgestellt werden ein Computerprogrammprodukt, ein System und ein Verfahren für eine Brücke zum Realisieren eines konvergenten Netzwerkprotokolls, um die Datenübertragung zwischen Netzwerken mit unterschiedlichen Datenübertragungsprotokollen zu erleichtern. Ein erster Adapter realisiert ein erstes Datenübertragungsprotokoll, und ein zweiter Adapter realisiert ein konvergentes Netzwerkprotokoll, wobei das konvergente Netzwerkprotokoll den Datenaustausch von mit einem zweiten Datenprotokoll codierten Paketen mit einem Netzwerk mit einem dritten Datenübertragungsprotokoll erleichtert. Parameter werden in einem Speicher für die Datenübertragung zwischen dem ersten Adapter und dem zweiten Adapter im konvergenten Netzwerkprotokoll konfiguriert um dem zweiten Adapter anzuzeigen, dass das konvergente Netzwerkprotokoll unterstützt wird, wobei der erste Adapter das konvergente Netzwerkprotokoll nicht unterstützt. Ein Paket, das im zweiten Datenübertragungsprotokoll codiert und an das Netzwerk mit dem dritten Datenübertragungsprotokoll gerichtet ist, wird durch den ersten Adapter empfangen. Das Paket wird zu dem zweiten Adapter weitergeleitet, um es zum Netzwerk mit dem dritten Datenübertragungsprotokoll weiterzuleiten. Ein an den ersten Adapter gerichteter Befehl, eine Funktion im konvergenten Netzwerkprotokoll für die Datenübertragung zwischen dem ersten und dem zweiten Adapter zu realisieren, wird durch den zweiten Adapter empfangen. Operationen werden durchgeführt, um die Funktion mithilfe der Parameter im Speicher zu realisieren und die Übermittlung von Paketen zwischen dem ersten und dem zweiten Adapter zu unterstützen.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Ausführungsform(en) der Erfindung werden nun in lediglich beispielhafter Weise unter Bezugnahme auf die begleitenden Zeichnungen beschrieben, in denen:
-
1 eine Ausführungsform einer Netzwerk-Rechenumgebung veranschaulicht;
-
2 eine Ausführungsform eines Ethernet-Rahmens veranschaulicht, der FCoE- und Fibre-Channel-Rahmen auf eine im Stand der Technik bekannte Weise kapselt;
-
3 eine Ausführungsform eines Host veranschaulicht;
-
4 eine Ausführungsform von Operationen zum Herstellen einer Verbindung zwischen einem ersten Adapter und einem zweiten Adapter veranschaulicht;
-
5 eine Ausführungsform von Operationen zum Verarbeiten einer durch den zweiten Adapter empfangenen Pause-Anweisung veranschaulicht;
-
6 eine Ausführungsform von Operationen zum Verarbeiten einer durch den ersten Adapter empfangenen Pause-Anweisung veranschaulicht;
-
7 eine Ausführungsform von Operationen zum Verarbeiten eines empfangenen Pakets zum Verwalten von Klassen-Bandbreitenzuordnungen veranschaulicht.
-
DETAILLIERTE BESCHREIBUNG
-
1 veranschaulicht eine Ausführungsform einer Netzwerk-Rechenumgebung. Eine Brücke 2 stellt die Datenübertragung zwischen Hosts 4a, 4b, 4c in einem Netzwerk 6 mit einem ersten Datenübertragungsprotokoll, wie beispielsweise einem Bestands-Ethernet, bereit, die Pakete in einem zweiten Datenübertragungsprotokoll, wie beispielsweise Fibre Channel over Ethernet (FCoE), mit Hosts 8a, 8b, 8c austauschen, die in einem Netzwerk 10 mit einem dritten Datenübertragungsprotokoll, wie beispielsweise einem Speicherbereichsnetzwerk (Storage Area Netzwerk (SAN)) oder einem Fibre-Channel-Netzwerk, arbeiten. Die Hosts 4a, 4b, 4c enthalten Adapter mit Anschlüssen, die Daten mittels des ersten Datenübertragungsprotokolls (z. B. Ethernet) übertragen, und die Hosts 8a, 8b, 8c enthalten Adapter, die Daten mittels des dritten Datenübertragungsprotokolls (z. B. Fibre Channel) übertragen. Die Brücke 2 realisiert ein konvergentes Netzwerkprotokoll, um ein konvergentes Netzwerk 12, wie beispielsweise ein CEE/DCB-Netzwerk, bereitzustellen, das eine Verbindung zwischen dem Netzwerk 6 mit dem ersten Datenübertragungsprotokoll und dem Netzwerk 10 mit dem dritten Datenübertragungsprotokoll darstellt. Von den Host-Adaptern übermittelte Pakete können mit einem zweiten Datenübertragungsprotokoll, z. B. FCoE, durch Software für das zweite Datenübertragungsprotokoll in den Hosts codiert werden. Die Brücke 2 leitet Pakete über einen zweiten Adapter 30a, 30b, 30c zu einem Anschluss auf einem Switch 14, wie beispielsweise einem Fibre Channel Forwarder (FCF), weiter, der die Nutzdaten aus dem Paket zur Übermittlung im dritten Datenübertragungsprotokoll (z. B. Fibre Channel) an einen der Hosts 8a, 8b, 8c im Netzwerk 10 mit dem dritten Datenübertragungsprotokoll entkapselt. Bei bestimmten Realisierungen sorgt die Brücke 2 für die verlustfreie Übermittlung von Paketen vom Netzwerk 6 mit dem ersten Datenübertragungsprotokoll, das keine verlustfreie Übermittlung unterstützt, zum Netzwerk 10 mit dem dritten Datenübertragungsprotokoll, das verlustfreie Übermittlung unterstützt. Der Switch 14 enthält Adapter, um Verbindungen mit den Hosts 8a, 8b, 8c im Netzwerk mit dem dritten Datenübertragungsprotokoll zu unterstützen, und separate Adapter um den Datenaustausch mit dem konvergenten Netzwerk 12 einschließlich der Brücke 2 im Netzwerk 12 unterstützen. Auf diese Weise ermöglicht es die Brücke den Hosts 4a, 4b, 4c, beim Datenaustausch mit den nur das dritte Datenübertragungsprotokoll (z. B. Fibre Channel) unterstützenden Systemen 8a, 8b, 8c ihre Bestandsadapter im ersten Datenübertragungsprotokoll ohne Aufrüsten beizubehalten. Obwohl die Host-Adapter 4a, 4b, 4c unter Umständen nur das erste Datenübertragungsprotokoll unterstützen, können die Hosts 4a, 4b, 4c Software enthalten, die in der Lage ist, Pakete mit Daten des zweiten Datenübertragungsprotokolls (z. B. FCoE) zu codieren, die im Paket mit dem ersten Datenübertragungsprotokoll gekapselt sind.
-
Die Brücke enthält eine Zentraleinheit (CPU) 20 wie beispielsweise einen oder mehrere Prozessoren, einen Speicher 22 zum Speichern von Parametern und anderen Daten, einen Chipsatz für das erste Datenübertragungsprotokoll 24 zum Unterstützen des Datenaustausches mit Hosts 4a, 4b, 4c mithilfe von Adaptern 26a, 26b, 26c unter Verwendung des ersten Datenübertragungsprotokolls sowie einen Chipsatz 28 für das konvergente Netzwerkprotokoll zum Unterstützen des Datenaustausches mit einem oder mehreren Switches 14 mithilfe von Adaptern 30a, 30b, 30c unter Verwendung des zweiten Datenübertragungsprotokolls. Die Adapter 26a, 26b, 26c sowie 30a, 30b, 30c können jeweils einen oder mehrere Anschlüsse enthalten. Ein Bus 32, der eine oder mehrere Busschnittstellen aufweist, sorgt für die Datenübertragung zwischen den Komponenten 20, 22, 24, 26a, 26b, 26c, 28 sowie 30a, 30b, 30c.
-
Die CPU 20 führt Brückencode 34 aus, der in einem nichtflüchtigen Speicher in der Brücke 2 gespeichert sein kann, um Paketübermittlungsoperationen zwischen den Adaptern 26a, 26b, 26c, 30a, 30b, 30c durchzuführen. Ferner kann die CPU 20 im Speicher 22 Parameter 36 für das zweite Datenübertragungsprotokoll speichern, die für die Datenübertragung über die Adapter 30a, 30b, 30c zum Switch 14 zu verwenden sind.
-
Obwohl 1 Chipsätze 24 und 28 zeigt, die das erste Datenübertragungsprotokoll und das konvergente Netzwerkprotokoll realisieren, können die Funktionen dieser Protokolle in Programmanweisungen im Brückencode 34 gespeichert sein, der von der CPU 20 ausgeführt wird, um Operationen bezüglich des ersten Datenübertragungsprotokolls und des konvergenten Netzwerkprotokolls durchzuführen. Alternativ dazu können einige oder alle Funktionen des Brückencodes 34 in Hardwarelogik in einer Hardwarekomponente mit integrierter Schaltung realisiert sein.
-
Obwohl drei Komponenten 4a, 4b, 4c, 8a, 8b, 8c, 26a, 26b, 26c, 30a, 30b, 30c gezeigt sind, kann jede beliebige Anzahl dieser Komponenten vorhanden sein, und es kann die gleiche oder eine andere Anzahl der unterschiedlichen Komponenten vorhanden sein. Obwohl die Adapter 26a, 26b, 26c ferner als mit den Hosts 4a, 4b, 4c verbunden gezeigt sind, können sie auch mit Switches, weiteren Brücken, Verstärkern (repeaters) oder anderen Komponenten verbunden sein, bevor sie von den Hosts 4a, 4b, 4c empfangen werden. Obwohl die Adapter 30a, 30b, 30c mit einem Switch 14 verbunden gezeigt sind, können sie auch direkt mit den Hosts 8a, 8b, 8c oder anderen Komponenten, Weiterleitern, Verstärkern, anderen Switches usw. verbunden sein. Obwohl ferner bei bestimmten Ausführungsformen das erste Datenübertragungsprotokoll Bestands-Ethernet aufweist, das zweite Datenübertragungsprotokoll FCoE aufweist, das konvergente Netzwerkprotokoll CEE/DCB aufweist und das dritte Datenübertragungsprotokoll Fibre Channel aufweist, können das erste, zweite, dritte und Konvergente-Netzwerk-Datenübertragungsprotokoll andere Datenübertragungsprotokolle aufweisen, so dass das konvergente Netzwerkprotokoll die Übermittlung von Paketen zwischen einem Netzwerk mit dem ersten Datenübertragungsprotokoll und einem Netzwerk mit dem dritten Datenübertragungsprotokoll erleichtert.
-
2 veranschaulicht eine im Stand der Technik bekannte Ausführungsform einer FCoE-Kapselung von Fibre-Channel-Nutzdaten. Ein Ethernet-Rahmen 50 besitzt einen Ethernet-Kopf (ethernet header) 52 mit Ethernet-Kopf-Daten und kapselt einen FCoE-Rahmen 54, der einen FCoE-Kopf 56 besitzt, und einen Fibre-Channel-Rahmen 58 mit einem Fibre-Channel-Kopf 60 und Fibre-Channel-Nutzdaten 62. Die Brücke 2 kann ein mit FCoE- und Fibre-Channel-Daten gekapseltes Ethernet-Paket 50 durch die zweiten Adapter 30a, 30b, 30c empfangen und zu den ersten Adaptern 30a, 30b, 30c weiterleiten.
-
3 veranschaulicht eine Ausführungsform eines Host 4, wie beispielsweise die Hosts 4a, 4b und 4c, die einen oder mehrere Prozessoren 70, einen Speicher 72, in den Software 74 für das zweite Datenübertragungsprotokoll zur Ausführung durch den Prozessor 70 geladen wird, sowie einen Adapter 76 für das erste Datenübertragungsprotokoll, z. B. einen Ethernet-Adapter, enthält. Bei einer Ausführungsform stellt die Software 74 für das zweite Datenübertragungsprotokoll eine Softwarerealisierung eines logischen FCoE-Endpunktes (LEP) bereit, der Daten des FCoE-Rahmens 54 im Ethernet-Rahmen 50 kapselt. Ferner kann die Software 74 für das zweite Datenübertragungsprotokoll auf die Nutzdaten 62 zugreifen und diese in den FCoE-Rahmen 54 innerhalb des Ethernet-Rahmens 50 zur letztendlichen Verwendung durch den Switch 14 packen, der auf den FCoE-Rahmen 54 zugreifen kann, um die Nutzdaten 62 zur Bereitstellung für das Fiber-Channel-Netzwerk 10 zu entnehmen. Der Adapter 76 für das erste Datenübertragungsprotokoll, wie beispielsweise ein Bestands-Ethernet-Adapter, kann diesen FCoE-Rahmen 50 an die Brücke 0 übermitteln, obwohl der Adapter 76 keine Funktionalität für FCoE (zweites Datenübertragungsprotokoll) enthält, um die Daten des FCoE-Rahmens 54 nutzen zu können.
-
Bei bestimmten Ausführungsformen besitzt die Software 74 für das zweite Datenübertragungsprotokoll keine Fähigkeiten zum Abwickeln von Operationen des konvergenten Netzwerkprotokolls (CEE/DCB), die zum Unterstützen der Konvergenz und Kompatibilität mit dem Netzwerk 10 mit dem dritten Datenübertragungsprotokoll, z. B. Fiber Channel, notwendig sind. Zum Beispiel können bei einer Ausführungsform die von der Software 74 für das zweite (FCoE-)Datenübertragungsprotokoll nicht unterstützten konvergenten Netzwerkprotokolle durch den Switch 14 erwartete CEE/DCB-Protokolle aufweisen, wie beispielsweise eine in „institute of Electrical and Electronics Engineers (IEEE) 802.1Qbb” beschriebene prioritätsgestützte Flusssteuerung, eine in IEEE 802.1Qaz beschriebene verbesserte Übermittlungsauswahl (Enhanced Transmission Selection), eine in IEEE 802.1Qau beschriebene Überlastungsbenachrichtigung (Congestion Notification) sowie Data Center Bridging Exchange (DCBX). Die prioritätsgestützte Flusssteuerung (Prioritybased Flow Control (PFC)) stellt einen Flusskontrollmechanismus auf Verbindungsebene bereit, der für jede Dienstgüte (Class of Service (CoS)) unabhängig gesteuert werden kann, um sicherzustellen, dass bei Überlastung in DCB-Netzwerken keinerlei Verluste auftreten. Die verbesserte Übermittlungsauswahl (Enhanced Transmission Selection (ETS)) stellt ein bekanntes Verwaltungsrahmenwerk für die Zuweisung von Bandbreite zu CoS-gestützten Datenverkehrsklassen bereit. Die Überlastungsbenachrichtigung stellt eine durchgängige Überlastungsverwaltung für Protokolle bereit, die in der Lage sind, die Übertragungsrate zu begrenzen, um Rahmenverlust bei Ergänzungsprotokollen wie Ethernet zu vermeiden, die eine native Überlastungsverwaltung besitzen. Die Überlastungsbenachrichtigung stellt eine zeitnahere Reaktion auf Netzwerküberlastung bereit. Beim „Data Center Bridging Capabilities Exchange Protocol” (DCBX) handelt es sich um ein Erkennungs- und Funktionalitätsaustauschprotokoll, das zum Übermitteln von Funktionalitäten und Konfigurationen der vorstehenden Merkmale zwischen Nachbarn verwendet wird, um eine konsistente Konfiguration innerhalb des Netzwerks sicherzustellen. Die Brücke 2 enthält den Chipsatz 28 für das konvergente Netzwerkprotokoll zur Unterstützung der konvergenten Netzwerkprotokolle, die in den für den Datenaustausch mit dem Switch 14 und dem Netzwerk 10 mit dem dritten Datenübertragungsprotokoll benötigten Hosts 4a, 4b, 4c nicht unterstützt werden. Somit muss die Brücke 2 eine Verbindung zwischen denjenigen vom Switch 14 benötigten konvergenten Netzwerkprotokollen herstellen, die von den Komponenten in den Hosts 4a, 4b, 4c nicht unterstützt werden, wie beispielsweise der Software 74 für das zweite Datenübertragungsprotokoll (FCoE) und dem Adapter 76 für das erste Datenübertragungsprotokoll (Ethernet).
-
4 veranschaulicht eine Ausführungsform von Operationen, die von den Komponenten der Brücke 2 durchgeführt werden, zu denen die den Brückencode 34 ausführende CPU 20 und die Chipsätze 24 und 28 zählen. Die Brücke 2 initiiert (in Block 100) Operationen zum Herstellen einer Verbindung zwischen einem ersten Adapter 26a, 26b oder 26c (z. B. Bestands-Ethernet) und einem zweiten Adapter 30a, 30b oder 30c (z. B. verbessertes Ethernet). Die Adapter 26a, 26b, 26c stellen Verbindungen mit Systemen 4a, 4b, 4c mit Adaptern für das erste Datenübertragungsprotokoll bereit, und die Adapter 30a, 30b und 30c stellen über einen das dritte Datenübertragungsprotokoll unterstützenden Switch 14 Verbindungen mit den Systemen 8a, 8b, 8c bereit, die Adapter für das dritte Datenübertragungsprotokoll besitzen. Die Brücke 2 nutzt den Chipsatz 28 für das konvergente Netzwerkprotokoll zum Durchführen von Handshaking- und Initialisierungsoperationen mit dem Switch 14. Dann überträgt die Brücke 2 (in Block 104) Pakete zwischen den ersten 26a, 26b oder 26c und den zweiten 30a, 30b oder 30c Adaptern, um über den Switch 14 eine Übertragung zwischen den Hosts 4a, 4b, 4c im Netzwerk 6 mit dem ersten Datenübertragungsprotokoll und den Hosts 8a, 8b, 8c im Netzwerk 10 mit dem dritten Datenübertragungsprotokoll durchzuführen. Bei bestimmten Ausführungsformen modifiziert die Brücke 2 die Pakete nicht, die im zweiten Datenübertragungsprotokoll, z. B. FCoE, codiert sind, das von dem Switch 14 und der Software 74 für das zweite Datenübertragungsprotokoll (FCoE) in den Hosts 4a, 4b, 4c verarbeitet werden kann. Die Brücke empfängt (in Block 106) vom zweiten Adapter 30a, 30b, 30c ein an den ersten Adapter 26a, 26b oder 26c gerichtetes Paket mit einer Funktion im konvergenten Netzwerkprotokoll. Diese Funktion im konvergenten Netzwerkprotokoll wird von der Software 74 für das zweite Datenübertragungsprotokoll möglicherweise nicht unterstützt. Die Brücke 2 führt (in Block 108) Operationen zum Realisieren der Funktion mithilfe der Parameter 36 im Speicher 22 durch, um die Übermittlung von Paketen im Datenübertragungsprotokoll konvergenter Netzwerke, z. B. CEE/DCB zu unterstützen. Ferner kann die Brücke 2 (in Block 110) ermitteln, ob die Funktion oder der Befehl vom zweiten Adapter 30a, 30b oder 30c einer zweiten Funktion im ersten Datenübertragungsprotokoll entspricht. Falls ja, ermittelt die Brücke 2 (in Block 112) eine zweite Funktion im ersten Datenübertragungsprotokoll und mit der Funktion zu verwendende Parameter um die Funktion im konvergenten Netzwerkprotokoll vom zweiten Adapter 30a, 30b oder 30c zu realisieren. Die Brücke 2 übermittelt (in Block 114) die zweite Funktion im ersten Datenübertragungsprotokoll an den ersten Adapter 26a, 26b oder 26c zur Weiterleitung zu dem Ziel-Host 4a, 4b oder 4c. Der Steuervorgang endet (in Block 116), wenn (von der Verzweigung „Nein” von Block 110) die Funktion vom zweiten Adapter 30a, 30b oder 30c keiner zweiten Funktion im ersten Datenübertragungsprotokoll entspricht oder nachdem die zweite Funktion an den ersten Adapter 26a, 26b oder 26c (von Block 114) übermittelt wurde.
-
Zum Beispiel können die im Speicher 22 enthaltenen Parameter für das konvergente Netzwerkprotokoll durch den zweiten Adapter 30a, 30b oder 30c erkannte Paketklassen angeben, und die erste Funktion kann eine Pause für eine ausgewählte Paketklasse vom ersten Adapter im konvergenten Netzwerkprotokoll aufweisen. In diesem Fall kann die Brücke 2 eine Pause-Anweisung im ersten Datenübertragungsprotokoll zum ersten Adapter 26a, 26b oder 26c senden, um den ersten Adapter 26a, 26b oder 26c oder die Hosts 4a, 4b oder 4c zu veranlassen, das Senden aller Pakete vom verbundenen Host 4a, 4b oder 4c pausieren zu lassen, d. h., eine Realisierung der Pause-Funktion des konvergenten Netzwerkprotokolls bereitzustellen. Die Pause-Anweisung im ersten Datenübertragungsprotokoll unterstützt möglicherweise nicht das Pausieren für eine ausgewählte Paketklasse und führt stattdessen unter Umständen ungeachtet einer gemäß dem konvergenten Netzwerkprotokoll angegebenen Klassifizierung eine Pause für Pakete durch.
-
5 veranschaulicht eine Ausführungsform von von der Brücke 2 durchgeführten Operationen zum Verarbeiten eines Pause-Befehls im konvergenten Netzwerkprotokoll, der über einen Adapter 30, a, 30b oder 30c von dem Switch 14 oder einer anderen Komponente empfangen wurde. Bei Empfangen einer Pause für eine ausgewählte Paketklasse im konvergenten Netzwerkprotokoll durch den zweiten Adapter 30a, 30b oder 30c (in Block 200), wie beispielsweise eines Pause-Befehls der prioritätsgestützten Flusssteuerung im DCB-Protokoll, initiiert die Brücke 22 (in Block 202) eine Pausenabwicklung für die ausgewählte Klasse. Bei Empfangen von Paketen vom ersten Adapter 26a, 26b oder 26c (in Block 204), während die Pause initiiert ist, ermittelt die Brücke 2 (in Block 206), ob die Pakete der ausgewählten Klasse angehören. Dies kann durch Berücksichtigen von Angaben im Kopf oder in den Feldern des Pakets des ersten Datenübertragungsprotokolls, der Quelle oder dem Ziel der Nachricht usw. ermittelt werden. Wenn (in Block 206) das empfangene Paket der ausgewählten Klasse angehört, verzögert die Brücke 2 (in Block 208) die Übermittlung der empfangenen Pakete an den zweiten Adapter 30a, 30b oder 30c. Wenn (in Block 206) die empfangenen Pakete nicht in die für die Pause ausgewählte Klasse eingestuft sind, werden die empfangenen Pakete (in Block 210) für das Weiterleiten zu dem Switch 14 und schließlich zum Netzwerk 10 mit dem dritten Datenübertragungsprotokoll, zum zweiten Adapter 30a, 30b oder 30c weitergeleitet.
-
6 veranschaulicht eine Ausführungsform von von der Brücke 2 durchgeführten Operationen zum Verarbeiten eines über den ersten Adapter 26a, 26b oder 26c empfangenen Pause-Befehls im ersten Datenübertragungsprotokoll. Bei Empfangen einer von einem Host 4a, 4b oder 4c initiierten Pause im ersten Datenübertragungsprotokoll von einem ersten Adapter 26a, 26b, 26c (in Block 220), sendet die Brücke 2 (in Block 222) mindestens eine pausenbezogene Anweisung zu dem zweiten Adapter 30a, 30b oder 30c im konvergenten Netzwerkprotokoll, das Senden aller Klassen von Paketen pausieren zu lassen, die für den Datenaustausch mit dem zweiten Adapter 30a, 30b oder 30c konfiguriert sind, z. B. das Weiterleiten von Paketen zu einem Host 8a, 8b, 8c im Netzwerk 10 mit dem dritten Datenübertragungsprotokoll (z. B. Fibre Channel) pausieren zu lassen.
-
7 veranschaulicht eine Ausführungsform von von der Brücke 2 durchgeführten Operationen zum Verwalten von Bandbreite für Paketklassen entsprechend dem konvergenten Netzwerkprotokoll (z. B. DCB). Die Daten zur Bandbreite für die unterschiedlichen Paketklassen wären über den zweiten Adapter 30a, 30b oder 30c vom Switch 14 übertragen worden. Bei Empfangen eines Paketes vom ersten Adapter 26a, 26b oder 26c im ersten Datenübertragungsprotokoll (in Block 260) verarbeitet die Brücke 2 (in Block 262) Daten über die den unterschiedlichen Paketklassen zugewiesene Bandbreite und die von jeder Paketklasse genutzte Bandbreite, was als Parameter 36 im Speicher 22 gespeichert werden kann. Die Paketklasse wird (in Block 264) ermittelt, was durch Inspizieren von Feldern im empfangenen Paket, wie beispielsweise des FCoE-Kopfes 56, ermittelt werden kann. Dann ermittelt die Brücke 2 (in Block 266), ob ein Übermitteln des Pakets dazu führen würde, dass die von der ermittelten Klasse genutzte Bandbreite eine dieser Klasse zugewiesene Bandbreite überschreitet. Dies erfordert, dass die Brücke 2 im Speicher 22 Werte für die derzeit zugeordnete Bandbreite für jede Klasse und die maximal zulässige Bandbreite für jede Klasse pflegt. Wenn (in Block 266) ein Übermitteln des Pakets nicht dazu führen würde, dass die der Klasse des Pakets zugeordnete Bandbreite deren zugeordnete maximale Bandbreite überschreitet, dann übermittelt die Brücke 2 (in Block 268) das Paket über den zweiten Adapter 30a, 30b oder 30c an den Switch 14 und das Netzwerk 10 mit dem dritten Datenübertragungsprotokoll. Die für diese Klasse genutzte Bandbreite wird dann (in Block 370) um die Größe des übermittelten Paketes erhöht. Wenn andernfalls (in Block 266) ein Übermitteln des Pakets dazu führen würde, dass die Bandbreite für diese Klasse überschritten wird, dann reiht die Brücke 2 (in Block 272) das empfangene Paket in eine Warteschlange ein und wartet, bis sich die Bandbreite der Klasse als Reaktion darauf, dass ein anderes Paket für die Klasse die Übermittlung abschließt, verringert, und kehrt dann zu Block 266 zurück, um zu ermitteln, ob das Paket in der Warteschlange übermittelt werden soll.
-
Bestimmte Operationen zwischen dem Switch 14 und den Hosts 4a, 4b, 4c können durch die Software 72 für das zweite Datenübertragungsprotokoll in den Hosts 4a, 4b, 4c abgewickelt werden. Zum Beispiel kann die Brücke 2 ein über den zweiten Adapter 30a, 30b oder 30c empfangenes Keepalive-Paket zum ersten Adapter 26a, 26b oder 26c weiterleiten. Die Software 72 für das zweite Datenübertragungsprotokoll kann dann die Keepalive-Anfrage im FCoE-Rahmen 54 verarbeiten und dann einen Antwort-Ethernet-Rahmen 50 mit einer Keepalive-Antwort im zweiten Datenübertragungsprotokoll erzeugen, z. B. im an den Switch 14 über die Brücke 2 zurückzusendenden FCoE-Rahmen 54.
-
Beschriebene Ausführungsformen stellen eine Brücke mit Adaptern zum Datenaustausch mit einem ersten Datenübertragungsprotokoll, wie beispielsweise Bestands-Ethernet, sowie mit Adaptern zum Datenaustauschen mittels eines konvergenten Netzwerkprotokolls (z. B. CEE/DCB) bereit, das dazu verwendet wird, die Übertragung von Paketen zu einem Netzwerk mit einem dritten Datenübertragungsprotokoll zu erleichtern. Da die Brücke 2 die Datenübertragung zwischen den Protokollen erleichtert, können sich bei den beschriebenen Ausführungsformen die Hosts 4a, 4b, 4c im Netzwerk 6 mit dem ersten Datenübertragungsprotokoll an das konvergente Netzwerkprotokoll bereitstellenden Netzwerken beteiligen, ohne dass ihre Netzwerkadapter aufgerüstet werden müssen.
-
Zusätzliche Details von Ausführungsformen
-
Die beschriebenen Operationen können als ein Verfahren, eine Vorrichtung oder ein Computerprogrammprodukt unter Verwendung von Standardprogrammier- und/oder -entwicklungstechniken zum Produzieren von Software, Firmware, Hardware oder einer Kombination daraus realisiert werden. Dementsprechend können Aspekte der Ausführungsformen der Erfindung in Form einer vollständigen Hardwareausführungsform, einer vollständigen Softwareausführungsform (einschließlich Firmware, residenter Software, Mikrocode usw.) oder einer Ausführungsform vorliegen, die Software- und Hardwareaspekte kombiniert, was hierin sämtlich allgemein als „Schaltkreis”, „Modul” oder „System” bezeichnet sein kann. Weiterhin können Aspekte der Ausführungsformen in Form eines Computerprogrammprodukts vorliegen, das in einem oder mehreren computerlesbaren Datenträgern mit darauf befindlichem computerlesbarem Programmcode enthalten sein kann.
-
Jede beliebige Kombination aus einem oder mehreren computerlesbaren Medien kann verwendet werden. Bei dem computerlesbaren Medium kann es sich um ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium handeln. Bei einem computerlesbaren Speichermedium kann es sich zum Beispiel, ohne darauf beschränkt zu sein, um ein System, eine Vorrichtung oder eine Einheit elektronischer, magnetischer, optischer, elektromagnetischer, Infrarot oder Halbleiter verwendender Art oder eine beliebige geeignete Kombination des Vorgenannten handeln. Zu spezielleren Beispielen für das computerlesbare Speichermedium gehört Folgendes (unvollständige Liste): eine elektrische Verbindung mit einer oder mehreren Leitungen, eine transportable Computerdiskette, eine Festplatte, ein Speicher mit wahlfreiem Zugriff (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein transportabler Compact-Disk-Nur-Lese-Speicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder eine beliebige geeignete Kombination des Vorgenannten. Im Kontext dieses Dokuments kann es sich bei einem computerlesbaren Speichermedium um jedes gegenständliche Medium handeln, das ein Programm zur Verwendung durch ein System, eine Vorrichtung oder eine Einheit zur Ausführung von Anweisungen oder zur Verwendung in Verbindung damit enthalten oder speichern kann.
-
Zu einem computerlesbaren Signalmedium kann ein verbreitetes Datensignal mit darin zum Beispiel im Basisband oder als Teil einer Trägerwelle ausgebildetem computerlesbarem Programmcode gehören. Solch ein verbreitetes Signal kann in jeder beliebigen einer Vielfalt von Formen vorliegen, wie beispielsweisein elektromagnetischer, optischer oder jeder geeigneten Kombination davon, jedoch nicht beschränkt darauf. Bei einem computerlesbaren Signalmedium kann es sich um ein beliebiges computerlesbares Medium handeln, das kein computerlesbares Speichermedium ist und das ein Programm zur Verwendung durch ein System, eine Vorrichtung oder eine Einheit zur Ausführung von Anweisungen oder zur Verwendung in Verbindung damit übertragen, verbreiten oder transportieren kann.
-
Der in einem computerlesbaren Medium enthaltene Programmcode kann mittels eines beliebigen geeigneten Mediums übertragen werden, wie beispielsweisekabellos, kabelgebunden, Lichtwellenleiterkabel, Hochfrequenz (HF) usw., jedoch nicht beschränkt darauf, oder einer beliebigen geeigneten Kombination des Vorgenannten.
-
Computerprogrammcode zum Ausführen von Operationen für Aspekte der vorliegenden Erfindung kann in jeder Kombination aus einer oder mehreren Programmiersprachen, darunter eine objektorientierte Programmiersprache wie Java, Smalltalk, C++ oder Ähnliches und herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C” oder ähnliche Programmiersprachen, geschrieben sein. Der Programmcode kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über jede beliebige Art von Netzwerk, darunter ein Nahbereichsnetzwerk (local area network (LAN)) oder ein Weitbereichsnetzwerk (wide area network (WAN)), verbunden sein, oder es kann eine Verbindung zu einem externen Computer (zum Beispiel mittels eines Internetdienstanbieters über das Internet) hergestellt werden.
-
Aspekte der vorliegenden Erfindung werden nachfolgend unter Bezugnahme auf Abbildungen von Ablaufplänen und/oder Blockschaubildern von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Abbildungen von Ablaufplänen und/oder der Blockschaubilder sowie Kombinationen von Blöcken in den Abbildungen von Ablaufplänen und/oder den Blockschaubildern durch Computerprogrammanweisungen realisiert werden können. Diese Computerprogrammanweisungen können für einen Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine so zu erzeugen, dass die Anweisungen, die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel zum Realisieren der im Block oder in den Blöcken des Ablaufplans und/oder Blockschaubildes angegebenen Funktionen/Handlungen erzeugen.
-
Diese Computerprogrammanweisungen können auch in einem computerlesbaren Medium gespeichert sein, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten anleiten kann, auf eine bestimmte Weise zu funktionieren, sodass die in dem computerlesbaren Medium gespeicherten Anweisungen einen Herstellungsartikel einschließlich Anweisungen erzeugen, welche die im Block oder in den Blöcken des Ablaufplans und/oder des Blockschaubildes angegebene Funktion/Handlung ausführen.
-
Die Computerprogrammanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten geladen werden, um eine Reihe von auf dem Computer, der anderen programmierbaren Vorrichtung oder den anderen Einheiten auszuführenden Operationsschritten hervorzurufen, um einen per Computer realisierten Prozess so zu erzeugen, dass die auf dem Computer oder der anderen programmierbaren Vorrichtung ausgeführten Anweisungen Prozesse zum Realisieren der im Block oder in den Blöcken des Ablaufplans und/oder Blockschaubildes angegebenen Funktionen/Handlungen bereitstellen.
-
Bei bestimmten Ausführungsformen kann das System von 1 als Cloud-Komponententeil in einer Cloud-Computing-Umgebung realisiert werden. In der Cloud-Computing-Umgebung kann die am Bereitstellen von Cloud-Computing beteiligte Systemarchitektur der Hardware- und Softwarekomponenten eine Vielzahl von Cloud-Komponenten aufweisen, die miteinander über ein Netzwerk, wie beispielsweise das Internet, Daten austauschen. Zum Beispiel kann bei bestimmten Ausführungsformen das Brückensystem von 1 für Clients und andere Server und Software- und/oder Hardwarekomponenten in einem Cloud-Netzwerk des Netzwerks mit dem ersten Datenübertragungsprotokoll und des Netzwerks mit dem dritten Datenübertragungsprotokoll Funktionen des Netzwerks mit dem zweiten Datenübertragungsprotokoll bereitstellen.
-
Die Begriffe „eine Ausführungsform”, „Ausführungsform”, „Ausführungsformen”, „die Ausführungsform”, „die Ausführungsformen”, „eine oder mehrere Ausführungsformen”, „manche/einige Ausführungsformen bedeuten „eine oder mehrere (jedoch nicht alle) Ausführungsformen der vorliegenden Erfindung(en)”, sofern nicht ausdrücklich etwas anderes angegeben ist.
-
Die Begriffe „einschließen”, „enthalten”, „zählen zu”, „gehören zu”, „aufweisen” „besitzen” und Variationen davon bedeuten „einschließlich, jedoch nicht beschränkt darauf”, sofern nicht ausdrücklich etwas anderes angegeben ist.
-
Die angeführte Auflistung von Elementen impliziert nicht, dass sich ein oder alle Elemente gegenseitig ausschließen, sofern nicht ausdrücklich etwas anderes angegeben ist.
-
Die Begriffe „ein”, „eine” und „der”, „die”, „das” sowie Deklinationen davon bedeuten „ein oder mehrere”, sofern nicht ausdrücklich etwas anderes angegeben ist.
-
Einheiten, die miteinander Daten austauschen, müssen nicht kontinuierlich miteinander Daten austauschen, sofern nicht ausdrücklich etwas anderes angegeben ist. Darüber hinaus können Einheiten, die miteinander Daten austauschen, dies direkt oder indirekt über ein oder mehrere Zwischenelemente tun.
-
Eine Beschreibung einer Ausführungsform mit mehreren Daten miteinander austauschenden Komponenten impliziert nicht, dass all diese Komponenten benötigt werden. Im Gegenteil wird eine Vielfalt optionaler Komponenten beschrieben, um die breite Vielfalt möglicher Ausführungsformen der vorliegenden Erfindung zu veranschaulichen.
-
Obwohl Prozessschritte, Verfahrensschritte, Algorithmen oder Ähnliches in sequenzieller Reihenfolge beschrieben sein können, können solche Prozesse, Verfahren und Algorithmen ferner so ausgelegt sein, dass sie in alternativen Reihenfolgen funktionieren. Anders ausgedrückt muss jede möglicherweise beschriebene Abfolge oder Reihenfolge von Schritten nicht unbedingt auf eine Notwendigkeit hindeuten, dass diese Schritte in dieser Reihenfolge durchzuführen sind. Die Schritte hierin beschriebener Prozesse können in jeder praktikablen Reihenfolge durchgeführt werden. Ferner können einige Schritte gleichzeitig ausgeführt werden.
-
Wenn hierin eine einzige Einheit oder ein einziger Artikel beschrieben ist, versteht sich ohne Weiteres, dass mehr als eine Einheit/ein Artikel (zusammenwirkend oder nicht) anstelle der einzelnen Einheit/des einzelnen Artikels verwendet werden kann. Gleichermaßen ist bei Beschreibungen von mehr als einer Einheit oder mehr als einem Artikel hierin (zusammenwirkend oder nicht) ersichtlich, dass eine einzige Einheit/ein einziger Artikel anstelle der mehr als einen Einheit oder des mehr als einen Artikels oder eine andere Anzahl von Einheiten/Artikeln anstelle der gezeigten Anzahl von Einheiten oder Programmen verwendet werden kann. Die Funktionalität und/oder die Merkmale einer Einheit können alternativ durch eine oder mehrere andere Einheiten verkörpert werden, die nicht explizit als solche Funktionalität/Merkmale aufweisend beschrieben sind. Somit müssen andere Ausführungsformen der vorliegenden Erfindung nicht die Einheit selbst enthalten.
-
Die veranschaulichten Operationen von 4 bis 7 zeigen in einer bestimmten Reihenfolge auftretende bestimmte Ereignisse. Bei alternativen Ausführungsformen können bestimmte Operationen modifiziert, entfernt oder in einer anderen Reihenfolge durchgeführt werden. Darüber hinaus können Schritte zur vorstehend beschriebenen Logik hinzugefügt werden und nach wie vor mit den beschriebenen Ausführungsformen konform sein. Weiterhin können hierin beschriebene Operationen sequenziell auftreten, oder bestimmte Operationen können parallel verarbeitet werden. Darüber hinaus können Operationen von einer einzigen Verarbeitungseinheit oder von verteilten Verarbeitungseinheiten durchgeführt werden.
-
Die vorangehende Beschreibung verschiedener Ausführungsformen der Erfindung wurde zum Zwecke der Veranschaulichung und Beschreibung vorgelegt. Sie ist nicht als erschöpfend oder die Erfindung auf genau die offenbarte Form einschränkend aufzufassen. Viele Änderungen und Variationen sind im Lichte der vorstehenden Lehre möglich. Der Umfang der Erfindung ist nicht als durch diese detaillierte Beschreibung, sondern vielmehr durch die hieran angehängten Ansprüche begrenzt aufzufassen. Die vorstehende Beschreibung, die vorstehenden Beispiele und die vorstehenden Angaben liefern eine vollständige Beschreibung der Herstellung und Verwendung der Zusammensetzung der Erfindung. Da viele Ausführungsformen der Erfindung geschaffen werden können, ohne vom Umfang der Erfindung abzuweichen wohnt die Erfindung den hiernach angehängten Ansprüchen inne.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Nicht-Patentliteratur
-
- IEEE 802.11 [0004]
- (IEEE) 802.1Qbb [0022]
- IEEE 802.1Qaz [0022]
- IEEE 802.1Qau [0022]