Skip to main content

レプリカアプライアンスへのフェイルオーバーの開始

メンテナンスやテストのため、またはプライマリアプライアンスが機能しなくなった場合は、コマンドラインを使用して GitHub Enterprise Server レプリカアプライアンスにフェイルオーバーできます。

フェイルオーバーに必要な時間は、レプリカを手動で昇格させてトラフィックをリダイレクトするのにかかる時間によって異なります。 平均時間は、20 から 30 分の範囲です。

レプリカを昇格させても、既存のアプライアンスのためのレプリケーションは自動的にセットアップされません。 レプリカを昇格させたあと、希望する場合には新しいプライマリから既存のアプライアンス及び以前のプライマリへのレプリケーションをセットアップできます。

  1. プライマリ アプライアンスを使用できる場合、アプライアンスを切り替える前にレプリケーションが終了できるようにするには、プライマリ アプライアンスをメンテナンス モードにします。

    • アプライアンスをメンテナンス モードにしてください。

      • 管理コンソールを使用するには、「Enabling and scheduling maintenance mode」 (メンテナンスモードの有効化とスケジューリング) を参照してください

      • ghe-maintenance -s コマンドを使用することもできます。

        $ ghe-maintenance -s
    • アクティブな Git 操作、MySQL クエリ、および Resque ジョブの数がゼロになったら、30 秒間待ちます。

      注: Nomad には、メンテナンス中であっても、常に実行中のジョブが存在するため、それらのジョブを無視しても問題ありません。

    • すべてのレプリケーション チャネル レポートが OK であることを確認するには、ghe-repl-status -vv コマンドを使用します。

      $ ghe-repl-status -vv
  2. レプリカ アプライアンスで、レプリカを停止して、レプリカ アプライアンスをプライマリ ステータスに昇格するには、ghe-repl-promote コマンドを使用します。 到達可能であれば、これによりプライマリ ノードも自動的にメンテナンス モードになります。

    $ ghe-repl-promote
  3. レプリカの IP アドレスを指すように DNS レコードを更新します。 TTL 期間が経過すると、トラフィックはレプリカに転送されます。 ロードバランサを使用している場合は、トラフィックがレプリカに送信されるように設定されていることを確認します。

  4. 通常の操作が再開できることをユーザーに通知します。

  5. 必要に応じて、新しいプライマリから既存のアプライアンスや以前のプライマリへのレプリケーションをセットアップします。 詳細については、「About high availability configuration」 (High Availability 設定について) を参照してください。

  6. フェイルオーバー前に High Availability 設定の一部であり、レプリケーションをセットアップする予定のないアプライアンスは、UUID による High Availability 設定から削除する必要があります。

    • 以前のアプライアンスでは、cat /data/user/common/uuid を通じて UUID を取得します。
      $ cat /data/user/common/uuid
    • 新しいプライマリでは、ghe-repl-teardown を使用して、UUID を削除します。 UUID は、前の手順で取得した UUID に置き換えてください。
      $ ghe-repl-teardown -u UUID

参考資料