Geoに関するよくある質問
- プラン: Premium、Ultimate
- 提供形態: GitLab Self-Managed
Geoを実行するための最小要件は何ですか?
要件はインデックスページに記載されています
Geoはどのプロジェクトを同期するかをどのように認識するのですか?
各セカンダリサイトには、読み取り専用でレプリケーションされたGitLabデータベースのコピーがあります。セカンダリサイトには、どのプロジェクトが同期されたかを保存するトラッキングデータベースもあります。Geoは2つのデータベースを比較して、まだ追跡されていないプロジェクトを検索します。
開始時、このトラッキングデータベースは空であるため、GeoはGitLabデータベースで確認できるすべてのプロジェクトから更新を試みます。
同期する各プロジェクトについて:
- Geoは
git fetch geo --mirrorを発行して、プライマリサイトから最新の情報を取得します。変更がない場合、同期は高速です。それ以外の場合は、最新のコミットをプルする必要があります。 - セカンダリサイトは、プロジェクトを名前で同期したという事実を保存するために、トラッキングデータベースを更新します。
- すべてのプロジェクトが同期されるまで繰り返します。
誰かがプライマリサイトにコミットをプッシュすると、リポジトリが変更されたというイベントがGitLabデータベースで生成されます。セカンダリサイトはこのイベントを確認し、問題のプロジェクトをダーティとしてマークして、プロジェクトを再度同期するようにスケジュールします。
(たとえば、同期が何度も失敗したり、ジョブが失われたりするなど)パイプラインの問題によってプロジェクトの同期が完全に停止しないようにするために、Geoはダーティとしてマークされているプロジェクトのトラッキングデータベースも定期的にチェックします。このチェックは、同時同期の数がrepos_max_capacityを下回り、同期を待機している新しいプロジェクトがない場合に発生します。
Geoには、すべてのGit参照をSHA値に対してSHA256サムを実行するチェックサム機能もあります。プライマリサイトとセカンダリサイト間でrefsが一致しない場合、セカンダリサイトはそのプロジェクトをダーティとしてマークし、再度同期を試みます。そのため、検証は、トラッキングデータベースが古くなっていても、リポジトリの状態の不一致をアクティブにして検出し、再度同期する必要があります。
ディザスターリカバリーの状況でGeoを使用できますか?
はい、ただし、レプリケーションする内容には制限があります(セカンダリサイトにレプリケーションされるデータを参照)。
ディザスターリカバリーのドキュメントをお読みください。
セカンダリサイトにレプリケーションされるデータは何ですか?
レールデータベース全体、プロジェクトリポジトリ、LFSオブジェクト、生成された添付ファイル、アバターなどをレプリケーションします。これは、ユーザーアカウント、イシュー、マージリクエスト、グループ、プロジェクトデータなどの情報をクエリに使用できることを意味します。
Geoによってレプリケーションされるデータの包括的なリストについては、サポートされているGeoデータ型のページを参照してください。
git pushをセカンダリサイトにプッシュできますか?
セカンダリサイトへの直接プッシュ(Git LFSを含むHTTPとSSHの両方)がサポートされています。
コミットがセカンダリサイトにレプリケーションされるまでにどれくらい時間がかかりますか?
すべてのレプリケーション操作は非同期であり、ディスパッチされるようにキューに入れられます。したがって、トラフィック量、コミットのサイズ、サイト間の接続、ハードウェアなど、多くの要因によって異なります。
SSHサーバーが別のポートで実行されている場合はどうなりますか?
それは全く問題ありません。HTTP(S)を使用して、プライマリサイトからすべてのセカンダリサイトにリポジトリの変更をフェッチします。
プライマリをミラーするために、セカンダリサイト用のコンテナレジストリを作成できますか?
はい、ただし、これはディザスターリカバリーのシナリオでのみサポートしています。コンテナレジストリ(セカンダリ)サイトを参照してください。
セカンダリサイトにサインインできますか?
はい、ただし、セカンダリサイトは、すべての認証データ(ユーザーアカウントやログインなど)をプライマリインスタンスから受信します。これは、認証のためにプライマリにリダイレクトされ、その後ルーティングされることを意味します。
すべてのGeoサイトはプライマリと同じである必要がありますか?
いいえ、Geoサイトは異なるリファレンスアーキテクチャに基づくことができます。たとえば、プライマリサイトを3Kリファレンスアーキテクチャ、1つのセカンダリサイトを3Kリファレンスアーキテクチャ、別のサイトを1Kリファレンスアーキテクチャにすることができます。
Geoはアーカイブされたプロジェクトをレプリケートしますか?
はい、選択的な同期によって除外されていない場合に限ります。
Geoは個人プロジェクトをレプリケートしますか?
はい、選択的な同期によって除外されていない場合に限ります。
遅延削除プロジェクトはセカンダリサイトにレプリケーションされますか?
はい、遅延削除によって削除がスケジュールされているプロジェクトは、まだ完全に削除されていませんが、セカンダリサイトにレプリケーションされます。
プライマリサイトがダウンすると、セカンダリサイトはどうなりますか?
プライマリサイトがダウンした場合、プライマリのサービスを復元するか、セカンダリサイトで昇格を実行しない限り、セカンダリはUIからアクセスできなくなります。