設定代理程式磁碟大小

本文說明 Managed Service for Apache Kafka 如何管理 Kafka 叢集的儲存空間,以及如何在叢集中設定磁碟容量。建立叢集時,這項服務會自動佈建磁碟,但視 Kafka 工作負載而定,您可能需要分配比預設值更多的磁碟容量。

總覽

Managed Service for Apache Kafka 使用分層儲存空間。分層儲存空間結合了兩種儲存空間層級:

  • 少量的快速本機儲存空間,以附加至代理程式的預先佈建磁碟形式提供。
  • 近乎無限的遠端儲存空間。遠端儲存空間的費用較低,且不需要預先佈建。

分層儲存系統可讓您儲存大量資料,減少磁碟空間不足的風險。與單獨使用本機儲存空間相比,這項服務的成本也可能較低。

代理程式收到訊息時,會將訊息寫入本機區段檔案。 當區隔檔案達到大小或時間上限時,系統會關閉 (或「捲動」) 檔案,並移至遠端儲存空間。在任何時間,每個分區都有一個開啟的區隔檔案,因此本機儲存空間的容量會隨著分區數量和區隔檔案大小上限而擴充。處理較多分割區的代理程式需要更多本機儲存空間。

如要設定區隔檔案的大小,請設定 log.roll.ms 和 log.segment.bytes 代理程式設定。

如果啟用記錄壓縮,系統只會使用該主題的本機儲存空間。

預設磁碟設定

根據預設,Managed Service for Apache Kafka 會為每個代理程式的每個 vCPU 佈建至少 100 GiB 的磁碟容量。擴大叢集時,服務會確保每個 CPU 的代理程式至少有 100 GiB。即使每個代理程式的 vCPU 數量減少,每個代理程式的磁碟容量也不會減少。

如要查看已分配的磁碟容量,請查看叢集的有效磁碟容量。

自訂磁碟設定

預設磁碟設定可為大多數使用者提供安全且具成本效益的本機儲存空間。不過,您也可以在建立或更新叢集時,設定自訂磁碟設定,指定本機磁碟大小。

您可能會基於下列原因選擇增加磁碟大小:

  • 記錄壓縮作業,並使用大型鍵盤空間。如果主題啟用記錄壓縮,Kafka 會將每個鍵的最新訊息儲存在磁碟上。如果鍵空間很大,磁碟上可能會無限期保留大量訊息。

  • 大量分區。每個分區都必須有足夠空間儲存已彙整的區段,以及在代理程式將已彙整的區段檔案複製到遠端儲存空間時,儲存新區段檔案的空間。如果每個 vCPU 的分割區超過 200 個,請考慮設定自訂儲存空間設定。

  • 心肺負荷高。如果代理程式負載過重,可能沒有足夠的磁碟容量,無法快速將已輪替的檔案移至遠端儲存空間,因此可能需要更多本機儲存空間。

  • 磁碟空間不足錯誤。如果叢集代理程式的磁碟空間不足,可以增加磁碟容量,讓叢集正常運作。

詳情請參閱「預估所需磁碟大小」。

磁碟設定需求

自訂磁碟設定必須符合下列規定:

  • 每個代理程式的磁碟大小至少須等於每個代理程式的 vCPU 數量乘以 100 GiB。

    舉例來說,如果叢集有 6 個 vCPU 和 3 個代理程式,每個代理程式至少需要 200 GiB。

  • 每個代理程式的磁碟大小不得超過 32768 GiB (32 TiB)。

  • 每個代理程式的磁碟大小無法減少。更新叢集時,新磁碟大小必須大於或等於目前的有效磁碟容量。

  • 如果擴充叢集,更新後的 vCPU 數量和磁碟大小必須符合先前的需求,並考量到可能會新增代理程式。如要計算代理程式數量,請參閱「調度叢集資源」。

    舉例來說,假設您有一個叢集,每個代理程式有 3 個 vCPU 和 200 GiB 的磁碟。如果將叢集擴展至 9 個 vCPU,磁碟大小下限為 300 GiB (9 個 vCPU / 3 個代理程式 × 100 GiB)。如要符合這項規定,您必須在同一個更新要求中,一併設定磁碟大小和 vCPU 數量。

設定自訂磁碟設定

您可以在建立叢集時設定自訂磁碟配置,也可以更新現有叢集。這項設定會套用至叢集中的所有代理程式。

控制台

在「建立 Kafka 叢集」或「編輯 Kafka 叢集」頁面中,執行下列步驟:

  1. 在「容量設定」下方,將「啟用自訂本機儲存空間大小」切換鈕設為開啟。

  2. 在「Custom local storage」(自訂本機儲存空間) 欄位中,以 GiB 為單位輸入各代理程式的磁碟大小。這個值必須符合磁碟設定需求,否則會發生錯誤。

  3. 按一下 [儲存]。

gcloud

在 gcloud managed-kafka clusters create 或 gcloud managed-kafka clusters update 指令中指定 --broker-disk-size-gib 旗標。

建立叢集:

gcloud managed-kafka clusters create CLUSTER_ID \
  --location=LOCATION \
  --broker-disk-size-gib=DISK_SIZE

  # Other configruration flags
  ...

更新叢集:

gcloud managed-kafka clusters update CLUSTER_ID \
  --location=LOCATION \
  --broker-disk-size-gib=DISK_SIZE

更改下列內容:

  • CLUSTER_ID:叢集名稱。
  • LOCATION:叢集位置。
  • DISK_SIZE:每個代理程式的磁碟大小 (以 GiB 為單位)。這個值必須符合磁碟設定需求,否則會發生錯誤。

如要進一步瞭解如何建立及更新 Kafka 叢集,請參閱下列文件:

查看自訂磁碟設定

如要查看 Managed Service for Apache Kafka 叢集的自訂磁碟設定,請按照下列步驟操作。

控制台

  1. 前往 Google Cloud 控制台的「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集)

  2. 在叢集清單中,按一下要查看的叢集。

  3. 選取「Configurations」分頁標籤。

  4. 在「容量」下方,如果叢集採用自訂磁碟設定,「自訂本機儲存空間」列會顯示每個代理程式的磁碟大小。否則,該列會顯示 Disabled。

gcloud

請執行 gcloud managed-kafka clusters describe 指令。

gcloud managed-kafka clusters describe CLUSTER_ID \
  --location=LOCATION

更改下列內容:

  • CLUSTER_ID:叢集名稱。
  • LOCATION:叢集位置。

在傳回的叢集說明中,brokerCapacityConfig 欄位會顯示設定:

brokerCapacityConfig:
  diskSizeGib: '3000'

如果未設定自訂磁碟設定,這個欄位會留空:

brokerCapacityConfig: {}

查看有效磁碟容量

叢集的有效磁碟容量是指每個代理程式佈建的磁碟空間量。如要查看叢集的有效磁碟容量,請執行 gcloud managed-kafka clusters describe 指令並搭配 --full 旗標。

控制台

  1. 前往 Google Cloud 控制台的「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集)

  2. 在叢集清單中,按一下要查看的叢集。

  3. 選取「Configurations」分頁標籤。

  4. 在「容量」下方,「有效本機儲存空間」列會顯示每個代理程式的磁碟大小。

gcloud

gcloud managed-kafka clusters describe CLUSTER_ID --full \
  --location=LOCATION

更改下列內容:

  • CLUSTER_ID:叢集名稱。
  • LOCATION:叢集位置。

在傳回的叢集說明中,effectiveCapacityConfig 欄位會包含每個代理程式的磁碟大小和代理程式數量:

effectiveCapacityConfig:
  brokerCount: '3'
  brokerDiskSizeGib: '1024'

磁碟總容量等於 brokerCount × brokerDiskSizeGib。

定價

如果叢集使用預設磁碟設定,系統會針對每個叢集 vCPU 收取 100 GiB 的費用,但每個代理程式的實際磁碟大小可能會超過這個值。

在叢集上設定自訂磁碟設定後,系統會根據所有代理程式的實際磁碟大小向您收費。

後續步驟

Apache Kafka® 是 The Apache Software Foundation 或其在美國和/或其他國家/地區的關聯企業的註冊商標。