Hallo Community - kurze Frage zu Load Balancing und Durchsatzleistung

SlimTrainEE

New Member
Feb 18, 2025
7
4
3
Hallo liebe Community,
ich bin recht neu bei Proxmox aber sehr begeistert und habe mir auch schon eine kleines funktionierendes Homelab aufgebaut, zu welchem ich jetzt eine Frage habe.
Da es möglich ist für ein Cluster einen "internen Ring" aufzubauen, um VMs zu verschieben etc..., also quasi ein SAN-Ring, interessiere ich mich dafür diesen Ring möglichst schnell zu machen.

Z.Z. habe ich zwei Knoten und das Cluster ist direkt gesteckt. Jeder Konten hat vier 2,5Gbit Schnittstellen, also ist der "interne Ring" gerade mit einer Bandbreite von 2,5Gbit.
Da ich noch Schnittstellen frei habe, überlege ich also, ob ich mehrere Wege unter den Knoten haben kann.
Stichwörter: LAGG, Load Balancing, Round Robin, Multipathing... so in diese Richtung.

Hat da schon jemand Erfahrungen gemacht, den Durchsatz zwischen Knoten zu erhöhen ohne auf eine schneller Verbindungsart zu wechseln?

Ich habe zwei Szenarien im Kopf:

Erstes Szenario:
Hierbei sollen die entsprechenden Ports auf den Knoten und am Switch aggregiert werden und als eine Schnittstelle erscheinen. Ich weiß noch nicht, wie man da Load Balancing einstellen könnte.
IMG_0326.JPEG

Zweites Szenario:
Hierbei sollen die Knoten mit jeweils zwei Verbindungen auf den Switch gesteckt werden ohne LAGG. Hier weiß ich auch noch nicht, wie man mehrere Verbingungen in Proxmox einstellen kann, so dass über beide Leitungen Daten geschoben werden können.
IMG_0327.JPEG


Ich könnte mir auch vorstellen, dass beim Verschieben von nur einer VM, nur eine Leitung benutzt wird weil nur eine TCP Session steht aber ich kenne mich in der Materie noch nicht gut genug aus.

Falls aber jemand weiß, ob ein solches Feature bei Proxmox überhaupt funktioniert oder sonst Informationen dazu hat, immer gerne raus damit.
Ich interessiere mich speziell nicht dafür, ob das ganze wirtschaftlich sinnvoll ist oder Ähnliches. Mein Interesse hierbei ist es Wissen zu sammeln und rumzubasteln :)


Wahrscheinlich werde ich heute abend auch einen Testlauf mit iPerf machen.
Hierzu habe ich drei Abläufe geplant:

Erster Ablauf:
Eine LACP Verbindung mit entsprechenden Einstellungen auf dem Knoten und auf dem Switch sowie zwei normale Verbindungen auf dem zweiten Knoten mit dem Versuch für entsprechende Einstellungen.

Zweiter Ablauf:
Zwei LACP Verbindungen mit entsprechenden Einstellungen auf den Knoten und auf dem Switch.

Dritter Ablauf:
Nur normale Verbindungen, jeweils zwei pro Knoten, zwischen den Knoten und dem Switch mit entsprechenden Einstellungen auf den Knoten um zu versuchen, den Durchsatz zu steigern.
 
Hi, das ist alles kein Problem. Erstelle für die zwei NICs auf dem Migration Switch ein Bond und aktiviere LACP. Wenn der Switch es unterstützt am besten L3+L4 sonst L2+L3.
Auf dem Switch natürlich den Gegenpart konfigurieren.
Dann unter Datacenter > Options > Migration Settings den IP Kreis von dem Bond angeben.

Damit geht live Migration und z.B. ZFS Replika über dieses Netzwerk.
 
Ok, ich bin auf ein kleines Problem bei der Konfiguration gestoßen.

