使用 esxcli storage vmfs unmap 命令在精简置备的 LUN 上回收 VMFS 删除的块

摘要:
这意味着VMFS上的StoragevMotion或快照整合任务不自动回收阵列LUN中的空间。要回收精简置设备的VMFS数据存储上的未用存储块,可运行以下命令:#esxclistoragevmfsunmap--volume-label=volume_label|--volume-uuid=volume_uuid--reclaim-unit=number该命令采用以下选项:-l|--volume-label=volume_labelUNMAP的VMFS卷的标签。-n|--reclaim-unit=number每次迭代UNMAP的VMFS块数。与以前的vmkfstools-y方法相似,esxclistoragevmfsunmap命令在数据存储的最高级别创建临时隐藏文件,但名称使用.asyncUnmapFile模式。

官方原文链接:https://kb.vmware.com/s/article/2057513?lang=zh_CN

本文介绍如何通过运行esxcli storage vmfs unmap命令回收精简置备设备的 VMFS 数据存储上的未用存储块。

场景:

假如后端存储采用划分的卷采用瘦模式划分了30T,在存储管理控制台上面看到的已用了18T,但在vCenter管理控制台看到,只用了8T。

原因是以前vmware有用到18T,因为存储采用瘦模式划分卷,所以存储不会自动收缩,需要用vmware的命令去执行,本文有详细讲解。

1. Purpose

vSphere 5.5 在esxcli命名空间中引入了一个新的命令,允许在支持 VAAI UNMAP 原语的精简置备 LUN 上回收删除的块。
该命令可以在没有任何维护窗口的情况下运行,并增强了回收机制,如下:
  • 可以用块数而非百分比值来指定回收大小,以便计算起来更直观。
  • 回收无效空间时采用递增方式而不是一次全部回收,从而避免可能出现的性能问题。

随着 62 TB VMDK 的引入,现在 UNMAP 可以处理更大的无效空间区域。但是 UNMAP 操作仍是手动方式。这意味着 VMFS 上的 Storage vMotion 或快照整合任务不自动回收阵列 LUN 中的空间。

注意:ESXi 5.5 已弃用vmkfstools -y命令。有关如何在 vSphere 5.0 和 5.1 中回收空间的更多信息,请参见Using vmkfstools to reclaim VMFS deleted blocks on thin-provisioned LUNs (2014849)

2. Resolution

注意:如果您是在 ESXi 6.5 中使用 VMFS6,则此文档不适用。

要回收精简置设备的 VMFS 数据存储上的未用存储块,可运行以下命令:

# esxcli storage vmfs unmap --volume-label=volume_label|--volume-uuid=volume_uuid--reclaim-unit=number

该命令采用以下选项:

  • -l|--volume-label=volume_label
    UNMAP 的 VMFS 卷的标签。该参数是必需项。如果指定该参数,则不要使用-u|--volume-uuid=volume_uuid
  • -u|--volume-uuid=volume_uuid
    UNMAP 的 VMFS 卷的 UUID。该参数是必需项。如果指定该参数,则不要使用-l|--volume-label=volume_label
  • -n|--reclaim-unit=number
    每次迭代 UNMAP 的 VMFS 块数。该参数为可选项。如果未指定此参数,则该命令使用默认值 200。

例如,对于名称为MyDatastore,UUID 为509a9f1f-4ffb6678-f1db-001ec9ab780e的 VMFS 卷,运行以下命令:


