20 Gbps tussen twee Proxmox-hosts via 2×10GbE
Ik draai twee Dell-servers in een datacenter als hobbyproject, beide voorzien van Proxmox VE. Om back-ups en andere grote bestanden sneller tussen host A en host B te kunnen verplaatsen, heb ik een directe 20 Gbps verbinding opgezet tussen de twee servers.
In plaats van één enkele 10GbE-verbinding maak ik gebruik van twee 10GbE-netwerkpoorten per server. Door deze interfaces te bundelen met Linux bonding (LACP 802.3ad) ontstaat een gecombineerde verbinding met een totale capaciteit van 20 Gbps. Onderstaande afbeelding geeft dit schematisch weer.

Wanneer je een Linux bond aanmaakt, dien je hieraan een eigen IP-adres toe te wijzen. In mijn geval heb ik hiervoor een apart subnet gebruikt om het verkeer gescheiden te houden van het productienetwerk. Onder “slaves” geef je vervolgens de twee fysieke netwerkpoorten op die je in de bond wilt opnemen.
Als voorbeeld kun je aan de ene kant van de verbinding host A configureren met het IP-adres 192.168.1.1/24, en aan de andere kant host B met 192.168.1.2/24. Beide interfaces bevinden zich daarbij in hetzelfde subnet, zodat ze direct met elkaar kunnen communiceren over de bonded link. Wanneer dit juist is ingesteld kan je vanaf HOST A pingen naar HOST B.

Om de maximale doorvoersnelheid te meten gebruik ik ipref3.
Op host B:
iperf3 -s
Op host A:
iperf3 -c 192.168.1.1 -P 16 -t 240
De parameter -P 16 start zestien parallelle verbindingen, terwijl -t 240 ervoor zorgt dat de test 240 seconden duurt. Door meerdere parallelle streams te gebruiken, kunnen beide 10GbE-links volledig worden benut.
In de praktijk wordt de volledige 20 Gbps echter vrijwel nooit gehaald door protocol-overhead, CPU-belasting en de manier waarop traffic over de twee links wordt verdeeld. Ook opslag- en verwerkingslimieten spelen vaak een rol. Bij mijn test behaal ik 18.8 Gbps.