Ich konnte neue Interfaces hinzufügen auf beiden Knoten. Jeder Knoten bringt 4 NICs mit. Also habe ich zur Standardverbindung, die zwischen den Knoten direkt gesteckt ist, das Bond hinzugefügt. Auf meinem L3 Switch habe ich LACP eingestellt und auf den gebondeten Interfaces der Knoten ebenfalls als Mode: LACP und als Hash Policy L2 + L3.
Soweit so gut. Ich habe es auch hinbekommen, dass die Interfaces angehen nach einem Neustart der Knoten und das alte Interface ausbleibt.
1740234760551.png
1740234792183.png
Soweit so gut. Der Switch meldet auch, dass beide Verbindungen bei ihm ankommen.
1740235153723.png
Soweit so gut. :) Jetzt gibt es aber noch zwei Einstellungen, die man anpassen muss.

Unter Dataceter -> Options gibt es den Punkt "Migration Settings" dort wird nach "Network" gefragt man kann aber nur Interfaces angeben. Naja egal ist eh aus einem drop-down Menü.
1740234963347.png
Aber unter Datacenter -> Cluster, da sind noch die alten Interfaces aufgelistet und ich kann den Punkt nicht bearbeiten um das neu erstellte Linux Bond aufzunehmen als IP Adresse den Link0 der jeweiligen Knoten.
1740234913167.png

Wie kannn man jetzt ex-post die Verbindung editieren? Und sagt bitte nicht VIM :(
Kann ich die Interfaces .31 und .41 auf Seiten der Knoten löschen und dann hier neu vergeben oder wie läuft das ab?

Und ja, es hat Probleme gegeben, wenn man mehrere Interfaces im Netz der Migration offen hatte. Weiß nicht genau wieso. Aber mir ist bewusste, dass man mit Autostart und Reboot die Interfaces aus und einschalten kann. Auch, dass das mit der Konsole geht :)
 
Update: Ich werde mich wohl erstmal hier orientieren und dann schauen wie es läuft.

pve-docs/chapter-pvecm.html#_separate_cluster_network
 
  • Like
Reactions: Johannes S
Update:

Es hat geklappt. Mit vim.tiny und der .conf Datei von Proxmox VE konnte ich, nachträglich, die Migration des Clusters erfolgreich auf das Bond umstellen, welches ich im vorherigen Schritt erstellt hatte.

Es klappt dann auch, wenn man die Ports der Knoten direkt steckt, in meinem Fall waren es ja nur zwei Knoten, und nicht über einen Switch geht.

Übertragungsgeschw. einer VM ging mit 4.0 GiB/s aka 0.54 Gigabyte pro Sekunde.
 
  • Like
Reactions: Johannes S
Ok, ich bin auf ein kleines Problem bei der Konfiguration gestoßen.

Ich konnte neue Interfaces hinzufügen auf beiden Knoten. Jeder Knoten bringt 4 NICs mit. Also habe ich zur Standardverbindung, die zwischen den Knoten direkt gesteckt ist, das Bond hinzugefügt. Auf meinem L3 Switch habe ich LACP eingestellt und auf den gebondeten Interfaces der Knoten ebenfalls als Mode: LACP und als Hash Policy L2 + L3.
Soweit so gut. Ich habe es auch hinbekommen, dass die Interfaces angehen nach einem Neustart der Knoten und das alte Interface ausbleibt.
View attachment 82763
View attachment 82764
Soweit so gut. Der Switch meldet auch, dass beide Verbindungen bei ihm ankommen.
View attachment 82772
Soweit so gut. :) Jetzt gibt es aber noch zwei Einstellungen, die man anpassen muss.

Unter Dataceter -> Options gibt es den Punkt "Migration Settings" dort wird nach "Network" gefragt man kann aber nur Interfaces angeben. Naja egal ist eh aus einem drop-down Menü.
View attachment 82768
Aber unter Datacenter -> Cluster, da sind noch die alten Interfaces aufgelistet und ich kann den Punkt nicht bearbeiten um das neu erstellte Linux Bond aufzunehmen als IP Adresse den Link0 der jeweiligen Knoten.
View attachment 82767

