【发布时间】:2013-11-23 00:32:15
【问题描述】:
我的 gitlab 安装的基本磁盘已满,是否可以将存储库及其数据移动到其他文件夹并确保即将推送的数据发送到这些目录?
我尝试停止 gitlab 并复制整个文件夹,但无济于事。 PS - 我不是 IT 人,我只是想看看我们如何才能摆脱这个问题;所以请在回答时详细说明。
【问题讨论】:
我的 gitlab 安装的基本磁盘已满,是否可以将存储库及其数据移动到其他文件夹并确保即将推送的数据发送到这些目录?
我尝试停止 gitlab 并复制整个文件夹,但无济于事。 PS - 我不是 IT 人,我只是想看看我们如何才能摆脱这个问题;所以请在回答时详细说明。
【问题讨论】:
只是更新以防人们仍然提到这个。来自 GitLab documentation:
omnibus-gitlab 默认将 Git 仓库数据存储在
/var/opt/gitlab/git-data。存储库存储在子文件夹中repositories。您可以更改git-data父级的位置 通过将以下行添加到/etc/gitlab/gitlab.rb来创建目录。git_data_dirs({"default" => "/mnt/nas/git-data"})从 GitLab 8.10 开始,您还可以添加多个 git 数据 通过将以下行添加到
/etc/gitlab/gitlab.rb目录 而是。git_data_dirs({ "default" => "/var/opt/gitlab/git-data", "alternative" => "/mnt/nas/git-data" })请注意,目标目录及其任何子路径都不能是 符号链接。
运行
sudo gitlab-ctl reconfigure以使更改生效。如果您已经拥有现有的 Git 存储库
/var/opt/gitlab/git-data您可以将它们移动到新位置 如下:# Prevent users from writing to the repositories while you move them. sudo gitlab-ctl stop # Note there is _no_ slash behind 'repositories', but there _is_ a # slash behind 'git-data'. sudo rsync -av /var/opt/gitlab/git-data/repositories /mnt/nas/git-data/ # Fix permissions if necessary sudo gitlab-ctl reconfigure # Double-check directory layout in /mnt/nas/git-data. Expected output: # gitlab-satellites repositories sudo ls /mnt/nas/git-data/ # Done! Start GitLab and verify that you can browse through the repositories in # the web interface. sudo gitlab-ctl start
【讨论】:
sudo gitlab-ctl reconfigure 命令非常重要,因为不这样做会在 GitLab 中导航时产生一些 502 错误,甚至更糟。
更简单的解决方案对于版本 > 7.14.1 的新安装:
打开gitlab.rb配置文件
sudo nano /etc/gitlab/gitlab.rb
搜索git_data_dir,取消注释该行并在此处设置您的目录,例如
git_data_dir "/storage/data/gitlab/git-data"
保存文件并重新配置 Gitlab:
sudo gitlab-ctl reconfigure
【讨论】:
我刚刚将我的 gitlab 存储库文件夹从一个目录移动到另一个目录,可能对某人有用(在安静的时间快速执行此操作或提前停止 gitlab!)
假设你有一个标准安装步骤是
cp -ar SOURCE DESTINATION
sudo /etc/init.d/gitlab restart
【讨论】:
如果您在运行上述步骤后在 GitLab 中收到 cannot find repo 错误。运行此命令。
gitlab-rake cache:clear RAILS_ENV=production
如果您的路径正确,这应该可以解决问题。
【讨论】:
你需要在下面附加这个小配置:
git_data_dirs({
"default" => {
"path" => "/srv/gitlab/git-data"
}
})
和
rsync -av /var/opt/gitlab/git-data/* /srv/gitlab/git-data/.
chown -R git:git /srv/gitlab/git-data/
sudo gitlab-ctl reconfigure
完成。
【讨论】:
就我而言,我需要将存储库从 default 存储移动到 storage1
如果加载项目的通用设置,它会显示项目编号,例如37:
sudo gitlab-rails console
irb(main):012:0> p37 = Project.find(37)
irb(main):009:0> p37.repository_storage
=> "default"
irb(main):010:0> p37.repository_storage = 'storage1'
irb(main):011:0> p37.save
=> true
irb(main):012:0> # <ctrl>+d to send EOF and exit
清除缓存也可能是个好主意
【讨论】: