In vSphere 5, there is a new feature called Host Cache which allows a user to offload the virtual machine's swap onto a dedicated SSD device for better performance. This is done by creating a VMFS volume on an SSD device which is then detected by SATP (Storage Adapter Type Plugin) and allows a user to add and configure a VMFS datastore for host caching.

During the vSphere 5 beta, I was testing out various new features including Host Caching but did not have access to a system with an SSD device while updating and creating a few new scripts. After some research I found that if a default SATP rule is not available to identify a particular SSD device, that a new rule could be created containing a special metadata field specifying that it is an SSD device.

In the following example, I will take a local virtual disk (mpx.vmhba1:C0:T2:L0) in a vESXi 5.0 host and trick ESXi into thinking that it is an SSD device.

We will need to use esxcli whether that is directly on the ESXi Shell or using vMA and/or PowerCLI esxcli's remote version.

Note: The following assumes there is already a VMFS volume created on the device you want to present as an SSD device, if you have not done so, please create a VMFS volume before continuing

First you will need to create a new SATP rule specifying your device and specifying the "enable_ssd" string as part of the --option parameter:

~ # esxcli storage nmp satp rule add -s VMW_SATP_LOCAL -d mpx.vmhba1:C0:T2:L0 -o enable_ssd

You can verify that your rule was created property by performing a list operation on the SATP rules:

~ #  esxcli storage nmp satp rule list | grep enable_ssd
VMW_SATP_LOCAL       mpx.vmhba1:C0:T2:L0                                                enable_ssd                  user

Next you will need to reclaim your device so that the new rule is applied:

~ # esxcli storage core claiming reclaim -d mpx.vmhba1:C0:T2:L0

You now can verify from the command line that your new device is being seen as an SSD device, by displaying the details for this particular device:

~ # esxcli storage core device list -d mpx.vmhba1:C0:T2:L0
mpx.vmhba1:C0:T2:L0
Display Name: Local VMware Disk (mpx.vmhba1:C0:T2:L0)
Has Settable Display Name: false
Size: 5120
Device Type: Direct-Access
Multipath Plugin: NMP
Devfs Path: /vmfs/devices/disks/mpx.vmhba1:C0:T2:L0
Vendor: VMware
Model: Virtual disk
Revision: 1.0
SCSI Level: 2
Is Pseudo: false
Status: on
Is RDM Capable: false
Is Local: true
Is Removable: false
Is SSD: true
Is Offline: false
Is Perennially Reserved: false
Thin Provisioning Status: unknown
Attached Filters:
VAAI Status: unsupported
Other UIDs: vml.0000000000766d686261313a323a30

As you can see the "Is SSD" field is not being populated as true where as before if you ran this command, it would display false

Now you can refresh the Storage view on the vSphere Client or you can do so from the command line by running the following command:

~ #vim-cmd hostsvc/storage/refresh

Now if you go back to the vSphere Client under "Host Cache Configuration" you should see the new fake SSD device for selection and you just need to configure it and Host Cache is enabled for this device.

This of course is probably not officially supported unless directed by VMware nor is there a real good reason for this. I personally had to go down this route for scripting purposes but if you wanted to see how Host Cache works, this is a neat trick to allow you to do so.

