You may no longer have use for a specific TDEV volume in a Storage Pool and want to free this space to create a new volume or expand an existing volume. These are the steps involved to delete the TDEV and reclaim this space in the Pool.

This example details how to delete a single TDEV volume in a Storage Group. An example of such a configuration is in the case where a single TDEV was mapped and used as a dedicated VMware ESX boot volume with no other volumes being present in the Storage Group. Scenario: It may be a case where an ESX Host is being decommissioned and we are reclaiming the space used in the Storage Pool.

The steps involved are:

1. Delete the ESX Host Masking View
2. Remove ESX Boot volume (TDEV) from Storage group
3. Delete the ESX Host Storage Group
4. Mark the TDEV as not_ready
5. Unmap the TDEV from the FA ports
6. Unbind TDEV from Pool
7. (If) META Volume Dissolve
8. Delete the Device

In order to view the list of all TDEV’s created in the Pool (ESX-BOOT pool):
symcfg -sid xxx list -tdev -gb -thin -pool ESX-BOOT
List all TDEVs in the system:
symcfg -sid xxx list -tdev

1. Delete the ESX Host Masking View
List the all the views:
symaccess -sid xxx list view
Remove the ESX01_BOOT_MV Masking View:
symaccess -sid xxx delete view -name ESX01_BOOT_MV

2. Remove ESX Boot volume (TDEV) from Storage group
View the details of the storage group ESX01_BOOT_SG in order to gather the correct dev ID (for example 0234):
symaccess -sid xxx list -type STORAGE
symaccess –sid xxx show ESX01_BOOT_SG -type storage

Remove the dev 0234 from the Storage Group:
symaccess -sid xxx -name ESX01_BOOT_SG -type storage remove devs 0234

3. Delete the ESX Host Storage Group
symaccess -sid xxx -name ESX01_BOOT_SG -type storage delete

4. Mark the TDEV as not_ready
symdev -sid xxx not_ready 0234
If you require to change the status of all the devices in a SG:
symsg -sid xxx -sg SG-Name not_ready

5. Unmap the TDEV from FA ports
symconfigure -sid xxx -cmd “unmap dev 0234;” PREVIEW
symconfigure -sid xxx -cmd “unmap dev 0234;” COMMIT

If you require to Unmap a range of devs:
symconfigure -sid xxx -cmd “unmap dev 0234:0236;” COMMIT

6. Unbind TDEV from Pool
symconfigure -sid xxx -cmd “unbind tdev 0234 from pool ESX-BOOT;” PREVIEW
symconfigure -sid xxx -cmd “unbind tdev 0234 from pool ESX-BOOT;” COMMIT

Check if the Unbind was successful:
symcfg -sid xxx list -tdev -gb -thin -pool ESX-BOOT
Once the TDEV is unbound all pointers to the data pool are removed and those tracks that were consumed by the TDEV are marked as available space in the ESX-BOOT Pool.
If you require to Unbind a range of devs:
symconfigure -sid xxx -cmd “unbind tdev 0234:0235 from pool ESX-BOOT;”

7. Dissolve (IF) Meta Volume
symconfigure -sid xxx -cmd “dissolve meta dev 0234;” PREVIEW
symconfigure -sid xxx -cmd “dissolve meta dev 0234;” COMMIT

8. Delete the Device
symconfigure -sid xxx -cmd “delete dev 0234;” PREVIEW
symconfigure -sid xxx -cmd “delete dev 0234;” COMMIT

If you require to Delete a range of devs:
symconfigure -sid xxx -cmd “delete dev 0234:0235;” COMMIT
Comfirm Delete was successful:
symcfg -sid xxx list -tdev

##################################################################
Following on from Burhan’s comment below
Burhan Halilov (@7400N) says:
“If you use -unmap to “symaccess delete view” in 1. you can skip steps 4 and 5
Also you can run “symsg -sid xxx -sg yyy unbind” before you delete the SG in 3. and save step 6.
The symconfigure bind/unbind are being depreciated after se7.6 and replaced with symdev/symsg/symdg bind/unbind”

Here is another way of achieving the removal a TDEV in a quicker fashion as per above, but also including the scenario where the SG is associated with a FAST Policy:

1. Delete the ESX Host Masking View & Unmap the TDEV from FA ports
symaccess -sid xxx delete view -name MV-NAME -unmap -NOP

2. If the SG is associated with a Fast Policy then it will need to be disassociated
symfast -sid xxx disassociate -sg SG-NAME -fp_name FP-NAME

