У меня есть машина, которая монтирует общий ресурс NFS другой машины.
Однако клиентский компьютер загружается быстрее, чем сервер, поэтому он получает сообщение об ошибке при попытке смонтировать общий ресурс NFS с сервера. У меня было отключение электроэнергии в выходные, и это может раздражать, когда я удален.
Я хотел бы убедиться, что общий ресурс NFS всегда монтируется, поэтому, если клиент обнаружит, что общего ресурса нет, он попытается перемонтировать его. Я думаю , что это может включать в себя autofs и / или upstart, чтобы гарантировать, что общий ресурс остается подключенным, но я не знаю, как это сделать.
Я монтирую его следующим способом в /etc/fstab
:
jillybean.local:/share /share nfs rsize=32768,rw,soft,intr
Попробуйте использовать фоновое крепление.
Из общей страницы nfs fstab :
bg / fg
Определяет, как ведет себя команда mount (8) при попытке смонтировать экспорт выходит из строя. Опция fg заставляет mount (8) завершаться с ошибкой, если какая-либо часть запроса на монтирование истекает или завершается с ошибкой. Это называется монтированием переднего плана и является поведением по умолчанию, если не указаны ни опции монтирования fg, ни bg.
Если указана опция bg, из-за тайм-аута или сбоя команда mount (8) разветвляет дочерний элемент, который продолжает пытаться смонтировать экспорт. Родитель немедленно возвращается с нулевым кодом выхода. Это известно как «фоновое» крепление.
Если локальный каталог точек монтирования отсутствует, команда mount (8) действует так, как если время запроса монтирования истекло. Это позволяет во вложенной системе монтировать NFS, указанные в / etc / fstab, в любом порядке во время инициализации системы, даже если некоторые NFS-серверы еще не доступны. В качестве альтернативы, эти проблемы могут быть решены с помощью автомонтирования (подробности см. В automount (8)).
blockquote>При фоновом монтировании повторная попытка по умолчанию составляет 10000 минут. С той же страницы:
retry = n
Количество минут, в течение которых команда mount (8) повторяет операцию монтирования NFS на переднем или заднем плане, прежде чем отказаться. Если этот параметр не указан, значение по умолчанию для переднего крепления составляет 2 минуты, а значение по умолчанию для фонового крепления - 10000 минут (80 минут до одной недели). Если указано нулевое значение, команда mount (8) завершается сразу после первого сбоя.
BLOCKQUOTE>
Вы можете сделать несколько вещей:
retry=n
(где n - целое число, представляющее минуты) к опциям монтирования в /etc/fstab
для случаев, когда NFS нет (пока нет) ) доступные во время загрузки start
- так что вы можете установить его как событие upstart с помощью respawn
(то есть автоматически перезапускать при прерывании, отличном от service xyz stop
). Объедините это с приведенными выше retry=n
) mount
, когда она не найдена (снова объедините ее с retry=n
) Рассмотрим создание 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