前段时间gitlab服务出现503错误,查看了下日志,发现是gitlab数据所在的挂载点空间已经满了无法写入,于是想把数据迁移到另一个挂载点上,查了下gitlab仓库数据是位于/var/opt/gitlab/git-data下,于是最直接的做法就是把git-data拷贝到新挂载点下,然后建立一个软连接到/var/opt/gitlab下,而实际测试发现会有问题. 后来通过查看gitlab.rb配置文件,发现git_data_dir选项,于是通过把git_data_dir指向新挂载点,发现还是有问题,后来通过stackoverflow找到了正确的方法,现记录于此:

1. 停止服务

gitlab-ctl stop

2. 修改git_data_dir

vim /etc/gitlab/gitlab.rb

git_data_dir "/mnt/new/git-data"

3. 拷贝

rsync -av /var/opt/gitlab/git-data /mnt/new/git-data

PS: 此处不能用cp,具体什么原因没有细查,有兴趣的童鞋可以去查查cp和rsync的区别

4. 生效配置

gitlab-ctl reconfigure

5. 启动服务

gitlab-ctl start