Вопрос или проблема
0
Мне нужно использовать версию 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″
Настроил файл /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: Время соединения истекло) может быть вызвана тем, что служба mountd привязывается к случайным портам вместо указанного порта (9024). Это приводит к несовпадению конфигураций брандмауэра и групп безопасности, что вызывает истечение времени во время попытки монтирования.
Пожалуйста, не пропустил ли я что-то? Нужно ли мне что-то изменить, чтобы использовать фиксированный порт для mountD?
Ответ или решение
Изменение версии NFS с 4 на 3: Подробное руководство
Необходимость использовать NFS версии 3 для Bitbucket Data Center обусловлена требованиями вашей организации по совместимости или специальным настройкам. Это руководство освещает шаги, которые вы предприняли для перехода на NFS версии 3, а также решает проблемы с настройкой фиксированного порта для службы mountd.
Шаги конфигурации NFS-сервера
Вы уже предприняли несколько важных шагов:
-
Обновление конфигурации NFS-сервера:
- Вы отредактировали файл
/etc/default/nfs-kernel-server
, чтобы отключить версии NFS 2 и 4 и установить фиксированный порт для mountd:RPCMOUNTDOPTS="--manage-gids --port 9024" RPCNFSDOPTS="-N 4 -N 2"
- Вы отредактировали файл
-
Настройка фиксации портов для statd и lockd:
- Изменения в
/etc/default/nfs-common
для установки фиксированных портов: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
, которая показала, что служба mountd продолжает использовать случайные порты, несмотря на указанный вами фиксированный порт (9024). Вот что вы увидели:
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
Причины проблемы
Проблема с ошибкой подключения (например, mount.nfs: Connection timed out
) может быть связана с рядом причин:
-
Неправильная конфигурация: Возможно, изменения в конфигурации не были применены должным образом, или файл не был корректно отредактирован.
-
Проблемы с разрешениями: Убедитесь, что пользователь, который выполняет команды, имеет необходимые права на доступ к ресурсам NFS.
-
Необходимость дополнительных шагов конфигурации: В некоторых случаях может потребоваться более детальная настройка, включая:
- Проверку конфигурации брандмауэра для разрешения трафика на указанные порты.
- Убедитесь, что службы NFS действительно слушают на указанных портах, используя команду
netstat -tuln | grep 9024
.
Рекомендации по устранению недоработок
Чтобы обеспечить использование фиксированного порта для mountd, выполните следующие действия:
-
Повторная проверка конфигураций: Убедитесь, что все изменения были сохранены и конфигурационные файлы не содержат синтаксических ошибок.
-
Очистка кэша и перезапуск: После изменения конфигураций попробуйте очистить кэш служб:
sudo systemctl stop nfs-kernel-server sudo systemctl stop rpcbind sudo systemctl start rpcbind sudo systemctl start nfs-kernel-server
-
Проверка логов: Анализируйте логи NFS:
sudo journalctl -u nfs-kernel-server
-
Тестирование соединения: Используйте
showmount -e
на клиенте, чтобы протестировать доступность NFS-сервера.
Заключение
Обеспечение работы NFS версии 3 требует внимательной настройки и тестирования. Проверьте предложенные шаги, и, возможно, проблема с некорректным привязыванием port mountd решится. Следуя этому руководству, вы сможете успешно настроить систему NFS под ваши требования и устранить возникающие преграды на пути к его успешному функционированию.