Wie kannn man jetzt ex-post die Verbindung editieren? Und sagt bitte nicht VIM :(
Kann ich die Interfaces .31 und .41 auf Seiten der Knoten löschen und dann hier neu vergeben oder wie läuft das ab?

Und ja, es hat Probleme gegeben, wenn man mehrere Interfaces im Netz der Migration offen hatte. Weiß nicht genau wieso. Aber mir ist bewusste, dass man mit Autostart und Reboot die Interfaces aus und einschalten kann. Auch, dass das mit der Konsole geht :)
Hi, du darfst den Bond Membern keine IP geben. Das der Bond so sauber läuft ist eher Zufall. ;)
 
  • Like
Reactions: news and Johannes S
Ich werde dann mal im Nachgang versuchen, die Interfaces, also die Members der Bonds, IP-los zu machen und schauen, wie sich das auf die Performance auswirkt bzw. sogar auf die generelle Funktionalität.
 
Last edited:
Ich werde dann mal im Nachgang versuchen, die Interfaces, also die Members der Bonds, IP-los zu machen und schauen, wie sich das auf die Performance auswirkt bzw. sogar auf die generelle Funktionalität.
Sorry das hat doch mit versuchen nichts zu tun, man macht es oder macht es nicht nach der Proxmox Anleitung. Dort steht im Kapitel Netzwerk, wie ein Bond auszusehen hat. Da geht es nur darum, ob man die Interface an das Bond hängt und das Bond dann dem virtuell Switch zuordnet oder umgekehrt. Die Ethernetinterface sind dabei generell nicht gemanagt dahingehend, dass sie eine IP hätte.
 
  • Like
Reactions: Johannes S
@news, wir sind ja nun nicht hier um uns über Semantik zu streiten :)

@all - ich habe einen dritten Member ins Bond aufnehmen wollen was nicht gut geklappt hat. Die Netzwerkeinstellungen sind jetzt so, dass es wieder nur über einen Link funktioniert.
Eine Frage wäre noch, ob man gelöschte Interfaces auch wieder anzeigbar machen kann? Muss man da eine Datei editieren oder Proxmox VE nochmal neu installieren?
 
  • Like
Reactions: news
@SlimTrainEE die realen Netzwerkinterface werden nach dem Booten gelesen und zugeordnet und tauchen dann in der GUI auf.
GUI -> Datacenter -> Proxmox Host -> System/Network

Die vmbrX und bondY lassen sich so auswählen, da sie "virtuelle" Interface sind.

GUI -> Datacenter -> Proxmox Host -> System/Network -> Create [Linux Bridge, Linux Bond, Linux VLAN, ..]
Die Netzwerkinterface Namen muss man dann noch per Handeintragen.

Anm. zum Bild, das Interface enx0050b6162bce war/ ist eine USB2 -> 100MBit/s Netzwerkadapter, der im Augenblick nicht angesteckt ist.
 

Attachments

  • 20250526-Promox-VE-Network.png
    20250526-Promox-VE-Network.png
    76.6 KB · Views: 8
Last edited:
  • Like
Reactions: SlimTrainEE
Tatsächlich sind jetzt alle Ports wieder hochgekommen. Ich hatte beide Knoten stromlos gemacht und jetzt ca. einen Tag ohne Strom stehen.
Vorher kamen die IFs des Betaknotens nicht hoch wenn ich einen Neustart über die GUI ausgelöst hatte.
Dafür kommt jetzt der gesamte Gammaknoten nicht mehr hoch aber ich habe das Gefühl, dass das nicht an Proxmox liegt :)

Danke erstmal.

1740599522932.png
 
  • Like
Reactions: news
Was für Netzwerkkarten sind das?
Bei Broadcom gibt es ein bekanntes Issue, dass wenn die Firmware zu alt ist, kommen die Interfaces nach einen Reboot nicht hoch bei aktuellem Treiber (aktueller Kernel)
Da kann ein Firmwareupdate abhilfe schaffen.
 
  • Like
Reactions: news