Skip to main content

バックアップ サービスの構成

[Management Console] で組み込みのバックアップ サービスを有効にして構成し、必要に応じてレガシ設定を移行します。

バックアップ サービスを構成する前に、次のものがあることを確認します。

  • バージョン 3.17 以降を実行している GitHub Enterprise Server インスタンス。
  • バックアップ ターゲットとして使うためにプロビジョニングおよび管理されている専用ストレージ ボリューム。

ストレージの要件

バックアップの信頼性とパフォーマンスを高くするには、ストレージが次の要件を満たしている必要があります。

  •         **容量:** プライマリ GitHub アプライアンスのデータ ディスクで使用されるストレージ容量の 5 倍以上を割り当てます。 これには、過去のスナップショットと将来の成長への対応が含まれます。
    
  •         **ファイル システムのサポート:** バックアップ サービスでは効率的なストレージのためにハード リンクが使われ、GitHub インスタンスではシンボリック リンクが使われます。 バックアップ ターゲットは、シンボリック リンクとハード リンクの両方をサポートし、競合を防ぐために大文字と小文字を区別するファイル システムを使用する必要があります。
    

    ファイル システムでシンボリック リンクのハード リンクがサポートされているかどうかは、次を実行してテストできます。

    cd /data/backup
    sudo touch file
    sudo ln -s file symlink
    sudo ln symlink hardlink
    ls -la
    
            `ln symlink hardlink` コマンドが正常に完了する場合、そのようなファイル システムがサポートされています。
    
  •         **パフォーマンス:** バックアップと復元に長い時間がかからないよう、待ち時間が短く、IOPS が高い高パフォーマンスのストレージを使います。
    
  •         **NFS:** タイムアウトが発生し、パフォーマンスが低下する可能性があるため、バックアップ ディレクトリには NFS マウント (通常は `/data/backup`) を使わないようにします。
    

バックアップ サービスの構成

[Management Console] を使って、GitHub Enterprise Server Backup Service を構成できます。

バックアップ ターゲットの設定

サービスを構成する前に、バックアップが格納されるストレージ ボリュームを準備する必要があります。

新しいブロック デバイスの使用

バックアップ ターゲットとして専用のブロック デバイスをお使いの場合は、[Management Console] に進む前に、SSH を使ってそれを初期化する必要があります。 このプロセスでは、デバイスをフォーマットし、既存のデータをすべて消去します

  1.        `admin` ユーザーとして SSH を使ってインスタンスに接続します。 「[AUTOTITLE](/admin/configuration/configuring-your-enterprise/accessing-the-administrative-shell-ssh)」を参照してください。
    
  2. バックアップ ブロック デバイスをインスタンスにアタッチします。

  3.        `lsblk` を使って使用可能なブロック デバイスの一覧を表示してデバイス名を確認します。 データが失われないよう、正しいデバイスを選んでください。
    
    lsblk
    
  4. 初期化コマンドを実行します。YOUR_DEVICE_NAME は、前のステップで確認した実際のデバイス名に置き換えます。

    警告

    このコマンドは、指定したデバイス上のすべてのデータを完全に消去します。 続ける前に、デバイス名を再確認し、重要なデータをバックアップします。

    ghe-storage-init-backup /dev/YOUR_DEVICE_NAME
    

    このコマンドは、次の操作を行います。

    • デバイスをフォーマットします (すべてのデータが消去されます)。

    • バックアップ サービスで使用できるように準備します。

    • 起動時に /data/backup に自動的にマウントするように設定します。

以前に初期化したディスクの再利用

          `ghe-storage-init-backup` を使ってデバイスが既に初期化されている場合は、再フォーマットせずに再利用できます。

1. admin ユーザーとして SSH を使ってインスタンスに接続します。

  1. ディスクをインスタンスにアタッチします。

  2. マウント ポイントが存在しない場合は作成します。

    sudo mkdir -p /data/backup
    
  3. マウント サービスを有効にして開始します。

    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 つの方法のいずれかで構成を転送できます。

  1.        **手動構成**: 直接 [Management Console] で設定を作り直します。
    
  2.        **コマンド ライン移行**: インスタンスに SSH で接続し、backup-utils から `backup.config` ファイルをコピーして次のように実行します。
    
    ghe-migrate-backup-config /path/to/your/backup.config
    

    変更を適用せずにプレビューするには、--dry-run フラグを使います。

自動バックアップのスケジュール設定

サービスを構成したら、バックアップ スケジュールを定義できます。

  1. [Management Console] で、上部のメニューから [Backups] タブを開きます。
  2. [Backup Schedule] セクションで、定義済みのスケジュール (Daily など) を選ぶか、カスタムの cron 式を入力します。
  3.        **[保存]** をクリックして変更を適用します。
    

最初の実行では完全バックアップが行われます。 その後の実行は増分になります。 前のバックアップがまだ実行されている間に新しいバックアップが開始しようとすると、スキップされるか失敗する可能性があります。 その場合は、重複しないようにスケジュールを調整します。