Два nas4free на одном UPS

Dec 02, 2013 00:11

UPD от 26 мая 2015 Пост устарел. В текущих сборках nas4free функциональность nut master-slave доступна из коробки /UPD

Дано - 2 шт nas4free, питаемые от одного UPS
Требуется - заставить их отключаться по сбою питания. Разработчиками это не предусмотрено, в профильном форуме решения нет, поэтому сделал небольшой хак

Прим. Из-за того, что в nas4free nut работает под root-ом всё описанное небезопасно и может применяться только внутри домашней доверенной сети.

1) Настраиваем UPS на той машине (master), которая подключена к UPS непосредственно (по USB или COM).
Обязательно ставим галку на  "Remote monitoring".
Shutdown timer советую поставить секунд на 60 или больше (зависит от ёмкости батарей).

2) Настраиваем UPS на второй машине (slave) точно также(кроме Shutdown timer, его рекомендую 15 сек) , применяем настройки (не обращать внимание на сообщение об ошибке, понятно, что UPS он не видит).
Затем отжимаем галку Enable в настройке UPS - то есть сервис НЕ будет запущен.

3) Идем в командную строку на slave машине, редактируем upsmon.conf
slavenas:~# nano /var/etc/upsmon.conf

первая строка выглядит как-то так
MONITOR APC@localhost 1 root nas4free master

её надо заменить на

MONITOR APC@192.168.1.34 1 root PasS slave

Здесь
APC - имя, которое вы дали UPS на master машине
192.168.1.34 - IP master машины
root - имя пользователя, под которым бегает nut на master машине. К сожалению, это root :(
PasS - root пароль на master машине
slave - значит, машина ведомая

сохраняем

4) Запускаем upsmon на slave машине

slavenas:~# upsmon
Network UPS Tools upsmon 2.6.5-Unversioned directory
fopen /var/run/upsmon.pid: No such file or directory
UPS: APC@192.168.1.34 (slave) (power value 1)
Using power down flag file /var/etc/killpower

5) Проверяем, что он видит UPS на master машине
slavenas:~# upsc APC@192.168.1.34
battery.charge: 100
battery.charge.low: 10
...

6) Скопируем upsmon.conf куда-то, где он переживёт перезагрузку. У мня для этого - раздел данных флешки
slavenas:~# mkdir /mnt/Flash/ups_slave
slavenas:~# cp -a /var/etc/upsmon.conf /mnt/Flash/ups_slave

7) Проверяем, что сбой по питанию будет отработан - идём в командную строку на master машине и сообщаем ей об отключении питания (желающие могут выдернуть шнур питания UPS из розетки)

nas4free: ~ # upsmon -c fsd

должны отключиться сначала slave, а затем и master машины.

Бинго. Осталось сделать так, чтобы всё это не пришлось повторять при каждой перезагрузке.

8) Включаем оба NAS

9) Создаём командный скрипт
slavenas:~# nano /mnt/Flash/ups_slave/ups_slave_start.sh
его содержание
cp -a -f /mnt/Flash/ups_slave/upsmon.conf /var/etc/
upsmon

10) Даём права на исполнение
slavenas:~# chmod +x /mnt/Flash/ups_slave/ups_slave_start.sh

11) Задаём в slave машине запуск /mnt/Flash/ups_slave/ups_slave_start.sh как Postinit скрипта в System|Advanced|Command scripts

12) Перегружаем slave машину

13) Запускаем в обоих машинах Putty, выдираем шнур питания UPS, убеждаемся, что обе машины корректно выключаются.

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

руками, nas, ups, nas4free

Previous post Next post
Up