[7.470][INFO][ACK] VMware Virtual NIC Performance \ Driver Support

Hello,

I am a long time user of Astaro Security Gateway and both an employee of VMware and the author of the VMware vSphere Jumpstart and Plan and Design kits.

In working with the beta running on VMware ESX 4 and ESX 4i, I've noticed there is support only for the Flexible and VMXNET-2 'enhanced' network adapters. This results in terrible performance as neither virtual network card is optimized nor running at gigabit speeds. 

The installer actually only seems to support the Flexible adapter, as it does not recognize VMXNET-2 enhanced. However, if VMXNET-2 enhanced adapters are added post-installation, they do function, as poorly as the Flexible (PCNET32 Lance).

The installer does identify the Intel E1000 virtual NIC but it does not function after installation. Adding an adapter to an installed system after the fact also does not work as the adapter is not recognized by the system.

Attempting to use the latest, VMXNET3 adapter results in no network cards being identified during installation. And as with the Intel E1000, attempting to add it after the fact also does not result in it being identified by the system. 

Unfortunately and by design, the ASG does not ship with the components required to perform a VMware Tools update or reinstallation. (GCC, etc...). The fix for this is should be simple and straightforward: compile and pre-add either the VMware vSphere 4 drivers\tools or provide support for Intel E1000 adding the appropriate driver. 

In its current form, the performance of virtualized ASG Beta 7.470 is so degraded that it is usable but not functionally viable. I would be happy to help sort this out so that performance on vSphere is on par with physical before the end of the beta. Please let me know if there's anything I can do. I have a complete vSphere test lab up and running with the latest ASG Beta.

