У меня стоит сервер в стойке, и к нему подключены резервные блоки питания к двум APC Smart-UPS 3000 XLM. Каждый ИБП подключен к двум разным источникам питания.
Выполняются два экземпляра apcupsd, каждый из которых подключен к своему ИБП. Оба они могут определять, когда ИБП работает от батареи, а затем каждый ИБП может запускать выключение сервера.
Вопрос: как НЕ выключиться, если разрядилась батарея ТОЛЬКО ОДНОГО ИБП?
Примечание. Smart-UPS 3000 XLM имеет функцию «Power Sync», которая может подключаться к своему одноранговому узлу и определять его состояние. Но когда я вытащил вилку из одного из них, приказ о выключении все равно был отправлен. Я подумываю изменить сценарии выключения, чтобы проверить с помощью "apcaccess", не работают ли другие ибы. Любой опыт в этом отношении будет оценен!
В настоящее время, когда один из двух ИБП выходит из строя, Doshutdown событие запускается и выполняет сценарий по умолчанию через apccontrol. В Doshutdown сценарий игнорирует второй ИБП, поскольку они не связаны с событиями, и завершает работу в обычном режиме.
Чтобы иметь Doshutdown события несколько связаны, два экземпляра apcupsd нуждаются в специально настроенном файле конфигурации. Разница будет находиться в каталоге, из которого должны выполняться сценарии событий.
Основные характеристики first ups, in /etc/apcupsd/apcupsd.ups0.conf
SCRIPTDIR /etc/apcupsd/ups0
UPSNAME ups0
DEVICE /dev/ups0
PWRFAILDIR /etc/apcupsd/ups0
NOLOGINDIR /etc/apcupsd/ups0
NISPORT 3551
EVENTSFILE /var/log/apcupsd.0.events
И для ups1, в /etc/apcupsd/apcupsd.ups1.conf
SCRIPTDIR /etc/apcupsd/ups1
UPSNAME ups1
DEVICE /dev/ups1
PWRFAILDIR /etc/apcupsd/ups1
NOLOGINDIR /etc/apcupsd/ups1
NISPORT 3552
EVENTSFILE /var/log/apcupsd.1.events
Каждый scriptdir должен получить копию скриптов по умолчанию.
Мы хотим настроить Doshutdown сценарий, который не будет напрямую выключать машину, но должен проверить, включен ли другой ИБП или находится в режиме выключения.
В верхней части Doshutdown скрипт, мы могли бы добавить что-то вроде
для ups0
if [ ! -f /tmp/ups1.is.down ]
then
touch /tmp/ups0.is.down
exit 99
fi
для ups1
if [ ! -f /tmp/ups0.is.down ]
then
touch /tmp/ups1.is.down
exit 99
fi
статус 99 имеет особое значение, что говорит apccontrol чтобы остановить текущее действие. Пять строк проверяют, был ли создан другой файл UPS-down; если нет, файл down создается для упавших ups и завершается. Если да, что означает, что другой ИБП не работает, этот тоже выходит из строя, поэтому сценарий должен продолжить работу и выключить машину.
Файлы /tmp/usp[01].is.down
указывает, не работает ли ИБП [01] в данный момент.
Важно: сценарий запуска init.d apcupsd должен удалить эти файлы, если они были созданы в предыдущем сеансе:
rm -f /tmp/usp[01].is.down
Наконец, каталогам, созданным выше, / etc / apcupsd / ups [01] должен быть предоставлен доступ к apcupsd пользователю (или любому соответствующему пользователю, запускающему экземпляры).
chown -R apcupsd /etc/apcupsd/ups[01]
Пожалуйста, взгляните на подробная документация.
редактировать исправил /tmp/ups[01].is.down
имена, .is
скучал.
Посмотрите на NUT. Он хорошо с этим справляется. Определите количество источников питания от каждого ИБП и количество необходимых источников питания. Выключение не произойдет, пока на ИБП не будет достаточного количества источников питания.