# esxcli storage vmfs unmap -l MyDatastore
或者
# esxcli storage vmfs unmap -u 509a9f1f-4ffb6678-f1db-001ec9ab780e
注意:
  • -nnumber--reclaim-unit=number参数的默认值 200 适合大多数环境,但有些阵列供应商可能会根据阵列处理 SCSI UNMAP 命令的方式建议更大或更小的值。
  • 与以前的vmkfstools -y方法相似,esxcli storage vmfs unmap命令在数据存储的最高级别创建临时隐藏文件,但名称使用.asyncUnmapFile模式。默认情况下,临时文件的空间保留取决于基础 VMFS 文件系统的块大小(默认值为--reclaim-unit=200):
    根据使用情况,管理员可以选择不同的--reclaim-unit值,例如,如果认为保留大小太大或者当卸载到阵列时存在 UNMAP 原语可能无法及时完成的危险。有关手动定义--reclaim-unit值的最佳值或最佳做法,VMware 建议 vSphere 管理员咨询存储阵列提供商。
    • 1 MB 块 VMFS3 / VMFS5 为 200 MB
    • 4 MB 块 VMFS3 为 800 MB
    • 8 MB 块 VMFS3 为 1,600 MB

  • 如果 UNMAP 操作中断(例如由于按下 CTRL-C),可能会在 VMFS 数据存储的根位置留下临时文件。但当针对数据存储再次运行该命令时,如果该命令成功完成,临时文件将被删除。.asyncUnmapFile的增长始终不会超出--reclaim-unit大小。
  • 如果由于升级 VMFS3 文件系统或使用第三方工具重新对卷进行分区造成卷分区表和/或块调整错误,则 UNMAP 操作在不执行任何动作的情况下就可能结束,或者失败。请参见Thin Provisioning Block Space Reclamation (VAAI UNMAP) does not work (2048466)
  • 如果 UNMAP 操作失败,并且出现关于锁定文件或资源繁忙的错误,请参见:
Investigating virtual machine file locks on ESXi/ESX (10051)
Manipulating a file on a Datastore fails with the error: device or resource busy / file is locked (1008728)
VMFS Volume is locked (1009570)

免责声明:文章转载自《使用 esxcli storage vmfs unmap 命令在精简置备的 LUN 上回收 VMFS 删除的块》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Bagging和Boosting 概念及区别STM32 ADC基础与多通道采样下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

vue前端工程化

今日目标 1.能够了解模块化的相关规范 2.了解webpack3.了解使用Vue单文件组件4.能够搭建Vue脚手架5.掌握Element-UI的使用 1.模块化的分类 A.浏览器端的模块化 1).AMD(Asynchronous Module Definition,异步模块定义)代表产品为:Require.js2).CMD(Common Module D...

08- adb常用命令以及模拟器链接adb命令

adb 命令简介  ADB即 Android debug bridge。是Android下面一个通用的调试工具。 熟练使用adb命令会大大增加开发效率,作为测试人员,熟练掌握adb,我们可以管理设备或手机模拟器的状态。还可以进行很多手机操作,如安装软件,卸载软件,系统升级,运行shell命令等。 adb.exe在安装的Android的SDK开发包platf...

AIX 5L 系统管理技术 —— 存储管理——卷组

卷组 在安装系统时,就会创建一个rootvg卷组。包含自带硬盘(内置硬盘)和系统逻辑卷,一个系统只能有一个rootvg卷组。一般情况下rootvg卷组最好只包含自带硬盘。 一、创建卷组 在创建卷组之前,系统管理员必须知道如下所列的信息。 (1)卷组的名字在系统中必须是唯一的。卷组名要求时一个字符串,长度时1至15字符。 (2)要确定新卷组中包含哪些物理卷,...

rpm 安装、卸载软件命令 ——以nginx为例

1.安装 命令:rpm    -ivh    nginx-1.14.0-1.el7_4.ngx.x86_64.rpmm 2.查看安装结果 命令:rpm   -qa  | grep  nginx 3.升级 命令:rpm   -Uvh   新版本软件rpm包  4.卸载 命令:rpm    -e     nginx 注解: -i <套件档>或...

Linux Shell常用技巧(十二)

二十三. Bash Shell编程:    1.  读取用户变量:    read命令是用于从终端或者文件中读取输入的内建命令,read命令读取整行输入,每行末尾的换行符不被读入。在read命令后面,如果没有指定变量名,读取的数据将被自动赋值给特定的变量REPLY。下面的列表给出了read命令的常用方式: 命令格式 描述 read answer 从...

find 命令使用总结

linux中 find 命令使用总结(转) 简化文件系统的管理 find命令具有一长串令人生畏的选项和开关,它们会阻碍人们深入地学习该命令,但正是因为其范围广阔,真正的 Explorer 并不会被它们吓倒。一条好的通用原则在简化一个复杂问题时都会经过漫长的过程。启动一个 xterm,并尝试执行下面的命令: $ find . -name *.gif -exe...