Cells ADR 013: バックアップから Cell をリストアする際は同じ Cell ID を使用する

コンテキスト

このエピックにおいて、バックアップからの Cell のリストアをインプレースで行うべきか、同じまたは異なる Cell ID を持つ新しい Cell にリストアすべきかについて議論しました。

決定事項

以下のように決定しました。

  1. 既存の Cell へのインプレースリストアよりも、新しい Cell へのリストアを優先します。
  2. Cell をリストアする際、リカバリされた Cell は元の Cell と同じ Cell ID を使用します。
  3. Cell をリストアする際、リカバリされた Cell は異なる一意のテナント ID を持ちます。
  4. リカバリされた Cell を永続化する必要がある場合は、既存の Cell ID のアドレスを新しいテナントに向けるよう Topology Service を更新します。

Cell のリストアには 2 つのモードがあります。

  1. リカバリされた Cell を永続化する場合:
    1. リカバリ対象の Cell への書き込みまたはトラフィックを制限します。
    2. 同じ Cell ID、異なるテナント ID でリカバリされた Cell をプロビジョニングします。
    3. 新しいアドレスでリカバリされた Cell を Topology Service に登録します。
  2. リカバリされた Cell をリストア検証に使用する場合:
    1. 同じまたは未設定の Cell ID と異なるテナント ID でリカバリされた Cell をプロビジョニングします。
    2. リカバリされた Cell を Topology Service に追加しません。シーケンス IDクレームを割り当てることができません。
    3. ルーティングをバイパスして直接接続することにより、リカバリされた Cell を検証します。
    4. リカバリされた Cell を削除します。

注意: リカバリプロセス中は、リカバリされた Cell でサイレントモードを使用するか、リカバリ対象の Cell でメンテナンスモードを使用する必要がある場合があります。

結果

  1. 新しい Cell へのリカバリを優先することで、本番環境でのリストアプロセスの自動化とテストが可能になります。
  2. リストアされた Cell で同じまたは未設定の Cell ID を使用することにより、外部トラフィックはその Cell にルーティングされません。リカバリされた Cell はデフォルトでは Topology Service に自身を登録しません。
  3. リカバリされた Cell に新しいテナント ID を割り当てることで、直接接続して Cell を検証できますが、その Cell にトラフィックはルーティングされません。

代替案

  1. 影響を受けたコンポーネントをインプレースでリストアする。 本番環境でのリストア手順の検証が容易でないため、このアプローチの優先度を下げることにしました。
  2. リカバリされた Cell に新しい Cell ID を割り当てる。 リカバリされた Cell が既存の Cell の代替になる可能性があるためです。ルーティングの観点から Cell ID を同じに保つことが望ましいです。 Cell ID が変わると、Topology Service 内の複数のクレームを書き直す必要があり、リカバリプロセスが遅くなり、より多くのコンピューティングリソースを消費します。