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

 

By DM