подробное сообщение загрузки от systemd, которое задерживается на 1 минуту 30 секунд, например, монтирование NFS

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

Используя RHEL-8.10 x86-64, у меня отключен сетевой кабель (умышленно) и в /etc/fstab у меня все еще есть

192.168.1.2:/data   /data   nfs   defaults  0 0

во время загрузки, с включенной детальной информацией по GRUB_CMDLINE_LINUX, которая не содержит rhgb quiet и имеет verbose вместо этого, я получаю

  1. Детализированная строка (от systemd?), показывающая попытку монтирования /data с временным окном 1m30s
  2. В какой-то момент в середине этого конечное время изменяется на 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. Давайте разберем причины этой задержки и возможные способы её устранения.

Причины задержки

  1. Попытка подключения NFS: При старте системы, сервисы пытаются смонтировать файловые системы, определённые в /etc/fstab. В вашем случае конфигурация на 192.168.1.2:/data вызывает системные вызовы для подключения к серверу NFS. Если сетевой интерфейс отключен, система начинает ожидать доступности сервера, что приводит к тайм-ауту.

  2. Изменение времени тайм-аута: Обратите внимание, что время тайм-аута может изменяться из-за перебора алгоритмов обработки соединений: система пытается снова установить соединение, и каждый раз увеличивает задержку. Это может восприниматься как «бесконечная» задержка, особенно если происходит изменение тайм-аута.

Возможности конфигурации тайм-аута

  1. Изменение длительности тайм-аута: Вы можете добавить опцию _netdev в запись NFS в /etc/fstab, чтобы отложить попытку монтирования до тех пор, пока сеть не будет доступна. Пример:

    192.168.1.2:/data /data nfs _netdev 0 0

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

  2. Устранение задержки с помощью изменения параметров монтирования: Добавление параметра timeo позволяет вам настроить тайм-аут для запроса. Например, указав timeo=100 (100 десятых долей секунды), вы сможете уменьшить время ожидания до более приемлемого:

    192.168.1.2:/data /data nfs defaults,timeo=100 0 0

Устранение задержки во время загрузки

  1. Ввод с клавиатуры для завершения ожидания: К сожалению, в стандартной конфигурации нет возможности прервать тайм-аут через нажатие клавиш. Однако некоторые дистрибутивы могут позволять это через различные комбинации, поэтому стоит проверить возможность использования Ctrl + C или других сочетаний. В Ред Хат это, как правило, не предусмотрено.

  2. Ручное отключение монтирования: Если вы понимаете, что NFS на данный момент не будет доступен и хотите пропустить это монтирование, вы можете вручную загружать NFS-систему после старта. Это делается без исправления /etc/fstab в режиме однопользовательской системы.

Заключение

В случае с RHEL-8.10 и NFS, подключение может вызвать задержку загрузки, которая, при отключении сети, осуществляет многократные попытки подключения к серверу. Рекомендуется использовать опцию _netdev, чтобы избежать данной проблемы при загрузке. Обратите внимание на возможность изменения параметров монтирования для уменьшения времени ожидания. В будущем стоит внимательно относиться к конфигурации /etc/fstab и использовать соответствующие опции для управления поведением монтирования, особенно в сценариях с удалёнными файловыми системами.

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

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