How to install as VMware Guest

Table of Contents

The following guide will aid you in installing a DilOS VMware guest. Performance will be guaranteed by using DirectPath I/O. The following prerequisites apply:

  • Have a separate JBOD-controller available to present to the guest OS (LSI is preferred using mpt_sas driver)

  • Have a processor and motherboard that supports the VT-d instruction set

  • Have plenty of RAM available: a VM with a PCI device locks all memory assigned to it

This guide uses an LSI 9211-8i/LSI 9311-8i controller; presented via DirectPath I/O on ESXi 5.5/6.5. The controller was flashed to IT-firmware before using it on this system.

Preconfiguration

To start, log on to your VSphere Server; or connect via the VMware VI-Client to your ESXi server. Navigate to the Configuration Page; and select PCI Devices. Add your controller.
Note: a reboot is required after this step

After the reboot; it's time to configure your VM. We'll create a custom VM using the following settings:

  • Solaris 11 - 64-bit

  • Add plenty of RAM. In my case - I used 8GB

  • Root disk on a local datastore

  • LSI Logic Parallel controller (pvscsi is working fine, need ignore VMware message about issue with boot drives)

  • 40GB disk

  • vmxnet3 network adapter 

The reason for using the vmxnet3 adaptor is twofold:

  • less overhead = less latency

  • 10gbps connectivity = more IOPS 

Installation

Next, power on the VM, connect the DilOS iso-image and install using the default options. Make sure to install DilOS on the disk presented on the local ESXi datastore. Once done; upgrade DilOS to the latest version using How to upgrade DilOS from APT repo.

After upgrading to the latest and greatest version, please install the VMware Tools. This greatly enhances functionality and support for ESXi. Do this by running the following command as root:

Optimisation: Controller Load Balancing

Next step is optimising the kernel drivers for the LSI 9211-8i card I'm using. This next step greatly optimises performance for SAS drives. As root; open the following file:

Search for a line containing "load-balance". Edit the line to reflect the following setting:
Note: a reboot is required after this step

Optimisation: vmxnet3 driver - jumbo frames

In this particular setup - I'm using jumbo frames to improve large I/O performance.
A couple of modifications are needed to successfully cope with this. Namely disabling Large Segment Offload (LSO) and tuning the send and receive buffers; which are too small for 10gbit/Jumbo Frames. Open an editor to your likes (in the example - we're using vi):

 Change the execute bits:

Now remember to run after every reboot - or when you want to make your own changes. These settings can be modified on-the-fly. To run, just type:

Remarks

You can use tools as sas2flash and lsiutil to manage your controller, as it's passed through like a bare-metal install. You can even upgrade the firmware and BIOS on-the-fly, straight from the VM. This makes it easy to find troubled disks, rescan ports, or even reset the controller. You can find these utilities from LSI.com

Also - make sure to check LSI.com regularly for updates to the firmware. I highly recommend updating to the latest firmware. As this often contains fixes that might even affect you without knowing.