Skip to main content

High Availability設定のリカバリ

GitHub Enterprise Server アプライアンスにフェイルオーバーした後は、単一のアプライアンスに頼るのではなく、できるだけ早く冗長性を取り戻す必要があります。

高可用性構成の復旧について

フェイルオーバーが計画済みのものだったり、アプライアンスの健全性に関係ないものである場合、以前のプライマリアプライアンスを新しいレプリカアプライアンスとして使用できます。 フェイルオーバーがプライマリアプライアンスの問題に関係しているなら、新しいレプリカアプライアンスを作成する方が良いでしょう。 詳しくは、「High Availabilityレプリカの作成」をご覧ください。

警告

以前のプライマリ アプライアンスを新しいレプリカとして構成する前に、メンテナンス モードを有効にする必要があります。 メンテナンスモードを有効にしないと、運用停止が発生します。

以前のプライマリアプライアンスを新しいレプリカとして設定する

  1. SSH を使用して以前のプライマリアプライアンスの IP アドレスに接続します。

    ssh -p 122 admin@ FORMER_PRIMARY_IP
    
  2. 以前のプライマリアプライアンスでメンテナンスモードを有効にします。 詳しくは、「メンテナンスモードの有効化とスケジューリング」をご覧ください。

  3. 以前のプライマリアプライアンスで、以前のレプリカの IP アドレスを指定して ghe-repl-setup を実行します。 既存の構成を置き換えるには、--force オプションの使用が必要になる場合があります。

    ghe-repl-setup --force FORMER_REPLICA_IP
    
  4. プライマリ アプライアンスの承認されたキーのリストに公開キーを追加するには、https://PRIMARY-HOSTNAME/setup/settings を参照して、レプリカからコピーしたキーをリストに追加します。

  5. 新しいレプリカに対して、新しいプライマリへの接続を確認してレプリカモードを有効にするには、ghe-repl-setup をもう一度実行します。

    ghe-repl-setup FORMER_REPLICA_IP
    
  6. データ ストアのレプリケーションを開始するには、ghe-repl-start コマンドを使います。

    ghe-repl-start
    

    警告

              `ghe-repl-start` を実行すると、プライマリ サーバーを短時間使えなくなり、その間、ユーザーには内部サーバー エラーが表示されることがあります。 もっとわかりやすいメッセージを表示するには、`ghe-maintenance -s` をレプリカ ノードで実行する前にプライマリ ノード上で `ghe-repl-start` を実行し、アプライアンスをメンテナンス モードにします。 レプリケーションを開始したら、`ghe-maintenance -u` を使ってメンテナンス モードを無効にします。 プライマリ ノードがメンテナンス モードの間、Git レプリケーションは進行しません。
    

バージョン 3.14.20、3.15.15、3.16.11、3.17.8、3.18.2、またはそれ以降のバージョン (3.19 など) を実行している場合、 ghe-repl-startを実行する前にプライマリをメンテナンス モードにする必要がなくなりました。 このコマンドは、プライマリ サーバーで停止を引き起こすことは想定されなくなりました。 ただし、新しいレプリカを設定する場合、ghe-repl-startghe-config-applyの間でghe-repl-setupを実行する限り、ghe-repl-startは停止を引き起こしません。 ghe-config-applyをスキップし、ghe-repl-setupからghe-repl-startに直接移動すると、引き続き停止します。