刪除或移除 VMFS 資料存放區中的檔案可釋放檔案系統內的空間。此可用空間對應至儲存裝置,直到檔案系統將其釋放或取消對應。ESXi 支援可用空間回收,也稱為取消對應作業。

此作業可協助儲存區陣列回收未使用的可用空間。然後,可以針對其他儲存配置要求和需要使用已取消對應的空間。

自動回收 VMFS6 資料存放區上的可用空間

在 VMFS6 資料存放區上,ESXi 支援自動非同步回收可用空間。在支援取消對應作業的精簡佈建儲存區陣列上,VMFS6 可以執行取消對應命令以在背景中釋放可用儲存空間。

自動取消對應處理有幾個優點:
  • 以恆定速率傳送取消對應要求,這可有助於避免支援陣列上的任何瞬間負載。
  • 批次處理並同時取消對應釋放的區域。
  • 其他工作負載的 I/O 效能不受取消對應命令的影響。

對於 VMFS6 資料存放區,您可以設定下列空間回收參數。

空間回收細微度
細微度會定義基礎儲存區可回收的已釋放空間磁區的最小大小。儲存區無法回收小於指定細微度的磁區。
對於 VMFS6,回收細微度等於區塊大小。如果您指定的區塊大小為 1 MB,細微度亦為 1 MB。系統不會回收小於 1 MB 的儲存區磁區。
備註: 某些儲存區陣列建議採用最佳取消對應細微度。 ESXi 支援對陣列進行自動取消對應處理,建議的取消對應細微度為 1 MB 或以上,例如 16 MB。在最佳細微度為 1 MB 或更少的陣列上,如果細微度是 1 MB 的因子,則支援取消對應作業。例如,1 MB 能被 512 位元組、4 KB、64 KB 等除盡。
空間回收方法
此方法可以是優先順序或固定的。當您使用的方法是優先順序時,您會設定優先順序速率。對於固定方法,必須以 MB/秒為單位指定回收速率。
建立 VMFS6 資料存放區時,可以使用 vSphere Client 設定優先順序方法。若要啟用固定方法,可以稍後修改現有資料存放區的空間回收設定。
也可以使用 esxcli storage vmfs reclaim config set 命令設定空間回收參數。
空間回收優先順序速率
此參數將定義使用優先順序回收方法時,會執行空間回收作業的速率。一般而言,VMFS6 可以高載或偶發方式傳送取消對應命令,具體取決於工作負載和組態。對於 VMFS6,您可以指定下列選項之一。
空間回收優先順序 說明 組態
停用資料存放區的取消對應作業。 vSphere Client

esxcli 命令

低 (預設) 以較低的頻率傳送取消對應命令,每秒 25–50 MB。 vSphere Client

esxcli 命令

中等 以比低速率快兩倍的速率傳送命令,每秒 50–100 MB。 esxcli 命令
以比低速率快三倍的速率傳送命令,超過每秒 100 MB。 esxcli 命令
空間回收主機
此參數定義可向 VMFS6 資料存放區發出取消對應命令以進行自動空間回收的 ESXi 主機數目。使用此參數可限制向目標支援 VMFS6 資料存放區發出的空間回收負載的累積量。

啟用空間回收後,VMFS6 資料存放區僅在至少具有一個開啟的檔案時,才會開始釋放未使用空間的區塊。例如,在資料存放區上開啟其中一個虛擬機器的電源時,可以滿足此條件。

建立 VMFS6 資料存放區時設定優先順序回收

空間回收設定控制如何回收支援資料存放區的裝置中已刪除或取消對應的區塊。當您在 vSphere Client 中建立 VMFS6 資料存放區時,您可以指定用於空間回收的唯一方法是優先順序方法。此外,還可以在建立資料存放區時停用空間回收。

程序

  1. vSphere Client 物件導覽器中,瀏覽到主機、叢集或資料中心。
  2. 從右鍵功能表中,選取儲存區 > 新增資料存放區
  3. 遵循建立 VMFS6 資料存放區所需的步驟。
  4. 磁碟分割組態頁面上,指定空間回收參數。
    這些參數會定義執行空間回收作業所使用的細微度和優先順序速率。您也可以使用此頁面停用資料存放區的空間回收。
    選項 說明
    區塊大小 VMFS 資料存放區上的區塊大小會定義檔案大小上限,以及檔案佔用的空間量。VMFS6 支援的區塊大小為 1 MB。
    空間回收細微度 指定取消對應作業的細微度。取消對應細微度等於區塊大小 1 MB。

    系統不會回收小於 1 MB 的儲存區磁區。

    空間回收優先順序 選取下列其中一個選項。
    • 低 (預設)。將優先順序方法用於空間回收。取消對應作業以低優先順序速率執行。
    • 無。如果不想針對資料存放區使用空間回收作業,請選取此選項。
    備註:vSphere Client 中,空間回收優先順序的唯一可用設定為 [低] 和 [無]。若要將設定變更為 [中] 或 [高],請使用 esxcli 命令。
  5. 完成資料存放區建立程序。

結果

啟用空間回收後,VMFS6 資料存放區僅在至少具有一個開啟的檔案時,才會開始釋放未使用空間的區塊。例如,在資料存放區上開啟其中一個虛擬機器的電源時,可以滿足此條件。

為現有 VMFS6 資料存放區設定固定回收