31 thoughts on “How to Trick ESXi 5 in seeing an SSD Datastore

  1. I get this error:

    esxcli storage core claiming reclaim -d naa.6a4badb03468b200154b0c860cb167ff
    Unable to unclaim path vmhba3:C2:T2:L0 on device naa.6a4badb03468b200154b0c860cb167ff. Some paths may be left in an unclaimed state. You will need to claim them manually using the appropriate commands or wait for periodic path claiming to reclaim them automatically.

  2. I get the same error message as mgiammarco, and I haven’t created any guest machines yet. I have tried setting the host in maintenance mode, and even rebooting the host, but I still get the same error message.

    Any ideas what I’m doing wrong?

  3. I still get the error message, but I now noticed in vSphere that the Drive Type have changed from Non-SSD to SSD. Hooray! :-)

  4. Hi All,

    I could understand that, if we try to unclaim a local hardisk or a device in which dump partition/scratch partiton is present, then the mentioned error will come.

    Any ideas on how to fix it?

  5. Have you ever seen a issue were the above commands work without error but the properties button is grayed out in the Host Cache Configuration? Since its greyed out I’m not able to slide and set the host cache.

    • Also, please note that you may have to highlight the SSD in the Host Cache screen before the Properties choice will ungrey — it appears that, by default, the SSD drive isn’t automatically highlighted so the Properties choices is greyed.

      Datto

  6. Hello William,
    thank you four your Post.
    Helped a lot with some HP Blades and SSD drives installed ..

    is there any tip how the exclude the “Datastore usage on disk” Alarm for the Host cache Store?

    br
    Stefan

  7. Hi all!
    I am trying take the benefit of my SSD drive but ….

    comand “esxcli storage nmp satp rule add –satp VMW_SATP_LOCAL –device mpx.vmhba1:C1:T1:L0 –option=enable_ssd” says:
    Unable to find device with the name mpx.vmhba1:C1:T1:L0

    :(

    WTF ??

    • Just use the identifier (eg. naa.123456789…) instead of the runtime name (eg. mpx.vmhbal:C1:T1:L0).

  8. @Fanta:
    First of all login with ssh (Putty?) to host and use this command for identify SSD display name:

    # esxcli storage nmp device list

    Replace mpx.vmhba1:C1:T1:L0 with your ssd display name.

    Sorry for my bad english.
    Bye,
    Fabio

  9. @Chris Horn,

    I know this is over a year old, but I had the same problem with Properties being disabled after tagging my device as SSD (even though it showed up in the Host Cache section properly). I “fixed” this by Unmounting the datastore, and then Mounting it again.

    • Cormac,

      It looks like my blog is changing double-dash to single-dash. The short option should be single dash and the full option is double dash, nothing has changed

      ~ # vmware -vl
      VMware ESXi 5.5.0 build-1623387
      VMware ESXi 5.5.0 Update 1
      ~ #
      ~ # esxcli storage nmp satp rule add
      Error: Missing required parameter -s|–satp

      Usage: esxcli storage nmp satp rule add [cmd options]

      Description:
      add Add a rule to the list of claim rules for the given SATP.

      Cmd options:
      -b|–boot This is a system default rule added at boot time. Do not modify esx.conf or add to host profile.
      -c|–claim-option=
      Set the claim option string when adding a SATP claim rule.
      -e|–description=

      Set the claim rule description when adding a SATP claim rule.
      -d|–device=
      Set the device when adding SATP claim rules. Device rules are mutually exclusive with vendor/model and driver rules.
      -D|–driver=
      Set the driver string when adding a SATP claim rule. Driver rules are mutually exclusive with vendor/model rules.
      -f|–force Force claim rules to ignore validity checks and install the rule anyway.
      -M|–model=
      Set the model string when adding SATP a claim rule. Vendor/Model rules are mutually exclusive with driver rules.
      -o|–option=
      Set the option string when adding a SATP claim rule.
      -P|–psp=
      Set the default PSP for the SATP claim rule.
      -O|–psp-option=
      Set the PSP options for the SATP claim rule.
      -s|–satp=
      The SATP for which a new rule will be added. (required)
      -R|–transport=
      Set the claim transport type string when adding a SATP claim rule.
      -t|–type=
      Set the claim type when adding a SATP claim rule.
      -V|–vendor=
      Set the vendor string when adding SATP claim rules. Vendor/Model rules are mutually exclusive with driver rules.

      • Got it, just change the “add” to “remove” in the command. If we could create multiple datastores from the same local disks, this would be a great way to turn on VSAN in a non-SSD environment.

Thanks for the comment!