问题描述
在使用 GitLab 时,有一个关于对象存储中孤立(orphaned)构件的问题。具体情境如下:用户有两个 Minio 集群,一个用于生产环境,另一个作为热备份通过 mc mirror
进行流式同步。用户还在运行点对点时间备份(Point-In-Time Backup)通过 gitaly-backup
进行备份。用户想了解,如果在运行了 gitaly-backup
之后添加新的构件,这些构件会发生什么情况?它们会被孤立吗?GitLab 默认会进行清理吗?如果不会,默认情况下是否可以触发清理操作?
解决方案
请注意以下操作可能会涉及到版本差异及风险,建议在进行操作前备份相关数据。
要在 GitLab 中清理孤立的构件,你需要运行以下命令,来自 GitLab 官方文档:
- 清理孤立的作业构件文件:
sudo gitlab-rake gitlab:cleanup:orphan_job_artifact_files DRY_RUN=false
请注意,在执行以上命令时,可以先尝试不带 DRY_RUN=false
参数的方式,以确保了解清理操作的影响。
- 清理 PITR 备份后上传的文件:
sudo gitlab-rake gitlab:cleanup:project_uploads
以上操作将会清理点对点时间备份(Point-In-Time Backup)之后上传的文件。
通过运行以上命令,你可以清理对象存储中的孤立构件以及 PITR 备份后上传的文件。这将有助于管理和维护存储空间,确保数据的完整性和一致性。
另外,如果你需要针对特定情况进行清理操作,请确保提前备份数据,以避免意外情况导致数据丢失。
正文完