Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.
NFS: Server is not responding, still trying... Linux / DevOps

NFS: Server is not responding, still trying — Решение зависания NFS в Linux

Обновлено: 18.08.2026  ·  Официальная база знаний

Архитектура ошибки и симптомы сбоя

Сообщение «NFS: Server is not responding, still trying...» генерируется подсистемой NFS Client VFS в ядре Linux. Ошибка означает, что RPC-клиент ядра отправил запрос на удаленный NFS-сервер, но не получил ответа в течение таймаута (параметр timeo). При монтировании с опцией hard (по умолчанию) ядро переводит все обращающиеся к шаре процессы в состояние беспрерывного ожидания (D-state / Uninterruptible Sleep), что блокирует файловые операции, системные утилиты (df, ls) и вызывает резкий рост Load Average.

Диагностическая таблица параметров сбоя

ПараметрЗначениеИнженерный смысл сбоя
RPC Timeouttimeo / retransВремя ожидания RPC ответа (в десятых долях секунды) и число повторов.
Hard MountInfinite Retry LoopКлиент бесконечно повторяет запрос, намертво подвешивая вызвавший процесс.
D-State (Uninterruptible)Process BlockПоток невозможно завершить сигналом kill -9 до ответа NFS-сервера.

Пошаговое дерево решений и сценарии траблшутинга

Сценарий 1: Проверка доступности RPC и NFS портов на сервере

# Проверка портов RPC (111) и NFS (2049) на стороне сервера:
rpcinfo -p nfs-server-ip

# Проверка прохождения пакетов без фрагментации (тест MTU):
ping -M do -s 8972 nfs-server-ip  # Для Jumbo Frames (MTU 9000)
ping -M do -s 1472 nfs-server-ip  # Для стандартного MTU 1500

Сценарий 2: Аварийное принудительное размонтирование зависшей шары

Если процессы заблокированы, выполните ленивое и принудительное размонтирование:

# Принудительное размонтирование (Force + Lazy):
sudo umount -f -l /mnt/nfs_share

# Проверка зависших точек монтирования:
cat /proc/mounts | grep nfs

Сценарий 3: Оптимизация параметров монтирования NFS в /etc/fstab

Используйте протокол TCP, настройте таймауты и используйте безопасные параметры отказоустойчивости:

# Рекомендуемая строка в /etc/fstab (NFSv4 с таймаутом и прерыванием):
nfs-server-ip:/exported_dir /mnt/nfs_share nfs4 rw,proto=tcp,hard,intr,timeo=60,retrans=3,rsize=1048576,wsize=1048576,nofail,_netdev 0 0
Сетевые хранилища NFS подвешивают сервера виртуализации или резервного копирования?
ITSTM выполнит тюнинг RPC-очередей ядра, настройку мультипасинга nconnect, балансировку высокопроизводительных NAS и CephFS.
Практический опыт инженера: Всегда используйте NFSv4.2 вместо устаревшего NFSv3. В четвертой версии весь стек протоколов работает строго через один TCP-порт 2049, исключая случайные блокировки динамических портов rpc.mountd и rpc.statd корпоративными фаерволами.

Частые вопросы (FAQ)

В чем разница между опциями монтирования hard и soft в NFS?

Опция hard бесконечно повторяет RPC-запросы при обрыве связи, защищая файлы от повреждения при сбоях сети, но замораживает процессы. Опция soft при превышении таймаута возвращает ошибку EIO приложению, что предотвращает зависание процессов, но может повредить целостность баз данных.

Что дает параметр nconnect в современных ядрах Linux (NFSv4.1+)?

Опция nconnect=4 (или до 16) указывает ядру создать несколько параллельных TCP-сессий к одному NFS-серверу для одной точки монтирования, что кратно увеличивает пропускную способность сетевого хранилища.

Почему процессы в состоянии 'D' нельзя убить через kill -9?

Процесс находится в ядре внутри системного вызова драйвера ФС (Task Uninterruptible Sleep). Ядро принципиально игнорирует любые сигналы (включая SIGKILL) до тех пор, пока драйвер оборудования или сети не завершит операцию I/O.

Как параметр _netdev помогает при загрузке системы?

Параметр _netdev сообщает systemd, что данная файловая система требует наличия активной сети. Это предотвращает попытки монтирования NFS до инициализации сетевых интерфейсов при старте ОС.