Technical Blog Post
Abstract
Space reclamation for DS8880 thin provisioned volumes using VMware’s VAAI SCSI UNMAP
Body
If you have virtualized your datacentre server resources on a VMware platform, it becomes important for other partnering resources such as storage or network to align with VMware virtualization technology. For example, if you want to use storage for your VMware virtualized servers, it is important that your storage supports VMware APIs such as vStorage API for Array Integration (VAAI), vSphere Storage API for Storage Awareness (VASA) to take advantage of VMware integration with storage resources. The users who have deployed their VMware virtual infrastructure using external storage arrays require features that enable efficient utilization of storage capacity. VMware introduced the SCSI UNMAP primitive in vSphere 5.0 to address this requirement.
IBM has long standing technical partnership with VMware to integrate each other’s technology for effective consumption of mutual resources benefiting end-users and customers. Along with other IBM storage offerings such as IBM Spectrum Virtualize storage family and IBM Spectrum Accelerate storage family, IBM DS8000 storage family supports VMware’s integration points such as VAAI and VASA.
What is VMware VAAI SCSI UNMAP?
It’s not new. Many of the VMware users know about this, still for those who are unaware about VAAI SCSI UNMAP -
If you are using storage vMotion or vSphere snapshot consolidation/deletion or Virtual machine deletion on a thin provisioned LUN from external storage array, then you always wondered why space is not released from the storage array. Prior to vSphere 5.0, space released from vSphere is never returned to the storage array for another LUN creation of for another storage host. It was not effective way of storage consumption in a VMware environment. With the introduction of VAAI SCSI UNMAP primitive, space released from vSphere on a thinly provisioned LUN is returned to the storage array. This feature is designed to effectively reclaim deleted space to meet continuing storage needs.
VAAI SCSI UNMAP on vSphere 5.0 is long back. Why writing it now? It’s simple
, it’s now supported on IBM DS8880.
IBM DS8880 now supports VMware SCSI UNMAP primitive. With this, storage space is returned to IBM DS8880 for another use when space is released from vSphere layer using VAAI SCSI UNMAP. With this, the VMware host notifies the storage device about freed space on a thin-provisioned LUN by sending a SCSI UNMAP command. DS8880 will release any entire extents that have been allocated within that freed space. On DS8880, the extent size is either 16MB for small extents or 1 GB for large extents. Therefore, for any space to be released, the request must be for at least 16 MB. If the request is not aligned on extent boundaries, then only full extents contained within the requested range will be released.
What are the requirements of using VAAI SCSI UNMAP with DS8K?
- VAAI SCSI UNMAP feature is available with DS8880 with the latest release 8.2.3 (GA: 9th June, 2017).
- ESXi host version 5.0 or higher.
- Thin provisioned volumes on DS8880 with 16 MB extents
How do I use VAAI SCSI UNMAP with DS8880?
IBM DS8880 storage supports VAAI. Verify it from vCenter by browsing to the VMware datastore created on a DS8880 LUN. ‘Hardware Acceleration’ status as ‘Supported’ confirms that storage array supports VAAI.
After verifying DS8880 supports VAAI, now find out whether DS8880 supports SCSI UNMAP primitive. You need to use ESXi server command line interface for that.
- First find out NAA id of DS8880 LUN backing VMware datastore.
[root@esx:~] esxcli storage core device list
naa.6005076308ffc54c0000000000001100
Display Name: IBM Fibre Channel Disk (naa.6005076308ffc54c0000000000001100)
Has Settable Display Name: true
Size: 1024000
Device Type: Direct-Access
…
…
…
- From this NAA ID, display the device specific details for VAAI SCSI UNMAP primitive supported by DS8880 for that device. It will tell us whether the underlying DS8880 supports SCSI UNMAP primitive for dead space reclamation.
[root@esx:~] esxcli storage core device vaai status get -d naa.6005076308ffc54c0000000000001100
naa.6005076308ffc54c0000000000001100
VAAI Plugin Name:
ATS Status: supported
Clone Status: unsupported
Zero Status: supported
Delete Status: supported
The “Delete Status: supported” specifies that it can send SCSI UNMAP commands to the underlying DS8880 storage when space reclamation is requested.
OK!! VAAI SCSI UNMAP is supported on DS8880. Now, how do I release the space back to DS8880?
Assuming you are hosting a virtual machine on a datastore created from a thinly provisioned DS8880 LUN.
- Before issuing SCSI UNMAP, check the volume details and used volume capacity on a DS8880 volume.
dscli> showfbvol 1105
Date/Time: June 2, 2017 11:38:15 AM MST IBM DSCLI Version: 7.8.23.81 DS: IBM.2107-75LR811
Name vmfs5_datastore2
ID 1105
accstate Online
datastate Normal
configstate Normal
deviceMTM 2107-900
datatype FB 512
addrgrp 1
extpool P1
exts 25600
cap (MiB) 409600
captype DS
cap (2^30B) 400.0
cap (10^9B) -
cap (blocks) 838860800
volgrp V7,V8
ranks 3
dbexts 0
sam ESE
repcapalloc -
eam managed
reqcap (blocks) 838860800
realextents 5559
virtualextents 41
realcap (MiB) 88944 ⇒Capacity before performing storage vMotion
migrating 0
migratingcap (MiB) 0
perfgrp PG0
migratingfrom -
resgrp RG0
tierassignstatus -
tierassignerror -
tierassignorder -
tierassigntarget -
%tierassigned 0
etmonpauseremain -
etmonitorreset unknown
GUID 6005076308FFC54C0000000000001105
- After performing an operation on host that frees up the space (such as storage vMotion), run SCSI UNMAP command from ESXi host to the DS8880 storage to notify it to release the free space that was allocated for this LUN.
[root@esx:~] esxcli storage vmfs unmap -l D2
The "-l" option identifies the volume by the volume label.
For more details on the esxcli storage vmfs unmap command, see https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2057513
- Now check the space on the DS8880 volume and verify that it has released the storage space from DS8880 volume.
dscli> showfbvol 1105
Date/Time: June 2, 2017 11:39:00 AM MST IBM DSCLI Version: 7.8.23.81 DS: IBM.2107-75LR811
Name vmfs5_datastore2
ID 1105
accstate Online
datastate Normal
configstate Normal
deviceMTM 2107-900
datatype FB 512
addrgrp 1
extpool P1
exts 25600
cap (MiB) 409600
captype DS
cap (2^30B) 400.0
cap (10^9B) -
cap (blocks) 838860800
volgrp V7,V8
ranks 3
dbexts 0
sam ESE
repcapalloc -
eam managed
reqcap (blocks) 838860800
realextents 4971
virtualextents 41
realcap (MiB) 79536 ⇒Capacity after performing VAAI SCSI UNMAP
migrating 0
migratingcap (MiB) 0
perfgrp PG0
migratingfrom -
resgrp RG0
tierassignstatus -
tierassignerror -
tierassignorder -
tierassigntarget -
%tierassigned 0
etmonpauseremain -
etmonitorreset unknown
GUID 6005076308FFC54C0000000000001105
In summary, VMware VAAI SCSI UNMAP extends the usefulness of thin provisioning at the array level by maintaining storage efficiency throughout the life cycle of the vSphere environment. Now with IBM DS8880 storage supporting VAAI SCSI UNMAP primitive, it can reclaim the space released by vSphere and helps maintaining storage efficiency for the VMware deployments.
For more information refer IBM DS8880 product page https://www.ibm.com/systems/storage/hybrid-storage/ds8000
UID
ibm16164883
