If your environment contains stateless ESXi hosts of version 6.7 and earlier and includes NVMe devices that support only NGUID format, you use the present workflow to upgrade the hosts to version 7.0.x.

When upgrading your stateless hosts from version 6.7 and earlier to version 7.0.x, perform these steps to retain the storage configuration. If you perform the upgrade without following the instructions, all storage configurations captured in host profiles might not be retained across the upgrade. As a result, you might encounter host profile compliance failures after the upgrade.


  • Your environment contains stateless ESXi 6.7 or earlier hosts.
  • The environment includes NVMe devices that support only NGUID format.


  1. Determine whether the host contains NGUID-only NVMe devices.
    1. Verify whether the vendor of the device is NVMe.

      Use the following command as an example.

      # esxcli storage core device list -d eui.f04xxxxxxxxx0000000100000001
      Display Name: Local NVMe Disk (eui.f04xxxxxxxxx0000000100000001)
      Has Settable Display Name: true
      Devfs Path: /vmfs/devices/disks/eui.f04bxxxxxxxxx0000000100000001
      Vendor: NVMe

      The Vendor: NVMe line indicates that the device is NVMe.

    2. Determine which HBA is connected to the NVMe device.
      # esxcli storage core adapter device list
      HBA    Device UID
      ------ -------------------------------
      vmhba2 eui.f04xxxxxxxxx0000000100000001
    3. Obtain the namespace information for the NVMe device using the HBA and the namespace ID.
      # esxcli nvme device namespace get -A vmhba2 -n 1
      Namespace Identify Info:
      Namespace Size: 0xe8e088b0 Logical Blocks
      Namespace Capacity: 0xe8e088b0 Logical Blocks
      . . .
      NVM Capacity: 0x1d1c1116000
      Namespace Globally Unique Identifier: 0xf04xxxxxxxxx0000000100000001
      IEEE Extended Unique Identifier: 0x0

      In the output, for an NGUID-only NVMe device, the field IEEE Extended Unique Identifier contains 0 and Namespace Globally Unique Identifier contains a non-zero value.

  2. To retain storage configurations captured in the host profile, perform these steps when upgrading a stateless host to 7.0.x.
    1. Before the upgrade, store esx.conf in a persistent location.
      For example, you can copy the esx.conf file to a VMFS datastore.
      # cp /etc/vmware/esx.conf /vmfs/volumes/datastore1/
    2. Upgrade the host.
      After the upgrade, the host is not compliant with the profile and might remain in maintenance mode.
    3. Apply the device settings for NGUID-only NVMe devices using new ID formats.
      Run the following command from the host indicating the location of the esx.conf file.
       # python ./usr/lib/vmware/nvme-nguid-support/bin/nguidApplySettings.pyc -l /vmfs/volumes/datastore1/
  3. Copy the settings from the host and reset host customizations.
    1. In the vSphere Client, click Home > Policies and Profiles > Host Profiles, and click the profile attached to the host.
    2. Click Configure tab > Copy Setting from Host and select the host.
    3. To reset customizations, navigate to the host and select Host Profiles > Reset Host Customizations from the right-click menu.
  4. From the host's right-click menu, select Host Profiles > Remediate.
    The host becomes compliant.
  5. Reboot the host and exit the maintenance mode.

Example: Upgrade the ESXi Host Without Retaining Storage Configurations

If you don't retain the storage configurations captured in the host profile, after you upgrade the host, you might encounter some compliance failures on the host. In this case, copy the settings from the host and reset host customizations.