官方原文链接: 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

 
注意:
  • -n number 或 --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 操作失败,并且出现关于锁定文件或资源繁忙的错误,请参见:

使用 esxcli storage vmfs unmap 命令在精简置备的 LUN 上回收 VMFS 删除的块的更多相关文章

  1. VMware虚拟机,从厚置备改成精简置备,并减小硬盘的实际占用空间

    工作中由于前期规划不足,导致磁盘空间分配较大,而且是厚置备.后期不再需要时,无法把用不到的空间释放出来,造成空间浪费.经过摸索和实验验证,总结出来一套方法. 风险提示:这个方法在我的环境中验证通过了, ...

  2. VMWare ESX/ESXi 虚拟机硬盘的厚置备(Thick Provision)与精简置备(Thin Provision)的转换

    VMWare ESX/ESXi 有两种硬盘置备方式,厚制备(thick)和精简置备(Thin) 有时可能会由于性能问题或磁盘空间需要将虚拟机磁盘在两种模式间进行互转,虽然在虚拟机配置页面是没有办法修改 ...

  3. esxi 精简置备只增不减问题解决方法(转)

    esxi 精简置备只增不减问题解决方法 众所周知Thin Provisioning模式下的虚拟机磁盘的空间会随需增长,可以很大程度上帮助我们节约空间,可是,凡增长过后的空间,即使清除了导致增长的文件后 ...

  4. github 上传或删除 文件 命令

    git clone https://github.com/onionhacker/bananaproxy.git cd ~/../.. git config --global user.email & ...

  5. ESXi6.5中将虚拟机从厚置备转换为精简置备

    本文来自:https://blog.csdn.net/wangjingkaibear/article/details/77097041 用ESXi做虚拟化,创建了一个原始虚拟机并安装好系统做好基本设置 ...

  6. [转发]VMware厚置备延迟置零 、 厚置备置零、精简置备 区别

    1.厚置备延迟置零(zeroed thick) 以默认的厚格式创建虚拟磁盘.创建过程中为虚拟磁盘分配所需空间.创建时不会擦除物理设备上保留的任何数据,但是以后从虚拟机首次执行写操作时会按需要将其置零. ...

  7. VMware厚置备延迟置零,厚置备置零,精简置备具体解释

    本文具体介绍VMware厚置备延迟置零,厚置备置零,精简置备的概念及选择使用 1.厚置备延迟置零(zeroed thick) 以默认的厚格式创建虚拟磁盘.创建过程中为虚拟磁盘分配所需空间.创建时不会擦 ...

  8. VMware厚置备延迟置零,厚置备置零,精简置备详解

    1.厚置备延迟置零(zeroed thick) 以默认的厚格式创建虚拟磁盘.创建过程中为虚拟磁盘分配所需空间.创建时不会擦除物理设备上保留的任何数据,但是以后从虚拟机首次执行写操作时会按需要将其置零. ...

  9. VMWARE ESXI 虚拟硬盘的格式:精简置备、厚置备延迟置零、厚置备置零

    精简置备(thin): 精 简配置就是无论磁盘分配多大,实际占用存储大小是现在使用的大小,即用多少算多少.当客户机有输入输出的时候,VMkernel首先分配需要的空间并进行 清零操作,也就是说如果使用 ...

随机推荐

  1. 设计模式课程 设计模式精讲 3-11 合成复用原则coding

    1 课堂概念 1.0 继承关系的选择 1.1 起名 1.2 定义 1.3 组合聚合优缺点 1.4 继承优缺点 1.5 组合聚合区别 2 代码演练 2.1 反例 2.2 正例 3 疑问解答3.1 疑问解 ...

  2. UIView动画的使用

    下面介绍三种简单的UIView动画的使用,如果在项目中对动画没有太多“细致化”的设计要求,基本够用了. 一.首尾式动画 说明:如果只是修改控件的属性,使用首尾式动画还是很方便的,如果还需要在动画完成后 ...

  3. GO常量/枚举

    常量中的数据类型只可以是布尔型.数字型(整数型.浮点型和复数)和字符串型. 常量的定义格式: const identifier [type] = value 你可以省略类型说明符 [type],因为编 ...

  4. AT2827 最长上升子序列LIS(nlogn的DP优化)

      题意翻译 给定一长度为n的数列,请在不改变原数列顺序的前提下,从中随机的取出一定数量的整数,并使这些整数构成单调上升序列. 输出这类单调上升序列的最大长度. 数据范围:1<=n<=10 ...

  5. Java基础 -3.4

    反码(~) 在计算机中,负数以其正值的补码形式表达. 什么叫补码呢?这得从原码,反码说起. 原码:一个整数,按照绝对值大小转换成的二进制数,称为原码. 比如 00000000 00000000 000 ...

  6. c3p0 获取数据源

    getDataSourcec3p0Resource private static void f3Resource() throws Exception { Connection conn = getD ...

  7. 为什么很多 Android 程序喜欢在存储卡根目录建文件夹来存储数据而不是 Android/data 目录下?

    知乎回答.   http://www.zhihu.com/question/19866689   pansz,欢迎评论 知乎用户.弓长.知乎用户 赞同 这个道理很简单:因为没人管啊.你乱存放文件,在a ...

  8. Mysql ,用户管理命令

    添加用户.删除用户与授权以下对数据库的操作完全可以利用管理软件完成,比如在Navicat上进行操作,对数据库进行用户和权限管理. 1.创建用户:以root用户登录到数据库进行用户创建 命令: CREA ...

  9. Steam游戏《Zengeon(神明在上)》修改器制作-[先使用CE写,之后有时间的话改用C#](2020年寒假小目标06)

    日期:2020.01.30 博客期:138 星期四 [温馨提示]: 只是想要修改器的网友,可以直接点击此链接下载: 只是想拿CT文件的网友,可以直接点击此链接下载: 没有博客园账号的网友,可以将页面下 ...

  10. 虚拟对抗训练(VAT):一种用于监督学习和半监督学习的正则化方法

    正则化 虚拟对抗训练是一种正则化方法,正则化在深度学习中是防止过拟合的一种方法.通常训练样本是有限的,而对于深度学习来说,搭设的深度网络是可以最大限度地拟合训练样本的分布的,从而导致模型与训练样本分布 ...