Wie werden Fibre Channel Frames gefüllt und durchlaufen einen Fabric?

8

Ich versuche meinen Kopf darum zu wickeln, wie Fibre Channel Frames tatsächlich gefüllt und durch eine geschaltete Struktur gesendet werden. Ich verstehe WWNN WWPN, WWNN ist ein WWN des tatsächlichen HBA und WWPN ist der WWN der tatsächlichen Ports auf der Karte. Wenn ein HBA also 4 Ports hat, teilen sich alle den gleichen WWNN, haben aber unterschiedliche WWPN. Ich bin mir immer noch nicht sicher, wo WWNN mit der Kommunikation in einer Struktur ins Spiel kommt. Zweitens der FLOGI-Prozess, mit dem ein neuer N_port-Knoten versucht, sich bei der Fabric anzumelden und eine dynmische FCID zuzuweisen. Nachdem ein PLOGI erstellt wurde, kann der N-Port-Knoten seinen WWPN senden. Dadurch wird eine Beziehung zwischen WWPN und FCID aufrechterhalten.

Schließlich ist die FC-Adressierung eine Kombination aus Domänen-ID, Bereichs-ID und Port-ID. Alle 8 Bits. Meines Wissens nach wird es verwendet, um herauszufinden, wo sich in einer Fabric eine Schnittstelle befindet. Wenn ich also zwei Switches, Domain 1 und Domain 2, habe, würde 0100000 den ersten Switch-Bereich 00 und Port 00 bedeuten?

Außerdem bin ich mir immer noch nicht sicher, wie ein Host an einen anderen Host sendet. In einem FC-Frame gibt es Felder für die Ziel-ID und die Quell-ID, bei denen es sich um 24-Bit-FC-Adressen oder FCIDs handelt. Meine Frage ist, ob diese DestID und SourceID vom Host-HBA oder vom FC-Switch ausgefüllt werden. Ich dachte, ein Host wusste nur, dass es sich um einen eigenen WWNN und WWPN vom HBA handelt?

Zweitens sehe ich nirgendwo im Fibre Channel-Frame, wo WWNN oder WWPN zum Spielen hereinkommen. Es sei denn, sie werden nur im FLOGI- und PLOGI-Prozess verwendet, um eine dynamische FCID zu erhalten.

Danke für Ihre Hilfe. Bin dankbar.

PS Ich verwende ein Cisco MDS und auf unseren Hosts fcinfo, um Informationen zu sammeln. Ich kann keine Möglichkeit finden, die FCID mithilfe von fcinfo auf jedem Host abzurufen. Deshalb bin ich verwirrt, ob der Host eine Liste der Ziel-FCIDs führt oder nicht.

Auch bei direkt verbundenen Hosts ohne Switch-Beteiligung, FLOGI die Hosts ineinander?

Jim
quelle
Ohne Wissen über dieses Thema sieht der Text ein bisschen wie folgt aus: "WWN WWNN, WWPN WWW FCID HBA ..."
Christopher Perrin

Antworten:

4

Zu Beginn kennt der Host WWNN und WWPN.

Nun, vergiss WWNN. WWNN sollte theoretisch an allen Ports aller HBAs eines Computers gleich sein, dies ist jedoch selten der Fall. Normalerweise ist es auf einem HBA dasselbe, aber ich habe einen Fall von Multiport-HBA mit mehreren WWNNs gesehen. Es ist also ein bisschen chaotisch.

Bei der Protokollierung in Fabric (FLOGI / PLOGI) erfährt der Host seine P_ID vom Switch. Und switch lernt WWPN / WWNN vom Host. Daher wissen Switches, welcher WWPN welcher 24-Bit-P_ID eins zu eins zugewiesen ist.

Der Host fragt während des normalen Betriebs den Switch ab, zum Beispiel:

  • Mit welchen WWPNs darf ich kommunizieren?
  • Was ist die aktuelle P_ID von WWPN, an die ich mich als mein Blockgerät (meine Festplatte) erinnere?

Viele Leute denken, dass WWPN ähnlich wie die MAC-Adresse funktioniert, weil die Zahlen "ähnlich" aussehen. Sie haben fast nichts gemeinsam und spielen unterschiedliche Rollen.

WWPN oder WWNN wird niemals als Adresse verwendet. P_ID ist. In der DNS- und IP-Analogie sieht WWPN wie folgt aus my.node.com: Es identifiziert die Adresse ( 111.112.113.114), dient jedoch während der eigentlichen Kommunikation nicht als Adresse. 111.112.113.114tut. In FC wäre P_ID die tatsächliche Adresse, die in den Frames verwendet wird.

