【问题标题】:AWS Jenkins No space left on deviceAWS Jenkins 设备上没有剩余空间
【发布时间】:2021-10-26 21:42:41
【问题描述】:

由于以下错误,今天我的 Jenkins 开始失败并阻止访问:

java.io.IOException: No space left on device
    at sun.nio.ch.FileDispatcherImpl.write0(Native Method)
    at sun.nio.ch.FileDispatcherImpl.write(FileDispatcherImpl.java:60)
    at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)
    at sun.nio.ch.IOUtil.write(IOUtil.java:65)
    at sun.nio.ch.FileChannelImpl.write(FileChannelImpl.java:211)
    at hudson.util.FileChannelWriter.write(FileChannelWriter.java:73)
    at java.io.Writer.write(Writer.java:192)
    at hudson.util.AtomicFileWriter.write(AtomicFileWriter.java:163)
    at java.io.Writer.write(Writer.java:157)
    at hudson.XmlFile.write(XmlFile.java:191)
    at jenkins.model.Jenkins.save(Jenkins.java:3474)
    at jenkins.model.Jenkins.<init>(Jenkins.java:1012)
    at hudson.model.Hudson.<init>(Hudson.java:86)
    at hudson.model.Hudson.<init>(Hudson.java:82)
    at hudson.WebAppMain$3.run(WebAppMain.java:298)
Caused: hudson.util.HudsonFailedToLoad
    at hudson.WebAppMain$3.run(WebAppMain.java:315)

事实上,我的 Jenkins 存储空间已满。根据 aws 文档,我将存储大小从门户增加到 24Gb。之后,我从终端访问我的 ec2 实例。

按照以下步骤: https://aws.amazon.com/premiumsupport/knowledge-center/ebs-volume-size-increase/

我可以按如下方式增加存储量

NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
loop0     7:0    0 33.3M  1 loop /snap/amazon-ssm-agent/3552
loop1     7:1    0 55.5M  1 loop /snap/core18/1997
loop2     7:2    0 32.3M  1 loop /snap/snapd/13170
loop3     7:3    0 61.9M  1 loop /snap/core20/1169
loop4     7:4    0 32.3M  1 loop /snap/snapd/12883
loop5     7:5    0 55.4M  1 loop /snap/core18/2128
loop6     7:6    0   25M  1 loop /snap/amazon-ssm-agent/4046
loop7     7:7    0 70.3M  1 loop /snap/lxd/21029
loop8     7:8    0 61.8M  1 loop /snap/core20/1081
loop9     7:9    0 67.3M  1 loop /snap/lxd/21545
xvda    202:0    0   24G  0 disk 
└─xvda1 202:1    0   24G  0 part /

xvda已经升级到24G了,很完美,可以启动Jenkins服务了。但是当我尝试登录时,我再次遇到上述相同的错误。 为了仔细检查一切是否正确,我运行了命令df -hT,结果是这样的

Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/root      ext4      7.7G  7.7G     0 100% /
devtmpfs       devtmpfs  2.0G     0  2.0G   0% /dev
tmpfs          tmpfs     2.0G     0  2.0G   0% /dev/shm
tmpfs          tmpfs     394M   41M  354M  11% /run
tmpfs          tmpfs     5.0M     0  5.0M   0% /run/lock
tmpfs          tmpfs     2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/loop0     squashfs   34M   34M     0 100% /snap/amazon-ssm-agent/3552
/dev/loop1     squashfs   56M   56M     0 100% /snap/core18/1997
/dev/loop4     squashfs   33M   33M     0 100% /snap/snapd/12883
/dev/loop5     squashfs   56M   56M     0 100% /snap/core18/2128
/dev/loop6     squashfs   25M   25M     0 100% /snap/amazon-ssm-agent/4046
/dev/loop7     squashfs   71M   71M     0 100% /snap/lxd/21029
/dev/loop8     squashfs   62M   62M     0 100% /snap/core20/1081
/dev/loop9     squashfs   68M   68M     0 100% /snap/lxd/21545
/dev/loop2     squashfs   33M   33M     0 100% /snap/snapd/13170
/dev/loop3     squashfs   62M   62M     0 100% /snap/core20/1169
tmpfs          tmpfs     394M     0  394M   0% /run/user/1000
tmpfs          tmpfs      10M  3.2M  6.9M  32% /tmp
tmpfs          tmpfs     394M     0  394M   0% /run/user/113

我看到/dev/root 已被 100% 使用。但我无法升级它的大小,也找不到任何关于如何升级卷的文档。如果我尝试运行命令:

sudo growpart /dev/root 1

我收到此错误:

WARN: unknown label 
failed [sfd_dump:1] sfdisk --unit=S --dump /dev/root
sfdisk: /dev/root: does not contain a recognized partition table
FAILED: failed to dump sfdisk info for /dev/root

对不起,我是这里的新手,这是我第一次遇到这个问题。

谁能解释我如何解决这个错误

非常感谢您的宝贵时间和帮助

【问题讨论】:

  • Jenkins 通常安装在 /var/lib/jenkins 中,它似乎在根卷中。大目录是 (app) 日志目录,然后是每个构建的日志,位于 jobs/folder/jobs/jobname/builds。如果您没有日志轮换,它会增长。您可以安全地删除应用程序日志并安装 logrotate(搜索 Jenkins logrotate)。然后启动 Jenkins 并设置作业日志保留策略。你可以运行“find /var/lib/Jenkins/jobs -type d -prune -exec do -hs {} \;”看看b4及之后有多大。您可能不得不强制清理作业日志(S/O 上某处的 groovy 脚本)。
  • 另外,如果您归档Artifacts,它们也会保留在构建目录中。构建后清理工作区(cleansWS)也将节省空间。考虑为 Jenkins 设置一个单独的卷并将安装移到那里。并确保周围没有核心转储!

标签: amazon-web-services jenkins amazon-ec2


【解决方案1】:

即使您添加了一些存储空间并扩大了 xvda1 分区,您也没有扩大主文件系统(根卷组)。我很高兴看到 lsblk、vgs、pvs 命令的输出以及有关您的操作系统的一般信息。您很可能需要将可用空间(来自 xvda1 分区)添加到根 vg(/dev/root 仍然只有 7.7G)。

PS。老实说,我不知道命令 &lt;growpart&gt; 但不是 growpart /dev/root 我会使用 growpart /dev/xvda 1 - 与指令对齐(@9​​87654324@ 是附加磁盘的名称)

【讨论】:

    【解决方案2】:

    增加分区后,你也需要调整文件系统的大小:

    resize2fs /dev/xvda1
    

    【讨论】:

      猜你喜欢
      • 2020-12-16
      • 2020-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-29
      • 2012-12-29
      • 2012-01-14
      相关资源
      最近更新 更多