Не удается подключить NFS-экспорты, если не выполнить exportfs -ar после перезагрузки.

Вопрос или проблема

У меня есть server и client — оба работают под управлением Debian 12.

У меня есть экспорт NFS на server, который был смонтирован на client в течение нескольких месяцев. Сегодня мне пришлось перестроить/переустановить server.

Я переустановил NFS на server и настроил свои экспорты.

Когда я запускаю exportfs -ar на server, client может монтировать экспорт.

Но если я перезагружаю, то client не может монтировать экспорт, пока я снова не запускаю exportfs -ar на server.

Я думал, что server автоматически экспортирует монтирования. Что я упускаю?

Я не вижу никаких проблем в логах, но, возможно, я что-то пропустил?

root@server:/# cat /etc/exports 
/data   desk(no_subtree_check,rw,no_root_squash,sync)
root@serve:/home/nacho# 
root@serve:/# systemctl status nfs-kernel-server
● nfs-server.service - NFS server and services
     Loaded: loaded (/lib/systemd/system/nfs-server.service; enabled; preset: enabled)
    Drop-In: /run/systemd/generator/nfs-server.service.d
             └─order-with-mounts.conf
     Active: active (exited) since Sun 2025-01-19 23:13:29 EST; 17min ago
   Main PID: 740 (code=exited, status=0/SUCCESS)
        CPU: 2ms

Jan 19 23:13:29 serve systemd[1]: Starting nfs-server.service - NFS server and services...
Jan 19 23:13:29 serve exportfs[739]: exportfs: Failed to resolve desk
Jan 19 23:13:29 serve exportfs[739]: exportfs: Failed to resolve desk
Jan 19 23:13:29 serve systemd[1]: Finished nfs-server.service - NFS server and services.
root@serve:/# cat /etc/default/nfs-common 
NEED_STATD="no"
STATDOPTS=
NEED_IDMAPD="yes"
NEED_GSSD=
root@serve:/# cat /etc/default/nfs-kernel-server 
RPCNFSDCOUNT=8
RPCNFSDPRIORITY=0
RPCNFSDOPTS="-N 2 -N 3"
RPCMOUNTDOPTS="--manage-gids -N 2 -N 3"
NEED_SVCGSSD=""
RPCSVCGSSDOPTS=""

Ответ или решение

Для решения проблемы, когда клиент не может монтировать NFS-экспорт до тех пор, пока на сервере не будет выполнена команда exportfs -ar после каждой перезагрузки, необходимо рассмотреть несколько аспектов.

Теория

NFS (Network File System) — это протокол, который позволяет серверу экспортировать файловую систему для удаленного доступа. Клиенты могут монтировать этот экспорт и работать с ним, как если бы он был локальной файловой системой. Чтобы экспорт был доступен клиентам после перезагрузки, сервер должен корректно поддерживать его конфигурацию и состояние. Команда exportfs -ar вручную обновляет таблицы exportfs, что устраняет проблему, но не решает её первопричину.

Пример

В представленном сценарию, где Debian 12 используется как на стороне сервера, так и на стороне клиента, несколько вещей могут затруднять автоматическую работу NFS после перезагрузки.

  1. Проблемы с разрешением имен: Из системных логов видно, что возникла ошибка exportfs: Failed to resolve desk. Это предполагает, что сервер не может разрешить имя хоста "desk" при старте. Если используется имя хоста, убедитесь, что оно корректно разрешается в IP-адрес с помощью DNS или файла /etc/hosts.

  2. Конфигурация сервиса NFS: Сервис NFS конфигурируется с помощью нескольких файлов, включая /etc/exports и конфигурационные файлы в /etc/default/. Ваша конфигурация может нуждаться в модификации для корректного автоматического старта и экспорта файловой системы.

  3. Инициализация сервисов: Проверка состояния nfs-kernel-server показывает, что он активируется и завершается сразу после старта. Это может указывать на проблемы с процессами, которые требуются для экспорта. Различные зависимости могли установиться некорректно при переустановке сервера.

Применение

Чтобы исправить проблему, следуйте этим шагам:

  1. Разрешение имен:

    • Убедитесь, что DNS сервер правильно настроен и доступен.
    • Проверьте файл /etc/hosts на сервере, чтобы он содержал строку с правильным разрешением имени desk в соответствующий IP-адрес.
  2. Проверка конфигурации NFS:

    • Убедитесь, что в /etc/exports указываются IP-адреса вместо имени хоста, чтобы избежать проблем с разрешением имен, если DNS не обязателен.
    • Перепроверьте, чтобы не было синтаксических ошибок или неправильных настроек, которые могут вызывать сбои.
  3. Обновление зависимостей и порядка инициализации:

    • Проверьте список зависимостей nfs-kernel-server, используя systemctl list-dependencies nfs-kernel-server, чтобы убедиться, что все сопутствующие службы активно работают при старте.
    • Убедитесь, что NetworManager или сетевые службы активны и инициализированы до старта NFS сервиса.
  4. Логи и отладка:

    • Используйте journalctl -xe для получения более детальных логов и выявления дополнительных ошибок или предупреждений, связанных с NFS.
    • Проверьте настройки rpc-mountd и других RPC-сервисов.
  5. Автоматическая перезагрузка экспорта:

    • В качестве временного решения можно добавить команду exportfs -ar в скрипт, выполняющийся после загрузки системы, например, /etc/rc.local, для автоматизации процесса до решения основной проблемы.

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

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

Капча загружается...