温馨提示×

linux中gitlab如何扩容

小樊
40
2026-09-28 15:39:07
栏目: 智能运维

在 Linux 中,GitLab 扩容通常指以下几类场景之一,你可以根据实际需求对应操作:


一、磁盘空间扩容(最常见)

1. 确认 GitLab 数据目录

GitLab 默认数据目录:

  • /var/opt/gitlab(数据)
  • /etc/gitlab(配置)
  • /var/log/gitlab(日志)

查看占用:

df -h
du -sh /var/opt/gitlab/*

2. 新增磁盘并挂载到 GitLab 目录

步骤示例(LVM 或新磁盘)

# 假设新磁盘为 /dev/sdb
fdisk /dev/sdb
mkfs.ext4 /dev/sdb1
mkdir /gitlab-data
mount /dev/sdb1 /gitlab-data

修改 GitLab 配置

编辑:

vim /etc/gitlab/gitlab.rb

修改数据目录:

gitlab_rails['git_data_dirs'] = {
  "default" => {
    "path" => "/gitlab-data/git-data"
  }
}

迁移旧数据

gitlab-ctl stop
rsync -av /var/opt/gitlab/git-data/ /gitlab-data/git-data/
gitlab-ctl reconfigure
gitlab-ctl start

二、GitLab 仓库存储扩容(多存储路径)

适用于仓库数量很多的情况:

gitlab_rails['git_data_dirs'] = {
  "default" => { "path" => "/var/opt/gitlab/git-data" },
  "storage2" => { "path" => "/data/gitlab/git-data" }
}

重启:

gitlab-ctl reconfigure

三、LVM 在线扩容(推荐生产环境)

如果 /var/opt/gitlab 在 LVM 上:

pvcreate /dev/sdb
vgextend vg_gitlab /dev/sdb
lvextend -l +100%FREE /dev/vg_gitlab/lv_gitlab
resize2fs /dev/vg_gitlab/lv_gitlab

四、GitLab 应用层扩容(高并发)

1. 增加 Sidekiq / Puma 进程

puma['worker_processes'] = 4
sidekiq['concurrency'] = 20
gitlab-ctl reconfigure

2. 分离组件(进阶)

  • PostgreSQL
  • Redis
  • Gitaly

五、对象存储扩容(推荐大文件)

使用 MinIO / S3:

gitlab_rails['object_store']['enabled'] = true
gitlab_rails['object_store']['bucket'] = "gitlab"

六、Docker 版 GitLab 扩容

修改 docker-compose.yml:

volumes:
  - /new-disk/gitlab/data:/var/opt/gitlab

七、扩容后检查

gitlab-ctl status
gitlab-rake gitlab:check

如果你愿意,可以告诉我:

  • GitLab 安装方式(Omnibus / Docker / K8s)
  • 当前磁盘使用情况
  • 是仓库太多还是磁盘满了

我可以给你精确扩容方案。

0 踩