以下、前回、
シンプロとレクラメーションとSCSI UNMAP【その1 概要編】
に引き続き、今回はWindows編です。
Windows 2012未満の場合は、sdeleteというツールを使って、レクラメーションを行います。
sdeleteはディスク領域から安全にファイルを削除するユーティリティ・ツールですが、手動で0を空き領域に書くことで結果としてシンプロ・ボリュームに対して割り当てられた空き領域を開放してくれるものです。
詳細は以下をご覧ください。
注意点としては、以下の様な項目が挙げられます。
・0を書き込むので、ディスクによりますがディスク上では一旦領域が膨らむ可能性がある(その後ディスクは0データを削除していき、結果的に領域が開放される)
・ユーティリティなので、サポートは微妙
・手動での実行が必要なので運用を考慮する必要がある
Win2008以下を今どき使っているところはあまりない(と信じたい)ので、このあたりの説明はこれぐらいで省略し、Win2012以降のUNMAPについて説明します。
Windows2012以降では、管理ツールの「ドライブのデフラグと最適化」から、ボリュームがシンプロでUNMAPに対応しているかどうかが判断できます。
上記の中で、「仮想プロビジョニング対応ドライブ」と書かれているものはThinproボリュームでUNMAPに対応しています。
UNMAPに対応していないものは、実体はシンプロ・ボリュームでもハードディスクドライブとして表示されます。
UNMAPによるレクラメーションはデフォルトでは自動になっており、巨大なファイルを削除したりするとそれがすぐにディスクに反映されます。
自動かどうかは、Registryの「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem」の「DisableDeleteNotification」値で分かります。
これが0だと自動で、1だと手動で実施する必要があります。
以下、Powershellのコマンドでも分かります。
PS C:\Users\Administrator> Get-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\FileSystem" -Name DisableDeleteNotification
DisableDeleteNotification : 0
PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\FileSystem
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control
PSChildName : FileSystem
PSDrive : HKLM
PSProvider : Microsoft.PowerShell.Core\Registry
どちらが推奨かというと、あまりパフォーマンスを気にしない環境であれば自動でも良いでしょうが、頻繁に大容量のファイル削除をすることでによりディスク上での負荷が高くなることを気にされる場合は、手動にして定期的にスケジュールで実行するなどを検討したほうが良いでしょう。
Windowsでのシンプロに関連する詳細は以下を参考にしてください。
#thin-provisioning#Windows#scsi-unmap