У меня есть общий ресурс NFS, установленный на сервере Linux (3.16.0-4). Служба NFS продается как «HA» предоставляемой службой.
21 августа 05:50:10 srv01 ядро: [2314509.701050] NFS: диспетчер состояний: не удалось проверить аренду на сервере NFSv4 10.0.0.112 с ошибкой 93.
Я вручную размонтировал и перемонтировал долю.
Что пошло не так? Любое предложение ?
Ошибка 93 означает EPROTONOSUPPORT (/usr/include/asm-generic/errno.h), и вот возможная причина этого:
Хост сервера NFS перезагружается. В rpcbind сервер запущен, но в нем еще нет записей. затем служба nfs запускает и регистрирует v3 и v4 протоколы. Есть небольшое временное окно, в котором клиент спросит rpcbind для v4 порт, но получит, что протокол nfsv4 не поддерживается, так как там только v3 зарегистрирован.
Опять же, это возможная, но не обязательно фактическая причина появления ошибки, которую вы видели.
У меня была аналогичная проблема, но с другим кодом ошибки. Однако размонтировать файловую систему не удалось, пришлось перезагрузиться.
Проблема заключалась в том, что общий ресурс был установлен на клиенте с (по умолчанию) hard
Это означает, что если сервер уйдет, он заблокирует клиента до тех пор, пока сервер не вернется, так что клиент никогда не откажет. Однако когда сервер вернулся, это не позволило клиенту повторно использовать старое соединение. Я не мог перемонтировать, чтобы установить новое соединение, потому что попытка размонтирования заморозила бы процесс. Я думаю, что это предназначено только для обработки отключения сети, а не перезагрузки сервера.
Чтобы решить проблему, я отредактировал fstab
на клиенте, чтобы добавить soft,timeo=15
параметры для каждого монтирования NFS. Это означает, что если с сервером невозможно связаться через 15 секунд, операция вернет ошибку.
Теперь, когда сервер перезагружается, все файловые системы довольно быстро возвращают ошибки, и их не проблема перемонтировать. Фактически, теперь они, кажется, автоматически повторно подключаются после перезагрузки сервера, что даже лучше (возможно, потому что у меня также есть noauto,x-systemd.automount
параметры, чтобы они монтировались только при первом использовании, а не во время загрузки.)