Вопрос или проблема
У нас есть кластер на Linux Debian 10. Мы хотим подключить его к новым ИБП (APC), чтобы обеспечить защиту кластеров от отключения электроэнергии.
Однако APC предложил установить программное обеспечение PowerChute. В отличие от этого, данное программное обеспечение совместимо только с RedHat Linux Enterprise и SuSe Linux Enterprise.
Я нашёл службу apcupsd, которая может быть использована в качестве альтернативы. У нас есть подключение NIS в соответствии с рекомендациями apcupsd.
Ошибка, полученная после настройки:
Тем не менее, я не понимаю, куда следует вставить IP-адрес кластера и как настроить дальнейшую связь между кластером и ИБП?
Пожалуйста, предложите и дайте знать, если мне нужно предоставить дополнительные детали для облегчения процесса.
Спасибо
Я всегда использовал программное обеспечение “Network UPS Tools”: nut-client
, nut-server
, nut-cgi
и несколько других в наши дни. Оно работает с многими марками ИБП.
Вам нужно разделить это на несколько частей.
Предполагая, что этот ИБП совместим с apcupsd
и имеет USB-порт…
Во-первых, вам нужна одна машина, подключенная к USB-порту ИБП. На этой машине настройте связь с USB-портом
например
UPSCABLE usb
UPSTYPE usb
DEVICE
(да, запись устройства пустая; демон автоматически находит USB-соединение).
Теперь вы должны иметь возможность запустить apcupsd
на этой машине, и он должен работать. apcaccess
должен показать некоторые полезные данные
APC : 001,038,0997
DATE : 2024-10-07 13:30:09 -0400
HOSTNAME : myhostname
VERSION : apcupsd_version
UPSNAME : myhostname
CABLE : USB Cable
DRIVER : USB UPS Driver
UPSMODE : Stand Alone
STARTTIME: 2024-08-18 08:37:30 -0400
MODEL : Back-UPS XS 1500M
STATUS : ONLINE
Если эта часть не работает, значит, либо ваше соединение плохое, либо ИБП не поддерживает удалённый мониторинг, либо у вас есть какая-то другая проблема.
Когда это будет работать тогда вы сможете начать изучение стороны NIS.
Сначала настройте эту машину как NIS-сервер:
NETSERVER on
NISIP 0.0.0.0
NISPORT 3551
Перезапустите сервер, и вы должны увидеть, что он слушает.
% ss -an | grep 3551
tcp LISTEN 0 5 0.0.0.0:3551 0.0.0.0:*
Теперь вы можете настроить другие машины для связи с этой
UPSNAME yourUPSname
UPSCABLE ether
UPSTYPE net
DEVICE remoteserverIPaddress
NETSERVER on
NISIP 0.0.0.0
NISPORT 3551
Запустите apcupsd
на клиенте, и apcaccess
должен показать соединение
UPSNAME : remoteservername
CABLE : Ethernet Link
DRIVER : NETWORK UPS Driver
Вы можете добавить много клиентов, и все они могут общаться с одним сервером.
По крайней мере, это работает для меня!
ПРИМЕЧАНИЕ: это по своей сути не “кластер”, потому что ИБП может подключаться только к одной машине через USB, таким образом, у вас есть одна точка отказа (что если эта машина выйдет из строя?), и IP-адрес является адресом этой единственной машины.
Ответ или решение
Чтобы настроить новый ИБП APC для работы с кластером на базе Linux Debian 10, вам нужно пройти несколько шагов. Поскольку PowerChute несовместим с вашей системой, мы используем apcupsd
в качестве альтернативы. Вот подробная инструкция по настройке.
Шаг 1: Установка apcupsd
Установите apcupsd
на машине, которая будет напрямую подключена к ИБП по USB. Используйте следующие команды:
sudo apt update
sudo apt install apcupsd
Шаг 2: Настройка apcupsd
Отредактируйте конфигурационный файл /etc/apcupsd/apcupsd.conf
, чтобы он выглядел следующим образом:
UPSNAME myUPS
UPSCLASS standalone
UPSCABLE usb
UPSTYPE usb
DEVICE
Здесь UPSNAME
— это название вашего ИБП, а остальные параметры настроены для USB-подключения.
Шаг 3: Запуск сервиса apcupsd
Запустите и проверьте статус сервиса:
sudo systemctl start apcupsd
sudo systemctl enable apcupsd
systemctl status apcupsd
После этого используйте команду apcaccess
для получения информации об ИБП:
apcaccess
Убедитесь, что вы видите информацию о статусе ИБП, такую как уровень заряда и состояние.
Шаг 4: Настройка NIS (Network Information Service)
Для связи между вашим кластером и ИБП (через одну подключенную машину) нужно настроить NIS. Вам необходимо сделать одну из машин NIS-сервером.
-
На машине с подключенным ИБП:
Отредактируйте файл конфигурации
/etc/default/nis
и включите следующие параметры:NISSERVER=true
Также вам нужно будет убедиться, что следующие строки присутствуют в конфигурации:
NETSERVER on NISIP 0.0.0.0 NISPORT 3551
Перезапустите NIS-сервер:
sudo systemctl restart nis
Убедитесь, что сервер слушает на порту 3551:
ss -an | grep 3551
-
На других машинах кластера:
Отредактируйте файл
/etc/apcupsd/apcupsd.conf
, добавив следующие настройки:UPSNAME yourUPSname UPSCABLE ether UPSTYPE net DEVICE remoteserverIPaddress
Здесь
remoteserverIPaddress
— это IP-адрес той машины, на которую подключен ИБП.Также добавьте в настройки NIS:
NETSERVER on NISIP 0.0.0.0 NISPORT 3551
Шаг 5: Запуск apcupsd на клиентских машинах
Запустите apcupsd
также на клиентских машинах:
sudo systemctl start apcupsd
Проверьте соединение с помощью apcaccess
:
apcaccess
Вы должны увидеть информацию о ИБП, включая UPSNAME
, CABLE
, и DRIVER
, которая подтверждает, что связь установлена правильно.
Важно
Обратите внимание, что данная конфигурация создает единую точку отказа: если машина с подключенным ИБП выйдет из строя, весь кластер не сможет отслеживать состояние ИБП. Если это критично для вашей инфраструктуры, возможно, следует рассмотреть настройку резервного ИБП или использование другого программного обеспечения, например NUT
(Network UPS Tools), которое позволяет более гибко управлять несколькими ИБП в сети.
Если у вас возникнут дополнительные вопросы или потребуется дальнейшая помощь, пожалуйста, предоставьте дополнительную информацию о конфигурации вашего кластера и используемом оборудовании.