Вопрос или проблема
Используя RHEL-8.10 x86-64, у меня отключен сетевой кабель (умышленно) и в /etc/fstab
у меня все еще есть
192.168.1.2:/data /data nfs defaults 0 0
во время загрузки, с включенной детальной информацией по GRUB_CMDLINE_LINUX
, которая не содержит rhgb quiet
и имеет verbose
вместо этого, я получаю
- Детализированная строка (от systemd?), показывающая попытку монтирования /data с временным окном
1m30s
- В какой-то момент в середине этого конечное время изменяется на
1m38s
, но затем задержка завершается, и процесс загрузки продолжается успешно. Мое монтирование NFS/data
не происходит, что я признаю и ожидаю – я не хотел комментировать эту запись в fstab.
- Почему изменяется продолжительность? Что вызывает это для любых других задержек во время загрузки, которые я заметил? Это не только для NFS.
- Могу ли я изменить длительность этого таймаута? Чтобы он либо не происходил, либо чтобы это было что-то менее раздражающее, когда я смотрю на это и после
10s
у меня заканчивается терпение? - Есть ли способ сохранить стандартную длительность времени, но с помощью ввода с клавиатуры консоли, который убьет это ожидание и продолжит процесс загрузки? Конкретно это, так как этот пример задержки монтирования NFS не единственное, с чем я сталкиваюсь; когда я задерживаюсь так во время загрузки (когда вы понимаете, что это не проблема), есть ли способ убить эту задержку
~1m30s
? - Худшее – это те элементы, с которыми я столкнулся, где продолжительность
1m30s
постоянно меняется, так что задержка становится бесконечной, и вам приходится перезагружать с помощью кнопки питания, а затем загружаться в однопользовательский режим, чтобы исправить проблему.
Вы сталкиваетесь с тайм-аутами NFS и повторами, пока NFS не сдает позиции в подключении к 192.162.1.2
.
Проверьте с помощью man mount mount.nfs
, добавление _netdev
к параметрам монтирования задержит монтирование до тех пор, пока сеть не будет активирована.
192.168.1.2:/data /data nfs _netdev
Конечно, у вас не будет доступа к /data
до тех пор, пока сеть не будет активирована. Вы можете проверить с помощью mountpoint /data
, что даст разные результаты, если /data
является точкой монтирования (монтаж произошел) или директорией (монтаж еще не произошел). man mountpoint
.
Ответ или решение
При загрузке системы RHEL-8.10 x86-64 без подключения сетевого кабеля вы сталкиваетесь с задержкой в 1м30с из-за попыток системы подключить NFS-ресурс, указанный в файле /etc/fstab
. Давайте разберем причины этой задержки и возможные способы её устранения.
Причины задержки
-
Попытка подключения NFS: При старте системы, сервисы пытаются смонтировать файловые системы, определённые в
/etc/fstab
. В вашем случае конфигурация на192.168.1.2:/data
вызывает системные вызовы для подключения к серверу NFS. Если сетевой интерфейс отключен, система начинает ожидать доступности сервера, что приводит к тайм-ауту. -
Изменение времени тайм-аута: Обратите внимание, что время тайм-аута может изменяться из-за перебора алгоритмов обработки соединений: система пытается снова установить соединение, и каждый раз увеличивает задержку. Это может восприниматься как «бесконечная» задержка, особенно если происходит изменение тайм-аута.
Возможности конфигурации тайм-аута
-
Изменение длительности тайм-аута: Вы можете добавить опцию
_netdev
в запись NFS в/etc/fstab
, чтобы отложить попытку монтирования до тех пор, пока сеть не будет доступна. Пример:192.168.1.2:/data /data nfs _netdev 0 0
Это гарантирует, что монтирование не будет выполнено до инициализации сетевых интерфейсов, что исключает задержки, связанные с недоступностью NFS.
-
Устранение задержки с помощью изменения параметров монтирования: Добавление параметра
timeo
позволяет вам настроить тайм-аут для запроса. Например, указавtimeo=100
(100 десятых долей секунды), вы сможете уменьшить время ожидания до более приемлемого:192.168.1.2:/data /data nfs defaults,timeo=100 0 0
Устранение задержки во время загрузки
-
Ввод с клавиатуры для завершения ожидания: К сожалению, в стандартной конфигурации нет возможности прервать тайм-аут через нажатие клавиш. Однако некоторые дистрибутивы могут позволять это через различные комбинации, поэтому стоит проверить возможность использования
Ctrl + C
или других сочетаний. В Ред Хат это, как правило, не предусмотрено. -
Ручное отключение монтирования: Если вы понимаете, что NFS на данный момент не будет доступен и хотите пропустить это монтирование, вы можете вручную загружать NFS-систему после старта. Это делается без исправления
/etc/fstab
в режиме однопользовательской системы.
Заключение
В случае с RHEL-8.10 и NFS, подключение может вызвать задержку загрузки, которая, при отключении сети, осуществляет многократные попытки подключения к серверу. Рекомендуется использовать опцию _netdev
, чтобы избежать данной проблемы при загрузке. Обратите внимание на возможность изменения параметров монтирования для уменьшения времени ожидания. В будущем стоит внимательно относиться к конфигурации /etc/fstab
и использовать соответствующие опции для управления поведением монтирования, особенно в сценариях с удалёнными файловыми системами.