Изменение версии NFS с 4 на 3

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

Мне нужно использовать версию NFS 3 в организации для Bitbucket Datacenter.

Я выполнил следующие шаги.

  1. Обновления конфигурации NFS-сервера Отредактировал /etc/default/nfs-kernel-server, чтобы отключить версии NFS 2 и 4 и установить фиксированный порт для mountd:

    RPCMOUNTDOPTS="--manage-gids --port 9024" 
    RPCNFSDOPTS="-N 4 -N 2"
    
  2. Настроен /etc/default/nfs-common, чтобы установить фиксированные порты для statd и lockd:

    NEED_STATD=yes
    STATDOPTS="--port 9028 --outgoing-port 9029" LOCKD_OPTS="-p 9027 -o 9026"
    
  3. Обновлен /etc/modprobe.d/lockd.conf, чтобы установить конкретные порты TCP и UDP для lockd:

    options lockd nlm_tcpport=9027 options lockd nlm_udpport=9028
    
  4. Применены конфигурации и перезапущены службы:

    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. Возможные решения

  1. Перезапустите все службы NFS:
    Возможно, вам потребуется полностью остановить сервер NFS перед его повторным запуском:

    sudo systemctl stop nfs-kernel-server rpcbind
    sudo systemctl start rpcbind
    sudo systemctl start nfs-kernel-server
  2. Проверьте настройки файервола:
    Убедитесь, что порты 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
  3. Проверка конфигурации:
    Убедитесь, что нет конфликтов в других конфигурационных файлах, которые могут переопределять ваши настройки. Проверьте, нет ли дубликатов или неверных директив.

  4. Перезапустите сервис rpcbind:
    Иногда это может помочь решить проблемы с портами.

Если после всех этих шагов mountd по-прежнему использует случайные порты, рассмотрите возможность детального изучения официальной документации или сообщества по NFS для получения дополнительной информации.

Следуя этим шагам, вы сможете эффективно перейти с NFS версии 4 на версию 3 и решить проблему с монтированием.

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

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