虚拟机主要两种存储,传统存储和vSAN存储,传统存储使用VMFS6默认已经支持了自动空间回收。而厚置备默认已经提前置备好了,不存在空间回收的问题,本文主要介绍在vSAN下如何开启磁盘空间回收。(默认是不开启的)
在vSAN存储下,默认虚拟机是精简置备,随着时间推移,发现实际占用的空间超过了置备的空间。
vSAN 支持可用空间回收,也称为取消映射操作。VMware官网针对vSAN存储的回收参考《使用 SCSI UNMAP 回收空间》,写的不是很清晰。下面把设置详细步骤列出来。
其实主要关注这几点:
1、要在 vSAN 集群上启用取消映射,请使用以下 RVC 命令:vsan.unmap_support –enable
2、在 vSAN 集群上启用取消映射时,必须先关闭所有虚拟机的电源然后再打开电源。虚拟机必须使用虚拟硬件版本 13 或更高版本,才能执行取消映射操作。
3、vSAN 6.7 Update 1 及更高版本支持。
4、在 Windows 操作系统上,默认情况下 NTFS 执行内嵌取消映射。
5、在 Linux 操作系统上,脱机取消映射通过 fstrim(8) 命令执行,内嵌取消映射在使用 mount -o discard 命令时执行。
操作步骤:
开启vCenter的SSH的访问;
输入root密码之后,提示Command>之后输入rvc administrator@vsphere.local@localhost,按照提示输入密码(此处密码就不是root的密码了)
cd 到对应数据中心的computers。(我这里数据中心名称是Datacenter,集群名称是vSAN)。
使用如下命令开启:
开启的命令是:
vsan.unmap_support -e +集群名称
关闭的命令是:
vsan.unmap_support -d +集群名称
将虚拟机关机再开机,切记,是关机再开机,不是重启。注意:在虚拟机操作系统内直接重启无效。
对于Windows虚拟机操作系统,Windows server 2012之后的版本默认启用了该功能。可以使用下面Powershell命令查询:
Get-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\FileSystem" -Name DisableDeleteNotification #查询的结果为0表示已开启
如果要开启自动回收,可以使用下面Powershell命令开启:
Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\FileSystem" -Name DisableDeleteNotification -Value 0 #开启自动回收
手动回收虚拟机空间,可以使用下面Powershell命令,DriveLetter后面跟的D为D盘。
Optimize-Volume -DriveLetter D -ReTrim -Verbose
发表评论