Skip to main content

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

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

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

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

  1. If the primary appliance is available, to allow replication to finish before you switch appliances, on the primary appliance, put the primary appliance into maintenance mode.

    • Put the appliance into maintenance mode.

    • When the number of active Git operations, MySQL queries, and Resque jobs reaches zero, wait 30 seconds.

      Note: Nomad will always have jobs running, even in maintenance mode, so you can safely ignore these jobs.

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

      $ ghe-repl-status -vv
  2. On the replica appliance, to stop replication and promote the replica appliance to primary status, use the ghe-repl-promote command. This will also automatically put the primary node in maintenance mode if it’s reachable.

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

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

  5. 必要に応じて、新しいプライマリから既存のアプライアンスや以前のプライマリへのレプリケーションをセットアップします。 詳細は「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

参考リンク