Я разрабатываю программное обеспечение для энергетического консалтингового бизнеса и при мониторинге энергопотребления в центрах обработки данных, я заметил, что типичная «схема» электрической нагрузки в центре обработки данных - это просто прямая линия, потому что все оборудование работает круглосуточно, 7 дней в неделю. Если вы сравните это с фактическим шаблоном использования (загрузка сети, использование ЦП и т. Д.), Что мы и сделали, у вас регулярно бывают длительные периоды с небольшим использованием, но с полной доступной мощностью.
Эти закономерности во многих случаях очень предсказуемы, и для экономии энергии было бы здорово отключать часть оборудования (серверы, коммутаторы, хранилище) регулярно или в условиях низкой нагрузки. Однако я могу придумать несколько аспектов, на которые следует обратить внимание, в том числе
Вероятно, есть еще кое-что. Есть ли программное обеспечение, которое обрабатывает такой сценарий, и на что еще следует обратить внимание? Это жизнеспособное предложение?
Для моих целей кластер не обязательно означает кластеризацию машин на уровне ОС, идентичные хосты, которые получают запросы через балансировщик нагрузки (то есть кластеризация на уровне приложений), также будут учитываться. Я не уверен, как работает кластер MySQL или аналогичный, но, вероятно, я бы тоже их посчитал.
Ищу совета по любой операционной системе.
Также мой сообщение об энергоэффективности в Stack Overflow, который поднял этот вопрос.
VMware
Последняя версия их корпоративного продукта VSphere 4 может отключать хосты, которые не нужны для обеспечения максимальной емкости, и активировать их, когда это необходимо, путем распределения виртуальных машин в режиме реального времени. Объедините это с экономией энергии / энергии, которую вы получаете от консолидации вашего оборудования на виртуализированной платформе, и вы можете получить значительную экономию энергии.
Об этом говорилось на Planet Ubuntu только сегодня. Сообщение можно найти Вот. В нем говорится о разработке практического решения для включения / выключения машин по запросу в облаке с использованием PowerNap.
На этот вопрос есть миллион ответов, и большинство из них вам не подходят.
Это зависит от операционной системы, оборудования и нагрузки.
Если это решение должно быть отзывчивым, т.е. Чтобы быстро снизить энергопотребление и быстро вернуться, вам следует обратить внимание на оборудование с функцией сна ACPI, а не на отключение. Как упоминалось выше, Wakeonlan будет работать правильно только тогда, когда оборудование находится в спящем состоянии.
Вторая часть этой проблемы - контроль. Когда переводить систему в спящий режим, а когда снова пробуждать. Не зная, как ваш кластер управляет нагрузкой, вы действительно не получите ответа на этот вопрос.
Лично я управляю веб-фермой, у которой есть балансировщик нагрузки. Трафик направляется на пару хостов до определенного уровня, а затем циклически перебирает остальные. Когда эти другие серверы не проявляют никакой активности в течение часа или после 18:00, они переводятся в состояние сна. Когда сценарии snmp показывают, что объем пользователя на балансировщике нагрузки увеличивается, этим спящим хостам отправляется волшебный пакет wakeonlan, и кластер возвращается в полную мощность. Он мог бы быть более детальным, но я действительно могу экспериментировать только вживую, так что это были небольшие движения, в которых я уверен.
Ура М.
Использовать Коммутируемые PDU так что вы можете включать и выключать серверы вне диапазона. Это не зависит от ОС и устройства, что значительно упростит конфигурацию и логику, которая включает и выключает устройства. Если все ваши серверы имеют сетевые интерфейсы IPMI, вы можете использовать их вместо них. Я бы не рекомендовал пытаться включать и выключать вещи с помощью более высокоуровневых вещей, таких как wake-on-LAN.
Это может принимать разные формы. Некоторое программное обеспечение для кластеризации (например, Моав) имеет встроенное решение для этого. В противном случае вы можете написать сценарий со следующим псевдокодом:
Поместите это в cron и запускайте каждые полчаса.
Очевидно, вам необходимо убедиться, что ваш программный стек для кластеризации может справляться с постоянным повышением и отключением этих устройств. Проведите здесь много тестов, рассмотрите неясные проблемы с синхронизацией (загрузка требует времени) и любые условия гонки, которые будут возникать в используемой вами логике включения / выключения питания.
Что ж, для серверов команду SHUTDOWN.EXE можно использовать для удаленного закрытия окна Windows. То же самое можно легко сделать в Unix с помощью сценария telnet / ssh.
Более серьезная проблема будет заключаться в том, как снова запустить их. Вам понадобится Wake On LAN или что-то подобное для этого.
Сложнее всего сделать это, чтобы убедиться, что машины, которые вы выключаете, на самом деле не делают что-то важное. Как это задание cron, которое никто не знал точно, куда он должен идти, поэтому они просто поместили его на один из кластерных веб-серверов. Теперь вы выключаете эту машину, и работа больше не выполняется, как предполагалось.
Однако, если окружающая среда строго контролируется и вы точно знаете, что делает каждая машина, это имело бы смысл.
Включение и выключение машин удаленно действительно не должно быть проблемой сегодня, поскольку практически все серверное оборудование реализует IPMI, а начать работу с инструментами - вполне легко.
Шерсть хорош в других случаях использования, например, когда ваш настольный компьютер перешел в спящий режим и вы хотите, чтобы он просыпался перед запуском заданий резервного копирования.
Стандартного интерфейса для "сна по локальной сети" нет. IPMI был разработан для решения такого рода проблем, что обеспечивает большую согласованность и лучший контроль.
(Обновить: обратите внимание, что вы жестяная банка вероятно, используйте WoL для просыпайся если вы использовали dm-suspend вздремнуть вместо того, чтобы отключиться ... Может быть интересный компромисс.)
(Примечание для поисковой системы: я бы узнал об этой ветке раньше, если бы у нее был заголовок, более похожий на "Автоматическое переключение мощности узлов кластера с адаптацией к нагрузке")
Sun SGE (Sun Grid Engine) - это кластерная система планирования / пакетной очереди, которая в последней версии поддерживает энергосбережение за счет отключения узлов, которые в настоящее время не нужны в соответствии с определенной спецификацией очереди / рабочей нагрузки. Имейте в виду, что это система специального назначения в стиле HPC. Выключение определенных частей центра обработки данных может быть одним огромный проблема зависимости.