首页 > 解决方案 > GitLab Errno::ENOSPC:设备@ dir_s_mkdir 上没有剩余空间

问题描述

在运行了很长时间的工作后,我的 GitLab(在 docker 容器上)变得不可用,我相信它充满了 tmp 文件或元数据,或其他东西。当我尝试进行备份时,我意识到磁盘已满,并且出现以下错误。

我解决这个问题以继续工作的方法是将磁盘大小增加一倍,现在至少我可以工作了。

我在容器gitlab-ctl registry-garbage-collect -mhttps://docs.gitlab.com/ee/raketasks/cleanup.html)内运行了这个命令,我可以释放 3GB。

我认为这是 Linux inode 的问题,但正如您在下面看到的那样,事实并非如此。官方的 GitLab 文档有时非常出色,但有时却在循环。

我不知道我应该删除什么来获得空间,总的来说我不知道​​下次该怎么做才能避免这个问题,在 Gitlab 论坛上搜索,但不知何故不清楚提示或故障排除。

我担心如果我再运行一次该作业,我会再次崩溃磁盘。

关于删除什么、添加什么以/etc/gitlab/gitlab.rb避免这种情况或如何为此目的实施一些内务管理或警报的任何想法?谢谢。

docker exec -t gitlab gitlab-backup create
rake aborted!
Errno::ENOSPC: No space left on device @ dir_s_mkdir - /tmp/prometheus-mmap20201110-4631-1eio26e
/opt/gitlab/embedded/service/gitlab-rails/config/initializers/7_prometheus_metrics.rb:18:in `<top (required)>'
/opt/gitlab/embedded/service/gitlab-rails/config/environment.rb:5:in `<top (required)>'
/opt/gitlab/embedded/bin/bundle:23:in `load'
/opt/gitlab/embedded/bin/bundle:23:in `<main>'
Tasks: TOP => gitlab:backup:create => gitlab_environment => environment
(See full trace by running task with --trace)
[gitlab ~] df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        7.8G   80K  7.8G   1% /dev
tmpfs           7.8G     0  7.8G   0% /dev/shm
/dev/nvme1n1p1   59G   56G  3.0G  96% /

[gitlab ~] df -iH
Filesystem     Inodes IUsed IFree IUse% Mounted on
devtmpfs         2.1M   516  2.1M    1% /dev
tmpfs            2.1M     1  2.1M    1% /dev/shm
/dev/nvme1n1p1   4.0M  160k  3.8M    5% /

Gitlab版本

root@gitlab:/# gitlab-rake gitlab:env:info

System information
System:
Proxy:      no
Current User:   git
Using RVM:  no
Ruby Version:   2.6.6p146
Gem Version:    2.7.10
Bundler Version:1.17.3
Rake Version:   12.3.3
Redis Version:  5.0.9
Git Version:    2.28.0
Sidekiq Version:5.2.9
Go Version: unknown

GitLab information
Version:    13.4.4-ee
Revision:   4196ccb4738
Directory:  /opt/gitlab/embedded/service/gitlab-rails
DB Adapter: PostgreSQL
DB Version: 11.9
URL:        https://
HTTP Clone URL: https://
SSH Clone URL:  git@
Elasticsearch:  no
Geo:        no
Using LDAP: no
Using Omniauth: yes
Omniauth Providers:

GitLab Shell
Version:    13.7.0
Repository storage paths:
- default:  /var/opt/gitlab/git-data/repositories
GitLab Shell path:      /opt/gitlab/embedded/service/gitlab-shell
Git:        /opt/gitlab/embedded/bin/git

标签: gitlabgitlab-omnibusgitlab-ce

解决方案


推荐阅读