SystemdDoctor
служба не работает монтирование сеть nfs

Сетевой каталог подвисает: жёсткое монтирование NFS

При жёстком монтировании NFS операции с файлами ждут сервер бесконечно. Если сервер стал недоступен, службы, работающие с каталогом, подвисают, а остановить их обычными средствами не получается.

Что это значит

Признак именно этой проблемы — процессы в состоянии непрерываемого ожидания: их не берёт даже сигнал KILL. Единственный выход — вернуть доступность сервера или перемонтировать ресурс принудительно.

Вероятные причины

По порядку: сверху то, что встречается чаще.

  1. Жёсткое монтирование без ограничения времени

    По умолчанию NFS монтируется жёстко: клиент ждёт сервер сколько нужно. Это защищает данные, но подвешивает всё, что обращается к каталогу.

  2. Служба зависит от каталога без объявленной зависимости

    systemd не знает о связи и не останавливает службу вместе с недоступным ресурсом.

  3. Процессы в непрерываемом ожидании

    Такие процессы не реагируют ни на один сигнал. Перезапуск службы не помогает, остановка висит до таймаута.

Диагностика

Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.

Параметры монтирования: жёсткое или мягкое.

findmnt -t nfs4,nfs -o TARGET,SOURCE,OPTIONS

Процессы в непрерываемом ожидании.

ps -eo pid,stat,cmd | awk '$2 ~ /D/'

Сообщения ядра о состоянии сервера NFS.

journalctl -k -b --no-pager | grep -i nfs | tail -10

Решение

Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.

1. Жёсткое монтирование без ограничения времени
Почему происходит
По умолчанию NFS монтируется жёстко: клиент ждёт сервер сколько нужно. Это защищает данные, но подвешивает всё, что обращается к каталогу.
Как проверить
Посмотрите параметры монтирования.
findmnt -t nfs4,nfs -o TARGET,SOURCE,OPTIONS
Как исправить
Для каталогов, где важнее доступность, используйте мягкое монтирование с таймаутами: soft,timeo=100,retrans=3. Для данных, потеря которых недопустима, оставляйте жёсткое, но добавьте зависимости и мониторинг.
2. Служба зависит от каталога без объявленной зависимости
Почему происходит
systemd не знает о связи и не останавливает службу вместе с недоступным ресурсом.
Как проверить
Посмотрите зависимости службы.
systemctl show myapp.service -p RequiresMountsFor
Как исправить
Добавьте RequiresMountsFor= с нужным путём: тогда порядок запуска и остановки будет правильным.
3. Процессы в непрерываемом ожидании
Почему происходит
Такие процессы не реагируют ни на один сигнал. Перезапуск службы не помогает, остановка висит до таймаута.
Как проверить
Посмотрите состояния процессов.
ps -eo pid,stat,cmd | awk '$2 ~ /D/' | head
Как исправить
Восстановите доступность сервера или перемонтируйте принудительно. Иногда помогает только перезагрузка машины — это цена жёсткого монтирования.
sudo umount -f -l /mnt/nfs

Пример вывода

Сервер NFS недоступен, процессы подвисли. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.

kernel: nfs: server nfs.example.internal not responding, still trying
myapp[1200]: (нет вывода — процесс заблокирован)

$ ps -eo pid,stat,cmd | awk '$2 ~ /D/'
1200 D    /usr/local/bin/myapp

Связанные ошибки

Источники

  • nfs(5)
    Параметры монтирования hard, soft, timeo, retrans.
    официальная документация, systemd 255
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
    Воспроизведено остановкой тестового сервера NFS при жёстком монтировании.
    собственная проверка, systemd 255
    сверено 15 сентября 2026