當您的 ESXi 主機使用 SCSI 或 NVMe 通訊協定連線至 Virtual Volumes 環境中的儲存區時,資料和組態虛擬磁碟區將使用 VMFS6 進行格式化。因此,可用於 VMFS 的空間回收程序也可套用至資料和組態 Virtual Volumes。回收 Virtual Volumes 資料存放區上的空間時,可以使用 esxcli storage vvol 命令手動取消對應虛擬磁碟區中的可用區塊。

備註: 從 8.0 Update 3 開始:
  • NVMe 支援的資料 Virtual Volumes 支援來自客體作業系統的空間回收請求。
  • 組態 Virtual Volumes 支援自動空間回收。若要手動回收空間,請按照指定程序中的步驟進行操作。

必要條件

程序

  1. 取得使用 VMFS 進行格式化的組態虛擬磁碟區的儲存區容器識別碼和中繼 vVol UUID。
    1. 導覽至包含虛擬磁碟區的虛擬機器。
      例如:
      [root@:~] cd /vmfs/volumes/vvol_datastore/VM_1
    2. 從路徑中,擷取儲存區容器識別碼和中繼 vVol UUID。
      [root@:/vmfs/volumes/vvol:4abe7eb4bf234ee0xxxxxxxxx/rfc4122.1ffee4bd-9c55-49b9-876d-xxxxxxxx
      在此範例中,

      容器識別碼為 vvol:4abe7eb4bf234ee0xxxxxxxxx

      中繼 vVol UUID 為 rfc4122.1ffee4bd-9c55-49b9-876d-xxxxxxxx

  2. 使用以下命令取消對應組態磁碟區中的可用區塊。
    esxcli storage vvol virtualvolume unmap
    該命令採用下列選項:
    選項 說明
    -c|--container-id=<str> 儲存區容器識別碼。此選項為必填。
    -n|--reclaim-unit=<long> 每次反覆運算要取消對應的 VMFS 區塊的數目。
    -u|--uuid=<str> 中繼 vVol UUID。此選項為必填。
  3. 透過檢查 hostd 記錄檔,確認已成功取消對應區塊。
    grep "Total Unmapped blocks from vmfs" /var/run/log/hostd.log

範例:

  1. [root@:~]esxcli storage vvol virtualvolume unmap -c vvol:4abe7eb4bf234ee0xxxxxxxxx -u rfc4122.1ffee4bd-9c55-49b9-876d-xxxxxxxx
  2. [root@:~] grep "Total Unmapped blocks from vmfs" /var/run/log/hostd.log

    輸出類似下列內容:

    2023-06-01T10:27:45.836Z In(166) Hostd[1000342556]: [Originator@6876 sub=Libs opID=esxcli-5f-1861 sid=523fac9d user=root] Unmap: Done : Total Unmapped blocks from vmfs6 volume rfc4122.1ffee4bd-9c55-49b9-87 6d-xxxxxxxx : 0 (LFB Pass)

    2023-06-01T10:28:13.279Z In(166) Hostd[1000342556]: [Originator@6876 sub=Libs opID=esxcli-5f-1861 sid=523fac9d user=root] Unmap: Done : Total Unmapped blocks from vmfs6 volume rfc4122.1ffee4bd-9c55-49b9-87 6d-xxxxxxxx : 259421 (SFB Pass)