Cells: バックアップ

各 Cell は独自のバックアップを取得し、その結果として独自の独立したバックアップ/リストア手順を持ちます。

1. 定義

GitLab バックアップは、アプリケーションで使用される PostgreSQL データベースと Git リポジトリデータのバックアップを取得します。

2. データフロー

各 Cell にはバックアップするアプリケーションデータベースが複数あります(例: mainci)。 さらに、PostgreSQL 経由で直接アクセス可能なクラスター全体のメタデータテーブル(例: users テーブル)がある場合があります。

3. 提案

3.1. クラスター全体のメタデータ

クラスター全体のメタデータテーブルへのアクセス方法は現在不明です。 クラスター全体のメタデータテーブルを個別にバックアップするか、各 Cell がクラスター全体のメタデータテーブルのコピーをバックアップするかを選択することができます。

3.2 一貫性

3.2.1 独立してバックアップを取得する

各 Cell は API を通じて互いに通信し、users テーブルへの結合がないため、各 Cell が独立してバックアップを取得することは許容されるはずです。

3.2.2 スナップショットを強制する

一貫したバックアップを取得するために、各 Cell がほぼ同時に PostgreSQL データベースのスナップショットを取得することを要求することができます。

4. 評価

Cells の数が増加するにつれて、すべての Cells で同時にスナップショットを取得することは現実的でなくなる可能性があります。 そのため、独立してバックアップを取得する方が良い選択肢です。

4.1. メリット

4.2. デメリット