69

我的 gitlab 安装的基本磁盘已满,是否可以将存储库及其数据移动到其他文件夹并确保即将推送的数据发送到这些目录?

我尝试停止 gitlab 并复制整个文件夹,但无济于事。PS - 我不是 IT 人,我只是想看看我们如何才能摆脱这个问题;所以请在回答时详细说明。

4

6 回答 6

135

只是更新,以防人们仍然提到这个。来自 GitLab文档

默认情况下,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
于 2014-09-16T19:11:34.330 回答
13

版本 > 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
于 2015-09-01T05:45:44.610 回答
6

我刚刚将我的 gitlab 存储库文件夹从一个目录移动到另一个目录,可能对某人有用(在安静的时间快速执行此操作或提前停止 gitlab!)

假设您有标准安装,步骤是

  • 以 root 身份为 repos 创建一个新文件夹并将所有者更改为 git 用户
  • 将旧的 repo 文件夹内容复制(使用存档、递归选项)到它的新主页cp -ar SOURCE DESTINATION
  • 使用新的 repo 路径编辑 gitlab 配置文件和gitlab-shell 配置文件
  • 重启 gitlabsudo /etc/init.d/gitlab restart
于 2014-01-21T19:38:08.243 回答
4

如果您cannot find repo在运行上述步骤后在 GitLab 中遇到错误。运行此命令。

gitlab-rake cache:clear RAILS_ENV=production

如果您的路径正确,这应该可以解决问题。

于 2016-11-07T04:59:34.213 回答
3

你需要在下面附加这个小配置:

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

完毕。

于 2019-03-11T14:58:01.727 回答
2

在我的情况下,我需要将存储库从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

清除缓存也可能是个好主意

gitlab-rake cache:clear RAILS_ENV=production

于 2019-02-28T01:28:08.150 回答