アプライアンスでのバックアップの設定
システム災害復旧計画の一部として、自動化バックアップを設定してGitHub Enterprise Server インスタンスのプロダクションデータを保護できます。
このガイドの内容
- GitHub Enterprise Serverバックアップユーティリティについて
- 必要な環境
- GitHub Enterprise Serverバックアップユーティリティのインストール
- バックアップのスケジューリング
- バックアップのリストア
GitHub Enterprise Serverバックアップユーティリティについて
GitHub Enterprise Serverバックアップユーティリティは、個別のホストにインストールするバックアップシステムで、GitHub Enterprise Server インスタンスのバックアップスナップショットをセキュアなSSHネットワーク接続経由で定期的に取得します。 スナップショットを使用して、既存の GitHub Enterprise Server インスタンスをバックアップホストから以前の状態に復元できます。
ネットワーク経由で転送されるのは最後のスナップショット以降に追加されたデータのみで、追加の物理ストレージ領域もその分だけしか占めません。 パフォーマンスへの影響を最小化するために、バックアップは最低のCPU/IO優先度の下でオンライン実行されます。 バックアップを行うために、メンテナンスウィンドウをスケジューリングする必要はありません。
機能、要求事項、高度な利用方法に関する詳しい情報についてはGitHub Enterprise ServerバックアップユーティリティREADMEを参照してください。
必要な環境
GitHub Enterprise Serverバックアップユーティリティを利用するには、GitHub Enterprise Server インスタンスとは別のLinuxもしくはUnixホストシステムが必要です。
GitHub Enterprise Serverバックアップユーティリティは、重要なデータのための長期的な恒久ストレージの既存環境に統合することもできます。
バックアップホストとGitHub Enterprise Server インスタンスは、地理的に離れたところに配置することをおすすめします。 そうすることで、プライマリのサイトにおける大規模な災害やネットワーク障害に際してもリカバリにバックアップが利用できることが保証されます。
物理的なストレージの要求は、Gitリポジトリのディスク利用状況と予想される成長パターンによって異なります。
ハードウェア | 推奨構成 |
---|---|
vCPUs | 2 |
メモリ | 2 GB |
ストレージ | プライマリインスタンスに割り当てられたストレージの5倍 |
ユーザのアクティビティや他の製品との結合といった利用方法によっては、さらに多くのリソースが必要になることがあります。
GitHub Enterprise Serverバックアップユーティリティのインストール
注意: リカバリされたアプライアンスがすぐに利用できることを保証するために、Geo-replication構成の場合であってもプライマリインスタンスをターゲットとしたバックアップを実行してください。
-
最新のGitHub Enterprise Serverバックアップユーティリティリリースをダウンロードし、
tar
コマンドで展開してください。$ tar -xzvf /path/to/github-backup-utils-vMAJOR.MINOR.PATCH.tar.gz
- Copy the included
backup.config-example
file tobackup.config
and open in an editor. - Set the
GHE_HOSTNAME
value to your primary GitHub Enterprise Server instance's hostname or IP address. - Set the
GHE_DATA_DIR
value to the filesystem location where you want to store backup snapshots. - Open your primary instance's settings page at
https://HOSTNAME/setup/settings
and add the backup host's SSH key to the list of authorized SSH keys. For more information, see Accessing the administrative shell (SSH). -
Verify SSH connectivity with GitHub Enterprise Server インスタンス with the
ghe-host-check
command.$ bin/ghe-host-check
-
To create an initial full backup, run the
ghe-backup
command.$ bin/ghe-backup
For more information on advanced usage, see the GitHub Enterprise Serverバックアップユーティリティ README.
バックアップのスケジューリング
You can schedule regular backups on the backup host using the cron(8)
command or a similar command scheduling service. 設定されたバックアップ頻度によって、リカバリー計画での最悪の目標復旧ポイント (RPO) が決まります。 たとえば、毎日午前 0 時にバックアップを実行するようにスケジュール設定した場合、災害のシナリオで最大 24 時間分のデータが失われる可能性があります。 プライマリサイトのデータが破壊された場合に、最悪でも最大 1 時間分のデータ損失で収まることが保証されるように、1 時間ごとのバックアップスケジュールから始めることをおすすめします。
If backup attempts overlap, the ghe-backup
command will abort with an error message, indicating the existence of a simultaneous backup. そのような場合は、スケジュール設定したバックアップの頻度を減らすことをおすすめします。 For more information, see the "Scheduling backups" section of the GitHub Enterprise Serverバックアップユーティリティ README.
バックアップのリストア
In the event of prolonged outage or catastrophic event at the primary site, you can restore GitHub Enterprise Server インスタンス by provisioning another GitHub Enterprise appliance and performing a restore from the backup host. アプライアンスを復元する前に、バックアップホストの SSH キーをターゲットの GitHub Enterprise アプライアンスに認証済み SSH キーとして追加する必要があります。
To restore GitHub Enterprise Server インスタンス from the last successful snapshot, use the ghe-restore
command. 以下と同じような出力が表示されるでしょう:
$ ghe-restore -c 169.154.1.1
> Checking for leaked keys in the backup snapshot that is being restored ...
> * No leaked keys found
> Connect 169.154.1.1:122 OK (v2.9.0)
> WARNING: All data on GitHub Enterprise appliance 169.154.1.1 (v2.9.0)
> will be overwritten with data from snapshot 20170329T150710.
> Please verify that this is the correct restore host before continuing.
> Type 'yes' to continue: yes
> Starting restore of 169.154.1.1:122 from snapshot 20170329T150710
# ...output truncated
> Completed restore of 169.154.1.1:122 from snapshot 20170329T150710
> Visit https://169.154.1.1/setup/settings to review appliance configuration.
メモ: ネットワーク設定はバックアップのスナップショットから除外されます。 ご使用の環境に合わせて、ターゲットの GitHub Enterprise Server アプライアンスでネットワークを手動で設定する必要があります。
以下の追加オプションは、ghe-restore
コマンドで使用できます。
-c
フラグは、すでに設定されている場合でも、ターゲットホストで設定、証明書、およびライセンスデータを上書きします。 テストのためにステージングインスタンスを設定しており、ターゲット上の依存の設定を残しておきたい場合には、このフラグを省いてください。 詳しい情報についてはGitHub Enterprise ServerバックアップユーティリティREADMEの"バックアップ及びリストアコマンドの利用"セクションを参照してください。-s
フラグにより、異なるバックアップスナップショットを選択できます。