Mark Ewert
WWSE VMware PSO Practice and Development
Parents
  • OK! I am very happy to report that I was wrong.

    First and foremost. The terrible performance we were seeing turned out to be related to the Web Filter and not the NICs. Once that was discovered and addressed, the performance of the virtual implementation ran equivalent to our physical one. 

    Before that was discovered, though, I figured out how to get ASG to work with the E1000 NIC. However, in testing the three types of NICs we were able to get working (E1000, Flexible, and VMXNET-2 Enhanced), there did not appear to be any difference in performance between them. So, counter-intuitively, running with the Flexible adapter is fine.  (I'm reminded of a great poem by Robert Creely: Do I contradict myself? Ah yes. I contradict myself...). 

    In case you need to get the E1000 working for some reason, here's how you do it:

    1. Install and configure Astaro ASG beta using 'Flexible' adapters. Make sure to give the virtual machine sufficient adapters to support your infrastructure (Internet, Production, DMZ, etc...). Test the implementation to verify proper operation.

    2. Login in to the Astaro console and edit the /etc/modules.conf file, adding the following lines (one for each NIC installed):

    alias eth0 e1000
    alias eth1 e1000
    alias eth2 e1000
    etc...

    If there are already 'alias ethX' lines in the file, comment them out using #

    Save the file.

    3. Shut down Astaro and edit the Virtual Machine's .VMX file. With ESX 4 this can be done from the service console. With ESX 4i you can download the file to your PC using the Datastore Browser, edit it, and then upload it back. 

    In editing the .VMX file, for each NIC you need to add the following line:

    ethernetX.virtualDev = "e1000" 

    replacing X with the adapter # as in:

    ethernet0.virtualDev = "e1000"
    ethernet1.virtualDev = "e1000"
    ethernet2.virtualDev = "e1000"

    etc...

    Save the file. 

    By editing this file and changing the adapter type, ASG will recognize the adapter change but preserve the adapter assignments as the MAC addresses do not change. Normally, if you simply remove one type of adapter from a VM and replace it with another, VMware ESX generates a new MAC address which in turn confuses Astaro.

    4. Upload the edited file back to the Datastore location where you downloaded it from, replacing the original.

    5. Remove the ASG Virtual Machine from vCenter\ESX inventory (right-mouse click on the VM, select: 'Remove from Inventory'). 

    6. Right-mouse click on the uploaded .VMX file in the Datastore Browser and select: 'Add to Inventory'. Give the VM it's appropriate name and select the proper destination Cluster. 

    By removing\re-adding it to inventory, any VM inventory cache is purged, and vCenter\ESX becomes aware of the adapter change.

    7. Power-on the VM. Once it boots, Astaro should be running off Intel E1000 adapters.

    Note: the same process can be followed to get the VMXNET-2 Enhanced adapter working. Simply replace e1000 in steps 2 and 3 with: vmxnet .

    To switch back to Flexible, remove or comment out all the lines entered in steps 2 and 3.

    That's the scoop!

    SO - to summarize: there is no bug. Using the Flexible adapter is fine. But if you find you need an alternate adapter, that's how you do it.

    Mark
Reply
  • OK! I am very happy to report that I was wrong.

    First and foremost. The terrible performance we were seeing turned out to be related to the Web Filter and not the NICs. Once that was discovered and addressed, the performance of the virtual implementation ran equivalent to our physical one. 

    Before that was discovered, though, I figured out how to get ASG to work with the E1000 NIC. However, in testing the three types of NICs we were able to get working (E1000, Flexible, and VMXNET-2 Enhanced), there did not appear to be any difference in performance between them. So, counter-intuitively, running with the Flexible adapter is fine.  (I'm reminded of a great poem by Robert Creely: Do I contradict myself? Ah yes. I contradict myself...). 

    In case you need to get the E1000 working for some reason, here's how you do it:

    1. Install and configure Astaro ASG beta using 'Flexible' adapters. Make sure to give the virtual machine sufficient adapters to support your infrastructure (Internet, Production, DMZ, etc...). Test the implementation to verify proper operation.

    2. Login in to the Astaro console and edit the /etc/modules.conf file, adding the following lines (one for each NIC installed):

    alias eth0 e1000
    alias eth1 e1000
    alias eth2 e1000
    etc...

    If there are already 'alias ethX' lines in the file, comment them out using #

    Save the file.

    3. Shut down Astaro and edit the Virtual Machine's .VMX file. With ESX 4 this can be done from the service console. With ESX 4i you can download the file to your PC using the Datastore Browser, edit it, and then upload it back. 

    In editing the .VMX file, for each NIC you need to add the following line:

    ethernetX.virtualDev = "e1000" 

    replacing X with the adapter # as in:

    ethernet0.virtualDev = "e1000"
    ethernet1.virtualDev = "e1000"
    ethernet2.virtualDev = "e1000"

    etc...

    Save the file. 

    By editing this file and changing the adapter type, ASG will recognize the adapter change but preserve the adapter assignments as the MAC addresses do not change. Normally, if you simply remove one type of adapter from a VM and replace it with another, VMware ESX generates a new MAC address which in turn confuses Astaro.

    4. Upload the edited file back to the Datastore location where you downloaded it from, replacing the original.

    5. Remove the ASG Virtual Machine from vCenter\ESX inventory (right-mouse click on the VM, select: 'Remove from Inventory'). 

    6. Right-mouse click on the uploaded .VMX file in the Datastore Browser and select: 'Add to Inventory'. Give the VM it's appropriate name and select the proper destination Cluster. 

    By removing\re-adding it to inventory, any VM inventory cache is purged, and vCenter\ESX becomes aware of the adapter change.

    7. Power-on the VM. Once it boots, Astaro should be running off Intel E1000 adapters.

    Note: the same process can be followed to get the VMXNET-2 Enhanced adapter working. Simply replace e1000 in steps 2 and 3 with: vmxnet .

    To switch back to Flexible, remove or comment out all the lines entered in steps 2 and 3.

    That's the scoop!

    SO - to summarize: there is no bug. Using the Flexible adapter is fine. But if you find you need an alternate adapter, that's how you do it.

    Mark
Children