Proxmox Linux Bond scheint nicht richtig genutzt zu werden

Boppel

New Member
Aug 8, 2022
12
1
3
Hallo zusammen,

ich habe meine beiden Proxmox Hosts mit lokalem Storage, mit jeweils 4x 1 Gigabit Ethernet an einen Switch (Gigabit Switch) angebunden.
Die Ports sind auf beiden Seiten als LACP 2+3 konfiguriert.
Genutzt werden Linux Bridges sowie ein Linux Bond, OVS ist nicht im Einsatz.
Über den Bond laufen verschiedene VM VLANs. (vmbr MTU 1500)
Außer dem Bond gibt es keine weiteren Netzwerkanbindung zwischen den Hosts oder zum Switch.

Die Idee war, so möglichst die beste Leistung zu erreichen.
Es gibt kein Dediziertes Netzwerk für die VM Migration, auch ist die Konfiguration auf "insecure" gestellt um einen möglichen Flaschenhals (CPU) auszuschließen.

Wenn eine, zwei oder mehr VMs von HostA mit lokalem Storage, zu HostB mit lokalem Storage gleichzeitig migriert werden, wird maximal 1 Gigabit/s Durchsatz im Bond erreicht.
Der Traffic läuft über ein einziges Interface im Bond.

Meine Erwartung wäre gewesen, dass mit mehreren parallel kopierten VMs, die Kapazität des Bonds genutzt wird.
Nutze ich iperf und lege last auf den Bond, erreiche ich maximal 2 Gigabit/s.

Der Traffic wird nicht über die virtualierte Firewall geroutet.

enp2s0, enp3s0, enp4s0 und enp5s0 sind mitglieder des bond0
vmbr2 ist die bridge mit den VLANs an der die VMs hängen, bzw. das Server Netz 192.168.1.0/24 welches ohne VLANs konfiguriert ist.

1668074234328.png


Meine Fragen dazu:
  • Habe ich einen Denkfehler in meinem Aufbau?
  • Kann KSM (memory dedup) ein signifikante Rolle dabei spielen? (Ich vermute eher nicht)
  • Darf die MTU des vmbr generell auf 9000 gestellt werden, wenn alle Parteien damit umgehen können? Auch wenn VMs die über den Bond laufen, selbst nur eine MTU von 1500 haben?

Vielen Dank für eure Hilfe.


Gruß,
Boppel
 

Attachments

  • 1668074061245.png
    1668074061245.png
    186.2 KB · Views: 2
Last edited:
Bei allen Bündelungsverfahren muss garantiert sein, dass eine Session immer durch das gleiche Interface läuft. Insbesondere kann eine einzelne Session niemals mehr Bandbreite bekommen als die eines einzelnen Interfaces.

Was genau eine 'Session' definiert, kann man mittels dem Bond Mode festlegen.

Wenn du als Bond Mode Layer2+3 konfigurierst, wird Traffic entsprechend der vier Werte
  • Quell-MAC-Adresse (Layer 2)
  • Ziel-MAC-Adresse (Layer 2)
  • Quell-IP-Adresse (Layer 3)
  • Ziel-IP-Adresse (Layer 3)
über die konfigurierten Bond-Slaves geroutet. Das bedeutet, dass jeder Traffic, bei dem die vier Werte gleich sind, auch immer über dasselbe Interface läuft.

In deinem Fall wird die Migration vermutlich Pakete von dem Interface des ersten Proxmox (eine Quell-MAC und Quell-IP) zu dem Interface des zweiten Proxmox (eine Ziel-MAC und Ziel-IP) senden. Der Algorithmus hat dann entschieden, für diese Session das Interface enp3s0 zu verwenden.

Auch bei mehreren Migrationen bleiben diese vier Werte gleich, und sind damit Teil der gleichen Session.

Du kannst versuchen, stattdessen Layer3+4 zu verwenden, dann wird mittels (Quell/Ziel)-IP und (Quell-Ziel)-Port geroutet. Ich weiß nicht genau, wie Proxmox die Migrationen macht, aber zwei verschiedene Prozesse bedeuten üblicherweise zwei verschiedene Quell-Ports und dann würde für jede Migration neu entschieden, welches Interface dafür benutzt wird.
 
Last edited:
  • Like
Reactions: aaron

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!