1. 程式人生 > >ESXi 的Guest OS 如何從LUN上釋放空間

ESXi 的Guest OS 如何從LUN上釋放空間

vmware esxi unmap space reclamation guest

今天收到個警報,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的高級屬性設置)
    技術分享圖片
  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

技術分享圖片

默認設置是low,當然你也可以關掉這個功能
技術分享圖片

豆子直接在一個windows2012R2的機器上刪除了2T的數據,vmdk文件的尺寸很快就隨之改變了,然後大概等了4個小時,我的LUN空間的警報自動解除

ESXi 的Guest OS 如何從LUN上釋放空間