panguu
Goto Top

Bonding zwischen Xenserver, Bladecenter-Switch, Cisco Catalyst C3550

Hallo miteinander,

ich stehe momentan vor folgendem Problem und bin mir nicht sicher, wie ich das lösen soll. Folgendes Szenario:

ein Bladecenter H beinhaltet 4 Blades, auf denen Xenserver 6.2 installiert ist. Das Bladecenter H Gehäuse hat zwei Netzwerkswitche, das sind Nortel Layer2-3 Gbe Switche, welches die einzelnen Blades als jeweiliges Netzwerkinterface sehen. Jeder Blade besitzt quasi somit zwei Netzwerkkarten und jeder Xenserver hat also zwei phsyikalische Netzwerkinterface: NIC0 und NIC1.

Diese zwei Nortel-Switche sind physikalisch wie folgt mit dem Cisco Catalyst C3550 verbunden. Ich habe jeweils 4 Ports auf dem C3550 verwendet, um einen LACP Port-Channel zu den zwei jeweiligen Bladecenter-Switches zu verbinden. Port-Channel1 hat somit 4 einzelne Leitungen, die in den ersten Bladecenter-Switch gehen, und Port-Channel2 hat ebenfalls 4 einzelne Leitungen, die in den zweiten Bladecenter-Switch verlaufen. Diese zwei LACP Kanäle sind beide aktiv und vollständig funktionsfähig. Die Konfiguration habe ich jeweils auf den zwei Nortel-Switches und dem C3550 durchgeführt.

5b290c010b54ac8b0e750073e76fd24e

Bis zu diesem Aufbau, weiß ein einzelner Blade (=Xenserver) jedoch absolut nichts darüber, dass hinter ihm LACP-Kanal vorhanden wäre. Für den Xenserver ist es irrelevant was dahinter kommt, er sieht lediglich eine NIC0 und eine NIC1.

Wenn ich mit diesem Setup nun auf jedem einzelnen Xenserver 10 VMs betreiben würde (in Summe also 40 VMs), die allesamt NIC0 als Netzwerk eingetragen haben, dann würde Xenserver den Traffic für all diese VMs über NIC0 abwickeln, und somit über den Port-Channel1. Das wäre Blödsinn, weil mein Port-Channel2 somit nie zum Einsatz kommen würde.

Wenn ich mit diesem Setup jedoch die Hälfte der VMs (also 20VMs) die NIC0 zuweisen würde, und den restlichen 20VMs die NIC1 zuweisen würde, dann hätte ich manuell für Load-Balancing innerhalb der VM-Gruppe gesorgt. Das würde nun auch den Port-Channel2 nutzen, aber diese manuelle Variante ist auch nicht das gelbe vom Ei, denn ich müsste mich bei jeder Installation einer neuen VM selbst darum kümmern, eine ausgeglichene Netzwerkkarten-Verteilung zu gewährleisten, also abwechseln mal NIC0 oder NIC1 für eine VM verwenden. Das ist aber blöd und kann bei großer VM-Anzahl oder häufigen Änderungen sehr aufwendig sein.

Also habe ich mir folgendes als Lösung überlegt: ich erstelle in Xenserver ein Bonding. Dort hat man folgende Auswahlmöglichkeiten...
d2741335eb7afe4d98bfd078fc1e17ee

Interessant für meine Zwecke wären "Active-Active" oder "LACP with load-balancing based on <egal was für ein Algorithmus>". Eigentlich nutze ich vorzugsweise immer LACP, aber hier bin ich mit meinem Latein am Ende. Wenn ich tatsächlich versuchen würde NIC0+NIC1 mittels LACP zu bündeln, dann müsste ja der Gegenpartner von NIC0 und NIC1 ebenfalls mit LACP konfiguriert würden. Wie zum Geier soll das denn aber gehen? Das Gegenstück von NIC0 ist nämlich der erste Nortel-Switch und das Partner von NIC1 ist der zweite Nortel-Switch. Das geht doch schlecht, oder nicht???

