CentOS下GitLab的存储空间如何管理
小樊
45
2026-01-06 00:41:42
CentOS下GitLab存储空间管理
一 定位占用与快速清理
- 查看总体占用并按目录定位大项:
- 查看磁盘使用:df -h
- 定位 GitLab 各组件目录占用:du -h --max-depth=1 /var/opt/gitlab
- 常见大占用点与对策:
- 监控数据 Prometheus:默认数据目录 /var/opt/gitlab/prometheus/data。可选方案:
- 关闭监控:在 /etc/gitlab/gitlab.rb 设置 prometheus_monitoring[‘enable’] = false
- 缩短保留期:设置 prometheus[‘flags’][‘storage.tsdb.retention.time’] = “15d”
- 迁移数据目录:设置 prometheus[‘flags’][‘storage.tsdb.path’] = “/new/prometheus/data”
- 仓库数据:默认 /var/opt/gitlab/git-data/repositories。若根分区小,建议迁移到更大磁盘(见第二部分)。
- 备份文件:默认 /var/opt/gitlab/backups。定期清理历史备份,避免无限增长(见第三部分)。
二 迁移仓库数据目录到更大磁盘
- 规划与准备:
- 新盘挂载到如 /data,创建目录:mkdir -p /data/gitlab/git-data
- 停止服务:gitlab-ctl stop
- 迁移数据(保持权限一致):
- rsync -av /var/opt/gitlab/git-data/repositories /data/gitlab/git-data/
- 修改配置并生效:
- 编辑 /etc/gitlab/gitlab.rb:git_data_dirs({ “default” => { “path” => “/data/gitlab/git-data” } })
- 重新配置并启动:gitlab-ctl reconfigure && gitlab-ctl start
- 验证:
- 检查目录是否存在且权限正确:ls -ld /data/gitlab/git-data/repositories
- 访问项目验证克隆/推送正常。
三 备份与日志的存储管理
- 备份路径与定时清理:
- 修改备份目录(示例):在 /etc/gitlab/gitlab.rb 设置 gitlab_rails[‘backup_path’] = ‘/data/backup/gitlab’
- 权限建议:chown -R git:git /data/backup/gitlab;chmod 700 /data/backup/gitlab
- 手动备份:/opt/gitlab/bin/gitlab-rake gitlab:backup:create
- 定时清理旧备份(系统级方案):例如保留最近 7 天
- 0 2 * * * find /data/backup/gitlab -name “*.tar” -mtime +7 -delete
- 日志与临时文件:
- 日志目录:/var/log/gitlab。可按需配置 logrotate,或定期归档清理,避免长期累积。
四 容量增长控制与长期治理
- 规范大文件与历史产物:
- 使用 Git LFS 管理大文件,避免把二进制资产直接提交到仓库。
- 定期清理无用分支、合并后删除远程分支,降低仓库体积。
- 在 CI 中设置制品与缓存的过期策略,避免 artifacts/packages 长期堆积。
- 监控与告警:
- 使用 Prometheus + Grafana 监控磁盘使用率与增长趋势,设置阈值告警(如使用率超过 85% 触发)。
- 定期巡检:du -sh /var/opt/gitlab/* 及 Prometheus 数据目录增长情况。
- 版本与架构优化(可选):
- 升级到较新版本获取存储与性能优化。
- 对于大规模场景,考虑 Gitaly 集群 与对象存储方案,提升可扩展性与容量管理效率。