@PSUStevens headshot

@PSUStevens blog

You are reading the blog of @PSUStevens.
You can reach me through one of the social accounts below.

Identifying Pure NVMe Volumes in VCenter

In this blog post I'm going to cover a method to identify an NVMe-backed datastore in vCenter and map it back to a Pure Storage volume.

PSUStevens

6 minutes read

EUI ID for a Pure Storage NVMe-backed datastore

If you didn’t figure it out already by the title of the post, this one is about how to map an NVMe-TCP datastore back to a Pure Storage volume by viewing what is known as the EUI ID. In this blog post, I will cover one way to do this as well as explain what is an EUI ID.

I didn’t intend it this way, but because of this second post I’ve convinced myself into working on a series on how to work with Pure Storage volumes inside VMware vCenter via the GUI and CLI. I’ll have links to all posts in the series at the bottom of each page. I’ll also make sure to update the last post with a pointer to this one.

NVMe Discovery Process

In my last post I mentioned at a high-level how an ESXi host gathers information about a SCSI volume using the SCSI INQUIRY command. For NVMe, this process is very different. An ESXi host determines information about NVMe volumes via a connection process utilizing NVMe protocol structures:

  • NVMe Qualified Names (NQNs)
  • Controllers
  • Namespaces

NVMe Qualified Names (NQNs)

Similar to iSCSI and Fibre Channel, the ESXi host and the storage array must have a capable adapter (hardware or software) that supports the NVMe protocol. This adapter is the identity of the ESXi host(s) and FlashArray on the NVMe fabric. Each presents a unique NVMe Qualified Name (NQN) on the fabric.

Controller Discovery

To begin, the ESXi host initiates a connection to a Discovery Controller on the storage array. The FlashArray is the target in this scenario. When the Discovery Controller on the FlashArray receives the ESXi host’s request it returns a list of available I/O Controllers that it can connect to. The I/O Controller acts as the access path to the volumes on the FlashArray. For high availability, the ESXi host connects to multiple I/O controllers, think ports on the FlashArray configured for NVMe.

NVMe Namespaces

After the ESXi host connects to the I/O controller(s) it queries for available NVMe Namespaces. An NVMe Namespace is equivalent to a SCSI LUN/volume. On the FlashArray an adminstrator would map the volumes to an associated host object(s) or host group. After the ESXi host discovers the appropriate namespace it is presented as a storage device.

What is an EUI ID?

After the Discovery Process completes the returned data is used to generate a globally unique, 64-bit identifier for the storage device. This unique identifier is referred to as the EUI ID or the Extended Unique Identifier (EUI). The EUI ID contains the unique OUI for the FlashArray and the storage volume’s specific serial number, making it a persistent identifier for the volume, even across ESXi host reboots.

While the NVMe protocol doesn’t technically use LUN numbers like SCSI, an ESXi still needs a path identifier. The Namespace ID (NSID), which is an integer assigned by the FlashArray to the volume, is used by ESXi to create an internal, path-specific identifier (sometimes appearing as a non-standard LUN ID in some esxcli output). ESXi uses its High-Performance Plug-in (HPP) to claim the NVMe targets and apply path selection policies (like Round Robin) for optimal performance and redundancy. The High-Performance Plug-in is different from the VMware Native Mulitpathing Plug-in (NMP).

Here is an example of an EUI ID:

eui.00f269a91400c54024a9378f007813b1

Where can I find an EUI ID?

You can see the ID using multiple methods. The first would be to look in vCenter by following the steps below:

  1. Click on a datastore being hosted on a Pure Storage FlashArray
  2. Click on the Configure tab of the datastore
  3. Click on Device Backing

At this point the EUI ID will be displayed to the right.

An image showing the NAA ID for a datastore in vCenter

EUI ID in vCenter

The other way to view the EUI ID is to use the esxcli storage core device list command. Simply SSH into one of your ESX hosts and run the command. You will see output similar to what I shown below. This is just a snippet of the full output.

# esxcli storage core device list
eui.00f269a91400c54024a9378f007813b1
    Display Name: NVMe TCP Disk(eui.00f269a91400c54024a9378f007813b1)
    ... 
    Device Type: Direct-Access 
    Multipath Plugin: HPP
    Devfs Path: /vmfs/devices/disks/eui.00f269a91400c54024a9378f007813b1
    Vendor: NVMe
    Model: Pure Storage FlashArray
    ...
    Other UIDs: vml.0600f269a91400c54024a9378f007813b1
    ...

Break down of an EUI ID

At first glance an EUI ID looks like gobbledy gook. Fortunately, once you know the “formula,” of an EUI ID it’s easy to determine which NVMe datastores are backed by a Pure Storage volume.

Let’s take the EUI identifier for a vSphere datastore accessed over the NVMe-TCP protocol:

eui.00f269a91400c54024a9378f007813b1

Here is the “formula” for breaking down that identifier:

Segment Length (Hex Digits) Value Interpretation Description
1 2 eui.00 Standard EUI Prefix Standard prefix for an EUI identifier
2 14 f269a91400c540 Pure Array ID (World Wide Name - WWN) This 14-digit hex string is the unique WWN of the Pure Storage FlashArray
3 6 24a937 Pure Storage OUI (Organizational Unique Identifier) This segment is often a fixed or reserved value used as a separator/indicator by VMware or the storage driver, and it’s discarded when forming the final Pure Volume ID. It is NOT part of the Pure Volume ID
4 10 8f007813b1 Pure Volume Identifier Suffix The unique hex digits that identify the specific volume

Conversion to Pure Volume Serial Number

The final Pure Volume Serial Number is formed by concatenating the Pure Array ID (WWN) and the Pure Volume ID Suffix.

Pure Volume Serial = Array ID + Volume Suffix
  1. Pure Array ID (WWN): F269A91400C540
  2. Pure Volume Identifier Suffix: 8F007813B1
  3. Concatenate: F269A91400C540 + 8F007813B1

The resulting 24-digit hexadecimal volume serial number is: F269A91400C5408F007813B1 This is the serial number you would use to search for the volume directly on the Pure Storage FlashArray using the GUI or the following CLI command:

purevol list | grep -i 730D187406C14775007B3AB1

vSphere Plugin Assist

If you are using the Pure Storage vSphere plugin, then by selecting the Summary tab for the datastore you don’t need to go through all of the steps above. Simply look in the widget and the serial number will be there.

An image showing the EUI ID for a datastore in the Pure Storage Plugin widget in vCenter

Volume serial number in Pure Storage Plugin widget

Broadcom Techdocs

While doing some research for this post I ran into several Broadcom technical documents on this subject. Here are a few of them that pertain to this topic.

Summary

Let’s summarize what we covered in this post:

  • I covered the NVMe Discovery process
  • I mentioned what is an EUI ID
  • I mentioned how to find an EUI ID in vSphere
  • I broke down the format of an EUI ID
  • I explained how to convert an EUI ID to a Pure Storage volume serial number

Series Table of Contents

Here are links to the rest of the series:

If there is something you think I’m missing and feel should be added/corrected, please let me know.
Thanks for reading!

Recent posts

See more

Categories

About

This is my personal blog about technical topics including virtualization, storage, networking, backups, and some random IT stuff that strikes my fancy.