Wenn also diese LACP-Möglichkeit wegfallen müsste, bleibt mir also nur Active-Active und damit müsste das doch eigentlich klappen, oder? Denn das Xenserver-Handbuch zu diesem Active-Active Modus sagt:
caaa67d5274ca0127225d98efacb1eb9

82af8de81c1c1098331f051e2d17a00b

9c7bbcd14c3ca0872959baa225b5d6d0

Ist demnach dieses Active-Active-Bonding, das was ich anstreben sollte? freue mich über euer feedback und Hilfestellung. Besten Dank im Voraus und eine schöne Woche wünscht...

Pangu

Content-Key: 249191

Url: https://administrator.de/contentid/249191

Printed on: April 18, 2024 at 22:04 o'clock

Member: aqui
aqui Sep 15, 2014 updated at 11:14:30 (UTC)
Goto Top
Ein klassisches Szenario und gut beschrieben face-wink
Das Gegenstück von NIC0 ist nämlich der erste Nortel-Switch und das Partner von NIC1 ist der zweite Nortel-Switch. Das geht doch schlecht, oder nicht???
Das kommt wie immer auf die Switches drauf an ob die sowas supporten ?!

Heutzutage mit aktueller Switch Hardware hast du 2 Optionen:
a.) Die Switches sind stackbare Switches und können über ein Stacking logisch wie ein Switch agieren. Folglich sehen dann die Adapter NIC0 und auch NIC1 dann die beiden physischen Switches im Stack als einen logischen Switch und alles ist gut.
Eine LACP Link Aggregation ist dann so problemlos konfigurierbar mit NIC0 und NIC1.

b.) Viele Hersteller supporten ein virtuelles Zusammenfassen von separaten Switches für die 802.3ad / LACP Link Aggreagtion. Diese Verfahren sind leider nicht standartisiert und jeder Hersteller nennt das anders. z.B. Cisco = VSS oder VPC (Virtual Port Channel), Brocade = MCT (Multi Chassis Trunking) usw. usw.
Damit kann man dann 2 Switches für eine Link Aggreagtion zusammenführen. Auch hier "sieht" das Endgerät dann aus .ad / LACP Sicht wieder nur ein Gerät obwohl es physisch 2 sind.
Ursprünglich kam das Verfahren von Nortel ! und nannte sich Split Multi-Link Trunking (SMLT) http://en.wikipedia.org/wiki/Split_multi-link_trunking
Nortel hat das also federführend angestossen.

Wenn du also Glück hast supporten deine beiden Nortel Gurken diese Option b.) und du kannst das so dann problemlos lösen. Hier hilft wie immer ein Blick ins Handbuch der Switches !
Stackbar sind sie vermutlich nicht, oder ?
Leider hast du keinen Modell Namen hier angegeben und zwingst uns so mal wieder zum raten face-sad
Der IEEE Standard 802.3ad / LACP supportet offiziell so ein Splitting auf unterschiedliche HW generell nicht, sondern lässt einen Trunk immer nur auf einem physischen Gerät zu.
Die o.a. genannten Hersteller Verfahren sind heute aber mehr oder weniger Standard bei allen besseren Switch Herstellern.

Wenn deine Nortel Gurken wider Erwarten allerdings keins der genannten Verfahren oder Techniken supporten dann hast du keinerlei Chance das sinnvoll umzusetzen.
Es spielt übrigens keine Rolle ob du LACP Trunks oder Active-Active machst. letzterer ist ein statischer Trunk ohne LACP und birgt erhebliche Risiken wie Loops usw. so das du davon besser die Finger lassen solltest !
Deine Verfahrensweise generell den Standard LACP einzusetzen ist schon genau richtig und sollte man in einem heterogenen Umfeld auch IMMER machen wenn möglich.
Grundlegende Erklärungen zu LACP findest du z.B. auch hier:
Netzwerk Management Server mit Raspberry Pi
Member: panguu
panguu Sep 15, 2014 updated at 11:42:24 (UTC)
Goto Top
Hallo aqui und danke für deinen wie immer ausführlichen Beitrag.

