21. VMware Recommendations

This section offers TrueNAS® configuration recommendations and troubleshooting tips when using TrueNAS® with a VMware hypervisor.

21.1. TrueNAS® as a VMware Guest

This section has recommendations for configuring TrueNAS® when it is installed as a Virtual Machine (VM) in VMware.

Configure and use the vmx(4) drivers for the TrueNAS® system.

Network connection errors for plugins or jails inside the TrueNAS® VM can be caused by a misconfigured virtual switch or VMware port group. Make sure MAC spoofing and promiscuous mode are enabled on the switch first, and then the port group the VM is using.

21.2. Hosting VMware Storage with TrueNAS®

This section has recommendations for configuring TrueNAS® when the system is being used as a VMware datastore.

Be sure to set up ALUA when using iSCSI Sharing and VMware on a TrueNAS® High Availability (HA) system. This improves the resiliency of guest VMs during a failover event.

Make sure guest VMs have the latest version of vmware-tools installed. VMware provides instructions to install VMware Tools on different guest operating systems.

Increase the VM disk timeouts to better survive long disk operations. This also helps VMs deal with TrueNAS® High Availability (HA) failovers. Set the timeout to a minimum of 300 seconds. See the guest operating system documentation for setting disk timeouts. VMware provides instructions for setting disk timeouts on some specific guest operating systems:

When TrueNAS® is used as a VMware datastore, coordinated ZFS and VMware snapshots can be used.

21.3. VAAI for iSCSI

VMware’s vStorage APIs for Array Integration, or VAAI, allows storage tasks such as large data moves to be offloaded from the virtualization hardware to the storage array. These operations are performed locally on the NAS without transferring bulk data over the network.

VAAI for iSCSI supports these operations:

  • Atomic Test and Set (ATS) allows multiple initiators to synchronize LUN access in a fine-grained manner rather than locking the whole LUN and preventing other hosts from accessing the same LUN simultaneously.
  • Clone Blocks (XCOPY) copies disk blocks on the NAS. Copies occur locally rather than over the network. This operation is similar to Microsoft ODX.
  • LUN Reporting allows a hypervisor to query the NAS to determine whether a LUN is using thin provisioning.
  • Stun pauses virtual machines when a pool runs out of space. The space issue can then be fixed and the virtual machines can continue rather than reporting write errors.
  • Threshold Warning the system reports a warning when a configurable capacity is reached. In TrueNAS®, this threshold is configured at the pool level when using zvols (see Table 11.2.1) or at the extent level (see Table 11.2.6) for both file and device based extents. Typically, the warning is set at the pool level, unless file extents are used, in which case it must be set at the extent level.
  • Unmap informs TrueNAS® that the space occupied by deleted files should be freed. Without unmap, the NAS is unaware of freed space created when the initiator deletes files. For this feature to work, the initiator must support the unmap command.
  • Zero Blocks or Write Same zeros out disk regions. When allocating virtual machines with thick provisioning, the zero write is done locally, rather than over the network. This makes virtual machine creation and any other zeroing of disk regions much quicker.