GitLab 如何处理孤立的(orphaned)对象存储中的构件

46次阅读
没有评论

问题描述

在使用 GitLab 时,有一个关于对象存储中孤立(orphaned)构件的问题。具体情境如下:用户有两个 Minio 集群,一个用于生产环境,另一个作为热备份通过 mc mirror 进行流式同步。用户还在运行点对点时间备份(Point-In-Time Backup)通过 gitaly-backup 进行备份。用户想了解,如果在运行了 gitaly-backup 之后添加新的构件,这些构件会发生什么情况?它们会被孤立吗?GitLab 默认会进行清理吗?如果不会,默认情况下是否可以触发清理操作?

解决方案

请注意以下操作可能会涉及到版本差异及风险,建议在进行操作前备份相关数据。

要在 GitLab 中清理孤立的构件,你需要运行以下命令,来自 GitLab 官方文档

  1. 清理孤立的作业构件文件:
sudo gitlab-rake gitlab:cleanup:orphan_job_artifact_files DRY_RUN=false

请注意,在执行以上命令时,可以先尝试不带 DRY_RUN=false 参数的方式,以确保了解清理操作的影响。

  1. 清理 PITR 备份后上传的文件:
sudo gitlab-rake gitlab:cleanup:project_uploads

以上操作将会清理点对点时间备份(Point-In-Time Backup)之后上传的文件。

通过运行以上命令,你可以清理对象存储中的孤立构件以及 PITR 备份后上传的文件。这将有助于管理和维护存储空间,确保数据的完整性和一致性。

另外,如果你需要针对特定情况进行清理操作,请确保提前备份数据,以避免意外情况导致数据丢失。

正文完