Leider hast du keinen Modell Namen hier angegeben und zwingst uns so mal wieder zum raten

Das habe ich doch, gleich ganz am Anfang meines Postings. Es handelt sich um das "Nortel Layer2-3 GbE Switch Module(Copper)". Wenn ich mir die PDF-Anleitung dieses Produktes durchforste nach dem Suchwort "Trunk", dann finde ich unter anderem zu Beginn folgende Definition:

dc398f5162d855f1a960e3cf48719789

Leider wird auf MLT nirgends mehr eingegangen. Wenn ich mich also auf eines dieser Nortel-Switchmodule einlogge, so finde ich leider auch nichts, dass auf Multi-Level-Trunking deutet. Schade face-sad wahrscheinlich können die das nicht, nehme ich an?

Zurückkommend auf die Active-Active Alternative: du hast mir geraten, die Finger davon zu lassen. Was genau ist denn die Gefahr oder das Problem? Einen Loop reinkriegen kann ich mir jetzt irgendwie schwer vorstellen. Ich habe mal Xenservers' Active-Active Modus schonmal eingesetzt auf einer anderen Installation, da war das tatsächlich so dass der Server zwei Netzwerkkarten hatte und mit 2 Patchkabeln an einen nicht LACP-fähigen Switch verbunden wurde. Durch den Active-Active Modus war er problemlos in der Lage Load-Balancing durchzuführen und das hat auch nach Tests mit "iperf" und "netio" auch funktioniert. Deshalb bin ich jetzt etwas verwundert, oder hab ich 'nen Denkfehler und das ganz sieht bei diesem Szenario doch arg anders aus, weil meine zwei Verbindungen keine normale Patchkabel sind, sondern eben Port-Channels ?
Member: aqui
aqui Sep 15, 2014 updated at 12:00:54 (UTC)
Goto Top
Es handelt sich um das "Nortel Layer2-3 GbE Switch Module(Copper)".
Welches Automodell benutzt du denn ?? Na das hab ich doch gesagt das mit den 4 Reifen und der Windschutzscheibe....
Du erkennst die sinnfreie Antwort, oder ??
Diese Nortel Module basieren ja auf einer ganz bestimmten Hardware bzw. auf einem ganz bestimmten Modell !
Ziel der Frage war es DAS rauszubekommen, damit man mal in den Featureset bzw. das Handbuch sehen kann um zu sehen ob du Glück hast und dieses Feature auf dieser Plattform supportet ist face-wink
Wenn ich mich also auf eines dieser Nortel-Switchmodule einlogge, so finde ich leider auch nichts, dass auf Multi-Level-Trunking deutet. Schade, wahrscheinlich können die das nicht, nehme ich an?
Das wird dann vermutlich leider so sein...solltest du aber mit dem Nortel Helpdesk nochmal genau und wasserdicht abklären, denn dein Design ist ja ein Klassiker und heutige embeddete Module fast aller Hersteller supporten sowas problemlos !

