Short tip: VMware ESXi doesn't recognize SSD as SSD

During a server installation recently a local attached SSD wasn't recognized as SSD and therefore it was impossible to use it as vSphere Flash Read Cache. Not always the reason for this issue is a controller misconfiguration - sometimes ESXi just doesn't recognize the SSD as flash drive. In this case it is possible to flag particular storage devices explicitly as SSD.

For this access to the ESXi console is required. First of all the device name of the affected storage is needed:

1# esxcli storage core device list|grep "naa"
2naa._xxx_
3   Display Name: Local DELL Disk (naa._xxx_)
4   Devfs Path: /vmfs/devices/disks/naa._xxx_

To make sure you picked the right device it's a good idea to have a look at the vendor and size:

1# esxcli storage core device list -d naa._xxx_|egrep -i "vendor|model|size"
2   Size: 94848
3   Vendor: DELL
4   Model: PERC H710P
5   Queue Full Sample Size: 0

In this example a circa 100 GB SSD (94848/1024). Using esxcli you can find out whether the device is detected as local attached SSD:

1# esxcli storage core device list -d naa._xxx_|egrep -i "local|ssd"
2   Display Name: Local DELL Disk (naa._xxx_)
3   Is Local: true
4   Is SSD: false
5   Is Local SAS Device: false

Using the following command you can flag the SSD:

1# esxcli storage nmp satp rule add --satp=VMW_SATP_LOCAL --device naa._xxx_ --option "enable_local enable_ssd"

If the SSD is not locally attached you need to remove the keyword "enable_local". Afterwards the device reuls are reloaded:

1# esxcli storage core claimrule load
2# esxcli storage core claimrule run
3# esxcli storage core claiming reclaim -d naa._xxx_

The SSD should now be recognized as flash storage:

1# esxcli storage core device list -d naa._xxx_|egrep -i "local|ssd"
2   Display Name: Local DELL Disk (naa._xxx_)
3   Is Local: true
4   Is SSD: true
5   Is Local SAS Device: false

If the SSD isn't recognized correctly it might be necessary to reboot the ESXi host.

Translations: