本文定義 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 的功能。
根伺服器
根伺服器會儲存重要中繼資料,以支援區域。舉例來說,根伺服器會儲存伺服器成員資格和其他區域設定資訊。根伺服器會使用仲裁演算法來確保一致性,因此區域中必須有奇數個根伺服器:極小區域需要一個,較大區域則需要三到五個。規劃部署作業時,請仔細考量根伺服器的數量。雖然您可以在部署作業建立後變更根伺服器數量,但我們不建議這麼做。
非根伺服器
非根伺服器會儲存及提供使用者資料,並提供擴充區域運算容量和儲存空間的方法。您可以視工作負載需求,在部署作業中新增任意數量的非根伺服器。部署作業完成後,您可以變更非根伺服器的數量。
分割
Spanner 分割會保留一段連續的資料列,Spanner 會依主鍵排序這些資料列。Spanner 會建立每個分割的副本,並儲存在各個區域中。
儲存空間
伺服器連接的永久儲存空間。
可用區
一或多部伺服器的群組。如要複製資料,每個副本應建立一個區域。如果是地端部署作業,建議您盡量減少區域間的基礎架構共用情形 (VM、磁碟)。如果是雲端部署作業,請將區域與 AWS 中的可用區或 Google Cloud中的區域對齊。