3. Unbind the SG TDEV(s) from Pool
symsg -sid xxx -sg SG-NAME unbind -NOP

4. Remove the TDEVs from the storage group
symaccess -sid xxx -name SG-NAME -type storage remove devs XXXX:XXXX

5. Delete the Storage Group
symaccess -sid xxx -name SG-NAME -type storage delete -NOP

7. Dissolve (IF) Meta Volume
symconfigure -sid xxx -cmd “dissolve meta dev XXXX:XXXX;” PREVIEW -NOP
symconfigure -sid xxx -cmd “dissolve meta dev XXXX:XXXX;” COMMIT -NOP
symcfg list -tdev

8. Delete the Device(s)
symconfigure -sid xxx -cmd “delete dev XXXX:XXXX;” PREVIEW -NOP
symconfigure -sid xxx -cmd “delete dev XXXX:XXXX;” COMMIT -NOP
symcfg list -tdev

VMAX3 TDEV Deletion Process:

Example TDEV '0234'

1. Delete the ESX Host Masking View & Unmap the TDEV from FA ports:
symaccess -sid xxx delete view -name MV-NAME -unmap -NOP

2. Remove the TDEVs from the storage group:
symaccess -sid xxx -name SG-NAME -type storage remove devs 0234

3. Delete the Storage Group:
symaccess -sid xxx -name SG-NAME -type storage delete -NOP

4. Free all Allocations associated with the device:
symconfigure -sid xxx FREE -ALL 0234 -NOP
If you need to FREE ALL for a range of devs:
symdev -sid 289 FREE -ALL -DEVS 0234:0236 -NOP

5. Delete the Device(s)
symconfigure -sid xxx -cmd “delete dev 0234;” PREVIEW -NOP
symconfigure -sid xxx -cmd “delete dev 0234;” COMMIT -NOP
symcfg list -tdev

If you need to delete a range of TDEVs on VMAX3:
Gather details:
symaccess -sid XXX list view -name MV-NAME -detail
symaccess -sid XXX list -type storage -name SG-NAME
symaccess -sid XXX -type storage show SG-NAME

Delete:
symaccess -sid XXX -name SG-NAME -type storage remove devs 00CE:00D0
symdev -sid XXX FREE -ALL -DEVS 00CE:00D0 -NOP
symconfigure -sid XXX -cmd “delete dev 00CE:00D0;” COMMIT -NOP

8 Comments »

  1. If you use -unmap to “symaccess delete view” in 1. you can skip steps 4 and 5
    Also you can run “symsg -sid xxx -sg yyy unbind” before you delete the SG in 3. and save step 6.
    The symconfigure bind/unbind are being depreciated after se7.6 and replaced with symdev/symsg/symdg bind/unbind

  2. Hi There Dave,

    I am going through a similar process at the moment (deleting tdev devices which are not being used) in order to reclaim the used space and I think I have done most of your steps listed, although most through Unisphere, (please be kind) 🙂

    I was wondering if there was some way to view the reclaimed space? Via Unisphere there is no change in my available capacity (physically or virtually) nor in any of my thin pool “views” (this might be a limitation of the GUI I’e been told)

    I’ve freed up about 7TB worth of tdev devices, but cannot find that space anywhere I look.

    Much regards,

    DG

  3. Hi There Dave,

    I am going through a similar process at the moment (deleting tdev devices which are not being used) in order to reclaim the used space and I think I have done most of your steps listed, although most through Unisphere, (please be kind) 🙂

    I was wondering if there was some way to view the reclaimed space? Via Unisphere there is no change in my available capacity (physically or virtually) nor in any of my thin pool “views” (this might be a limitation of the GUI I’e been told)

    I’ve freed up about 7TB worth of tdev devices, but cannot find that space anywhere I look.

    Much regards,

    DG

    • Hey DG

      From UNI make sure you have hit the refresh button.

      From symcli to display a detailed report of the Pool:
      symcfg show -pool ‘Pool-Name’ -thin -detail -all -mb | more

      Hope that helps

  4. Hi Dave

    symconfigure -sid xxx FREE -ALL 0234 -NOP

    why are we executing this command, which is not there in Vmax2nd gen, where it will free the assigned space in VMAX2 once we unbind the device from pool, But why in VMAX

    • Hi Balu

      Correct, VMAX3 only.

      Free all allocations or written tracks (HYPERMAX OS 5977 only)
      Description
      On arrays running HYPERMAX OS 5977, use the free -all to free up allocations on thin devices. This action frees up allocations even if there is data written to the device. The device must be not mapped or Not Ready.

Leave a comment