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.
NiTRo says
very useful trick William, thanks a lot 🙂
marco says
great!
mgiammarco says
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.
1538Moss says
mgiammarco: Did you shutdown all your guest machines ?
rsb says
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?
rsb says
I still get the error message, but I now noticed in vSphere that the Drive Type have changed from Non-SSD to SSD. Hooray! 🙂
gopikrishnan says
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?
Chris Horn says
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.
Datto says
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
John Doe says
You need to reboot the host.
William says
@Chris Horn,
To be honest, I don't recall if I had any issues with the button.
euro says
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
paulgrevink says
Hello William,
Great post, thank you very much for this.
Regards,
Paul
Anonymous says
Thanks you so much !
Now I can take the benefit of my SSD drive.
dailyvmtech says
Hi, will this be configurable on Nested vESXi5? I'm preparing for my VCAP5 and I want to test it.
Thanks,
Fanta says
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 ??
John Doe says
Just use the identifier (eg. naa.123456789...) instead of the runtime name (eg. mpx.vmhbal:C1:T1:L0).
Anonymous says
@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
Paul Kroon says
@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.
Sertec says
Would this trick works for USB EXternal HDDs?
Cormac Hogan says
Will, could be unique to 5.5U1, but it appears that many of the arguments now require a double-minus, e.g. --satp, --device and --option (fyi)
William Lam says
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: Set the device when adding SATP claim rules. Device rules are mutually exclusive with vendor/model and driver rules. Set the driver string when adding a SATP claim rule. Driver rules are mutually exclusive with vendor/model rules. Set the model string when adding SATP a claim rule. Vendor/Model rules are mutually exclusive with driver rules. Set the option string when adding a SATP claim rule. Set the default PSP for the SATP claim rule. Set the PSP options for the SATP claim rule. The SATP for which a new rule will be added. (required) Set the claim transport type string when adding a SATP claim rule. Set the claim type when adding a SATP claim rule. Set the vendor string when adding SATP claim rules. Vendor/Model rules are mutually exclusive with driver rules.
-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=
-D|--driver=
-f|--force Force claim rules to ignore validity checks and install the rule anyway.
-M|--model=
-o|--option=
-P|--psp=
-O|--psp-option=
-s|--satp=
-R|--transport=
-t|--type=
-V|--vendor=
Shawn Eustis says
Do you have the command to reverse this, convert an SSD drive back to non-SSD?
Shawn Eustis says
Got it, just change the to in the command
Shawn Eustis says
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.
SDGrey says
Great article - our test ESXi 6.0 cluster wouldn't see the SSDs as such - worked like a charm
Carlos Boyd says
Hey William... I've done this dozens of times with success. However, I just tried it on some HP Synergy lab hardware... and the device disappears after applying the claim rule. Any ideas?
I've gone thru and ran the reverse to get the device available.