Назад | Перейти на главную страницу

Резервное переключение Autofs на локальную точку монтирования

Мы используем autofs для монтирования раздела NFS с локального сервера. У нас есть резервный сервер, и мы переключаемся на него, используя метод, упомянутый на этой странице руководства autofs (5). Все работает нормально. Что мы хотели бы сделать, так это добавить третью отработку отказа к точке монтирования, которая определяется сценарием и обозначается «program: / path / to / script» в auto.master.

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

Кто-нибудь знает, можно ли это сделать и как?

один быстрый и грязный способ, о котором я думаю, выглядит так:

#!/bin/bash

timeout 5 ls /NFS_mountpoint && exit 0 || { service autofs stop ; ln -s /localFS /NFS_mountpoint ; }
if [[ $(timeout 5 ls /NFS_mountpoint >/dev/null 2>&1)$? -eq 0 ]]; then
    mail -s "The NFS has failed over to local FS" YourEmail@email.com
else
    mail -s "Problem on $(hostname)" YourEmail@email.com
fi

Это может выполняться как задание cron каждую минуту (* * * * *). Вам, вероятно, придется переименовать или удалить точку монтирования NFS, прежде чем вы сможете создать на нее символическую ссылку, поэтому вы можете изменить ее на mv /NFS_mountpoint /NFS_mountpoint.OLD && ln -s /localFS /NFS_mountpoint