Как настроить ИБП для перезапуска серверов в правильной последовательности?

12

Здесь у нас есть несколько серверов, и почти каждый из них имеет выделенный ИБП. Между ними есть зависимости, поэтому они должны быть включены в правильной последовательности. В конечном итоге у нас возникают серьезные проблемы с источником питания, поэтому серверы выключаются, а затем перезапускаются в случайном порядке при восстановлении питания. Это не проблема, если серверы были отключены во время отключения электроэнергии, важно, чтобы они работали правильно без какого-либо вмешательства человека после восстановления питания.

Наши ИБП довольно дешевы, и единственный полезный для меня параметр конфигурации - это power the load xx seconds after power is restored. Теоретически, устанавливая правильные задержки на каждом ИБП, я могу исправить порядок перезапуска сервера, но я не верю, что ИБП будет работать так, как ожидалось.

Это правильный путь?
Предоставляют ли ИБП высокого уровня другие возможности для исправления последовательности перезапуска?
Последнее замечание: мои взлеты находятся в диапазоне 1000 - 2200 ВА

Filippo
источник
1
Это одна из приятных вещей, предлагаемых systemd- возможность определять правильные зависимости в процессе запуска. Подождите, пока служба X станет доступной, прежде чем пытаться запустить службу Y.
MSalters
1
@MSalters AFAIK Системное управление зависимостями работает только тогда, когда модули обрабатываются одним и тем же systemdэкземпляром, а не для служб, работающих на совершенно разных серверах ...
HBruijn
1
@HBruijn: вроде, сети монтируются, например, на разных серверах. То есть, если server1 монтирует файловую систему, размещенную на server2, то сервисы serve1, зависящие от монтирования, будут приостанавливаться до тех пор, пока server2 не запустит эти сервисы. И IIRC вы также можете заставить серверы ждать DHCP (не спрашивайте меня, почему сервер использует DHCP, но это было упомянуто в ответе)
MSalters

Ответы:

25

Стандартный ответ на это «совсем нет». Исправьте программное обеспечение для обработки перезапусков в случайном порядке. Если вам действительно нужны НЕКОТОРЫЕ серверы для запуска вначале (например, Active Directory), поместите их на USV, которые, возможно, дольше сохраняют LOT. Сервер на базе атома с низким энергопотреблением достаточно хорош в качестве контроллера Active Directory и может прожить целый день на небольшом USV.

Предоставляют ли ИБП высокого уровня другие возможности для исправления последовательности перезапуска?

Нет. Я бы сказал, что обычно предполагается, что программисты достаточно компетентны, чтобы правильно обойти эту проблему.

Что вы могли бы сделать, это:

  • Пусть серверы запускаются «случайно». За исключением DHCP / Active Directory, нет ничего действительно требующего порядка, который нельзя исправить.
  • Через некоторое время (5 минут) управляющий сервер должен запустить службы на разных машинах в правильном порядке.

Я бы сказал, что этот тип установки гораздо более распространен. Я бы назвал любое программное обеспечение, которое ТРЕБУЕТ сервер запускается в определенном порядке (вне чистой инфраструктуры), как сломанное и непригодное для бизнеса.

Точно так же, как примечание: наша собственная установка - это недорогая USV 20 кВ (низкая стоимость, потому что мы ее использовали) для серверов с ведомой USV 2000VA для машины, служащей «корнем» сети (и машины для резервного копирования). Подчиненный означает, что USV отстает от большого - поэтому он переключается на батарею только тогда, когда большой (который длится от получаса до 8 часов в зависимости от того, сколько нашей вычислительной сети находится в сети) переходит в отключение терминала.

