I have written about this before (and so has William Lam, so all credits go to William), but I wanted to note down these commands for my own use as I find myself digging around often for the same commands these days. So what is my goal: Faking an SSD in my virtualized vSphere lab.
In my lab I have a bunch of virtualized ESXi hosts. Those hosts have multiple disks and I want to mark one of those disks as SSD. To keep things simple I set things up as follows. Just to point out, I use 0:0 / 1:0 / 2:0 so that each device gets a new controller and is easy to identifiy:
- First Disk – ESXi install disk – 5GB – SCSI 0:0
- Second Disk – Fake SSD – 40GB – SCSI 1:0
- Third Disk – Large disk – 1TB – SCSI 2:0
When I boot all disks are recognized as regular disks and in some cases as non-local. In my testing I need local disks and need SSD. So this is what I did to get exactly that. With the first command I mark the “second disk” as SSD and local. With the second command I mark the third disk as local. Next I reclaim the devices so that the new SATP rules are applied.
esxcli storage nmp satp rule add --satp VMW_SATP_LOCAL --device mpx.vmhba2:C0:T0:L0 --option "enable_local enable_ssd" esxcli storage nmp satp rule add --satp VMW_SATP_LOCAL --device mpx.vmhba3:C0:T0:L0 --option "enable_local" esxcli storage core claiming reclaim -d mpx.vmhba2:C0:T0:L0 esxcli storage core claiming reclaim -d mpx.vmhba3:C0:T0:L0
Next you can simply validate if it has worked by typing the following for device vmhba2 and 3 (if you replace the 2 with a 3 ofcourse) :
esxcli storage core device list --device=mpx.vmhba2:C0:T0:L0
As you can see, faking an SSD is fairly straight forward. Note that even if you have an SSD drive you still might need to do this. In some cases the SSD drive is not recognized and you will need to create a rule for it manually.
Pedro says
Hi Duncan,
I think it could be interesting if you could describe your lab. It could give us some ideias when implementing / upgrading our labs.
Keep up the good work.
Regards,
_
Pedro.
Wojciech Marusiak says
I would say this “trick” should be used when you have problems with ssd recognition on your esx box rather than faking it just because you want it. I don’t see point of marking normal hdd as ssd besides just poc.
Duncan Epping says
That is what I am using it for, testing stuff.
solgae says
This would be a good info to refer to if you’re RAID’ing SSDs, so the logical drive presented by the RAID would cover the SSD information, and thus, shows up as non-SSD.
greg schulz says
Interesting idea Duncan, I have some Hybrid HDD (HHDDs) e.g. Seagate Momentus XTs in an ESXi host along with some other low capacity and high capacity HDDs. Here is a link http://storageioblog.com/?p=3002 ( More Storage IO momentus HHDD and SSD moments ) to a series of post from using HHDDs the past couple of years (in addition to SSD, HDD, cloud).
The HHDD while no where near as fast on writes as a SSD has read performance closer to SSD vs. HDD, while having the cost and capacity of a HDD, in the same form factor. The HHDD appears as a regular HDD as the SLC based SSD functionality is embedded intsite the internal HDD as part of its processor and cache. This results in ESX or any other OS for that matter thinking that it is only a HDD. Curious to see if by doing the above if ESX might be able to use the 500GB HHDD more like an SSD vs. a large SAS or SATA drive.
Btw, there is another use for the above technique which is now and then I have a small older SATA SSD that I can attach using SATA to USB or SATA to eSATA cables externally or internal via SATA, yet the device does not appear as SSD. This would be a great way to help ESX know that the device actually is a SSD vs. it thinking it is a HDD.
Thks 4 info
cheers gs @storageio
Duncan Epping says
Yes this can also be used to tell ESXi that it actually is an SSD instead of a regular spinning disk. That is what I normally use it for in my other lab 🙂
greg schulz says
Thanks Duncan for the tip, my Seagate Momentus HHDD is now appearing as a SSD on my lab system.
I have a small actuall MLC SSD that appears to VMware as a HHD, will try playing with that as well.
Will Wetherington says
I found this useful when running a “nested” ESXi server in VMware Workstation using raw devices (physical disks) dedicated to the VM. It did not detect the SSD properly in this configuration, but does when booted directly (not nested).