データベース トラフィックのシフトを処理したり、パーティションをさらに保存したりするには、仮想マシン環境のサーバーノードの数を調整します。次の手順に沿って VM のデプロイを管理します。
始める前に
VM のデプロイをスケーリングする手順は次のとおりです。
Spanner Omni CLI をダウンロードしてインストールします。
スケーリング オペレーションでは同様の Spanner Omni CLI パターンが使用されるため、VM で Spanner Omni のデプロイを作成するで説明されているコンセプトを理解しておいてください。
ベスト プラクティスとして、水平方向にスケーリングするためにサーバーを追加する前に、サーバーあたり最大 32 GB のメモリまで垂直方向にスケーリングすることをおすすめします。
ルートサーバーを追加する
次の手順で、VM デプロイに新しいルートサーバーを追加します。
既存のゾーンの新しい 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)。
既存のデプロイにサーバーを追加します。新しいルートサーバーをプライマリ デプロイに登録します。ホスト名とポートの引数が
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 ドキュメントの長時間実行オペレーションの管理とモニタリングをご覧ください。サーバーがデプロイに参加したことを確認します。サーバーを一覧表示して、サーバーが登録され、
Ready状態に移行したことを確認します。spanner deployment servers list \ --zone=ZONE \ --deployment-endpoint=ENDPOINT
非ルート サーバーを追加する
非 root サーバーを追加するには、VM で spanner プロセスを開始し、クラスタ内の 1 つ以上の root サーバーに接続してデプロイに参加するように構成します。
この例では、非 root サーバーを起動してデプロイに追加します。
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 サーバーを廃止する手順は次のとおりです。
デプロイからサーバーを削除します。
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)。
データの再配置が完了するまで待ちます。パーティションの再配置には、サーバーでホストされているデータストアのサイズに応じて時間がかかります。サーバーが出力に表示されなくなるまで、サーバーのステータスをモニタリングします。
spanner deployment servers list \ --zone=ZONE \ --deployment-endpoint=ENDPOINTサーバー プロセスをシャットダウンします。VM にログインし、
spannerプロセスを停止します。データの破損や、切断されたサーバーが競合する更新を記録するのを防ぐため、古いデータフォルダを削除せずに、同じ
base_dirを使用してこの VM のspannerプロセスを再起動しないでください。
次のステップ
- デプロイを維持する方法を学習する。