ONTAP 和 Windows SCSI 取消映射和空间回收
不可不使用
适用场景
- ONTAP 9
- Windows Server 2012、2012 Core、2012 Hyper-V子系统
- Windows Server 2012 R2、2012 R2 Core、 2012 R2 Hyper-V子系统
- Windows Server 2016
- SnapDrive for Windows (SDW)
- 适用于Windows的SnapCenter插件(SCW)
问题解答
- 什么是SCSI UNMAP?
-
UNMAP
command是一个在t10 SCSI命令集中标准化的建议SCSI命令、用于从已被主机操作系统、应用程序或虚拟机删除的块回收空间。当前计算机行业广泛采用的T10精简配置技术使用UNMAP
命令来提高存储利用率、实现灵活的容量规划和无中断存储配置服务。SCSI UNMAP
命令在Windows 2012及更高版本中用作带内操作。- Windows 2008及更早版本不支持本机带内UNMAP。但是、供应商特定的带外空间回收可通过适用于Windows的SnapDrive和Data ONTAP PowerShell工具包等应用程序用于Windows。SnapDrive空间回收器功能使用供应商专用的打孔命令来删除空间。
- 由于UNMAP是一个建议命令、因此SCSI规范允许目标选择使用成功响应来响应命令、而不会恢复指定范围内的所有块。通常、由于系统上的负载、此 操作由存储阵列执行、因此、在UNMAP操作期间、可能无法始终回收所有预期的块。
- 哪些版本的Windows和ONTAP可以很好地与带内SCSI UNMAP配合使用
-
- Data ONTAP在以下版本中使用SCSI带内UNMAP:
- 7-模式Data ONTAP 8.1.3及更高版本
- 集群模式Data ONTAP 8.2及更高版本
- ONTAP 9
- Windows操作系统在以下版本中使用带内UNMAP:
- Windows Server 2012
- Windows Server 2012核心
- Windows Server 2012 Hyper-V子系统
- Windows Server 2012 R2
- Windows Server 2012 R2核心
- Windows Server 2012 R2 Hyper-V子系统
- Windows Server 2016
- Data ONTAP在以下版本中使用SCSI带内UNMAP:
- 如何在Data ONTAP中启用/禁用此功能
-
- 对于8.1版本系列中的Data ONTAP 7-模式、不需要更改配置即可启用SCSI UNMAP。从Data ONTAP 8.2 7-模式开始、我们实施了一项更改
space_alloc
、即在LUN上启用所需选项、使其公布对的支持并接受SCSI UNMAP命令。在Data ONTAP 8.2之前的版本中、SCSI UNMAP在未space_alloc
启用的情况下可以完全正常运行、即使并非所有受支持的T10精简配置功能都已打开、除非设置了该选项。 - 对于集群模式Data ONTAP、从8.2版本系列开始支持SCSI UNMAP。要使LUN公布对SCSI UNMAP命令的支持并接受这些命令、请
space-allocation
在LUN上启用该选项、您希望在中使用此功能。 - 注意: 如果
space_alloc
space-allocation
在 为Windows主机配置LUN后更改了或设置、请 重新启动Windows主机 以发现更改后的设置。
- 对于8.1版本系列中的Data ONTAP 7-模式、不需要更改配置即可启用SCSI UNMAP。从Data ONTAP 8.2 7-模式开始、我们实施了一项更改
- 如何在Windows主机上启用/禁用此功能
-
- Data ONTAP DSM 4.0及更高版本会检查Data ONTAP版本、并会相应地自适应设置带内UNMAP。 在Windows MMC中,找到存储部分 Data ONTAP DSM管理,右键单击并选择 刷新。
- 对于服务器核心版本、可通过运行
PowerShell cmdlet 'get-sandisk'
命令来执行此操作。 - 使用Windows本机DSM (MSDSM)时、请使用以下相应版本的Windows Host Utilities (WHU):
- Data ONTAP 8.0.x--> WHU 6.0.1
- 集群模式Data ONTAP 8.1.x->WHU 6.0.1
- Data ONTAP 8.1.0 - 7-模式8.1.2 --> WHU 6.0.1
- 7-模式中的Data ONTAP 8.1.3 --> WHU 6.0.2
- Data ONTAP 8.2.x—在7-模式和集群模式Data ONTAP中--> Wuhuu 7.1
- 有关特定于您的配置的建议、请参见互操作性表工具。
*** 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
- 如何验证Windows主机上是否已启用SCSI UNMAP
-
- 从命令提示符运行命令以验证设置:
> fsutil behavior query disabledeletenotify
- 返回值
DisableDeleteNotify = 1
()表示主机已禁用带内UNMAP。 DisableDeleteNotify = 0
表示已为主机启用带内UNMAP。
- 从命令提示符运行命令以验证设置:
- 如何验证和收集统计信息
-
- 如果连接到具有不同SCSI UNMAP设置的多个Data ONTAP控制器、建议禁用带内UNMAP。
您可以通过 [1] 从集群Shell命令行界面运行统计信息命令并搜索unmap_reqs
计数器来验证集群模式Data ONTAP是否正在接收UNMAP命令。 - 示例:
clustername::*> statistics start -object lun -instance /vol/lun1/win2012-lun -vserver svm_name
- 正在为样本ID启动统计信息收集:
sample_60
- 此时从Windows主机生成test SCSI UNMAP命令:
clustername::*> statistics stop -sample-id sample_60
- 正在停止样本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
- 要使存储知道这些块已释放、需要从客户端获取UNMAP请求。
- 如果要删除数据的LUN非常大、但存储未收到这么多取消映射请求、则可能会看到空间回收未按预期进行。
- 如果存储需要回收大量数据、则NetApp应会收到大量取消映射请求。
- 在这种情况下、我们需要主机供应商参与、以了解主机发送的UNMAP请求为何较少。
- 如果连接到具有不同SCSI UNMAP设置的多个Data ONTAP控制器、建议禁用带内UNMAP。
追加信息
- 通过此功能、操作系统的文件系统可以防止已知虚拟磁盘在虚拟磁盘稀疏文件中使用过多块、从而释放ONTAP卷上的空间。
- 过去、在Windows上、此功能可通过SnapDrive for Windows空间回收程序或适用于Windows的SnapCenter插件中的空间回收来实现、但由于SCSI UNMAP的兼容性、在Windows 2008R2及更早版本上仍需要执行此操作。
- 要进行进一步分析、请收集并提供 系统节点AutoSupport invoke性能归档
警告: 考虑弹性文件系统(Resilient File System、ReFS)时 、需要使用精简配置、TRIM/UNMAP或卸载数据传输(Offloaded Data Transfer、ODX)等功能、必须使用NTFS。 |