Imagine the following…
- You are running a home lab with at least two ESXi hosts in a cluster.
- vMotions are somewhat slow, especially compared to what you’re used to at the office, your work.
- You want this to speed up
- You are still running at a 1Gbps network, just like at many other places.
- You’re not willing to invest in a 10Gbps network infrastructure at home, for some obvious (cost, space, heat, sound level) reasons, but you’re willing to look at 2.5Gbps
- You recently upgraded your Internet provider’s modem/router, because you can, thereby allowing your bandwidth up to 2.5Gbps or even more.
- In my case, I virtualized an OPNsense firewall/router, with four -bridged- network interfaces (Intel N100 CPU with i226-V; ordered through AliExpress).
- Each of the NIC speed’s is 2.5Gbps, allowing me to speed up my internal virtualized traffic between hosts.
- The only thing that disallows me to is my ESXi host’s NIC, an Intel i219-V, which only has a 1Gbps interface with my NUC8i5BEH.
- Since I just want all available speed, I bought myself a 2.5Gpbs USB NIC adapter, capable of interacting with my new OPNsense firewall/router.
- The only thing required is the USB NIC driver fling, which can be easily installed using William Lam‘s guides at Broadcom Flings.
- I also invested in a simple unmanaged 2.5Gbps switch, allowing me to become more flexible with network interfaces and cabling.
- You want to quantitively verify if the speed increase is adequate
- Well, that’s exactly me.
iPerf Performance Testing
After running the USB NIC’s commands to make the NIC detected, and stay at a certain interface persistently, I could run some tests. First, some basic vMotions, which went faster… However, I wanted to meassure this quantitively; therefore, I used the integrated iperf3 tool for this.
You can find the commands for both server and client below:
Both, to start with
- login with root
- esxcli network firewall set –enabled false
- cd /usr/lib/vmware/vsan/bin
- cp iperf3 iperf3.copy
- localcli system settings advanced set -o /User/execInstalledOnly -i 0
- esxcli network firewall get
- esxcli network ip interface ipv4 get choose the VMkernel interface to use (on the server)
Server
- ./iperf3.copy –verbose –server –port 5201 –bind [server IP] -fM
Client
- The simplest command to use:
- ./iperf3.copy –verbose –client [server IP] –port 5201 -fM
- Or to check a 10GB transmission:
- ./iperf3.copy –verbose –client [server IP] –bytes 10G –port 5201 -fM
- Or simplified: ./iperf3.copy -V -c 192.168.1.192 –bytes 1G -p 5201 -fM
Both, when finished
- localcli system settings advanced set -o /User/execInstalledOnly -i 1
- esxcli network firewall set –enabled true