Версия сортировки
Крепление NFS4 в фстаб
обычно запускает фоновую службу для повторных попыток, когда хост монтирования недоступен. Однако только во время перезагрузки и тайм-аута подключения фоновая служба не запускается. Если в соединении отказано при перезагрузке или в любом другом случае после перезагрузки, запускается фоновая служба.
Длинная версия
Это на Oracle8, который является разновидностью RHEL8/CentOS8. В /etc/fstab
я имею
[xx:xx:xx:xx:xx:xx:xx:xx]:/example /mnt/example nfs4 по умолчанию 0 0
И в /etc/nfsmount.conf
я имею
[ NFSMount_Global_Options ]
по умолчаниюверс=4
нфсверс=4
фон = правда
RW=истина
жестко = верно
синхронизация = истина
размер = 32k
wsize=32k
нордирплюс=истина
актимео=3
_netdev=истина
я подтвердил в /прок/монтирует
что глобальные настройки применяются к монтированию, когда оно работает. Когда фоновая служба запустится, как и ожидалось, вы увидите, что она работает.
[root@01b1 /]# ps добавочный | grep нфс
корень 1077 0.0 0.0 0 0 ? I< 18:31 0:00 \_ [nfsiod]
root 1506 0.0 0.1 221928 1036 pts/0 S+ 19:16 0:00 \_ grep --color=auto nfs
корень 1466 0,0 0,0 47812 588 ? Ss 18:36 0:00 /sbin/mount.nfs4 [xx:xx:xx:xx:xx:xx:xx:xx]:/example /mnt/example -o rw
И чтобы было ясно, когда хост-сервер доступен, монтирование работает каждый раз. Ниже приведены случаи, когда хост недоступен, например, его перезагрузка, порт заблокирован, nfs-сервер
останавливается и т.д.
Когда фоновая служба запускается при перезагрузке, она показывает это в /var/журнал/сообщения
8 июня 17:42:29 01b1 systemd[1]: mnt-example.mount: Каталог /mnt/example для монтирования не пустой, монтируется в любом случае.
8 июня 17:42:29 01b1 systemd[1]: Монтаж /mnt/example...
8 июня 17:42:31 01b1 mount[1027]: подключение к серверу NFS 'xx:xx:xx:xx:xx:xx:xx:xx' не удалось: подключение отклонено, повторная попытка
8 июня 17:42:31 01b1 mount[1018]: mount.nfs4: backgrounding "[xx:xx:xx:xx:xx:xx:xx:xx]:/example"
8 июня 17:42:31 01b1 mount[1018]: mount.nfs4: параметры монтирования: "rw,vers=4,bg,rw,hard,sync,rsize=32768,wsize=32768,nordirplus,actimeo=3,_netdev "
8 июня 17:42:31 01b1 systemd[1]: mnt-example.mount: Процесс монтирования завершен, но монтирования нет.
8 июня 17:42:31 01b1 systemd[1]: mnt-example.mount: Ошибка с результатом «протокол».
8 июня 17:42:31 01b1 systemd[1]: не удалось смонтировать /mnt/example.
8 июня 17:42:32 01b1 mount[1128]: подключение к серверу NFS 'xx:xx:xx:xx:xx:xx:xx:xx' не удалось: подключение отклонено, повторная попытка
8 июня 17:42:34 01b1 mount[1128]: подключение к серверу NFS 'xx:xx:xx:xx:xx:xx:xx:xx' не удалось: подключение отклонено, повторная попытка
Но когда ему не удается запустить фоновую службу при перезагрузке, он показывает это
8 июня 17:49:05 01b1 systemd[1]: mnt-example.mount: Каталог /mnt/example для монтирования не пуст, монтируется в любом случае.
8 июня 17:49:05 01b1 systemd[1]: Монтаж /mnt/example...
8 июня 17:50:35 01b1 systemd[1]: mnt-example.mount: превышено время ожидания монтирования. Прекращение.
8 июня, 17:50:35 01b1 systemd[1]: mnt-example.mount: процесс монтирования завершен, код = статус killed = 15
8 июня 17:50:35 01b1 systemd[1]: mnt-example.mount: Ошибка с результатом «тайм-аут».
8 июня 17:50:35 01b1 systemd[1]: не удалось смонтировать /mnt/example.
При перезагрузке, когда хост-порт открыт, но nfs-сервер
не работает, в соединении отказано, а фоновая служба запущена.
При перезагрузке, когда хост выключен или порт заблокирован, время ожидания соединения истекает, а фоновая служба не запускается.
Если хост недоступен, клиент не перезагружается, и я вручную гора -а
, фоновая служба всегда будет запускаться, даже если в соединении будет отказано или время ожидания истекло.
Любая идея, почему фоновая служба не запускается только при перезагрузке и тайм-ауте подключения? Есть ли способ исправить это, чтобы фон всегда запускался, когда хост недоступен?
--- ОБНОВИТЬ ---
Я пробовал случайные настройки, чтобы посмотреть, поможет ли что-то. Я обнаружил, что настройка параметров тайм-аута/повторения позволяет запускать фоновую службу при перезагрузке как при тайм-ауте, так и при отказе в подключении.
/etc/nfsmount.conf
# По умолчанию timeo=600
# Ретрансляция по умолчанию=2
время = 20
ретранс=4
Однако я чувствую, что это лейкопластырь, а не решение. Это не имеет для меня никакого смысла, если только это не ошибка RHEL. Я предполагаю, что при более длительном тайм-ауте возникает какая-то проблема с гонкой.Я не доверяю этому, потому что что, если эти условия гонки изменятся, и он снова сломается.