Virtualization and Network Interface Considerations - more
The figure shows that the onboard NIC on my server is VMnet0, and the additional NIC is VMnet2. I then uninstalled the virtual NIC from my virtual FreeNAS machine and installed a new virtual NIC mapped to VMnet2 as per Figure 7. Notice the configuration requires selecting the custom option to designate the new interface.
Figure 7: Virtual NIC configuration in VMware
I didn't expect to see any performance difference over the dedicated NIC in my case, since my test server wasn't heavily loaded with network traffic. Indeed, reruns of Iozone tests on the virtual NAS with the dedicated NIC revealed performance similar to the shared NIC. In a high-powered server with heavy network traffic, however, network capacity can be increased by installing additional network interface cards on the host server and allocating them to the appropriate virtual machines.
An interesting virtualization option to improve overall network performance is to put virtual server communication on a dedicated virtual network. Virtualized servers can run multiple NICs connected to both the physical world and the virtual world.
On a server running multiple virtual machines, each machine can be given a virtual interface connected to a virtual switch. These virtual interfaces can be given IP addresses statically or through the creation of a virtual DHCP server, creating a dedicated virtual network to pass real data between virtual servers.
Windows-based VMware Host machines can create ten virtual switches for networking virtual machines either to physical interfaces or for internal network communications, while Linux based VMware Host machines can create up to 200 virtual switches. In either case, creating a virtual switch to connect each of the virtual machines provides separate dedicated network(s) between the servers, reducing traffic and potential congestion on the physical network.
To test this functionality, I added a second virtual NIC to my Ubuntu Linux server, using the Hardware Add tab in the VMware virtual machines menu, as shown in Figure 8. This NIC was configured in VMware as Host-only, meaning it does not have access to the physical network. Since Linux can support multiple network interfaces, and my Linux machine already has a working connection to the physical LAN, this second connection can be used for the internal virtual LAN.
Figure 8: Adding a NIC from the VMware Hardware Add tab
Figure 9 is a screen shot from Ubuntu's network configuration page showing the presence of two network interfaces. The first Ethernet interface (eth0) is bridged to the physical network. The second Ethernet interface (eth1) is connected to the Host-only or virtual network. I've set up this second network interface with a static IP on the 192.168.188.0/24 LAN, which is the pre-assigned subnet for the VMware Host Only LAN. This can be changed, but since I wasn't using this subnet, there was no need to adjust it.
Figure 9: Network configuration page in Ubuntu
With my Host server on 192.168.188.1 and my virtual Ubuntu Linux server on 192.168.188.2, both machines are now connected to a virtual network and to a physical network. Additional virtual machines on the same physical server can be connected to his virtual network.
Creating a virtual network like this is one of the cooler aspects to virtualization. This separate virtual network has none of the negatives of the physical network, such as physical points of failure and resource costs, yet provides all the necessary functionality.
The end result of using a virtual LAN to connect the virtual machines is a reduction in network traffic on the physical network. In an environment with large amounts of traffic between servers, creating virtual LANs can be a useful option for managing and optimizing the network.