I thought I should share my success with FreeNAS with the community, I have a somewhat unconventional setup. I was using 9.2 but I switched to the Beta for the iSCSI kernel driver, it works MUCH better.
Hardware:
Asus P9D-C4/L
Xeon E3-1234 v3 - 3.3ghz 4c/8t
32gb 1600 ddr3
Asus Pike 2008 (LSI 2008, just integrated into board)
Software
ESXi 5.1
FreeNAS 9.3
Drives
USB for ESXi boot
500gb SSD for ESXi
various HDDs for FreeNAS
Design Goals
When I set out to do this, I had set a few goals for myself, and the biggest one was an "All-In-One" ESXi box. Fileserver, router, firewall, webserver, teamspeak, vpn, etc. I have met all my goals, but it took me a while to get to that point. This design goal means that I also must present datastores to ESXi from within ESXi, thats where FreeNAS takes over.
The All-In-One build also led me to the Asus board I'm using. The 2 things I liked were the quad onboard 1g and the Pike card. The Pike card was a gamble, but it's working great.
I've also tried NFS and iSCSI. I don't want to go into the details, but iSCSI is where it's at.
ESXi Setup
Firstly, I cant stress this enough: It's almost mandatory to use a SSD with ESXi, in my opinion. There are a couple reasons I do this, obviously speed is the first (and biggest) and the second is memory overcommitment.
If you overcommit or not, be sure to check the "Reserve all guest memory (All locked)" box, in VM properties under the resources tab. This is something you should do for all critical VMs (FreeNAS, Firewall).
So by using overcommitment, you can have FreeNAS soak up HUGE amounts of ram, and let ESXi or even the VM do some swapping. Thus, getting more out of your hardware. And if the VM swaps internally, it'll swap to the FreeNAS iSCSI datastore, which is pretty fast.
FreeNAS Setup
FreeNAS 9.3 beta installed with 8gb vHD on SSD
8gb+ ram
2 cpu cores
2 nics: one e100, and one VMXnet 3
SCSI controller set to SAS.
LSI SAS2008 / Pike card PassedThrough to VM
The amount of ram you choose is up to you. Currently I'm happy with 8gb, but I've tried 6gb up to 16gb. More ram does have a noticeable effect the more intense the disk activity gets.
The only modification I did to FreeNAS itself was import the VMware modules from the VMware tools CD image (for FreeBSD 9), to /boot/modules and add a loader tunable "vmxnet3_load" with a value of "YES". I copied over all the modules, even replacing the ones that were already there.
This VMXNET3 adapter is a beast. It is also essential to iSCSI's performance.
Final Config
After all that, iSCSI is setup on FreeNAS and ESXi. Nothing too special here except isolated vSwitch for SAN traffic.
Results
I did have an issue with no-op timeouts and 9000 mtu , the mtu was set in FreeNAS, VMkernel and the vSwitch. It would only occur with a very high load. 1500 mtu works flawlessly however.
I did a few benchmarks:
In a Win7 VM (2gb, 1 cpu, paravirtual HDD)
Freenas VM - 8gb ram, 4x500gb 5300rpm HDD, 30gb iSCSI file LUN
Not bad eh?
Requests
VMware-Snapshots - It'd be nice to have a list of VMs and the ability to exclude some. PCI passthrough VM's can't be snapshotted. Also, I'd like more info on how this works, I know FreeNAS tells VMware to make a snapshot of the VM before the a ZFS snapshot, but does it work with zvols or file luns?
There are no longer iSCSI settings in Freenas 9.3, So it'd be nice to have client side recommendations for BurstLength's, R2T, etc.
----------------------------
All in all, I'm very happy with the results and everything has been rock solid. The new iSCSI target is very good, VMware gets along great with it.
Keep up the good work!
Hardware:
Asus P9D-C4/L
Xeon E3-1234 v3 - 3.3ghz 4c/8t
32gb 1600 ddr3
Asus Pike 2008 (LSI 2008, just integrated into board)
Software
ESXi 5.1
FreeNAS 9.3
Drives
USB for ESXi boot
500gb SSD for ESXi
various HDDs for FreeNAS
Design Goals
When I set out to do this, I had set a few goals for myself, and the biggest one was an "All-In-One" ESXi box. Fileserver, router, firewall, webserver, teamspeak, vpn, etc. I have met all my goals, but it took me a while to get to that point. This design goal means that I also must present datastores to ESXi from within ESXi, thats where FreeNAS takes over.
The All-In-One build also led me to the Asus board I'm using. The 2 things I liked were the quad onboard 1g and the Pike card. The Pike card was a gamble, but it's working great.
I've also tried NFS and iSCSI. I don't want to go into the details, but iSCSI is where it's at.
ESXi Setup
Firstly, I cant stress this enough: It's almost mandatory to use a SSD with ESXi, in my opinion. There are a couple reasons I do this, obviously speed is the first (and biggest) and the second is memory overcommitment.
If you overcommit or not, be sure to check the "Reserve all guest memory (All locked)" box, in VM properties under the resources tab. This is something you should do for all critical VMs (FreeNAS, Firewall).
So by using overcommitment, you can have FreeNAS soak up HUGE amounts of ram, and let ESXi or even the VM do some swapping. Thus, getting more out of your hardware. And if the VM swaps internally, it'll swap to the FreeNAS iSCSI datastore, which is pretty fast.
FreeNAS Setup
FreeNAS 9.3 beta installed with 8gb vHD on SSD
8gb+ ram
2 cpu cores
2 nics: one e100, and one VMXnet 3
SCSI controller set to SAS.
LSI SAS2008 / Pike card PassedThrough to VM
The amount of ram you choose is up to you. Currently I'm happy with 8gb, but I've tried 6gb up to 16gb. More ram does have a noticeable effect the more intense the disk activity gets.
The only modification I did to FreeNAS itself was import the VMware modules from the VMware tools CD image (for FreeBSD 9), to /boot/modules and add a loader tunable "vmxnet3_load" with a value of "YES". I copied over all the modules, even replacing the ones that were already there.
This VMXNET3 adapter is a beast. It is also essential to iSCSI's performance.
Final Config
After all that, iSCSI is setup on FreeNAS and ESXi. Nothing too special here except isolated vSwitch for SAN traffic.
Results
I did have an issue with no-op timeouts and 9000 mtu , the mtu was set in FreeNAS, VMkernel and the vSwitch. It would only occur with a very high load. 1500 mtu works flawlessly however.
I did a few benchmarks:
In a Win7 VM (2gb, 1 cpu, paravirtual HDD)
Freenas VM - 8gb ram, 4x500gb 5300rpm HDD, 30gb iSCSI file LUN

Not bad eh?
Requests
VMware-Snapshots - It'd be nice to have a list of VMs and the ability to exclude some. PCI passthrough VM's can't be snapshotted. Also, I'd like more info on how this works, I know FreeNAS tells VMware to make a snapshot of the VM before the a ZFS snapshot, but does it work with zvols or file luns?
There are no longer iSCSI settings in Freenas 9.3, So it'd be nice to have client side recommendations for BurstLength's, R2T, etc.
----------------------------
All in all, I'm very happy with the results and everything has been rock solid. The new iSCSI target is very good, VMware gets along great with it.
Keep up the good work!