Reclaim datastore space with PowerCLI
Script
$esxName = 'MyEsx'
$datastoreName = 'MyDatastore'
$esxcli = Get-EsxCli -VMHost $esxName -V2
$sParam = @{
volumelabel = $datastoreName
}
$esxcli.storage.vmfs.unmap.Invoke($sParam)
https://kb.vmware.com/s/article/2057513
Reclaim datastore space with manual
ESXi6 (VMFS5)的时代里面,客户机上释放的空间要能在真正的LUN上也同时释放出来,需要满足几个条件:
1.磁盘必须是Thin 配置的(废话,thick的就固定了)
2.VM hardware version 11(低版本可以通过update manager升级)
3.EnableBlockDelete 设置为1 (对应的ESXi host的高级属性设置)
4.CBT需要关掉 https://kb.vmware.com/s/article/1031873
满足了上面几个条件之后,一般在操作系统里面删除了文件之后,如果观察这个VM的vmdk文件,可以发现对应的vmdk文件尺寸会随之变化。
5.这一步之后,再ssh进入对应的host,执行esxcli 命令 esxi storage vmfs unmap -l XXX(datastore 的名字)
就可以发送命令给对应的LUN了。大概等个几个小时,LUN的空间就释放掉了。
在ESXi6.5之后,基本上只需要满足thin disk和vmware hardware version 11的条件,其他的操作全部都自动化了。唯一一个需要配置的东西(其实默认就是启用的)space reclamation
默认设置是low,当然你也可以关掉这个功能
直接在一个windows2012R2的机器上删除了2T的数据,vmdk文件的尺寸很快就随之改变了,然后大概等了4个小时,我的LUN空间的警报自动解除
转载于:https://blog.51cto.com/549687/2139913