FreeNAS 8.3 and VMware ESXi’s VMXNet3 adapter

The built-in networking support under FreeNAS 8.3 is only the e1000 adapter and while it does “work” it really lacks performance in a virtual environment. To get around this limitation we need to install VMware Tools to support more modern networking adapters. While this question is ask time and time again in the FreeNAS forums and around I never see a straight forward solution for adding the VMXNet3 adapter. So here we go.

We’ll assume you already have your VM deployed with one e1000 and one vmxnet3 adapter and we are just loading in the drivers.


Add Perl

Pull up the shell or connect via SSH to your FreeNAS VM

mount -urw /
cd /tmp
pkg_add -r perl -K
tar -xjf perl.tbz
cp lib/perl5/5.12.14/mach/CORE/  /lib

(the build number will change as time goes on)

Add compat6x

pkg_add -r compat6x-amd64

Install VMware Tools

It is assumed you are installing with the default options.

Install VMware tools as normal via the "Install/Upgrade VMware tools" menu option
mkdir /mnt/cdrom
mount -t cd9660 "/dev/iso9660/VMware Tools" /mnt/cdrom
cd /tmp
tar zxpf /mnt/cdrom/vmware-freebsd-tools.tar.gz
umount /mnt/cdrom
cd vmware-tools-distrib

Ignore the failed notice for the memory manager. At this point VMware Tools is installed but still needs some tweaking.

VMware tools tweaking

vi /usr/local/etc/rc.d/
Look for: if [ "$vmdb_answer_VMHGFS_CONFED" = 'yes' ]; then    and change yes to xyes
Look for: if [ "$vmdb_answer_VMMEMCTL_CONFED" = 'yes' ]; then    and change yes to xyes
Look for: if [ "$?" -eq 0 -a "$vmdb_answer_VMXNET_CONFED" = 'yes' ]; then    and change yes to xyes
save and close vi (escape wq enter)
rm /etc/vmware-tools/not_configured

Now within the FreeNAS WUI (Web User Interface) add an additional network adapter, you’ll see vmxnet3 adapter called “vmx3f0”.


I’m seeing the following differences when sequential data (4GB iso) to and from a test system via SSD and Gigabit infrastructure.

e1000 Adapter

  • Read: 50 MB/sec to 59MB/sec (for first 2GB then 73 MB/sec)
  • Write: 33.0 MB/sec to 35 MB/sec

VMXNet3 Adapter

  • Read: 93MB/sec to 95MB/sec
  • Write: 29.5 MB/sec to 42.1 MB/sec

My VM configuration

  • vCPU: 3
  • Ram: 6GB
  • Drives: 4GB vmdk, 3×1.5TB virtual RDM
  • Raidz
  • NIC: e1000(management),VMXNET3(data)
  • VM Hardware Version: VMX-09

My host config

  • CPU: Dual Xeon e5320’s
  • Ram: 24GB ECC DDR2
  • Controllers: IBM M1015 (IT firmware), LSI 8308ELP
  • Drives: 2x500GB(hardware mirror), 3×1.5TB(7200.11)(FreeNAS virtual RDM’s)
  • NIC: Onboard Intel 1000pro
  • OS: ESXi 5.1 Update 1

Sorry, no VT-d on this host to pass through the M1015 which may be giving me a small amount of overhead running the virtual RDM’s.

, , , , , , ,
March 13, 2013 at 8:24 pm Comment (1)

NAS4Free under ESXi


One surprising thing I noticed when testing out NAS4Free is the lack of documentation with regards to installation on VMware. I can understand a viewpoint that a NAS is a NAS and not to be anything else, but what about working loads where that kind of raw performance is not required (granted the virtualization overhead these days should be within 5-10% of physical). In any case the below instructions are written with running ESXi 5.1 with NAS4Free, for ease of reading the directions are broken down into three sections.



Initial download and VM configuration


1)      Download the latest x64 release at

2)      Create a new custom Virtual Machine (Assume defaults unless otherwise specified)

a)      Guest Operating System – Other – FreeBSD 64-Bit

b)      Virtual sockets – 3  (you can use less but I was seeing a significant performance hit with less than 3)

c)      Memory: 4GB (not a hard requirement but in general the more the better)

d)     Network

i)        Number of NICs: 2

ii)      NIC 1 Adapter: e1000
(The e1000 will be used for management only as the default NAS4Free install does not correctly load the VMXNet3 driver)

iii)    NIC 2 Adapter: VMXNet3
(The VMXNet3 adapter will be used for Samba/NFS/iSCSI traffic)

e)      SCSI Controller: LSI Logic Parallel

f)       Disk: 4GB, can be thin provisioned

3)      Finish creating the VM

4)      Edit the VM

5)      Add  your additional hard disks and assign them starting at 1:0, 1:1, 1:2 (virtual RDM’s are an option as well). One VMDK per disk unless your really just feature evaluating the setup.

a)      Optionally if supported you could use Direct-Path to pass through your favorite SCSI controller

6)      Change your newly created SCSI Controller to: LSI Logic SAS
(Paravirtual does not function with the version of Vmware tools pre-bundled with the NAS distro)

7)      Select “OK” to complete the modifications



NAS4Free base install


1)      Boot the VM and start it off of the recently downloaded ISO

2)      Walk-through the normal installer screens selecting” Install ‘embedded’ OS on HDD/FLASH/USB”
(Full is extremely buggy at this point and only really used for NAS4Free developers)

3)  Install onto the 4GB volume

4)  After the install completes, reboot and disconnect the ISO volume

5)  Configure your mangement IP



Configuring your new VM


1)      Login to the web administration to the new VM

2)      Select System –> Advanced

3)      Select rc.conf

4)      We need to add some custom tuning for the VM

a)      Add – Name: vmguestd_enable – Value: Yes

b)      Add – Name: vmsetup_enable – Value: Yes

c)      Optionally (useful for debugging sometimes)

i)        Add – Name: dmesg_enable – Value: Yes

5)      Apply changes

6)      System –> Reboot


At this point the VM should be fully useable. If running into performance problems TOP within the VM and the vSphere performance graphs should be where to start looking. VM CPU usage and disk latency are generally the first points of issue.



, , ,
March 9, 2013 at 4:45 pm Comments (12)