Вопрос или проблема
Мне нужно использовать версию NFS 3 в организации для Bitbucket Datacenter.
Я выполнил следующие шаги.
-
Обновления конфигурации NFS-сервера Отредактировал
/etc/default/nfs-kernel-server
, чтобы отключить версии NFS 2 и 4 и установить фиксированный порт для mountd:RPCMOUNTDOPTS="--manage-gids --port 9024" RPCNFSDOPTS="-N 4 -N 2"
-
Настроен
/etc/default/nfs-common
, чтобы установить фиксированные порты дляstatd
иlockd
:NEED_STATD=yes STATDOPTS="--port 9028 --outgoing-port 9029" LOCKD_OPTS="-p 9027 -o 9026"
-
Обновлен
/etc/modprobe.d/lockd.conf
, чтобы установить конкретные порты TCP и UDP дляlockd
:options lockd nlm_tcpport=9027 options lockd nlm_udpport=9028
-
Применены конфигурации и перезапущены службы:
sudo systemctl restart nfs-kernel-server rpcbind sudo systemctl daemon-reload
Наблюдения из вывода rpcinfo -p
: После применения вышеуказанных конфигураций вывод rpcinfo -p
показал следующее:
program vers proto port service
100005 1 udp 40661 mountd
100005 1 tcp 45805 mountd
100005 2 udp 55256 mountd
100005 2 tcp 50431 mountd
100005 3 udp 34768 mountd
100005 3 tcp 47275 mountd
Несмотря на то, что я установил RPCMOUNTDOPTS="--port 9024"
в /etc/default/nfs-kernel-server
, mountd
продолжал использовать случайные порты (например, 40661, 45805). Это предполагает, что конфигурация могла быть применена некорректно.
Ошибка монтирования (mount.nfs: Connection timed out
) может быть связана с тем, что служба mountd
связывается с случайными портами, а не с указанным портом (9024). Это вызывает несоответствие в конфигурациях брандмауэра и групп безопасности, что приводит к таймауту во время попытки монтирования.
Пожалуйста, я что-то пропустил? Нужно ли мне что-то изменить, чтобы использовать фиксированный порт для mountd
?
Ответ или решение
Чтобы сменить версию NFS с 4 на 3, необходимо выполнить ряд шагов. Вы уже сделали несколько изменений, но давайте подробно разберем все этапы и выясним, что могло пойти не так.
1. Настройка NFS сервера
Вы начали с редактирования конфигурационного файла /etc/default/nfs-kernel-server
. Важно правильно указать опции, чтобы отключить ненужные версии и установить фиксированный порт для mountd
:
RPCMOUNTDOPTS="--manage-gids --port 9024"
RPCNFSDOPTS="-N 4 -N 2"
Проблема заключается в том, что вы указываете типы NFS для монтирования, но если сервер продолжает использовать случайные порты, возможно, что конфигурация не применилась должным образом.
2. Настройка общего NFS
Вы правильно настроили файл /etc/default/nfs-common
для установки фиксированных портов для statd
и lockd
:
NEED_STATD=yes
STATDOPTS="--port 9028 --outgoing-port 9029"
LOCKD_OPTS="-p 9027 -o 9026"
Обратите внимание, что правильная настройка этих параметров имеет значение для работы NFS.
3. Конфигурация lockd
Вы обновили файл /etc/modprobe.d/lockd.conf
. Эта настройка влияет на то, какие порты будут использоваться для lockd
:
options lockd nlm_tcpport=9027
options lockd nlm_udpport=9028
Эти порты также должны быть открыты в вашем фаерволе.
4. Применение конфигураций и перезапуск служб
Вы правильно выполнили команду перезапуска:
sudo systemctl restart nfs-kernel-server rpcbind
sudo systemctl daemon-reload
5. Проверка конфигурации с помощью rpcinfo
Тем не менее, ваше наблюдение о том, что rpcinfo -p
показывает, что mountd
все еще использует случайные порты, очень важно. Чтобы убедиться, что ваша конфигурация применяется корректно, выполните:
sudo rpcbind -w
Проверьте журнал ошибок для обнаружения возможных проблем:
sudo journalctl -xe
6. Возможные решения
-
Перезапустите все службы NFS:
Возможно, вам потребуется полностью остановить сервер NFS перед его повторным запуском:sudo systemctl stop nfs-kernel-server rpcbind sudo systemctl start rpcbind sudo systemctl start nfs-kernel-server
-
Проверьте настройки файервола:
Убедитесь, что порты 9024, 9027, 9028 и 9029 открыты. Например, с использованиемufw
вы можете выполнить:sudo ufw allow 9024/tcp sudo ufw allow 9027/tcp sudo ufw allow 9028/tcp sudo ufw allow 9029/tcp
-
Проверка конфигурации:
Убедитесь, что нет конфликтов в других конфигурационных файлах, которые могут переопределять ваши настройки. Проверьте, нет ли дубликатов или неверных директив. -
Перезапустите сервис rpcbind:
Иногда это может помочь решить проблемы с портами.
Если после всех этих шагов mountd
по-прежнему использует случайные порты, рассмотрите возможность детального изучения официальной документации или сообщества по NFS для получения дополнительной информации.
Следуя этим шагам, вы сможете эффективно перейти с NFS версии 4 на версию 3 и решить проблему с монтированием.