admin 管理员组文章数量: 1184232
VSAN默认存储策略(vSAN Default Storage Policy)的磁盘置备类型为精简置备,这会导致一个问题就是我在虚拟机上删除了文件之后,vmdk文件以及虚拟机磁盘占用还是没有减小,这时候需要我们配置一下回收空间
在开始操作前请保存vcenter以及esxi均开启了ssh
目录
1.什么是 UNMAP?
2.VSAN开启磁盘回收
3.ESXI开启空间回收
4.windows虚拟机进行磁盘回收
5.报错解决-类型43022
6.查看效果
1.什么是 UNMAP?
要理解这条命令的重要性,需要先了解 UNMAP 是什么:
-
精简置备(Thin Provisioning):vSAN 默认使用精简置备模式。这意味着虚拟机磁盘(VMDK)向操作系统报告的大小(例如 100GB)可能大于在物理存储上实际占用的大小(例如可能只用了 20GB)。这是一种节省存储空间的技术。
-
空间回收(Space Reclamation):当客户机操作系统(如 Windows Server 或 Linux)删除文件时,这个操作最初只发生在操作系统层面。底层的存储系统(这里是 vSAN)并不知道有些数据块已经不再需要了,因此它仍然会为那些已删除的文件保留空间。
-
TRIM/UNMAP 命令:为了解决这个问题,现代操作系统支持一种称为
TRIM(在 SCSI 体系中叫UNMAP)的指令。当用户在操作系统内删除文件后,操作系统会向底层的存储设备发送一个 UNMAP 命令,通知它哪些数据块已经空闲,可以回收了。 -
vSAN 的响应:当 vSAN 接收到来自虚拟机的 UNMAP 命令后,它会将这些数据块标记为“可回收”。随后,vSAN 会在后台任务中真正地将这些空间释放回存储池,从而使这些空间可供其他虚拟机使用。
2.VSAN开启磁盘回收
首先我们登录vcenter(使用root账号登录),登录后我们输入shell进入命令行
进入命令行后我们输入rvc命令
RVC 的核心作用
简单来说,RVC 是一个功能极其丰富的命令行管理和故障诊断工具,专门为 vSphere 环境(特别是 vCenter Server)设计。 它提供了比标准 vSphere Web Client 或 HTML5 Client 更底层、更批量化和更自动化的操作能力
会提示我们需要输入user@host,也就是我们登录vcenter的账号以及IP地址,我的账号是administrator@test,vcenter管理ip是172.16.201.74;所以我输入administrator@test@172.16.201.74
登录好之后,我们通过ls以及cd命令进入到我们VSAN集群的路径下,如果数据中心的名称为默认的Datacenter,集群名称为VSAN的话,那么完全的路径应该是 /Vcenter管理IP/Datacenter/computers/VSAN,所以我的路径就是/172.16.201.74/Datacenter/computers/VSAN
如果你的数据中心名称不是Datacenter,集群名称不是VSAN的话,就根据实际的情况利用cd命令进入路径。进入到VSAN集群的路径下,使用如下命令开启空间回收
#开启UNMAP回收空间
vsan.unmap_support . -e
官方解释如下链接:
使用 SCSI UNMAP 回收空间https://techdocs.broadcom/cn/zh-cn/vmware-cis/vsan/vsan/7-0/vsan-adminstration-7-0/increasing-space-efficiency-in-a-vsan-cluster/reclaiming-stroage-space-in-vsan-with-scsi-unmap.html
3.ESXI开启空间回收
通过ssh登录到esxi服务器,输入一下命令开启空间回收
#在 ESXi 主机上启用(开启)虚拟机客户机操作系统发起的存储空间回收(UNMAP)功能。
esxcfg-advcfg -s 1 /VSAN/GuestUnmap
#查询并显示 ESXi 主机上 vSAN 的全局 UNMAP(空间回收)功能是开启还是关闭,0为关闭,1为开启
esxcfg-advcfg -g /VSAN/Unmap
进行完如上设置后,把需要进行空间回收的虚拟机关机后再开机(不是重启,一定是关机后开机)
4.windows虚拟机进行磁盘回收
win10以及server2012后的版本都是默认开启自动回收的,所以我们等待即可,查看以及设置自动回收的命令如下:
#检查 Windows 操作系统是否被配置为允许向底层存储(如 vSAN)发送空间回收(TRIM/UNMAP)指令0代表启用删除通知,1代表禁用,0代表启用
Get-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\FileSystem" -Name DisableDeleteNotification
#开启自动空间回收
Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\FileSystem" -Name DisableDeleteNotification -Value 0
如果空间确实不够用了非常紧急,可以尝试进行手动回收,powershell命令如下:
#手动触发存储空间回收操作(TRIM/UNMAP),里面的C代表C盘
Optimize-Volume -DriveLetter C -ReTrim -Verbose
#如果清理的磁盘类型不是固态,删除-ReTrim
Optimize-Volume -DriveLetter C -Verbose
请用管理员权限打开powershell运行命令,把C更换为需要进行空间回收的盘符
5.报错解决-类型43022
PS C:\Users\Administrator> Optimize-Volume -DriveLetter C -ReTrim -Verbose 详细信息: 正在调用 系统 (C:) 上的 重新剪裁... 详细信息: 重新剪裁: 100% 完成。 Optimize-Volume : The volume optimization operation requested is not supported by the hardware backing the volume. Activity ID: {e8ac751b-3033-4e0d-b14f-c0127d738c49} 所在位置 行:1 字符: 1 + Optimize-Volume -DriveLetter C -ReTrim -Verbose + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (StorageWMI:ROOT/Microsoft/...age/MSFT_Volume) [Optimize-Volume], CimExcep tion + FullyQualifiedErrorId : StorageWMI 43022,Optimize-Volume
机械硬盘不加-ReTrim参数,一般来说vmware虚拟机默认的磁盘控制器为SCSI,简单理解也就是机械
修改命令为:
#适用于磁盘类型为机械的情况
Optimize-Volume -DriveLetter C -Verbose
6.查看效果
可以在监控里面看到取消映射(官网说辞为取消映射,上文中的官网链接有说明到)的IOPS
版权声明:本文标题:VSAN精简磁盘回收 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1765546488a3391441.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论