High Availabilityレプリカの作成
アクティブ/パッシブ設定では、レプリカアプライアンスはプライマリアプライアンスの冗長コピーです。 プライマリアプライアンスに障害が起こると、High Availabilityモードではレプリカがプライマリアプライアンスとして動作し、サービスの中断を最小限にできます。
このガイドの内容
High Availabilityレプリカの作成
- 新しい GitHub Enterprise Server アプライアンスを希望するプラットフォームにセットアップします。 レプリカアプライアンスのCPU、RAM、ストレージ設定は、プライマリアプライアンスと同じにするべきです。 レプリカアプライアンスは、独立した環境にインストールすることをお勧めします。 下位層のハードウェア、ソフトウェア、ネットワークコンポーネントは、プライマリアプライアンスのそれらとは分離されているべきです。 クラウドプロバイダを利用している場合には、別個のリージョンもしくはゾーンを使ってください。 詳細は「"GitHub Enterprise Server インスタンスをセットアップする」を参照してください。
- ブラウザで新しいレプリカアプライアンスのIPアドレスにアクセスして、所有するGitHub Enterpriseのライセンスをアップロードしてください。
- プライマリアプライアンス上のパスワードと一致する管理者パスワードを設定して続行します。
- Configure as Replica(レプリカとして設定)をクリックしてください。
- "Add new SSH key(新しいSSH鍵の追加)"の下でSSH鍵を入力してください。
- Add key(鍵の追加)をクリックし、続いてContinue(続ける)をクリックしてください。
- SSHを使ってレプリカアプライアンスのIPアドレスに接続してください。
$ ssh -p 122 admin@REPLICA IP
-
レプリケーション用の鍵ペアを生成するには、プライマリアプライアンスの IP アドレスを指定した
ghe-repl-setup
コマンドを使用し、それが返す公開鍵をコピーします。$ ghe-repl-setup PRIMARY IP
-
プライマリアプライアンスの認証済みキーのリストに公開鍵を追加するには、
https://<PRIMARY-HOSTNAME>/setup/settings
にアクセスし、レプリカからコピーした鍵をリストに追加してください。 -
新しいレプリカに対して、プライマリへの接続を確認してレプリカモードを有効にするには、
ghe-repl-setup
をもう一度実行します。$ ghe-repl-setup PRIMARY IP
-
データストアのレプリケーションを開始するには、
ghe-repl-start
コマンドを使用します。$ ghe-repl-start
警告: ghe-repl-start
はプライマリサーバを短時間停止させます。その間ユーザには内部サーバエラーが返されるかもしれません。親切なメッセージを提供するには、ghe-repl-start
をレプリカノードで実行してアプライアンスをメンテナンスモードにする前に、プライマリノードで ghe-maintenance -s
を実行してください。レプリケーションを開始したなら、ghe-maintenance -u
でメンテナンスモードを無効化してください。
-
各データストアのレプリケーションチャネルのステータスを確認するには、
ghe-repl-status
コマンドを使用します。$ ghe-repl-status
Geo-replication レプリカを作成する
以下の例の設定では、1 つのプライマリと 2 つのレプリカを使用しており、これらは 3 つの異なる地理的地域にあります。 3 つのノードは別のネットワークに配置できますが、すべてのノードは他のすべてのノードから到達可能である必要があります。 最低限、必要な管理ポートは他のすべてのノードに対して開かれている必要があります。 ポートの要件に関する詳しい情報については「ネットワークポート」を参照してください。
-
最初のレプリカで
ghe-repl-setup
を実行することで、標準の 2 ノード構成の場合と同じ方法で最初のレプリカを作成します。(replica1)$ ghe-repl-setup PRIMARY IP (replica1)$ ghe-repl-start
-
2 番目のレプリカを作成して、
ghe-repl-setup --add
コマンドを使用します。--add
フラグは、既存のレプリケーション設定を上書きするのを防ぎ、新しいレプリカを設定に追加します。(replica2)$ ghe-repl-setup --add PRIMARY IP (replica2)$ ghe-repl-start
-
デフォルトでは、レプリカは同じデータセンターに設定されます。 レプリカを別のデータセンターに設定するには、datacenter オプションに異なる値を設定します。 具体的な値は、それらが互いに異なる限り、どのようなものでもかまいません。 各ノードで
ghe-repl-node
コマンドを実行し、データセンターを指定します。プライマリ上:
(primary)$ ghe-repl-node --datacenter [PRIMARY DC NAME]
最初のレプリカ上:
(replica1)$ ghe-repl-node --datacenter [FIRST REPLICA DC NAME]
2 番目のレプリカ上:
(replica2)$ ghe-repl-node --datacenter [SECOND REPLICA DC NAME]
参考:
--datacenter
と--active
のオプションは同時に設定できます。 -
アクティブなレプリカノードは、アプライアンスデータのコピーを保存し、エンドユーザーのリクエストに応じます。 アクティブではないノードは、アプライアンスデータのコピーを保存しますが、エンドユーザーのリクエストに応じることはできません。
--active
フラグを使用してアクティブモードを有効にするか、--inactive
フラグを使用して非アクティブモードを有効にします。最初のレプリカ上:
(replica1)$ ghe-repl-node --active
2 番目のレプリカ上:
(replica2)$ ghe-repl-node --active
-
設定を適用するには、プライマリで
ghe-config-apply
コマンドを使用します。(primary)$ ghe-config-apply
Geo-replication 用に DNS を設定する
プライマリノードとレプリカノードの IP アドレスを使用して Geo DNS を設定します。 SSH でプライマリノードにアクセスしたり、backup-utils
でバックアップするために、プライマリノード (たとえば、primary.github.example.com
) に対して DNS CNAME を作成することもできます。
テストのために、ローカルワークステーションの hosts
ファイル (たとえば、/etc/hosts
) にエントリを追加することができます。 以下の例のエントリでは、HOSTNAME
に対するリクエストが replica2
に決定されることになります。 別の行をコメントアウトすることで、特定のホストをターゲットにすることができます。
# <primary ip> *HOSTNAME*
# <replica1 ip> *HOSTNAME*
<replica2 ip> *HOSTNAME* ```
### 参考リンク
- "[High Availability設定について](/enterprise/2.14/admin/guides/installation/about-high-availability-configuration)"
- "[レプリケーション管理のユーティリティ](/enterprise/2.14/admin/guides/installation/about-high-availability-configuration/#utilities-for-replication-management)"
- 「[Geo-replication について](/enterprise/2.14/admin/guides/installation/about-geo-replication/)」