AWS Jenkins На устройстве не осталось места

#amazon-web-services #jenkins #amazon-ec2

Вопрос:

Сегодня мой Дженкинс начал выходить из строя и блокировать доступ из-за следующей ошибки:

 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)
 

На самом деле мое хранилище Дженкинса заполнено. Согласно документации aws, я увеличил размер хранилища с портала до 24 ГБ. После этого я получаю доступ к своему экземпляру 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 был обновлен до 24 г, с идеально, я смог запустить сервис 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
 

Извините, я здесь полный новичок, и я впервые сталкиваюсь с этой проблемой.

Может ли кто-нибудь объяснить мне, как я могу решить эту ошибку

Большое вам спасибо за ваше время и помощь

Комментарии:

1. Дженкинс обычно устанавливается в /var/lib/дженкинс, который, по-видимому, находится в корневом томе. Большие каталоги-это каталог журналов (приложений), а затем журналы для каждой сборки в разделе задания/папка/задания/имя задания/сборки. Если у вас нет вращения бревна, оно растет. Вы можете безопасно удалить журнал приложений и установить logrotate (поиск Jenkins logrotate) . Затем запустите Jenkins и установите политику хранения журнала заданий. Вы можете запустить «найти /var/lib/Дженкинс/задания типа d-prune-exec do-hs {};», чтобы узнать, насколько они велики в4 и после. Вам, вероятно, придется принудительно выполнить очистку журнала заданий (отличный скрипт где-нибудь в S/O).

2. Кроме того, если вы архивируете результаты, они тоже остаются в каталогах сборок. Очистка рабочей области после сборки (очистка) также сэкономит место. Подумайте о настройке отдельного тома для Дженкинса и перенесите установку туда. И убедитесь, что у вас нет свалок с ядрами, валяющихся вокруг!

Ответ №1:

Несмотря на то, что вы добавили некоторое хранилище и увеличили раздел xvda1, вы не увеличили основную файловую систему (корневую группу томов). Я был бы рад увидеть вывод команд lsblk, vgs, pvs, а также общую информацию о вашей операционной системе. Вполне вероятно, вам нужно добавить доступное пространство (из раздела xvda1) в корневой vg (у/dev/root все еще только 7,7 G).

пс. честно говоря, я не знаю команды <growpart> , но вместо growpart /dev/root этого я бы использовал growpart /dev/xvda 1 — для согласования с инструкцией ( /dev/xvda это имя прикрепленного диска).

Ответ №2:

После увеличения раздела вам также потребуется изменить размер файловой системы:

 resize2fs /dev/xvda1