Active-Active ist ein statischer Trunk, d.h. diese Seite macht ein einfach ein Balancing ohne darauf zu achten ob z.B. ein Brigdging über diese Ports gemacht wird. Wenn die andere Seite also der switch unintelligent ist und z.B. kein STP kann kann sowas ganz einfach passieren.
NetIO und iPerf zeigen auch niemals ob das funktioniert ! Link Aggregation ist immer ein Hashing Verfahren bei dem aus den letzten 4 Bits der Mac Adresse (oder IP) ein Hash berechnent wird der auf den physischen Link zeigt der für diese Übertragung verwendet wird.
Physisch wird ein Flow sei es jetzt Mac oder IP basiert also immer nur auf einem einzelnen Link übertragen.
Nur einzig die Verteilung der Macs oder IPs entscheidet dann über eine Verteilung der Auslastung.
Durch das Hashing und die nicht homogene Verteilung der Adressen ist das Balancing also niemals fifty fifty sondern in der Regel erheblich schlechter.
Besser Hersteller fügen in die Hash Berechnung dann noch den TCP oder UDP Port mit ein um das granularer zu machen.
NetIO und iPerf bringen so gar nichts, denn du kannst die Verteilung eben damit nicht beobachten und siehst nur den Durchsatz des einzelnen Flows. Der kann aber ja niemals höher sein als einer der am Trunk beteiligten Links, da er ja nur über einen einzigen singulären Link übertragen wird !!
Wenn dann musst du das mit der Linkauslastung ansehen ob es wirklich ein Balancing gibt.
Das kann man z.B. grafisch sehen auf dem Switch:
  • SNMP auf dem Switch aktivieren mit der Read Only Community "Public"
  • STG 1.4.5 Grapher runterladen und 2mal (einen Prozess pro Link) starten: http://leonidvm.chat.ru
  • IP Switch eingeben und OID auf 1.3.6.1.2.1.2.2.1.10.(Port-A) auf dem einen einstellen. OID auf 1.3.6.1.2.1.2.2.1.10.(Port-B) auf dem anderen einstellen
  • Traffic anstoßen
  • Auslastung der beiden Links beobachten...
Die physische Übertragung der Daten ist ja immer nur so schnell wie der Einzellink ! Das quasi Verhalten der Erhöhung der Bandbreite wird also nur durch die Verteilung der Auslastung auf mehrere Links erreicht, da eben die Belastung pro Link klein bleibt und so die Performance hoch.
Member: panguu
panguu Sep 15, 2014 updated at 12:12:03 (UTC)
Goto Top
Achso, na gut, das wußte ich nicht. Sorry... Wenn ich mich auf den Nortel-Switch einlogge, so könnte ich noch mit diesen Infos dienen, aber ob die hilfreich sind oder nicht, weiß ich nicht.

Software Rev: 1.4.2 (FLASH image1)
Enabled Software features: none

Najut, dann vergess ich mal schnell das Active-Active Zeugs wieder. Jetzt hab ich nochmal in der Anleitung nachgesehen. Evtl. kann man dieses MLT konfigurieren, indem man ein und denselben AdminKey auf Switch1 und Switch2 verwendet ? Die Anleitung sagt folgendes:

68583bbd0459a3d8f604ed129214ea43

35371ceb56efab2a5bc32c5f275e31ba

Auf dem Nortel-Switch1 habe ich LACP wie folgt konfiguriert, indem ich AdminKey=17 für meine 4 externen Ports genutzt habe...
0e6b31e5def1bed8e47fa8066120edad

Wenn ich auf dem Nortel-Switch2 exakt dieselbe Konfiguration nutzen würde (also ebenfalls AdminKey=17 für die 4 externen Ports), würde das ausreichen, was denkst du?
Member: aqui
aqui Sep 15, 2014 updated at 13:28:25 (UTC)
Goto Top
Nee, ist nicht hilfreich, denn das zeigt nur die Firmware Version. Wichtig wäre zu wissen auf welcher Modell HW Basis diese Module beruhen.
Aber das wird wohl nur Nortel / Avaya dir benatworten können ?!
Wichtig wäre auch mal zu wissen ob ggf. eine aktuellere Firmware Version existiert und ob diese ggf. dieses MLT Feature supportet ?!

