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

контролировать порядок запуска нескольких серверов

Я ищу рекомендации о том, как контролировать порядок запуска стойки машины, если все они должны быть загружены обратно. Более детально:

Group1:
  DHCP/DNS/LDAP Server
Group2:
  NFS servers
Group3:
  Web Servers
  Compute Nodes

В настоящее время я настраиваю apcupsd для обработки аварийного выключения, особенно для серверов данных, но я не уверен, должен ли я написать какой-то сложный запуск с использованием WOL, или если есть ранняя система сетевых событий для Linux, чтобы приостановить процесс загрузки пока не будут получены правильные события.

Если это имеет значение, все серверы Dell и у них есть iDRAC, но я не смог заставить его работать (не пробовал так сильно), если это предлагает какие-либо альтернативы.

Я бы поставил под сомнение конкретный сценарий, который вы планируете ...

Вы пытаетесь спланировать включение питания после отключения электроэнергии? Восстановление после какой-то катастрофы? Или ваше беспокойство больше связано с скачком мощности? Для последнего я иногда использовал случайные задержки запуска, настроенные в BIOS серверов, или использовал коммутируемый PDU для обработки последовательности включения, чтобы предотвратить перегрузку.

Что касается секвенирования, я бы разработал зависимости на уровне приложения. После холодного запуска серверы приложений должны выдерживать отказ, задержку или отсутствие серверов поддержки (DHCP / DNS / LDAP). Есть ли у вас серверы резервного копирования, на которых работают эти службы? Что-нибудь за пределами места?

Если нет, вы можете установить проверки запуска приложений или демонов - например, не запускайте демон NFS, если DNS-серверы недоступны. Я проделал небольшую проверку этой зависимости, используя Монит или сценарий-оболочка ... но на самом деле не думал об этом типе упорядочивания в большинстве сред.

Что вы пытаетесь достичь? Это минимизация (сглаживание) скачков спроса, вызванных одновременной загрузкой группы серверов, или что-то, что может подтолкнуть к экстренной адаптации отключения питания? Если это первое, то ищите секвенсоры мощности - в стойке есть блоки, предназначенные для включения групп розеток с программируемыми задержками - скажем, несколько минут между каждой из ваших групп, чтобы дать каждой из них возможность рассчитаться перед загрузкой. Раньше это было довольно распространено у некоторых продавцов в более крупной части среднего уровня.

У вас есть несколько вариантов. Может быть хорошей идеей объединить два или более из этих подходов.

  • Если каждая группа состоит из выделенных ИБП, вы можете до некоторой степени контролировать последовательность запуска ИБП. ИБП высокой мощности часто можно настроить на отсрочку их запуска. Распределите задержки запуска в соответствии со своими потребностями. В любом случае, вы должны запускать поочередно, чтобы не допустить срабатывания предохранителей или прерывателей на вашем источнике питания пусковой нагрузкой.

  • Как отмечали другие, есть PDU с возможностью задержки. Они будут настроены как для ИБП. Они также могут управляться сетью, поэтому следующая группа может быть включена, когда требуемые услуги станут доступны.

  • WoL - это один из подходов, который вы могли бы использовать, как уже отмечали другие.

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

  • Вы можете подключить свой Интернет к IP-адресам. но не включайте их, пока не будут созданы все необходимые службы. Для этого потребуется сценарий защиты, который проверяет, доступны ли требуемые службы.

  • Монтирования NFS можно настроить на блокировку, пока они не станут доступными. Это должно задержать дальнейшую обработку инициализации до тех пор, пока серверы NFS не будут обслуживать необходимые монтирования.

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