记一次gitlab-runner 磁盘空间不足

使用gitlab-runner 经常会遇到一个问题

故障现场

  • 系统环境 centos 7, docker 下的 gitlab-runner
    npm WARN tar ENOSPC: no space left on device, write
    Unhandled rejection Error: ENOSPC: no space left on device, write
    npm ERR! cb() never called!
    
    npm ERR! This is an error with npm itself. Please report this error at:
    npm ERR!     
    
    npm ERR! A complete log of this run can be found in:
    npm ERR!     /root/.npm/_logs/2018-08-16T08_39_27_535Z-debug.log
    

排查过程

  • 登录到gitlab-runner 服务器, 查看磁盘利用率 df -h
    文件系统          容量    已用  可用  已用% 挂载点
    /dev/sda2        48G   48G   0    100% /
    devtmpfs         63G     0   63G    0% /dev
    tmpfs            63G     0   63G    0% /dev/shm
    tmpfs            63G  2.8G   61G    5% /run
    tmpfs            63G     0   63G    0% /sys/fs/cgroup
    /dev/sda3       228G   19G  210G    9% /export
    /dev/sdb1        22T   13T  9.7T   56% /data
    tmpfs            13G     0   13G    0% /run/user/0
    
  • /dev/sda2 容量已经用完了, 检查一下本机docker存储位置
    $ sudo docker info | grep "Docker Root Dir
    WARNING: You're not using the default seccomp profile
    WARNING: bridge-nf-call-iptables is disabled
    WARNING: bridge-nf-call-ip6tables is disabled
    Docker Root Dir: /var/lib/docker
    
  • 果然是存在 /dev/sda2 这个分区下

解决方案

将docker存储位置挂载到 /dev/sdb1

  • 停用docker service docker stop
  • 迁移文件
    mv /var/lib/docker /data/docker
    ln -s /data/docker /var/lib/docker
    
  • 重启docker service docker start
  • 重启container
    $ docker ps -a
    $ docker start gitlab-runner
    

你可能感兴趣的:(记一次gitlab-runner 磁盘空间不足)