在CentOS上管理GitLab的存储,主要包括配置存储路径、备份和恢复、优化存储库大小等。以下是详细的管理步骤:
配置存储路径
-
默认存储路径:
- Omnibus-gitlab 将仓库数据存储在
/var/opt/gitlab/git-data
目录下,仓库存放在子目录repositories
里面。
- Omnibus-gitlab 将仓库数据存储在
-
自定义存储路径:
- 可以通过修改
/etc/gitlab/gitlab.rb
文件来自定义git-data
的父目录。例如:git_data_dirs({"default" => {"path" => "/data/gitlab-data"}})
- 修改后需要运行
gitlab-ctl reconfigure
使配置生效。
- 可以通过修改
备份和恢复
-
手动备份:
- 使用
gitlab-rake gitlab:backup:create
命令手动创建备份。 - 备份文件默认存储在
/var/opt/gitlab/backups
目录下。
- 使用
-
自动备份:
- 可以配置 GitLab 定时自动备份。例如,每天全量备份,并将备份传输到备用服务器。
- 备份文件大小约200G,影响备份时间、传输时间和恢复时间。
-
恢复备份:
- 使用
gitlab-rake gitlab:backup:restore
命令恢复备份。 - 恢复前需要停止相关数据连接服务(如
unicorn
和sidekiq
)。
- 使用
优化存储库大小
-
清理未使用的分支和标签:
- 删除不再需要的分支和标签:
git branch -d branch_name git push origin --delete branch_name git tag -d tag_name git push origin --delete tag_name
- 删除不再需要的分支和标签:
-
清理大文件和历史记录:
- 使用
git filter-repo
或BFG Repo-Cleaner
清理大文件和历史记录。git filter-repo --path path/to/large/file --invert-paths
- 使用
-
使用 Git LFS 管理大文件:
- 安装 Git LFS:
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash sudo apt-get install git-lfs
- 为特定文件启用 Git LFS:
git lfs track "*.psd" git add .gitattributes git commit -m "Track PSD files with Git LFS" git push origin master
- 安装 Git LFS:
-
压缩存储库:
- 使用
git gc
命令压缩存储库:git gc --aggressive --prune=now
- 使用
其他存储管理建议
-
监控磁盘空间:
- GitLab 默认启用 Prometheus 监控,数据存储时长是 15 天。如果磁盘紧张,可以修改数据保留时长或关闭 Prometheus 监控。
- 修改配置文件
/etc/gitlab/gitlab.rb
:prometheus['storage.tsdb.retention.time'] = "2d" prometheus['enable'] = false
- 修改后重启 GitLab。
-
分布式部署与负载均衡:
- 可以设置 GitLab Runner 进行分布式部署和负载均衡,确保 CI/CD 流程的高效执行。
通过以上步骤,可以有效地管理CentOS上GitLab的存储,确保系统的性能和稳定性。