ESXi上で仮想マシンを作った場合に、Thinディスクフォーマットで仮想ディスクを作ると、実際にデータを書き込んだ場合にのみ容量を消費する。
じゃあ、1回書き込んだデータを削除した場合に、自動的に開放してくれるかというと、なかなか難しいことがあるようだ(VMware Storage Space Reclamation in vSphere)
手動で開放する手法がKBにある「Reclaiming disk space from thin provisioned VMDK files when ESXI Host still sees blocks even after removed from GuestOS」
Linuxの場合は仮想マシンを止めた後、ESXi shellから仮想ディスクVMDKファイルに対して「vmkfstool -K ディスクファイル名.vmdk」を実行する。
Windowsの場合は、Windows OS上でMicrosoftが配布しているSDeleteコマンド を各ドライブレターに対して実行する・・・ということになっている。
とりあえず実験してみることにした


ESXi上の認識

管理者権限でコマンドプロンプトかPowerShellを開き「sdelete.exe -z c:」を実行
初回は下記の様にEULAが表示されるので「Agree」(承諾)する

実行ログ

PS C:\Users\Administrator\Downloads\SDelete> .\sdelete.exe -z c:
SDelete v2.05 - Secure file delete
Copyright (C) 1999-2023 Mark Russinovich
Sysinternals - www.sysinternals.com
SDelete is set for 1 pass.
Free space cleaned on C:\
1 drive cleaned.
PS C:\Users\Administrator\Downloads\SDelete>
実行完了後の状態を確認すると、特に変わらないような気がする・・・


うーん・・・
効果がわからないので他のWindowsサーバでも試してみる


sdeleteを実行

なんか大量にPurgeが発生している模様で表示がおかしい・・・
14時間経過後・・・

終わらない・・・
そこから10分・・・終わった

PS C:\Users\Administrator> .\Downloads\SDelete\sdelete.exe -z c:
SDelete v2.05 - Secure file delete
Copyright (C) 1999-2023 Mark Russinovich
Sysinternals - www.sysinternals.com
SDelete is set for 1 pass.
Free space cleaned on C:\
1 drive cleaned.
PS C:\Users\Administrator> .\Downloads\SDelete\sdelete.exe -z d:
SDelete v2.05 - Secure file delete
Copyright (C) 1999-2023 Mark Russinovich
Sysinternals - www.sysinternals.com
SDelete is set for 1 pass.
Free space cleaned on D:\
1 drive cleaned.
PS C:\Users\Administrator>
なんで、そんなことになってるのかな?と思ったら作業してたDドライブに対してスケジュールジョブによりたくさんのデータが書き込まれていたためでした・・・ジョブ停止忘れてましたね・・・


よって、SDeleteコマンドを実行した意味がなくなってしまったということに・・・
ただ、実行中にいろいろ調べてみたところ、NVMe上のVMFS領域だと、わざわざsdeleteコマンド実行しなくても勝手に相当する動作をやってくれるのでは?という話もあった
とりあえず、Windows Server 2025環境で実行してみた限り、なんか影響があったようには感じなかった