Unable to Remove vSAN ESA Disk from ESXi Command Line with "esxcli vsan storage remove"
search cancel

Unable to Remove vSAN ESA Disk from ESXi Command Line with "esxcli vsan storage remove"

book

Article ID: 422122

calendar_today

Updated On:

Products

VMware vSAN

Issue/Introduction

When attempting to remove a vSAN ESA (vSAN Express Storage Architecture) disk from an ESXi host using the esxcli vsan storage remove command,
the command return no error but process does not successfully remove the disk.

The following command is executed:

[root@localhost:~] esxcli vsan storage remove -u xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx7ceb

However, the disk is not removed, and the command does not appear to take effect.

Example:

[root@localhost:~] esxcli vsan storage remove -u xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx7ceb

[root@localhost:~] esxcli vsan storage remove -u xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx7f66

Running the command: vdq -i shows the following output, indicating the disks are still part of the vSAN storage:

[

   {

      "singleTier" : [

         "mpx.vmhba3:C0:T2:L0",

         "mpx.vmhba3:C0:T1:L0"

      ]

   }

]

Environment

VMware vSAN 8.0 ESA

Cause

This issue occurs because the esxcli vsan storage remove command is strictly used for removing vSAN OSA disks from a vSAN diskgroup.
For vSAN ESA disks, the arcitechure is unique from OSA. The process to remove them is slightly different, requiring the use of the esxcli vsan storagepool remove command.

Resolution

CRITICAL: Removing a disk from a vSAN ESA Storage Pool is a destructive action. Always ensure you have a valid backup before proceeding.Administrators should always use the vCenter UI to remove disks from vSAN ESA. Only when these operation attempts fail should an Administrator attempt to remove a disk from a vSAN ESA Storage Pool via command line.

The workflow below defines the safe removal of the disk(s). Starting with prerequisite, then steps to remove in vCenter, and finally if needed the step to remove the disk via CLI.

Step 1: Verify Data Health (Prerequisite)

Before attempting to remove any storage component, verify the health of your data:

  1. Check vSAN Skyline Health to ensure there are no existing "Data Health" or "Object Health" alarms.

  2. Ensure all objects are "Healthy" and compliant with assigned storage policies as defined in the vSAN Documentation.

Step 2: Use vCenter UI (Primary Methoud)

The vCenter UI includes built-in safeguards to prevent data loss.

  1. Navigate to Cluster > Configure > vSAN > Disk Management.

  2. Select the specific disk and click Remove.

  3. Important: When prompted, select Full data migration. vCenter will proactively move data to other nodes/disks.

  4. Wait for the task to complete.

When successful vCenter will migrate the object (VM) data off the physical disk you are planning to remove. Once the migrated data has been safely migrated the disk will be removed from the storage pool. 

If this operation to remove the disk using the vCenter UI tools fails, re-check vSAN Health in vCenter for any changes to the health state of the cluster that may have appeared after the disk removal operation failed to remove the disk.  If nothing has changed in the Skyline Health, then you can proceed to remove the disk from the command line.

Step 3: ESXi Command Line (Last Resort)

Use this method only if the UI operation fails and you have manually confirmed that the data on this disk is either migrated, the data on disk is proven compromised or redundant. When in doubt it is most safe at this time to open a case with Global Support Broadcom Support Portal Home

  1. Log in to the ESXi Host CLI via SSH.

  2. Identify the correct Disk UUID: esxcli vsan storagepool list

  3. Remove the disk using the ESA-specific command: esxcli vsan storagepool remove -u <Disk_UUID>

  4. Verify the disk is gone: vdq -i



 

  1. Example command:

    #esxcli vsan storagepool remove -u xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx7f66
    
  2. After running the command, the disk will be removed from the vSAN storage pool. To verify, run the following:

    #vdq -i
    
  3. You should now see a reduced list of disks. For example:

    [
       {
          "singleTier" : [
             "mpx.vmhba3:C0:T2:L0"
          ]
       }
    ]
    
  4. Remove Additional Disks if Necessary: If you need to remove more disks, repeat the process for each disk UUID:

    #esxcli vsan storagepool remove -u xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx7ceb
    
  5. Verify the Changes: Finally, verify that the disks have been successfully removed from the vSAN storage pool:

    #vdq -i
    

    The command should return an empty list if all disks were successfully removed:

    [
    ]
  6. Once the disk(s) have been removed the task is complete and you can move to replace the disk or decommission the host depending on the goals of the operation. 

Additional Information

Please also for reverence review the following documentation that defines vSAN ESA and OSA differences and definitions Supported changes in a vSAN ESA or vSAN SC (Storage Clusters) ReadyNodes