Geo can be used in combination with Object Storage (AWS S3, or other compatible object storage).
At this time it is required that if object storage is enabled on the primary node, it must also be enabled on each secondary node.
Secondary nodes can use the same storage bucket as the primary node, or they can use a replicated storage bucket. At this time GitLab does not take care of content replication in object storage.
For LFS, follow the documentation to set up LFS object storage.
For CI job artifacts, there is similar documentation to configure jobs artifact object storage
For user uploads, there is similar documentation to configure upload object storage
You should enable and configure object storage on both primary and secondary nodes. Migrating existing data to object storage should be performed on the primary node only. Secondary nodes will automatically notice that the migrated files are now in object storage.
When using Amazon S3, you can use CRR to have automatic replication between the bucket used by the primary node and the bucket used by secondary nodes.
For manual synchronization, or scheduled by
cron, please have a look at: