Как убедиться, что общий ресурс NFS остается подключенным?

У меня есть машина, которая монтирует общий ресурс NFS другой машины.

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

Я хотел бы убедиться, что общий ресурс NFS всегда монтируется, поэтому, если клиент обнаружит, что общего ресурса нет, он попытается перемонтировать его. Я думаю , что это может включать в себя autofs и / или upstart, чтобы гарантировать, что общий ресурс остается подключенным, но я не знаю, как это сделать.

Я монтирую его следующим способом в /etc/fstab:

jillybean.local:/share /share nfs rsize=32768,rw,soft,intr
1
задан 23 June 2012 в 22:32

3 ответа

Попробуйте использовать фоновое крепление.

Из общей страницы nfs fstab :

bg / fg

Определяет, как ведет себя команда mount (8) при попытке смонтировать экспорт выходит из строя. Опция fg заставляет mount (8) завершаться с ошибкой, если какая-либо часть запроса на монтирование истекает или завершается с ошибкой. Это называется монтированием переднего плана и является поведением по умолчанию, если не указаны ни опции монтирования fg, ни bg.

Если указана опция bg, из-за тайм-аута или сбоя команда mount (8) разветвляет дочерний элемент, который продолжает пытаться смонтировать экспорт. Родитель немедленно возвращается с нулевым кодом выхода. Это известно как «фоновое» крепление.

Если локальный каталог точек монтирования отсутствует, команда mount (8) действует так, как если время запроса монтирования истекло. Это позволяет во вложенной системе монтировать NFS, указанные в / etc / fstab, в любом порядке во время инициализации системы, даже если некоторые NFS-серверы еще не доступны. В качестве альтернативы, эти проблемы могут быть решены с помощью автомонтирования (подробности см. В automount (8)).

При фоновом монтировании повторная попытка по умолчанию составляет 10000 минут. С той же страницы:

retry = n

Количество минут, в течение которых команда mount (8) повторяет операцию монтирования NFS на переднем или заднем плане, прежде чем отказаться. Если этот параметр не указан, значение по умолчанию для переднего крепления составляет 2 минуты, а значение по умолчанию для фонового крепления - 10000 минут (80 минут до одной недели). Если указано нулевое значение, команда mount (8) завершается сразу после первого сбоя.

0
ответ дан 23 June 2012 в 22:32

Вы можете сделать несколько вещей:

  • добавить retry=n (где n - целое число, представляющее минуты) к опциям монтирования в /etc/fstab для случаев, когда NFS нет (пока нет) ) доступные во время загрузки
  • используют автозаполнения, как вы и предлагали (множество How-Tos, возвращенных этим поиском в Google )
  • создают некоторый простой процесс демона, который завершается когда общий ресурс NFS недоступен, и монтирует его при вызове с параметром start - так что вы можете установить его как событие upstart с помощью respawn (то есть автоматически перезапускать при прерывании, отличном от service xyz stop). Объедините это с приведенными выше retry=n)
  • , настройте проверку задания cron для некоторого (существующего) каталога на общем ресурсе NFS - и запустите команду mount, когда она не найдена (снова объедините ее с retry=n)
0
ответ дан 23 June 2012 в 22:32

Рассмотрим создание bash-скрипта со следующим:

#!/bin/bash
if ! grep -qs '/share' /proc/mounts; then
    mount jillybean.local:/share /share
fi

Дайте ему exe-разрешения. Затем поместите скрипт в crontab, подбирая его под свои нужды. Например, если вы знаете, что ваши машины включаются в 7 часов, вы можете выполнять сценарий каждую минуту с 7 до 8:

0-15 7-8 * * * /path/tho/your/script.sh
0
ответ дан 23 June 2012 в 22:32

Другие вопросы по тегам:

Похожие вопросы: