本文定義 Spanner Omni 的核心概念和部署拓撲,涵蓋區域、可用區和伺服器之間的階層式關係,並說明這些元件與部署作業中的資料複製和儲存空間有何關聯。
Spanner Omni 概念
以下各節詳細定義了 Spanner Omni 說明文件中使用的術語。熟悉這些概念可確保您清楚瞭解系統架構和運作行為。
部署作業
部署 Spanner Omni,即可在資料中心或公有雲帳戶中使用資料庫。您會根據部署設定中指定的參數建立部署作業。Spanner Omni 部署作業等同於Google Cloud中的 Spanner 執行個體。
Deployment 設定
提供 Spanner Omni 部署作業的區域、可用區和伺服器位置與規格。您可以選擇單一伺服器、單一區域或多區域部署設定。
位置
相當於 Google Cloud 字詞中的區域。兩個區域之間的網路延遲時間不容小覷。如果是地端部署作業,您可以自行定義區域。如果是雲端部署作業,區域必須與相應雲端服務供應商的區域一致。一個區域可以有多個可用區。
程序
Spanner 伺服器會分叉並管理多個程序。舉例來說,TimeServer 和 spanserver 都是 Spanner 中的程序。個別程序可能會有監控統計資料,例如 CPU 和記憶體使用量。程序可以開啟通訊埠,與部署中的其他伺服器通訊。
備用資源
Spanner 會複製資料,以提供資料可用性和地理本地性。整體來說,Spanner 會將所有資料整理為資料列。Spanner 會建立這些資料列的多個複本,或稱為「備用資源」,然後將這些備用資源儲存在不同的地理區域。Spanner 使用以 Paxos 為基礎的同步複製結構定義,讓投票備用資源在將寫入作業提交至資料庫前,針對每個寫入要求進行投票。與 Spanner 相同,Spanner Omni 也有三種備用資源類型:讀寫、唯讀和見證。詳情請參閱 Spanner 說明文件中的「副本類型」。
伺服器
伺服器是運算資源,例如 VM 或容器,Spanner Omni 伺服器會在其中執行。每部伺服器都有自己的系統資源:CPU、記憶體和儲存空間。伺服器會儲存及提供使用者資料,藉此提供 Spanner Omni 的功能。
根伺服器
根伺服器會儲存重要中繼資料,以支援區域。舉例來說,根伺服器會儲存伺服器成員資格和其他區域設定資訊。
每個區域的根伺服器數量必須是介於 1 到 9 之間的奇數 (含),以確保一致性仲裁。如果伺服器數量為偶數,部署作業可能會失敗。設定區域時,請將伺服器指定為根伺服器。建議您使用一個可用區進行開發或測試,並使用三個可用區來確保正式環境的高可用性。
規劃部署作業時,請審慎考慮根伺服器的數量。雖然您可以在建立部署作業後變更根伺服器的數量,但我們不建議這麼做。
非根伺服器
非根伺服器會儲存及提供使用者資料,並提供擴充區域運算容量和儲存空間的方法。您可以視工作負載需求,在部署作業中新增任意數量的非根伺服器。部署作業完成後,您可以變更非根伺服器的數量。
分割
Spanner 分割會保留一段連續的資料列,Spanner 會依主鍵排序這些資料列。Spanner 會為每個分割建立副本,並儲存在各個區域中。
儲存空間
伺服器連接的永久儲存空間。
可用區
一或多部伺服器的群組。如要複製資料,每個副本應建立一個區域。如果是地端部署作業,建議您盡量減少可用區之間的基礎架構共用情形 (VM、磁碟)。如果是雲端部署作業,請將區域與 AWS 中的可用區或 Google Cloud中的區域對齊。