今天收到个警报,Nimble Storage的空间使用率超过了90%,需要释放一些空间。解决的方法很容易 我在虚拟机上删除些不必要的东西,大概几个小时候,对应的LUN就释放空间了。

因为豆子的ESXi系统是ESXi 6.5,因此在unmap上比起之前的版本有了很多进步,(据说6.7的改进更多不过暂时还没打算当小白鼠去测试)有些需要手动操作的步骤可以省略了。下面简单的对比一下旧版本比如 ESXi 6 (VMFS5)和 ESXi 6.5 (VMFS6)的操作不同。

ESXi6 (VMFS5)的时代里面,客户机上释放的空间要能在真正的LUN上也同时释放出来,需要满足几个条件:

  1. 磁盘必须是Thin 配置的(废话,thick的就固定了)
  2. VM hardware version 11(低版本可以通过update manager升级)
  3. EnableBlockDelete 设置为1 (对应的ESXi host的高级属性设置)
    ESXi 的Guest OS 如何从LUN上释放空间
  4. CBT需要关掉 https://kb.vmware.com/s/article/1031873

满足了上面几个条件之后,一般在操作系统里面删除了文件之后,如果观察这个VM的vmdk文件,可以发现对应的vmdk文件尺寸会随之变化。

  1. 这一步之后,再ssh进入对应的host,执行esxcli 命令 esxi storage vmfs unmap -l XXX(datastore 的名字)就可以发送命令给对应的LUN了。大概等个几个小时,LUN的空间就释放掉了。

在ESXi6.5之后,基本上只需要满足thin disk和vmware hardware version 11的条件,其他的操作全部都自动化了。唯一一个需要配置的东西(其实默认就是启用的)space reclamation

ESXi 的Guest OS 如何从LUN上释放空间

默认设置是low,当然你也可以关掉这个功能
ESXi 的Guest OS 如何从LUN上释放空间

豆子直接在一个windows2012R2的机器上删除了2T的数据,vmdk文件的尺寸很快就随之改变了,然后大概等了4个小时,我的LUN空间的警报自动解除