Normalerweise müssen solch geclusterte Switches beide aktiv ihre Mac Forwarding Database sharen. Klar denn jeder Switch muss ja auf einem gemeinsamen LAG die Pärchen kennen um auch ein Failover zu machen. Das geht immer über eine aktive Session zwischen den Switches. MLT usw. muss also zwingend dediziert konfiguriert werden zwischen den Switches. Nur einen gleichen LACP Key zu nehmen wird ja niemals reichen wenn die beiden Switches sich nicht kennen.
Wenn keiner vom anderen weiss ist es ihnen ja schnurz wer welchen Key nutzt. Ob gleich oder nicht ist ja nur lokal relevant.
Deine oben zitierten Dokumente sagen zudem absolut gar nichts zu der MLT Thematik aus, so das davon auszugehen ist das sie es de facto NICHT supporten.
Das sind ganz normale Standard Features die da sind.
Nur mal als Beispoiel wie andere es machen mit diesen Funktionen, damit du mal siehst was Konfig technisch dahinter steht:
Cisco:
http://www.cisco.com/c/en/us/products/collateral/switches/nexus-5000-se ...
Brocade:
http://www.brocade.com/downloads/documents/html_product_manuals/FI_ICX6 ...
Da ist also schon ne aktive Kommunikation zw. den Switches.

Noch einfacher wärs ja wenn sie wenigstens HW Stackbar wären, dann würde ein simples Kapel reichen und der Thema wär erledigt...
Aber um ganz sicher zu gehen was die HW kann solltest du die Nortel-, oder da die ja seit langem pleite sind die Avaya Hotline anrufen. Avaya ist ja der Nachfolger und verwaltet die Nortel Leichen....
Member: panguu
panguu Sep 16, 2014 updated at 07:17:03 (UTC)
Goto Top
Vielen herzlichen Dank für all diese Infos. Bei Avaya hab ich leider keinen support bekommen, weil wir bei denen keinen Supportvertrag besitzen, schade. Auf deren Infoseiten konnte ich auch keine hilfreichen Informationen entnehmen. Nach all dem, was ich nun so gelesen habe (deine verlinkten Dokumente inklusive) gehe ich also stark davon aus, dass das eingesetzte Image auf unseren Nortel-Switches dieses MLT einfach nicht unterstützen (auch über CLI auf dem Nortel-Switch konnte ich nix entsprechendes im L2-Konfigurationsuntermenü entdecken, das auf MLT deutet).

Bezüglich stacking habe ich auch gegoogelt und zu diesem Nortel-Switch nichts Zutreffendes finden können.

Jetzt frag ich doch mal anders herum, vllt. hatte ich auch einfach einen Denkfehler in meinem Vorhaben. Was ich erzielen möchte ist folgendes:

Clientzugriffe auf den verschiedensten VMs, die ja auf dem Xenserver1-4 laufen und somit auf den Blades #1 - #4 sollen bestmöglichst load-balanced werden. Wie kann ich das beste aus der vorhandenen HW herausholen? Da ich leider nicht beide Nortel-Switches so verwenden kann, wie ursprünglich geplant (und in meinem Anfangspost beschrieben), sollte ich stattdessen einen einzigen LACP-Kanal mit 4 Leitungen benutzen? Kann ich da noch was pimpen in irgendeiner Art? Die Algorithmen habe ich alle durchprobiert, und zwar auf beiden Seiten. Bei den einzelnen Tests habe ich immer mit 4 Clients mittels "netio" mit voller Last auf 4 verschiedene VMs zugegriffen. Die besten Ergebnisse erzielte ich dabei mit dem "sip+dip" Algo
Member: aqui
aqui Sep 17, 2014 at 09:18:40 (UTC)
Goto Top
Deine ursprüngliche Anforderung war absolut legitim und das ist auch heutzutage State of the Art das so umzusetzen !
In der Beziehung hast du also alles absolut richtig gemacht.
Dein Problem ist deine (sorry) müllige Switchhardware, die einfach solche banalen Anforderungen nicht supportet. Verwunderlich heutzutage aber Nortel oder besser Avaya sind ja eher für VoIP bekannt als für innivative Switch Hardware und Netzwerk Lösungen.
Kann aber auch sein das deine dortige HW einfach zu alt ist.

