Как сервер работает с отверткой в блоке питания
PSU firmware is outdated.
Когда я впервые увидел такую надпись при опросе версий прошивок HP DL380, то был несколько обескуражен. Эм, ну ладно, если очень нужно — скачай и поставь. Но что за софт может быть в банальном блоке питания? Оказалось, что для диагностики местной системы жизнеобеспечения и обработки отказов по питанию. Там натуральный кластер из блоков питания, со своим арбитром и логикой. Под катом рассказ об устройстве такого «кластера» и о том, почему 2×1400 = 2300W.
Два блока питания — в два раза выше надежность? Не всегда, потому что зависит от настроек системы электропитания. Вот о ней подробнее и поговорим. В качестве предметов рассказа я выбрал оборудование среднего серверного класса, вроде такого:
HP ProLiant DL380
Lenovo System x3500 M5
- Supermicro SuperServer 6028R-T
То есть, не блейды и не мейнфреймы — у них все иначе устроено. Обратите внимание, форм-фактор сервера не имеет значения для наличия или отсутствия дополнительных блоков питания.
Надежность или удобство
Начнем с ответа на вопрос «зачем сколько БП, если можно просто хранить небольшой запас запчастей». Системы с резервированием в сервере всегда полезны, даже если не рассматривать отказоустойчивость. Например, они повышают удобство обслуживания и позволяют нам не ночевать в серверной при замене дисков или тех же блоков питания.
Например, второй блок питания поможет, если:
Выйдет из строя ИБП;
Дорожные рабочие найдут месторождение электричества;
Возникнет необходимость переноса сервера в другую стойку;
- Железу нужно больше мощности, чем обеспечивает самый производительный из доступных в каталоге источников питания.
Два блока питания дают больше гибкости при проектировании серверной комнаты. Например, рабочая схема подключения у одного клиента: в серверной две фазы, подключены к разным блокам питания серверов. Одна фаза подключена к UPS, а вторая работает только через стабилизаторы. Но эта линия идет от генератора с автозапуском. При отключении электричества дизель стартует и серверы продолжают работать, даже если UPS разрядятся. Это всего лишь один из вариантов, подобранный с учетом пожеланий клиента и возможностей бюджета.
Итого, несколько БП нужны для удобства администратора, повышения надежности системы и обеспечения большей мощности.
Теория «на коленке»
Простейший вариант систем с двумя блоками питания выглядит как запитывание отдельных комплектующих компьютера от разных блоков, при этом один из них управляющий и питает материнскую плату. Подобные решения практикуют геймеры и майнеры, потому что для установки трех и более видеокарт одного источника питания не хватит. Для подключения используют такие адаптеры:
При нажатии на Power замыкаются зеленый сигнальный провод с «землей», давая команду на запуск обоим блокам питания.
Помню, когда-то давно был у меня компьютер уровня Pentium III с набором SCSI дисков. Штатного блока питания перестало хватать, и я подключил старый АТ-блок отдельно для жестких дисков. Запуск чудо-машины происходил так: нажимаем на кнопку дополнительного питания и ждем жужжания дисков, затем включаем основной БП и начинается загрузка.
Даже в эпоху всепроникающего Китая для «самоделкиных» существует множество схем подключения двух блоков питания своими руками, чтобы получилась похожая конфигурация:
Но вернемся к промышленным серверным решениям.
Устройство питания по своей логике довольно простое. Блоки подключаются к специальной корзине Power Distribution Backplane, где также присутствует микроконтроллер Power Distribution Unit (не путайте с распределителем питания для серверной стойки). Контролер отвечает за схему использования доступных БП: одновременно или в режиме primary-backup.
Настройка и логика работы
Столь продвинутую подсистему питания можно настраивать под конкретные потребности. При использования сервера с двумя блоками питания доступно несколько режимов работы:
Резервирование, при котором один блок питания нагружен постоянно, а второй готов подхватить нагрузку в случае сбоя;
- Распределение нагрузки, при котором сервер использует оба блока питания одновременно.
Очень напоминает RAID — его отказоустойчивый уровень 1 и производительный 0.
Большинство производителей позволяют администратору выбрать необходимый режим. Например, в таком сервере HP настройка через BIOS выглядит следующим образом:
Изображение немного устарело, так как в новых системах используется настройка через iLO, но для понимания сути ее достаточно.
Посмотрим на выдаваемую мощность пары блоков питания HP DL360 при разных режимах настройки и небольшой нагрузке. Для этого используем консольную утилиту hpasmcli.
- Balanced Mode
hpasmcli> SHOW POWERSUPPLY
Power supply #1 | Power supply #2 | |
Present: | Yes | Yes |
Redundant: | Yes | Yes |
Condition: | Ok | Ok |
Hotplug: | Supported | Supported |
Power: | 110 Watts | 95 Watts |
Не обманул производитель, блоки питания выдают примерно одинаковую мощность.
- High Efficiency Mode
hpasmcli> SHOW POWERSUPPLY
Power supply #1 | Power supply #2 | |
Present: | Yes | Yes |
Redundant: | Yes | Yes |
Condition: | Ok | Ok |
Hotplug: | Supported | Supported |
Power: | 90 Watts | 20 Watts |
И правда, при использовании режима распределения нагрузки блоки нагружены примерно одинаково. Но при включении отказоустойчивости используется только один блок питания, а второй переводится в Standby и расходует минимум энергии.
Своеобразный «спящий режим» нужен для того, чтобы избежать холодного старта при подключении резервного БП, сэкономить время и минимизировать риски выхода блока питания из строя в процессе его активизации. Как и в случае с бытовыми лампочками, при любом холодном включении образуются пиковые нагрузки на элементную базу электроцепи, что может привести к ее порче.
Настройка режимов работы у каждого производителя выполняется по-своему. Например, у Lenovo (IBM) в системах с двумя блоками питания настройка через GUI выглядит следующим образом:
На выбор предлагаются три режима работы:
Отказоустойчивость без снижения энергопотребления — вернемся к нему позже;
Отказоустойчивость с понижением мощности;
- Без отказоустойчивости, но с максимальной мощностью.
Generic-серверы, вроде Intel и Supermicro, не всегда хорошо документированы и открытой информации о настройках режимов работы БП не оказалось. Пришлось обратиться к нашим инженерам и форумам. Оказалось, что подобные системы обычно работают они в режиме балансировки нагрузки.
Если вы плотно работали с подобными платформами и владеете другой информацией — поделитесь в комментариях, пожалуйста.
Еще интереснее обстоят дела с системами из трех и более БП.
Три, четыре — кто больше?
Как и в аналогии с RAID, большее число узлов открывает более изощренные схемы использования. Например, у сервера Supermicro с тремя блоками штатно используется режим работы 2+1, то есть работают одновременно два, а третий в резерве.
В случае с четырьмя БП в Lenovo можно настроить использование блоков питания более гибко. Интерфейс даже считает показатели мощности самостоятельно:
С точки зрения баланса производительности и надежности, подобные конфигурации из 4 БП оправданы только при использовании «прожорливых» комплектующих. В остальных случаях запас по мощности будет избыточным, а удобство и запас надежности обеспечивают 2 блока питания с разными подводами электричества.
На мой взгляд, в таких платформах интереснее вместо третьего и четвертого БП поставить резервные батареи (примеры для Supermicro и HP). Они подстрахуют от проблем с UPS и минут на 5 повысят время работы без электричества в сети. Кроме того, с подобными модулями удобнее заниматься обслуживанием железа: выдернул кабель — и спокойно перенес сервер в другой шкаф. Время работы сервера от встроенной батареи составляет около пяти минут.
Один на 800 или два по 400
Опыт инженеров Сервер Молл показывает, что блоки питания на втором месте по выходу из строя, после жестких дисков. По крайней мере, в ходе восстановления серверов эти компоненты часто меняются из-за применения в их конструкции электролитических конденсаторов.
Если к сбоям дисковой подсистемы мы привыкли и держим запасной диск наготове, то замена для системы питания встречается на полках ЗИП реже. Ситуацию в какой-то степени спасает гарантия и возможность получить замену отказавшего БП через пару дней с курьером, но Закон Мерфи со счетов сбрасывать не стоит. В моей практике был случай, когда во время ожидания замены отказавшего БП вышел из строя оставшийся. Хорошо, что на сервере ничего жизненно-важного не было.
Если оставить в стороне надежность, то остается вопрос с мощностью. Как правило, лучше взять сразу два блока питания, каждый с достаточным запасом выходной мощности. Но если бюджет таких вольностей не позволяет, то придется взвешивать потребности более детально и учитывать проседания мощности источников питания. Обратимся к руководству от HP, в котором представлен график КПД системы питания в разных конфигурациях:
В случае низкой нагрузки машины КПД одного блока питания выше, но картина меняется, если у нас высоконагруженный сервер.
Что же будет, если один из блоков питания выйдет из строя, а мощности оставшегося не хватит?
У многих вендоров предусмотрен механизм снижения энергопотребления на случай сбоя — PowerSafe Guard у Fujitsu, Throttling у Lenovo. Использование подобных механизмов не всегда спасает ситуацию, да и существенное падение производительности порой хуже простоя.
Есть еще один нюанс: возрастает нагрузка на второй блок питания, что повышает вероятность его выхода из строя. Лучше исходить из того, что один блок питания из пары должен обеспечивать сервер целиком, хотя бы при штатных нагрузках. Разница в стоимости блоков питания разной мощности не так уж велика, поэтому стоит выбирать более производительные модели. Например, вот цены на варианты от Supermicro:
Блок питания PWS-406P-1R на 400 Ватт стоит в среднем 12 000 ₽;
- Блок питания PWS-706P-1R на 700 Ватт стоит в среднем 14 000 ₽.
Цены взяты с Яндекс маркета, так что в реальности они могут быть даже ниже. Экономия 4 000 ₽ в ущерб отказоустойчивости выглядит так себе даже для небольшого сервера.
Так что там с прошивками
Современный блок питания содержит набор диагностических механизмов для контроля внутренней системы охлаждения, напряжения, силы тока и массы внутренних состояний.
Помимо автоматического отключения при перегреве, полезно иметь возможность подключить к централизованному мониторингу показатели работы подсистемы питания. Например, с их помощью можно прогнозировать выход из строя определенного БП или выявить нестабильный подвод электричества. Все это обеспечивают микроконтроллеры, внутреннюю логику которых производитель периодически совершенствует в новых обновлениях.
А теперь о минусах
При всех описанных преимуществах, у решений с несколькими блоками питания есть и отрицательные стороны:
Необходимость покупать более дорогие проприетарные блоки питания. Как правило, они должны быть одинаковыми, что может вызвать проблемы с заменой для очень старых серверов;
Узким местом становится управляющий блоками питания контроллер и плата, к которой они подключаются (Power Distribution Backplane);
При малой нагрузке больший расход электроэнергии, как следствие специфического алгоритма использования;
- Вероятность выхода из строя одного блока питания из группы все же выше, чем сбой единственного — банальная теория вероятности. Поэтому стоит внимательно относиться к выбору энергоемких решений, полностью использующих оба блока питания.
Если у вас есть собственный негативный опыт работы с конфигурациями из нескольких блоков питания — было бы интересно почитать в комментариях.
В завершение приведу несколько полезных ссылок на калькуляторы мощности популярных вендоров:
HP
Lenovo
- Dell
Если вам тоже лень оценивать мощность при выборе очередного нового сервера, то эти инструменты помогут при расчете как мощности блоков питания, так и энергопотребления всего ЦОД.