若要啟用固定回收方法,請修改該資料存放區的空間回收設定。

程序

  1. vSphere Client 中,導覽至資料存放區。
  2. 從右鍵功能表中選取編輯空間回收
  3. 指定空間回收設定。
    選項 說明
    以固定速率啟用自動空間回收 將固定方法用於空間回收。指定回收速率 (以 MB/秒為單位)。最小可用值為 10 MB/秒。
    停用自動空間回收 不回收已刪除或未對應的區塊。

    如果您要為資料存放區停用空間回收作業,請選取此選項。

  4. 按一下確定儲存新設定。
  5. 卸載並重新掛接資料存放區以使變更生效。
    1. 卸載資料存放區.
    2. 掛接資料存放區.
  6. 對存取資料存放區的所有 ESXi 主機重複此程序。

結果

修改過的空間回收優先順序值會出現在資料存放區的一般頁面上。

使用 ESXCLI 命令變更 VMFS6 上的空間回收

您可以變更預設空間回收優先順序、細微度和其他參數。

程序

  1. ESXi 主機上,使用以下命令設定空間回收參數。
    esxcli storage vmfs reclaim config set

    該命令採用以下選項:

    選項 說明
    -b|--reclaim-bandwidth 每秒的空間回收固定頻寬 (MB)。
    -g|--reclaim-granularity 自動空間回收的最小細微度 (以位元組為單位)。
    -m|--reclaim-method 自動空間回收的方法。支援的選項:
    • 優先順序
    • 固定
    -n|--reclaim-maxhosts 可向 VMFS6 資料存放區發出取消對應命令以進行自動空間回收的最大 ESXi 主機數目。
    -p|--reclaim-priority 自動空間回收的優先順序。支援的選項:
    • none
    -l|--volume-label 目標 VMFS 磁碟區的標籤。
    -u|--volume-uuid 目標 VMFS 磁碟區的 UUID。
    您可以使用以下範例。
    • 將回收方法設定為固定,將速率設定為每秒 100 MB。
      esxcli storage vmfs reclaim config set --volume-label datastore_name --reclaim-method fixed -b 100
    • 停用 VMFS 自動空間回收。
      esxcli storage vmfs reclaim config set --volume-label datastore_name --reclaim-priority none
    備註: 如果僅設定 -n|--reclaim-maxhosts 參數而不設定任何其他參數,則可以跳過步驟 2。更新的 reclaim-maxhosts 參數值大約需要 30 分鐘才能在掛接 VMFS6 資料存放區的所有 ESXi 主機上生效。
  2. 從掛接 VMFS6 資料存放區的所有其他 ESXi 主機上卸載該資料存放區,然後重新掛接該資料存放區。
    1. 卸載資料存放區.
    2. 掛接資料存放區.
    此步驟可確保掛接 VMFS6 資料存放區的所有 ESXi 主機都更新該資料存放區的回收設定。

驗證 VMFS6 上的自動空間回收設定

在設定或編輯 VMFS6 資料存放區的空間回收參數之後,您可以檢閱您的設定。

程序

  1. vSphere Client 中,導覽至資料存放區。
  2. 按一下設定索引標籤。
  3. 按一下一般
  4. 空間回收下,檢閱空間回收優先順序的設定。
    如果您已透過 esxcli 命令設定任何值,例如,用於空間回收優先順序的 [中] 或 [高],這些值也會顯示在 vSphere Client 中。

結果

此螢幕擷取畫面顯示空間回收設定。

範例: 取得 VMFS6 空間回收的參數

您也可以使用 esxcli storage vmfs reclaim config get -l=VMFS_label|-u=VMFS_uuid 命令來取得空間回收組態的資訊。
# esxcli storage vmfs reclaim config get -l my_datastore 
Reclaim Granularity: 1048576 Bytes 
Reclaim Priority: low
Reclaim Method: priority
Reclaim Bandwidth: 26 MB/s
Reclaim Maximum Hosts: 128

手動回收 VMFS5 上累積的儲存空間

在不支援自動空間回收的 VMFS 資料存放區上,例如 VMFS5,您可以使用 esxcli 命令手動回收未使用的儲存空間。

請注意,當您使用命令時,可能會一次傳送多個取消對應要求。此動作會在作業期間鎖定部分資源。請注意,當您使用命令時,可能會一次傳送多個取消對應要求。此動作會在作業期間鎖定部分資源。

必要條件

安裝 ESXCLI。請參閱ESXCLI 入門。若要進行疑難排解,請在 ESXi Shell 中執行 esxcli 命令。

程序

  1. 若要回收精簡佈建的裝置上未使用的儲存區區塊,請執行下列命令:
    esxcli storage vmfs unmap

    該命令採用以下選項:

    選項 說明
    -l|--volume-label=volume_label 要取消對應的 VMFS 磁碟區的標籤。一個必要引數。如果指定此引數,請不要使用 -u|--volume-uuid=volume_uuid
    -u|--volume-uuid=volume_uuid 要取消對應的 VMFS 磁碟區的 UUID。一個必要引數。如果指定此引數,請不要使用 -l|--volume-label=volume_label
    -n|--reclaim-unit=number 每次反覆運算要取消對應的 VMFS 區塊的數目。一個選用引數。如果未指定此引數,此命令將使用預設值 200。
  2. 若要確認是否已完成取消對應處理程序,請搜尋 vmkernel.log 檔案中的取消對應。