Вопрос или проблема
У меня есть 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 после перезагрузки.
-
Проблемы с разрешением имен: Из системных логов видно, что возникла ошибка
exportfs: Failed to resolve desk
. Это предполагает, что сервер не может разрешить имя хоста "desk" при старте. Если используется имя хоста, убедитесь, что оно корректно разрешается в IP-адрес с помощью DNS или файла/etc/hosts
. -
Конфигурация сервиса NFS: Сервис NFS конфигурируется с помощью нескольких файлов, включая
/etc/exports
и конфигурационные файлы в/etc/default/
. Ваша конфигурация может нуждаться в модификации для корректного автоматического старта и экспорта файловой системы. -
Инициализация сервисов: Проверка состояния
nfs-kernel-server
показывает, что он активируется и завершается сразу после старта. Это может указывать на проблемы с процессами, которые требуются для экспорта. Различные зависимости могли установиться некорректно при переустановке сервера.
Применение
Чтобы исправить проблему, следуйте этим шагам:
-
Разрешение имен:
- Убедитесь, что DNS сервер правильно настроен и доступен.
- Проверьте файл
/etc/hosts
на сервере, чтобы он содержал строку с правильным разрешением имениdesk
в соответствующий IP-адрес.
-
Проверка конфигурации NFS:
- Убедитесь, что в
/etc/exports
указываются IP-адреса вместо имени хоста, чтобы избежать проблем с разрешением имен, если DNS не обязателен. - Перепроверьте, чтобы не было синтаксических ошибок или неправильных настроек, которые могут вызывать сбои.
- Убедитесь, что в
-
Обновление зависимостей и порядка инициализации:
- Проверьте список зависимостей
nfs-kernel-server
, используяsystemctl list-dependencies nfs-kernel-server
, чтобы убедиться, что все сопутствующие службы активно работают при старте. - Убедитесь, что NetworManager или сетевые службы активны и инициализированы до старта NFS сервиса.
- Проверьте список зависимостей
-
Логи и отладка:
- Используйте
journalctl -xe
для получения более детальных логов и выявления дополнительных ошибок или предупреждений, связанных с NFS. - Проверьте настройки
rpc-mountd
и других RPC-сервисов.
- Используйте
-
Автоматическая перезагрузка экспорта:
- В качестве временного решения можно добавить команду
exportfs -ar
в скрипт, выполняющийся после загрузки системы, например,/etc/rc.local
, для автоматизации процесса до решения основной проблемы.
- В качестве временного решения можно добавить команду
Применение вышеописанных методов позволит более глубоко изучить и устранить проблему, возникающую при автоматическом экспорте NFS после перезагрузки сервера.