Skip to main content
NetApp Knowledge Base

ONTAP and Windows SCSI unmap and space reclamation

Views:
10,733
Visibility:
Public
Votes:
7
Category:
flexpod-with-infrastructure-automation
Specialty:
san
Last Updated:

 

Applies to

  • ONTAP 9

Host Operating System

  • Windows Server 2012
  • Windows Server 2012 Core
  • Windows Server 2012 Hyper-V Guests
  • Windows Server 2012 R2
  • Windows Server 2012 R2 Core
  • Windows Server 2012 R2 Hyper-V Guests
  • Windows Server 2016

Referred in title:

  • SnapDrive for Windows (SDW)
  • SNapCenter Plug-in for Windows (SCW)

Answer

What is SCSI UNMAP?

The UNMAP command is an advisory SCSI command standardized within the T10 SCSI command set, which is used to reclaim space from blocks that have been deleted by the host OS, an application, or a virtual machine. T10 Thin provisioning technology broadly adopted in the current computer industry uses the UNMAP command to achieve improved storage utilization, flexible capacity planning, and non-stop storage provisioning service.

  • The SCSI UNMAP command is used as an in-band operation by Windows 2012 and later.
  • Windows 2008 and earlier have no native in-band UNMAP support. However, vendor specific out-of-band space reclamation is available for Windows through such applications as SnapDrive for Windows and the Data ONTAP PowerShell Toolkit. The SnapDrive Space Reclaimer feature uses a vendor-specific hole-punching command for deleting space.

Since UNMAP is an advisory command, the SCSI specification allows the target the option of responding to the command with a success response without reclaiming all of the blocks in the specified range. Typically this is performed by storage arrays due to load on the system, and as such it is possible to not always reclaim all of the expected blocks during an UNMAP operation.

 

What versions of Windows and Data ONTAP use and work well with in-band SCSI UNMAP?

Data ONTAP utilizes SCSI in-band UNMAP in the following versions:

  • Data ONTAP in 7-Mode 8.1.3 and later
  • Clustered Data ONTAP 8.2 and later
  • ONTAP 9

Windows operating systems utilize in-band UNMAP in the following versions:

  • Windows Server 2012
  • Windows Server 2012 Core
  • Windows Server 2012 Hyper-V Guests
  • Windows Server 2012 R2
  • Windows Server 2012 R2 Core
  • Windows Server 2012 R2 Hyper-V Guests
  • Windows Server 2016

How to enable/disable the feature in Data ONTAP

  • For Data ONTAP 7-Mode in the 8.1 release family, no configuration change was required to enable SCSI UNMAP. Starting in Data ONTAP 8.2 7-Mode, a change was implemented that required the space_alloc option be enabled on a LUN for it to advertise support for, and accept SCSI UNMAP commands. Earlier than Data ONTAP 8.2, SCSI UNMAP was fully functional without space_alloc being enabled, even though not all of the supported T10 Thin Provisioning features were turned on, unless the option was set.
  • For clustered Data ONTAP, support for SCSI UNMAP begins in the 8.2 release family. For a LUN to advertise support for and accept SCSI UNMAP commands, enable the space-allocation option on LUNs which you expect to use this feature with.

Note: If you change the space_alloc or space-allocation setting AFTER provisioning a LUN to a Windows host, reboot the Windows host for it to discover the changed setting.

How to enable/disable the feature on Windows hosts?

Data ONTAP DSM 4.0 and later checks Data ONTAP versions, and will adaptively set in-band UNMAP accordingly. From the Windows MMC, locate the storage section 'Data ONTAP DSM Management', right-click and select Refresh.
For server Core editions, this is performed by running the PowerShell cmdlet 'get-sandisk' command.

When using Windows native DSM (MSDSM), use the corresponding Windows Host Utilities (WHU) version from the following:

  • Data ONTAP 8.0.x --> WHU 6.0.1
  • Clustered Data ONTAP 8.1.x --> WHU 6.0.1
  • Data ONTAP 8.1.0 - 8.1.2 in 7-Mode -->WHU 6.0.1
  • Data ONTAP 8.1.3 in 7-Mode -->WHU 6.0.2
  • Data ONTAP 8.2.x – in 7-Mode and clustered Data ONTAP --> WUHU 7.1
  • See the Interoperability Matrix Tool for recommendations specific to your configuration.

*** WHU 6.0.1 --> turns in-band UNMAP off

fsutil behavior query disabledeletenotify
DisableDeleteNotify = 1

*** WHU 6.0.2 --> turns in-band UNMAP on

fsutil behavior query disabledeletenotify
DisableDeleteNotify = 0

How to verify whether SCSI UNMAP is enabled or disabled on a Windows host?

  • Run the following command to verify the setting from the command prompt:

> fsutil behavior query disabledeletenotify

  • The returned value (DisableDeleteNotify = 1) means in-band UNMAP is disabled for the host.

DisableDeleteNotify = 0 means in-band UNMAP is enabled for the host.

Verify and Statistics collection

Note: When connected to multiple Data ONTAP controllers with different SCSI UNMAP settings, it is recommended to disable in-band UNMAP.
You can verify that clustered Data ONTAP is receiving UNMAP commands by running the statistics command from the cluster shell CLI, and searching for the unmap_reqs counter.

Example:
clustername::*> statistics start -object lun -instance /vol/lun1/win2012-lun -vserver svm_name

Statistics collection is being started for Sample-id: sample_60
Note: Generate test SCSI UNMAP commands from the Windows host at this point:
clustername::*> statistics stop -sample-id sample_60

Statistics collection is being stopped for Sample-id: sample_60
clustername::*> statistics show -sample-id sample_60

Object: lun

Instance: /vol/lun1/win2012-lun

Start-time: 3/21/2016 14:23:18

End-time: 3/21/2016 14:23:56

Vserver: MySVM

Number of Constituents: 2 (complete_aggregation)

    Counter                                                     Value

    -------------------------------- --------------------------------

{SNIP}

    unmap_reqs                                                    100

Additional Information

  • This feature allows the File System of the operating system to keep known virtual disks from using too many blocks in the virtual disk sparse file, freeing space on the ONTAP volume.
  • This used to be implemented on Windows through SnapDrive for Windows Space Reclaimer or the space reclamation in the SnapCenter PLug-in for Windows, which would still be necessary on Windows 2008R2 and earlier due to compatibility of SCSI UNMAP.
  • For further analysis collect and provide system node autosupport invoke-performance-archive

WARNING:  When considering Resilient File System (ReFS) , Features such as thin provisioning, TRIM/UNMAP, or Offloaded Data Transfer (ODX) are required, NTFS must be used.

 

NetApp provides no representations or warranties regarding the accuracy or reliability or serviceability of any information or recommendations provided in this publication or with respect to any results that may be obtained by the use of the information or observance of any recommendations provided herein. The information in this document is distributed AS IS and the use of this information or the implementation of any recommendations or techniques herein is a customer's responsibility and depends on the customer's ability to evaluate and integrate them into the customer's operational environment. This document and the information contained herein may be used solely in connection with the NetApp products discussed in this document.
Scan to view the article on your device