1. 背景
前两天同事反馈,代码推送不到服务器了,GitLab报500错误,我等了一天都变好。登录服务器查看GitLab虚拟机,发现磁盘满了。于是用如下命令释放出了一部分空间:
bash
journalctl --vacuum-time=1s
释放了1秒前的日志,誊出几百兆空间,GitLab果然能用了。
只誊出了几百兆的空间,用不了几天又会满的,怎么也得留出五六个G的空间才行。
2. 找空间
当初创建虚拟机时,分配了40G空间,可是GitLab提示"/dev/sda"只有20G,于是用命令行查看:
bash
sudo fdisk -l
"/dev/sda1"几百兆的样子,"/dev/sda2"有20G。意思只有俩分区,一个sda1,有几百兆;另一个分区sda2,有20G。然后再也没有了,貌似可以添加分区。
用如下命令打开分区工具:
bash
sudo fdisk /dev/sda
然后就进入磁盘工具了。
输入"n"回车新增分区,再根据提示输入"3",再根据提示操作(直接回车即可),就创建了分区"sda3",空间大小刚好20G。然后似乎有个格式化分区的操作,一边查资料一边操作,我也弄不清楚需要不需要这个操作了。
3. 挂载分区
用"sudo fdisk -l"查看,依然看不到sda3的新分区,是因为没挂载。
命令行创建挂载点:
bash
sudo mkdir -p /mnt/gitlab
挂载分区:
bash
sudo mount /dev/sda3 /mnt/gitlab
再用"sudo fdisk -l"查看,果然多出来一个分区"/dev/sda3",大小是20G。这就把丢失的20G空间找回来了。
4. 给GitLab分配新空间
停止GitLab服务:
bash
sudo gitlab-ctl stop
用vi工具打开"/etc/gitlab/gitlab.rb",找到我设置的数据目录和备份目录,用"mv"命令,将GitLab的数据目录和备份目录移到新分区"/mnt/gitlab"。
gitlab.rb文件中,备份目录是我自己设置的,在"/var/opt/gitlab/backups",移动备份目录:
bash
sudo mv /var/opt/gitlab/backups /mnt/gitlab/backup
gitlab.rb文件中,数据目录我没设备,就是默认目录,在"/var/opt/gitlab/git-data",移动备份目录:
bash
sudo mv /var/opt/gitlab/git-data /mnt/gitlab/data
再用"sudo fdisk -l"查看,原主分区"sda2"剩余空间多了9个G,新分区"sda3"剩余空间成11G了,说明GitLab的数据的确移到新分区了。
5. 重启GitLab
修改GitLab的配置,即修改"/etc/gitlab/gitlab.rb",将备份目录改为"/mnt/gitlab/backup",将数据目录改为"/mnt/gitlab/data"。
保存配置,重新加载配置:
bash
sudo gitlab-ctl reconfiguration
启动GitLab:
bash
sudo gitlab-ctl start
登录GitLab,发现sda2的剩余空间多,也有了sda3的空间数据。
胜利!!!