TomTom
источник
2
Я думаю, что это иногда легче сказать, чем сделать (AD, как вы говорите, является очевидным примером), но я согласен. Правильное решение заключается в устранении зависимостей для таких вещей, как порядок запуска серверов или служб. Если ничего другого, то в веб-приложении должна быть возможность, например, написать код, который гласит: «Если я не могу подключиться к своему бэкэнду,« спите »и попробуйте снова позже, а не сбоите».
Роб Мойр
проблема с AD - это даже не AD - это в основном IPv4 DHCP, который не подготовлен к подключению компьютеров к серверу dhcp. Ipv6 справляется с этим;)
TomTom
Это правда. IPv4 - это боль ... и я до сих пор заставляю людей спрашивать меня, почему мы должны беспокоиться об этом "новомодном мусоре IPv6".
Роб Мойр
1
«Обычно считается, что программисты достаточно компетентны, чтобы обойти эту проблему» - вы не должны заниматься программированием! Нет, со всей серьезностью, существует огромное количество причин, по которым система может нуждаться в приведении в конкретный порядок. Да, программное обеспечение должно «изящно проваливаться» и повторять попытки разорванных соединений, но это не всегда возможно. Насколько я помню, некоторые из хороших PDU имеют возможность запускать / останавливать отдельные порты, так что, возможно, что-то можно было бы там сделать.
SnakeDoc
1
Мне пришлось искать «USV» и найти «Беспилотный надводный автомобиль». Я знаю, что это неправильно, но я хочу, чтобы это было правильно.
Брайам
14

Блоки распределения управляемой мощности (а не ИБП) часто поддерживают индивидуальные задержки при включении отдельных розеток после возобновления питания.

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

HBruijn
источник
Да, правильно. Это расширенная функциональность, и не предполагается, что USV на самом деле подключен к серверам, но это питание стоек, которые затем используют PDU для обработки деталей.
TomTom
6

У меня была именно эта проблема. Единственное отличие заключается в том, что мы инвестировали в прочные блоки питания APC (например, APC SmartUPS 3000 ). С помощью программного обеспечения APC PowerChute для выключения сети ( PowerChute Network Shutdown) я могу выключать и запускать серверы в определенном порядке. Еще одна удобная функция программного обеспечения - настройка серверов на отключение в самую последнюю минуту, т. Е. Вычисление того, сколько энергии батареи оставили блоки APC, и отключение серверов с достаточным количеством времени для их правильного отключения вместо простого выключения.

Программное обеспечение ... не дружественное к пользователю, но в этом нет ничего сложного, если вы потратите время на его выяснение. Если вы заинтересованы в том, чтобы больше инвестировать в свою инфраструктуру, это, безусловно, путь.

Winski Tech
источник
1
У нас также есть Apc Smart Ups, некоторые из них относительно старые и, возможно, имеют слабые батареи. На них сложно провести какие-то испытания, потому что они в производстве. Кроме того, нам не хватает какой-то странной нагрузки, я имею в виду нагрузку, которая может без проблем выдержать внезапное отключение питания. Тем не менее, каждый раз, когда я имитировал отключение электроэнергии, ИБП вел себя не так, как ожидалось, это может быть связано с неправильной конфигурацией, но я чувствую, что эти ИБП не очень надежны.
Филиппо
@Filippo, конечно, YMMV, но у меня есть смесь SmartUPS 3000 и 3000XLM на нескольких сайтах, использующих программное обеспечение PowerChute в течение 3 лет, и после выяснения программного обеспечения, безусловно, есть кривая обучения и требуется некоторое тестирование, оно было довольно солидным.
Winski Tech
2

Похоже, что блоки ИБП являются недорогими и не могут быть настроены на определенное время ожидания выхода после восстановления питания (некоторые блоки более высокого уровня). Чтобы получить ту же функциональность, вам нужно выбрать конкретный хост, чтобы он всегда включался сразу (возможно, какой системе разрешено загружаться в любое время) и оставить все остальные серверы в выключенном состоянии (настроено в BIOS для возврата к питанию). Выключен при подаче переменного тока и для того, чтобы почтить магический пакет Wake On Lan и включить его, когда будет сказано сделать это) Затем на главном хосте, который выполняет загрузку, запустите скрипт / утилиту для определения времени передачи магического пакета WOL каждому хосту.

Джефф Меден
источник