Sinnvoll kannst du es also nicht lösen, denn das wäre dein ursprünglicher Vorschlag. Da du keinerlei Möglichkeit hast den Traffic sinnvoll auf beide Switches redundant zu verteilen mit Redundanz wie du es ja vorhattest, kannst du es nur dediziert pro Switch tun, also quasi eine billige Allerwelts Konfig mit einer festen Bindung der NICs auf einem Switch.
Nachteil ist dann die starre Zuordung und das völlige Fehlen einer sinnvollen Redundanz und Skalierbarkeit die die erste Lösung ja geliefert hätte.
Aber es ist halt nun mal so wenn man einen Dacia Logan hat kann man keine 280 fahren auf der Autobahn.
Sinnvoll wäre nur wenn du über eine aktuelle neue Switch HW nachdenkst ?!
Member: panguu
panguu Sep 18, 2014 at 05:13:41 (UTC)
Goto Top
Ja gerne, ich würde nicht nein sagen. Mein Chef würd mich niederboxen, wenn ich ihm nun damit komme. Ist doch immer dasselbe: da wird Geld verprasselt für sinnloses Zeug (und damit meine ich wirklich SINNLOSES Zeug), und wenn mal Geld gebraucht wird für wirklich *wichtige* Komponenten (z.B. auch aus dem Backup-Bereich) oder wichtige Innovationen, Verbesserungen, Beseitigun von Flaschenhälsen, neuere/aktuelle Hardware, usw... dann wird immer abgeblockt nach dem Motto: "brauchen wir das wirklich, ist das so notwendig? Kommen wir auch nicht ohne aus? Kann das nicht so weiterlaufen wie jetzt? blablabla...) Naja, genug Frust für den frühen Morgen face-smile Ich mach das beste draus und nutz den zweiten Switch mit seinem LACPKanal vielleicht anderweitig aus, mal sehen ...

Vielen herzlichen Dank aqui. Einen schönen Tag wünsche ich noch.
Member: aqui
aqui Sep 18, 2014 at 09:15:59 (UTC)
Goto Top
Mein Chef würd mich niederboxen, wenn ich ihm nun damit komme
Komische Einstellung....??! Es dient der Betreibssicherheit seiner Server die laufen müssen damit ER Geld verdient und es dem Umsatz sichert !!!
Er müsste also ein essentielles Interesse daran haben das zu lösen.... Oder betreibt er nur ne Würstchenbude ?
DU solltest ihn als kompetenter EDVler auch ja entsprechend beraten. genau dafür hat er dich doch auch eingestellt, oder ?!
Sehr komische Firma in der du da arbeitest....sorry ?!
Member: panguu
panguu Sep 18, 2014 at 13:12:31 (UTC)
Goto Top
Mein Chef = IT-Leiter.
Big Boss = Geschäftsführer.

Wenn ich meinem Chef sagen würde, dass die Nortel-Switche kacke sind und x und y nicht supporten, weil foo und bar, dann kommt die Aussage: "das ist jetzt aber nicht so wichtig, ohne läufts ja auch erstmal, es gibt wichtigere Baustellen..." oder "Muss das wirklich sein, das Budget ist knapp, und wir müssen ja noch unbedingt Microsoft-Office Lizenzen kaufen, weil die Mitarbeiter mit Libre-/Openoffice das Dokument nicht öffnen können..." Mich kotzt das dermaßen an, überall wird geflickt und mit bestehenden Mitteln versucht, weiterzuarbeiten.

Sehr komische Firma in der du da arbeitest....sorry ?!

Machst du Witze? Da werkeln sogar noch teilweise Win2000 Büchsen rum, und nein das ist kein Witz sondern traurige Wahrheit. Aber das wird wieder off-topic, sorry dafür.
Member: aqui
aqui Sep 19, 2014 at 09:50:11 (UTC)
Goto Top
No comment....wir kümmern uns besser mal nur ums Technische !