Home » Ошибки » Failed to add /run/systemd/ask-password to directory watch: No space left on device

Failed to add /run/systemd/ask-password to directory watch: No space left on device

Столкнулся с указанной в заголовке ошибкой при эксплуатации большого числа lxc контейнеров на хосте. Ошибка на русском не ищется, я в итоге нашел на немецком решение. Спасибо google translate. Решил поделиться простым решением для тех, кто не шпрехает на инглише :)

Теоретический курс по основам сетевых технологий. Позволит системным администраторам упорядочить и восполнить пробелы в знаниях. Цена очень доступная, есть бесплатный доступ. Все подробности по . Можно пройти тест на знание сетей, бесплатно и без регистрации.

Описание ошибки и решение есть в багтрекере proxmox - https://bugzilla.proxmox.com/show_bug.cgi?id=1042. Суть ошибки кроется в параметре ядра max_user_watches, которое означает число файлов, которое может отслеживать один пользователь. Когда упретесь в лимит, получите ошибку в контейнере:

Failed to add /run/systemd/ask-password to directory watch: No space left on device

У меня она возникала при любой попытке перезапустить службу через systemctl. Проверить значение параметра max_user_watches можно на хосте (не в контейнере).

# cat /proc/sys/fs/inotify/max_user_watches
8192

Значение 8192 дефолтное и в некоторых случаях его недостаточно. Увеличиваем его следующей командой:

# echo 1048576 > /proc/sys/fs/inotify/max_user_watches

Эффект будет заметен сразу, ошибка в контейнерах исчезнет. После перезагрузки параметр опять в дефолт сбросится. Чтобы эффект сохранился и после перезагрузки, добавьте в /etc/sysctl.conf параметр:

fs.inotify.max_user_watches=1048576

Теперь параметр будет установлен на постоянной основе и сохранится после перезагрузки хоста. Если столкнулись с указанным ограничением, скорее всего упретесь и в соседние. Рекомендую их сразу увеличить в 10 раз.

fs.inotify.max_user_instances=1024
fs.inotify.max_queued_events=163840
Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

 

Онлайн курс по Linux

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом "Administrator Linux. Professional" в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров. Что даст вам этот курс:
  • Знание архитектуры Linux.
  • Освоение современных методов и инструментов анализа и обработки данных.
  • Умение подбирать конфигурацию под необходимые задачи, управлять процессами и обеспечивать безопасность системы.
  • Владение основными рабочими инструментами системного администратора.
  • Понимание особенностей развертывания, настройки и обслуживания сетей, построенных на базе Linux.
  • Способность быстро решать возникающие проблемы и обеспечивать стабильную и бесперебойную работу системы.
Проверьте себя на вступительном тесте и смотрите подробнее программу по .

Автор Zerox

Zerox
Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству.

2 комментария

  1. Аватар
    RikiTikiTawi

    Точнее команда выглядит так

    sudo -i
    echo 1048576 > /proc/sys/fs/inotify/max_user_watches
    exit

  2. Аватар

    https://github.com/extremeshok/xshok-proxmox
    Не стоит тупо копировать и выполнять, но многое для своих инсталляций PVE взято отттуда

    Плюс ВСЕГДА активирую LZ4 (жаль, что ZSTD еще не прикрутили) + Z3FOLD везде, где это возможно:

    #!/usr/bin/env bash
    #http://redsymbol.net/articles/unofficial-bash-strict-mode/
    #set -euxo pipefail
    #set -euo pipefail
    set -x
    IFS=$'\n\t'

    # Set the local
    export LANG="en_US.UTF-8"
    export LC_ALL="C"

    for module in lz4 lz4_compress z3fold
    do grep -iqw "^$module$" /etc/initramfs-tools/modules || printf '%s\n' "$module" >> /etc/initramfs-tools/modules
    done
    update-initramfs -u

    [ ! -d /etc/default/grub.d ] && mkdir -p /etc/default/grub.d
    echo 'GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT zswap.enabled=1 zswap.compressor=lz4 zswap.zpool=z3fold zswap.max_pool_percent=25"' > /etc/default/grub.d/zswap.cfg
    update-grub

    Зы. В PVE пока не работает. В последнем Дебиане с последним ядром 4.19 тоже. В Убунте не проверял.
    github.com/facebook/zstd
    http://www.linuxmint.com.br/discussion/51150/habilitando-zswap-zstd-z3fold

Добавить комментарий

Ваш адрес email не будет опубликован.

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.