как предотвратить зависание загрузки из-за неотвечающего nfs сервера без использования nowaitboot?

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

Проблема:
Сервер nfs не работает, и это сбивает с толку ваш компьютер!

Конкретно, это блокирует загрузку. Менее радикальный пример: вы берёте свой ноутбук к друзьям, и он не может загрузиться, потому что пытается смонтировать сервер nfs в вашей локальной сети.

Усложняющая проблема:
Вы не хотите монтировать его вручную после загрузки, или, возможно, пользователь, которому это нужно, не имеет разрешения на монтирование. Может быть, вы просто ленивы? Кому какое дело, он должен монтироваться, если может.

Когда я исследовал эту проблему, я нашёл, что раньше существовал параметр загрузки под названием nowaitboot, который решал эту проблему. К сожалению, его удалили 10 лет назад. Какова альтернатива?

Общие предлагаемые замены:

nofail: вызывает значительную задержку (редактирование: по дополнительному тестированию не всегда значительная задержка. Сбой DNS вызовет быструю зависание, но падение сервера приведёт к длительному зависанию)

noauto: не монтируется автоматически

Решение:

bg

Объяснение:
Nfs по умолчанию использует fg для монтирования. Он работает в фоновом режиме, или в основном потоке. Это означает, что он блокирует дальнейшую загрузку до тех пор, пока монтирование не завершится неудачей или успехом. Это хороший вариант, когда загрузка без точки монтирования может вызвать проблемы. Однако, если остановка загрузки хуже, чем неприподнятая общая папка, то имеется вариант bg. Вариант bg работает в фоновом режиме, что странно. Это означает, что создаётся новый поток для обработки монтирования общей папки, чтобы компьютер мог продолжать загрузку.

Кроме того, его можно комбинировать с retry=[count] и timeo=[число 1/10 секунд], чтобы дополнительно настроить поведение монтирования. Например: bg,retry=15,timeo=60 будет пытаться 15 раз с ожиданием в 6 секунд между попытками. Это даёт задержку, если сеть отключена при загрузке, но сеть работает во время сеанса пользователя.

Пример в реальных условиях:

/etc/fstab

myserver:/ /myservermount nfs4 defaults,users,bg,retry=15,timeo=60,soft 0 0

Потенциальные проблемы:
Если критически важный процесс требует сетевого сервера или произойдут плохие вещи, то если сетевой сервер недоступен, произойдут плохие вещи. fg по умолчанию по уважительной причине.

Резюме: fg является стандартом по уважительным причинам, но если эти причины не применимы к вам, bg может быть полезной заменой для nowaitboot.

Ответ или решение

Как предотвратить зависание загрузки при недоступном NFS сервере без использования nowaitboot

Введение

В современных вычислительных средах NFS (Network File System) часто используется для обеспечения доступа к удалённым ресурсам в сетевом окружении. Однако, ситуация с недоступным NFS сервером может привести к зависанию при загрузке системы, что в свою очередь значительно усложняет работу пользователей. В этой статье мы рассмотрим, как избежать этой проблемы с помощью опции bg при настройке NFS в файле /etc/fstab.

Проблема

При попытке загрузить систему, если NFS сервер недоступен, стандартная настройка монтирования (использующая fg) блокирует процесс загрузки. Это особенно актуально, когда пользователь перемещается между сетями (например, беря ноутбук к другу), и его устройство пытается автоматически подключиться к NFS серверу, который в данный момент недоступен.

Альтернативы

Некоторые пользователи рекомендуют использование опций:

  • nofail: Запрещает системе завершить загрузку в случае ошибки монтирования. Однако в некоторых случаях это может вызвать длительные задержки, особенно если сервер недоступен.
  • noauto: Не позволяет системе автоматически монтировать NFS при загрузке. Это требует ручной проверки и монтирования, что не всегда удобно.

Решение: Опция bg

Основным решением является использование опции bg (background) в конфигурации NFS. Эта опция позволяет системе продолжать процесс загрузки, инициируя монтирование NFS в фоновом режиме. Это означает, что доступ к другим ресурсам не будет блокироваться в случае, если NFS сервер временно недоступен.

Кроме этого, использование дополнительных параметров, таких как:

  • retry=[count]: Устанавливает количество попыток повторного подключения.
  • timeo=[число десятых секунды]: Определяет таймаут для каждой попытки подключения.

Например:

bg,retry=15,timeo=60

В этом случае система будет пытаться монтировать NFS 15 раз, с ожиданием около 6 секунд между попытками.

Пример настройки

Вот как может выглядеть соответствующая запись в файле /etc/fstab:

myserver:/ /myservermount nfs4 defaults,users,bg,retry=15,timeo=60,soft 0 0

Потенциальные проблемы

Важно отметить, что использование bg не является универсальным решением. Если критически важные процессы зависят от доступности NFS сервера, и сервер недоступен, это может привести к другим отрицательным последствиям. Опция fg остается важной по причинам безопасности и стабильности.

Заключение

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

Эта стратегическая настройка соответствует современным требованиям бизнеса и потребностям пользователей, позволяя избежать ненужных задержек и обеспечивая повышение производительности работы.

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

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