Geo 对象存储
验证对象存储中的文件引入于极狐GitLab 16.4,功能标志为
geo_object_storage_verification
。默认启用。
Geo 可以与对象存储(AWS S3 或其他兼容的对象存储)结合使用。
目前,次要站点可以使用:
- 与主要站点相同的存储桶。
- 一个复制的存储桶。
- 本地存储,如果主要使用本地存储。
文件的存储方式(本地或对象存储)记录在数据库中,数据库从主要 Geo 站点复制到次要 Geo 站点。
在访问上传的对象时,我们从数据库中获取其存储方式(本地或对象存储),因此次要 Geo 站点必须与主要 Geo 站点的存储方式相匹配。
因此,如果主要 Geo 站点使用对象存储,则次要 Geo 站点也必须使用它。
- 极狐GitLab 管理复制,遵循启用极狐GitLab 复制文档。
- 第三方服务管理复制,遵循第三方复制服务。
启用极狐GitLab 管理的对象存储复制
一般可用于 15.1 版本。
次要站点可以复制存储在主要站点上的文件,无论它们是存储在本地文件系统还是对象存储中。
要启用极狐GitLab 复制:
- 在左侧导航栏底部,选择 管理员。
- 在左侧边栏中,选择 Geo > 节点。
- 在次要站点上,选择 编辑。
- 在 同步设置 部分,找到 允许此次要节点复制对象存储上的内容 复选框以启用它。
对于 LFS,请按照文档设置 LFS 对象存储。
对于 CI 作业产物,有类似的文档来配置作业产物对象存储。
对于用户上传文件,有类似的文档来配置上传文件对象存储。
如果要将主要站点的文件迁移到对象存储,可以通过以下几种方式配置次要站点:
- 使用完全相同的对象存储。
- 使用单独的对象存储,但利用对象存储解决方案的内置复制。
- 使用单独的对象存储并启用允许此次要节点复制对象存储上的内容设置。
极狐GitLab 目前不支持以下两种情况:
- 主要站点使用本地存储。
- 次要站点使用对象存储。
第三方复制服务
当使用 Amazon S3,您可以使用 Cross-Region Replication (CRR) 来在 主要站点和次要站点使用的存储桶之间自动复制
如果您在使用 Google Cloud Storage,可以考虑使用 Multi-Regional Storage。或者您可使用 Storage Transfer Service,尽管这只支持每天同步。
对于手动同步或计划的同步,您可以查看:
- s3cmd sync
- gsutil rsync