バックアップ サービスを構成する前に、次のものがあることを確認します。
- バージョン 3.17 以降を実行している GitHub Enterprise Server インスタンス。
- バックアップ ターゲットとして使うためにプロビジョニングおよび管理されている専用ストレージ ボリューム。
ストレージの要件
バックアップの信頼性とパフォーマンスを高くするには、ストレージが次の要件を満たしている必要があります。
-
容量: プライマリ GitHub アプライアンス ディスクで使われているストレージの量の少なくとも 5 倍を割り当てます。 これには、過去のスナップショットと将来の成長への対応が含まれます。
-
ファイル システムのサポート: バックアップ サービスでは効率的なストレージのためにハード リンクが使われ、GitHub インスタンスではシンボリック リンクが使われます。 バックアップ ターゲットは、シンボリック リンクとハード リンクの両方をサポートし、競合を防ぐために大文字と小文字を区別するファイル システムを使用する必要があります。
ファイル システムでシンボリック リンクのハード リンクがサポートされているかどうかは、次を実行してテストできます。
touch file ln -s file symlink ln symlink hardlink ls -la
ln symlink hardlink
コマンドが正常に完了する場合、そのようなファイル システムがサポートされています。 -
パフォーマンス: バックアップと復元に長い時間がかからないよう、待ち時間が短く、IOPS が高い高パフォーマンスのストレージを使います。
-
NFS: タイムアウトが発生し、パフォーマンスが低下する可能性があるため、バックアップ ディレクトリには NFS マウント (通常は
/data/backup
) を使わないようにします。
バックアップ サービスの構成
[Management Console] を使って、GitHub Enterprise Server Backup Service を構成できます。
バックアップ ターゲットの設定
サービスを構成する前に、バックアップが格納されるストレージ ボリュームを準備する必要があります。
新しいブロック デバイスの使用
バックアップ ターゲットとして専用のブロック デバイスをお使いの場合は、[Management Console] に進む前に、SSH を使ってそれを初期化する必要があります。 このプロセスでは、デバイスをフォーマットし、既存のデータをすべて消去します。
-
admin
ユーザーとして SSH を使ってインスタンスに接続します。 「管理シェル (SSH) にアクセスする」を参照してください。 -
バックアップ ブロック デバイスをインスタンスにアタッチします。
-
lsblk
を使って使用可能なブロック デバイスの一覧を表示してデバイス名を確認します。 データが失われないよう、正しいデバイスを選んでください。lsblk
-
初期化コマンドを実行します。
YOUR_DEVICE_NAME
は、前のステップで確認した実際のデバイス名に置き換えます。警告
このコマンドは、指定したデバイス上のすべてのデータを完全に消去します。 続ける前に、デバイス名を再確認し、重要なデータをバックアップします。
ghe-storage-init-backup /dev/YOUR_DEVICE_NAME
このコマンドは、次の操作を行います。
- デバイスをフォーマットします (すべてのデータが消去されます)。
- バックアップ サービスで使用できるように準備します。
- 起動時に
/data/backup
に自動的にマウントするように設定します。
以前に初期化したディスクの再利用
ghe-storage-init-backup
を使ってデバイスが既に初期化されている場合は、再フォーマットせずに再利用できます。
-
admin
ユーザーとして SSH を使ってインスタンスに接続します。 -
ディスクをインスタンスにアタッチします。
-
マウント ポイントが存在しない場合は作成します。
sudo mkdir -p /data/backup
-
マウント サービスを有効にして開始します。
sudo systemctl enable ghe-backup-disk.service sudo systemctl start ghe-backup-disk.service
これにより、デバイスが
/data/backup
にマウントされ、これ以降は自動的にマウントされるようになります。
バックアップの設定の構成
バックアップ ターゲットがマウントされると、[Management Console] で [Backup Service] ページを使用できるようになります。 ブロック デバイスをお使いの場合は、上で説明した初期化またはマウントの手順を終える必要があります。
メモ
バックアップ ストレージが /data/backup
にマウントされるまで、設定ページは表示されません。
GitHub Enterprise Server Backup Utilities から移行する場合は、次の 2 つの方法のいずれかで構成を転送できます。
-
手動構成: 直接 [Management Console] で設定を作り直します。
-
コマンド ライン移行: インスタンスに SSH で接続し、backup-utils から
backup.config
ファイルをコピーして次のように実行します。ghe-migrate-backup-config /path/to/your/backup.config
変更を適用せずにプレビューするには、
--dry-run
フラグを使います。
自動バックアップのスケジュール設定
サービスを構成したら、バックアップ スケジュールを定義できます。
- [Management Console] で [Backup Service] ページを開きます。
- [Backup Schedule] セクションで、定義済みのスケジュール (Daily など) を選ぶか、カスタムの cron 式を入力します。
- [保存] をクリックして変更を適用します。
最初の実行では完全バックアップが行われます。 その後の実行は増分になります。 前のバックアップがまだ実行されている間に新しいバックアップが開始しようとすると、スキップされるか失敗する可能性があります。 その場合は、重複しないようにスケジュールを調整します。