調整 VM 部署作業的規模

如要處理資料庫流量轉移或儲存更多分割區,可以調整虛擬機器環境中的伺服器節點數量。請使用這些程序管理 VM 部署作業。

事前準備

如要調度 VM 部署作業的資源,請按照下列步驟操作:

建議您先將每個伺服器的記憶體垂直擴充至 32 GB,再新增伺服器以水平擴充。

新增根伺服器

如要將新的根伺服器新增至 VM 部署作業,請按照下列步驟操作:

  1. 在現有可用區的新 VM 中啟動新伺服器。使用 spanner start 指令初始化伺服器。以下範例會啟動根伺服器:

    spanner start \
      --root \
      --server-address=HOSTNAME \
      --zone=ZONE \
      --base-dir=BASE_DIR
    

    更改下列內容:

    • HOSTNAME:新 VM 的可解析完整網域名稱 (FQDN) 或主機名稱,例如 new-root-server.example.com
    • ZONE:目標區域,例如 us-central1-a
    • BASE_DIR:儲存資料的目錄路徑,例如 /spanner
  2. 將伺服器新增至現有部署作業。向主要部署項目註冊新的根伺服器。確認主機名稱和通訊埠引數與 spanner start 指令中使用的參數相符,並指定要指派給根伺服器的區域。

    spanner deployment servers create SERVER_ENDPOINT \
      --zone=ZONE \
      --deployment-endpoint=ENDPOINT
    

    更改下列內容:

    • SERVER_ENDPOINT:新根伺服器的位址,例如 new-root-server.example.com:15000
    • ZONE:目標區域,例如 us-central1-a
    • ENDPOINT:主要部署作業的端點,例如 my-spanner-deployment:15000

    spanner deployment servers create 指令會啟動長時間執行的作業,將伺服器新增至部署作業。長時間執行的作業可能需要相當長的時間才能完成。詳情請參閱 Spanner 說明文件中的「管理及監控長時間執行的作業」。

  3. 確認伺服器已加入部署作業。列出伺服器,確認伺服器已註冊並轉換為 Ready 狀態:

    spanner deployment servers list \
      --zone=ZONE \
      --deployment-endpoint=ENDPOINT
    

新增非根伺服器

如要新增非根伺服器,請在 VM 上啟動 spanner 程序,並設定該程序連線至叢集中的一或多個根伺服器,以加入部署作業。

這個範例會啟動非根伺服器,並將其新增至部署作業:

spanner start \
  --server-address=HOSTNAME \
  --join-servers=JOIN_SERVERS \
  --zone=ZONE \
  --base-dir=BASE_DIR

更改下列內容:

  • HOSTNAME:新 VM 的主機名稱,例如 new-non-root-server.example.com
  • JOIN_SERVERS:以半形逗號分隔的現有根伺服器端點清單,例如 root-server1.example.com:15000
  • ZONE:區域名稱,例如 us-central1-a
  • BASE_DIR:儲存資料的目錄路徑,例如 /spanner

移除伺服器

移除根伺服器或非根伺服器時,請按照相同步驟操作。如果移除根伺服器,請確保部署作業中的根伺服器總數為奇數 (介於 1 到 9 之間)。

如要停用 VM 伺服器,請按照下列步驟操作:

  1. 從部署作業中刪除伺服器:

    spanner deployment servers delete SERVER_ENDPOINT \
      --zone=ZONE \
      --deployment-endpoint=ENDPOINT
    

    更改下列內容:

    • SERVER_ENDPOINT:要移除的伺服器位址,例如 server-to-remove:15000
    • ZONE:伺服器所在的區域,例如 us-central1-a
    • ENDPOINT:主要部署作業的端點,例如 my-spanner-deployment:15000
  2. 等待資料重新定位完成。視伺服器上代管的資料存放區大小而定,分區重新定位需要一段時間。監控伺服器狀態,直到輸出內容不再列出該伺服器為止:

    spanner deployment servers list \
      --zone=ZONE \
      --deployment-endpoint=ENDPOINT
    
  3. 關閉伺服器程序。登入 VM,然後停止 spanner 程序。

    為避免資料損毀,或導致中斷連線的伺服器記錄衝突的更新,請勿使用相同的 base_dir 重新啟動這個 VM 上的 spanner 程序,否則必須先清除舊資料夾。

後續步驟