Нфс рун тюнинг

Готов к безумию? НФС Рун тюнинг даст тебе шанс создать адскую тачку! Прокачай движок, стиль и рви трассу!

Дата публикации: 27 апреля 2026 г.
Ниже приведён подробный гайд по «рун-тюнингу» (runtime tuning) NFS-сервера и клиента в Ubuntu 18.04/20.04/22.04 и выше.
Мы разберёмся, почему может падать nfs-mountd.service, как избежать ошибок «failed», а также как выжать максимальную скорость и стабильность из вашей NFS-сети.

Оглавление

  1. Почему падает nfs-mountd.service и что делать
  2. Быстрая диагностика
  3. Рун-тюнинг: параметры rpc, mountd и ядра
  4. Продвинутое конфигурирование /etc/exports
  5. Оптимизация на стороне клиента
  6. Автозапуск и юниты systemd
  7. Чек-лист по устранению ошибок

Почему падает nfs-mountd.service и что делать

Сервис nfs-mountd.service является частью пакета nfs-kernel-server. Он отвечает за обработку
запросов mount от клиентов. Ошибка «nfs-mountd.service failed» обычно возникает по одной из причин:

  • Не запущен rpcbind (NFS зависит от RPC-портов).
  • Порт, который пытается занять rpc.mountd, уже используется (конфликт).
  • Ошибки в /etc/exports (синтаксис, несуществующие директории).
  • Файл /var/lib/nfs/etab повреждён или имеет неправильные права.
  • SELinux/AppArmor блокирует доступ (редко в Ubuntu, но возможно).

Быстрая диагностика

2.1 Проверяем статус сервисов


sudo systemctl status rpcbind
sudo systemctl status nfs-kernel-server
sudo systemctl status nfs-mountd.service

2.2 Смотрим логи


sudo journalctl -u nfs-mountd.service -n 50
sudo journalctl -u nfs-kernel-server -n 50

2.3 Проверяем доступность экспортов


sudo exportfs -rav # перезагружаем экспорты
showmount -e localhost

Рун-тюнинг: параметры rpc, mountd и ядра

«Рун-тюнинг» — это изменение параметров «на лету», без перезагрузки. Ниже приведены ключевые параметры.

3.1 Переменные /etc/default/nfs-kernel-server



RPCMOUNTDOPTS="--manage-gids --port 4002 --num-threads 16"
NFSDOPTS="-N 2 -N 3 -V 4.2"
  • —port 4002, фиксируем порт mountd, чтобы не было коллизий.
  • —num-threads 16 — увеличиваем потоки mountd (актуально при >100 клиентов).
  • -N 2 -N 3 -V 4.2, отключаем NFSv2/v3, оставляем только NFSv4.2.

3;2 Настройка sysctl (высокая пропускная способность)



net.core.rmem_default = 262144
net.core.rmem_max = 16777216
net.core.wmem_default = 262144
net.core.wmem_max = 16777216
sunrpc.tcp_slot_table_entries = 128
sunrpc.udp_slot_table_entries = 128

Применяем:

sudo sysctl -p /etc/sysctl.d/99-nfs-tuning.conf

3.3 Параметры модуля nfsd


echo 128 | sudo tee /sys/module/nfsd/parameters/max_block_size
echo 32768 | sudo tee /proc/sys/fs/nfsd/max_block_size

Продвинутое конфигурирование /etc/exports

4.1 Базовый пример


/srv/nfs 192.168.1.0/24(rw,sync,no_subtree_check,no_root_squash,insecure)

4.2 Экспорт с тюнингом для высокой нагрузки


/srv/cephfs 10.0.0.0/8(rw,sync,no_subtree_check,no_root_squash,insecure,fsid=1,nohide,crossmnt)
  • fsid=1 — нужен для корневой точки экспорта.
  • nohide + crossmnt — прозрачный экспорт подмонтированных томов (например, CephFS).

Оптимизация на стороне клиента

5.1 Монтирование с оптимальными опциями


sudo mount -t nfs4 -o vers=4.2,proto=tcp,hard,intr,rsize=1048576,wsize=1048576,timeo=600,retrans=2 
 192.168.1.10:/srv/nfs /mnt/nfs
  • vers=4.2, последняя стабильная версия.
  • rsize/wsize=1M — увеличение размеров пакетов.
  • hard,intr, «жёсткое» монтирование, но с возможностью прерывания.

5.2 fstab для постоянного монтирования


192.168.1.10:/srv/nfs /mnt/nfs nfs4 _netdev,vers=4.2,proto=tcp,rsize=1048576,wsize=1048576,timeo=600 0 0

Автозапуск и юниты systemd

В Ubuntu 18.04+ юниты nfs-server.service и nfs-mountd.service зависят от rpcbind.service.
При изменении конфигурации лучше перезапускать всю цепочку:


sudo systemctl restart rpcbind
sudo systemctl restart nfs-kernel-server
sudo systemctl restart nfs-mountd.service

6.1 Включаем автозапуск


sudo systemctl enable rpcbind nfs-kernel-server nfs-mountd

Чек-лист по устранению ошибок

  • Всегда запускайте rpcbind до nfs-kernel-server.
  • Проверьте, что порты rpc.mountd и rpc.nfsd указаны в /etc/services или зафиксированы в /etc/default/nfs-kernel-server.
  • Убедитесь, что каталоги из /etc/exports реально существуют и доступны.
  • Очистите кэши и перезапустите:
    sudo exportfs -fav && sudo systemctl restart nfs-kernel-server
  • Проверьте файрвол (UFW):
    
    sudo ufw allow from 192.168.1.0/24 to any port 2049
    sudo ufw allow from 192.168.1.0/24 to any port 4002
     
  • Используйте tcpdump или Wireshark для анализа трафика, если клиент не может подключиться.

Следуя вышеописанным шагам, вы не только избавитесь от ошибок nfs-mountd.service failed,

но и добьётесь стабильной высокой производительности NFS в сетях до 10 GbE и выше.
Ключевые правила: фиксируйте порты, тюните sysctl, используйте NFSv4.2 и отключайте устаревшие версии протокола.

Дополнительно: если ваше хранилище основано на CephFS, то экспорт его через NFS-Ganesha
даст ещё более гибкие сценарии, но это тема отдельной статьи.