How to find NVMe SSD firmware versions on VMware ESXi using ESXCLI
Keeping this one short-and-simple, to really encourage you to visit the source article to read through details and tips found at:
- New ESXCLI Commands in vSphere 6.5
Nov 19 2016 by Florian Grehl at Virten.net
If you're wondering if your NVMe drive might need a firmware update, and you're running VMware ESXi Hypervisor, this article is for you. Many affordable, consumer market SSDs only make Windows or Mac utilities for firmware level determination and updates, such as Samsung Magician. I'm hoping to spare you the trouble of finding out that you should have upgraded, the hard way, such as when your Samsung 960 or EVO drive vanishishes after a reboot, due to an older firmware. That whole story unfolded here at TinkerTry first, earlier this year.
Note, consumer SSDs are more affordable partly because of their relatively low TBW, and unlikely to appear on the endurance-for-the-enterprise focused VMware Compatibility Guide. That said, they make great VMFS datastores for homelabs, where write endurance is unlikely to be an issue. Not recommend as a caching tier for vSAN.
Non-disruptive
This article gets you through that first step in remediation, determining whether you have an old firmware or not, quickly and easily, without disruption, and without installing any third party software. Works for any NVMe device in any form factor, including HHHL PCIe cards, M.2, and U.2.
How to determine your NVMe SSD's firmware level
I used VMware ESXi 6.5 Update 1 on my SuperServer Bundle 2 to test this, seen also in the video below. But this exact method should work on any 6.5.x version, assuming you've started SSH on your ESXi host first.
Step 1
Issue the following command:
esxcli nvme device get -A vmhba1 | egrep "Serial Number|Model Number|Firmware Revision"
then up-arrow and replace the vmhba1
with vmhba2
then press enter. Repeat this process, until you run out of drives to check.
Sample output:
[root@xd-1541-5028d:~] esxcli nvme device get -A vmhba1 | egrep "Serial Number|Model Number|Firmware Revision"
Serial Number: S3EWNX0J510951K
Model Number: Samsung SSD 960 PRO 512GB
Firmware Revision: 2B6QCXP7
[root@xd-1541-5028d:~] esxcli nvme device get -A vmhba2 | egrep "Serial Number|Model Number|Firmware Revision"
Serial Number: PHBT71610CW8032E
Model Number: INTEL MEMPEK1W032GA
Firmware Revision: K3110300
[root@xd-1541-5028d:~] esxcli nvme device get -A vmhba3 | egrep "Serial Number|Model Number|Firmware Revision"
Serial Number: S3ETNX0HB07870X
Model Number: Samsung SSD 960 EVO 1TB
Firmware Revision: 2B7QCXE7
Step 2 - Optional
If you also want all sorts of details about each of your drives, let's remove the egrep search, just this shorter command:
esxcli nvme device get -A vmhba1
press enter, then up-arrow and replace the vmhba1
with vmhba2
then press enter again. Repeat this process, until you run out of drives to check.
Yep, it's that easy, you're done here! No downtime, no reboots, quick-and-easy, and completely safe. Just don't forget to close your SSH session and/or service.
Video
If you do need to update your firmware
While it would be nice if your affordable SSD vendor supported the esxcli nvme device firmware download
XCLI command from within an SSH session to your ESXi host, that may not be the case. Instead, try to locate the bootable ISO firmware updater from your SSD's support site, such as the Samsung 960 EVO and 960 firmware update ISOs (sometimes) found here. This method of booting from an ISO-based-OS side-steps the need to have an OS installed on new systems. This is why boot ISOs are well-suited for new (greenfield) deployments, where out of band management using IPMI (iLO, iDRAC, iKVM) to mount that ISO can help. If you don't have such abilities, you can always burn an old-school CD/DVD, or create bootable USB media from the ISO.
Shop
The Supermicro AOC-SLG3-2M2 PCIe for two NVMe SSDs manual is available at Amazon, Newegg, and Wiredzone, see also the AOC-SLG3-2M2 User's Guide and Product Page. The two M.2 NVMe SSDs featured in the video are detailed at Where to buy your Samsung 960 EVO or PRO M.2 NVMe SSDs, featuring the latest ordering and availability info. Note, there are now several companies offering 3D NAND M.2 NVMe storage, including the Intel® SSD E 6000p Series and the (WD/SanDisk partnership) Toshiba XG5.
Aug 07 2017 Update
The Shop section was added above, prompted by Bob Watson's comment below.
In case you're wondering what an INTEL MEMPEK1W032GA is, that's a 32GB Optane drive, see also Intel Optane M.2 16GB/32GB consumer NVMe SSDs for Windows caching are not that fast as VMware VMFS or NTFS, save up for bigger PCIe versions. More about Optane at TinkerTry soon.
Aug 25 2018 Update
These commands still work on vSphere 6.7, so I'm changing the title from:
How to find NVMe SSD firmware versions in a VMware ESXi 6.5 Server
to:
How to find NVMe SSD firmware versions on VMware ESXi using ESXCLI
See also at TinkerTry
See also
- Determine TBW from SSDs with S.M.A.R.T Values in ESXi (smartctl)
May 18 2016 by Florian Grehl