Dies ist keine perfekte Analogie. WWPN ist nicht ganz so lesbar wie der DNS-Name. Und P_ID ist etwas nützlicher als IP, da die FC-Switches aufgrund ihres Formats schnell herausfinden können, wie sie mit dem Frame umgehen sollen. Jedenfalls ist das das große Bild.

Übrigens gibt es in FC nichts Ähnliches wie die MAC-Adresse (gut für uns!) - unter der P_ID-Adressierung gibt es keine Adressierung auf niedriger Ebene.

kubanczyk
quelle
Gibt es eine Möglichkeit, die PID eines Hosts vom Host aus zu sehen? Werden die PIDs von Remote-Geräten lokal gespeichert? Wenn beispielsweise Knoten A an Knoten B senden möchte, kennt Knoten A die PID von Knoten B? Wie funktionieren Ppoint-to-Point-Verbindungen, wenn WWNN WWPN nichts mit FC-Frame-Übertragungen zu tun hat? Meldet sich jeder Knoten gegenseitig an?
Jim
Ja, NodeA-Abfragen wechseln und behalten dann lokal die aktuelle P_ID des NodeB bei. Es ist möglich, eine eigene P_ID anzuzeigen, dies hängt jedoch vom verwendeten Betriebssystem ab. Punkt-zu-Punkt ohne Schalter benötigt kein PLOGI / FLOGI / WWNN / WWPN / P_ID: Alles, was wir auf dem Draht sehen, ist an uns adressiert, alles, was wir senden, ist an NodeB adressiert, wir können uns nicht irren, also wir brauche keine adresse.
Kubanczyk
Gibt es einen FC-Rahmentyp, der von einem neuen Knoten gesendet wird, um herauszufinden, welche anderen Knoten sich auf dem Fabric befinden? Ich weiß zum Beispiel, dass unsere FC-Ziele andere WWPN-Knoten in derselben Zone sehen können. Ich frage mich nur, wie das Ziel sie entdeckt. Sendet es eine FC-Sendung oder so? Ich habe gehört, dass dies etwas mit dem FC Switches Names-Server zu tun hat.
Jim
Keine Sendung. Der Knoten sendet einen Abfragerahmen an die Adresse 0xFFFFFC. Jeder Switch hört normalerweise auf diese Adressen, sodass der erste Switch, der einen solchen Frame empfängt, antwortet. Die Antwort ist eine Liste von: P_ID, WWNN und WWPN. Es gibt auch einen anderen optionalen Mechanismus namens RSCN, bei dem der Switch selbst einen Frame an den Knoten sendet, nachdem ein neuer WWN in der Liste angezeigt wurde.
Kubanczyk
0

Vorsichtsmaßnahme - Ich weiß nicht, dass das neuere MDS-Material (FC-SW usw.) etwas davon ändert, aber es ist ein (schrecklich) abwärtskompatibles Protokoll, also ...

Nach meinem Verständnis sieht FC für die darauf befindlichen Geräte immer wie eine Schleife aus. Es kann mehr als ein Gerät pro Schleife geben, aber FC selbst hat kein Konzept für Routing oder Switching, das alles wird von den Switches (oder anderen Tricks, aber nicht in "normalen" FC-Frames, keine Unterstützung für VLAN-Tagging usw., naja, vielleicht mit FC, erledigt -SW).

Domänen sind logische Gruppen dieser Schleifen.

Die Wikipedia-Seite ist eigentlich ganz gut.

TheFiddlerWins
quelle
"FC selbst hat kein Konzept für Routing oder Switching" ... Nun, wenn man FC-Routing oder Switching mit der IP-Welt vergleicht, wird klar, dass FC einen wirklich sauberen und konsistenten Ansatz hat und IP-Stack ein überkompliziertes und weitgehend antiquiertes Durcheinander.
Kubanczyk
1
Ich bin damit einverstanden, wenn Sie IP in IPv4 ändern. IPv6 ist dem FC viel näher. Der Unterschied besteht darin, dass Sie (zumindest beim traditionellen FC) nicht mehr als 127 Endpunkte haben. Und IPv4 schaltet auch nicht um, das geschieht auf Ethernet-Ebene.
TheFiddlerWins
Stimmen Sie der IPv4-Bemerkung zu. Aber 127 Endpunkte in FC? Nein. Sie sprechen von einem veralteten Modus ohne Fabric, der als "private Schleife" bezeichnet wird. In traditionellem Stoff 2 ^ 24 minus einem kleinen reservierten Pool.
Kubanczyk
Ich bin mir nicht sicher, was Sie als "traditionelles" Gewebe definieren. Ich habe über FC-AL gesprochen. Es hört sich so an, als würden Sie nur über FC-SW sprechen, das relativ neu ist.
TheFiddlerWins
Beide wurden im vorigen Jahrtausend in Produktion genommen.
Kubanczyk