Каждое техническое задание, которое мы читаем, описывает будущую инфраструктуру в ядрах, гигабайтах и терабайтах. Иногда доходит до числа портов и длины патч-кордов. Киловатт мы не видели ни разу.
Между тем именно киловатты решают, поместится купленное в помещение или нет. Юниты в стойке заканчиваются позже — обычно сильно позже. Первым заканчивается подвод электричества, а сразу за ним способность зала отвести выделенное тепло.
Показательная история для затравки. При проектировании одного нового центра обработки данных иностранные архитекторы заложили 3 kW на стойку. Это было за год-два до того, как спрос на вычисления для моделей изменил рынок. Три киловатта — это четыре сервера баз данных или два узла виртуализации. Один современный узел с ускорителями в такую стойку не влезет вообще, а обычный гиперконвергентный кластер придётся разносить на пять стоек. Проект при этом был сделан по нормам своего времени и никаких ошибок не содержал.
Дальше — разбор на числах из проектов, которые проходили через нас. Сразу оговоримся: не все они выполнены нашими руками. Часть мы вели от расчёта до внедрения, в части участвовали на отдельных этапах — считали конфигурацию, разбирали проблему, готовили предложение, — а работы выполнял кто-то другой. Спецификации и замеры от этого не перестают быть настоящими, но приписывать себе чужую работу мы не хотим.
Потребление мы посчитали по составу конфигураций: сложили заявленную мощность процессоров, потребление модулей памяти и накопителей, ускорителей, сетевых карт, вентиляторов и платформы, разделили на КПД блоков питания. Это оценка, а не замер стрелочным прибором, и мы отдельно отмечаем, где она может разойтись с фактом.
Это первая часть разговора: из чего складывается потребление, как оно зависит от процессоров и ускорителей и как распределяется по стойке. Вторая часть — про то, что уже стоит на площадках, про тепло и про готовые комплексы, которые приезжают собственным шкафом, — в следующем выпуске.
Заказчиков не называем: Средняя Азия, отрасль не указываем, состав конфигураций обобщён.
Факторы
Из чего складывается ватт
Методика расчёта зависит от типа машины. В одной всё решают процессоры, в другой они дают двадцатую часть.
Прежде чем считать стойки, разберём, из чего вообще набирается потребление одного сервера. Факторов немного, и веса у них совершенно разные в зависимости от типа машины.
В сервере базы данных на два процессора по 24 ядра почти всё потребление — это процессоры: 60% из примерно 700 W. Память, накопители и сеть вместе дают меньше пятой части. Такая машина считается просто: взяли два числа TDP, добавили треть сверху и получили ответ с приличной точностью.
В гиперконвергентном узле на 172 ядра картина уже другая. Процессоры дают 39%, накопители — 21%, вентиляторы — 14%, память — 13%. Считать по одним процессорам здесь нельзя, ошибка будет в полтора раза.
А в узле с восемью ускорителями процессоры занимают 5% и роли почти не играют. Там 69% — сами ускорители и 9% — вентиляторы, которые вынуждены прогонять через шасси очень много воздуха.
Отсюда первое практическое правило: методика расчёта зависит от типа машины. Для обычных серверов достаточно процессоров с надбавкой, для узлов с большим числом накопителей надо считать накопители, для машин с ускорителями всё остальное можно округлить.
И несколько вещей, которые в расчётах пропускают чаще всего.
Накопители почти не отдыхают. Enterprise-накопитель NVMe берёт под нагрузкой от 12 до 19 W в зависимости от объёма и типа, а в глубоком простое может опуститься до 4-8 W. Но в гиперконвергентном кластере до простоя дело почти не доходит: фоновые операции, дедупликация и репликация держат накопители в работе постоянно. Поэтому для бюджета по питанию разумно брать верхнюю планку — двадцать четыре накопителя в узле дают около 360 W.
Вентиляторы не бесплатны. В плотной конфигурации они дают от десятой части до седьмой всего потребления, и их доля растёт по мере нагрева: чем горячее в зале, тем больше сервер тратит на собственное охлаждение. Это обратная связь, которая в расчётах обычно отсутствует.
Блоки питания имеют КПД. У современных он около 94-96% при типовой загрузке, но падает и на очень малой, и на предельной. Пять процентов потерь на вводе — это то, что зал должен выдать сверх того, что потребляет электроника.
Сетевые карты в серверах общего назначения незаметны, а в машинах с ускорителями становятся заметной строкой: несколько карт на 400 Gb и сопроцессоров дают в узле полкиловатта, столько же, сколько его процессоры.
Процессоры
Поколения и эффективность
В пересчёте на ядро процессоры дешевеют по электричеству. Сервер целиком при этом дорожает.
Теперь про то, как всё это меняется со временем, и здесь есть две противоположные тенденции.
Первая: в пересчёте на ядро процессоры становятся экономичнее. Возьмите процессоры одного поколения и посчитайте ватты на ядро — у 96-ядерного выходит 3.75 W, у 86-ядерного 4.07, а у 24-ядерного из той же линейки 10.62. Разброс почти втрое, и он идёт против интуиции: чем плотнее процессор, тем экономнее каждое его ядро.
Проверим на масштабе, потому что в пересчёте на комплекс разница выглядит внушительнее. Комплекс из 45 узлов даёт 7740 ядер на 86-ядерных процессорах. Те же 7740 ядер на 24-ядерных потребовали бы 162 узла вместо 45. Только на процессорах это 82 kW против 31.5 kW — разница больше 50 kW, не считая памяти, накопителей и вентиляторов, которых тоже стало бы втрое больше. Плюс 162 юнита против 90 и вдвое больше портов в коммутаторах.
То же и со сменой поколений. Новое поколение при том же числе ядер обычно даёт больше производительности на тот же или близкий TDP — за счёт частоты, кэша и пропускной способности памяти. Если выбирать модель по числу ядер, а не по позиции в линейке, прирост достаётся почти бесплатно.
Вторая тенденция обратная: сервер целиком становится прожорливее. Верхние модели в линейках ушли с 250 W на процессор к 500 W. Память стала быстрее и её стало больше. Накопителей в узле стало два десятка вместо четырёх. В итоге узел нового поколения потребляет больше старого, даже если процессоры в нём эффективнее на ядро.
Эти две тенденции не противоречат друг другу, они просто отвечают на разные вопросы. «Сколько ватт на единицу работы» — падает. «Сколько ватт на юнит стойки» — растёт. Зал живёт по второму числу.
В предыдущем выпуске серии мы писали, что при лицензировании по физическим ядрам процессор надо выбирать по числу ядер, а не по позиции в линейке. Здесь добавляется вторая сторона той же развилки: плотность экономит киловатты и место, частота экономит лицензии. Что дороже — зависит от того, чего у вас меньше.
Ускорители
Градации ускорителей
От одной карты в обычном сервере до восьми в отдельном шасси — разброс больше, чем между всеми прочими типами машин.
Отдельно про машины с ускорителями, потому что разброс внутри этой категории больше, чем между всеми остальными типами серверов.
Нижняя ступень — обычный двухпроцессорный сервер в корпусе 2U с одной профессиональной картой на 600 W. Такая машина берёт около 1140 W, то есть примерно вдвое больше сервера без карты, и ставится в любую стойку без особых условий. За последние пару лет таких конфигураций в нашем регионе появилось заметно больше десятка — это уже не экзотика, а рабочий вариант для задач, которым нужно немного ускорения.
Вторая ступень — тот же корпус с двумя картами: около 1640 W. Всё ещё обычная стойка, но уже 820 W на юнит, больше, чем у гиперконвергентного узла.
Дальше идёт разрыв. Восемь ускорителей в корпусе 8U — это отдельный класс машин, и цифры по поколениям выглядят так. Ускоритель поколения 2020 года брал 400 W на чип. Следующее поколение — 700 W. Ещё следующее — 1000 W. Текущее — 1100 W в воздушном исполнении и 1400 W в жидкостном.
То есть за пять лет мощность на один ускоритель выросла втрое, а восьмиускорительный узел — с примерно 3.5 kW до 8.6 kW в воздушном варианте. Жидкостный вариант того же поколения даёт свыше 11 kW на узел до процессоров и сети, и для него прямое жидкостное охлаждение не опция, а обязательное условие: воздухом такое не берётся.
Вот на этом месте стоит задержаться, потому что здесь проходит граница применимости. Пока речь идёт об одной-двух картах, вопрос решается в обычном зале. Восемь ускорителей в воздушном исполнении ещё можно разместить, если зал позволяет по подводу и по воздуху. Жидкостное исполнение требует контура, которого в регионе почти ни у кого нет, и опыта эксплуатации, которого нет тем более.
Про следующее поколение скажем коротко: оно анонсировано, но публичных данных по мощности на ускоритель и на стойку производитель не раскрывает, а цифры, которые ходят по обзорам, первоисточника не имеют. Планировать по ним нельзя.
За пять лет мощность одного ускорителя выросла втрое, а узел из восьми — с трёх с половиной киловатт до одиннадцати.
Практический вывод простой. Если к вам приходят с задачей «нужно немного ИИ», это скорее всего первая или вторая ступень, и она решается в существующем зале. Если приходят с задачей уровня обучения моделей, разговор начинается не с ускорителей, а с того, что в зале есть по подводу и по охлаждению.
Размещение
Стойка кончается не юнитами
Кластер из 15 узлов занимает 30 юнитов и не помещается в стойку на 42. Ограничитель не там, где его ищут.
Теперь про арифметику размещения, и здесь у нас есть живой случай.
Кластер из 15 узлов, каждый с двумя 86-ядерными процессорами: 172 ядра на узел, 2580 ядер на кластер. Занимает 30 юнитов — то есть меньше трёх четвертей стойки. По типовому потреблению это 18.2 kW, по расчётному максимуму 26.7 kW.
Кластер пришлось разнести на две стойки.
Не потому, что не хватило места. Места было с избытком: после разноса в каждой стойке занято 16 и 14 юнитов из 42, больше половины пустует. Не хватило киловатт. Заказчик оплатил два стоечных места, чтобы разместить оборудование, физически помещающееся в одно.
Это, кстати, косвенный способ узнать реальный подвод в зале, когда паспортных данных нет. Раз 15 узлов не встали вместе, потолок ниже 18 kW. Раз 8 узлов встали с запасом — где-то в районе 12-15 kW. Такая оценка точнее, чем то, что обычно отвечают на вопрос «сколько у вас на стойку».
И вот следствие, которого в задаче на размещение не было вообще. После разноса в каждой стойке лежит примерно половина кластера. Значит отказ стойки — ввода, автомата, коммутатора — выносит половину узлов разом. Половина в большинстве схем кворума хуже, чем треть: три стойки по пять узлов переживают потерю одной, две по семь-восемь — вопрос, который надо решать отдельно и заранее.
Задача звучала как «разместить оборудование». Решение приняли по питанию. А изменился при этом домен отказа, и пересчитывать отказоустойчивость никто не планировал, потому что в повестке этого пункта не было.
Из этого мы сделали правило, которое теперь применяем ко всем проектам: схему размещения в стойках надо согласовывать не с монтажниками, а вместе с архитектурой платформы. Иначе ограничение по электричеству молча переписывает решение по надёжности.
Распределение
Киловатты приходят фазами
Пятнадцать киловатт — это не одно число, а три фазы, два луча и номиналы автоматов, которые должны сойтись между собой.
До сих пор мы писали «15 kW на стойку» так, будто это одна величина. На самом деле её не существует — есть три фазы, каждая со своим автоматом, и два независимых луча. И то, как нагрузка по ним разложена, решает, работает конструкция или выбивает защиту.
Начнём с арифметики, без которой дальше нельзя. Трёхфазный ввод даёт втрое больше мощности, чем однофазный того же номинала: три фазы по 230 V вместо одной. Коэффициент 1.732, который часто всплывает в этом месте, относится к той же формуле, записанной через линейное напряжение 400 V, и для сравнения с однофазным вводом не годится. Но взять от автомата всё, что написано на его корпусе, нельзя: для длительной нагрузки принято правило 80%, и производители оборудования распределения питания уже закладывают его в паспортную мощность. Отсюда таблица, которую стоит держать в голове.
А теперь вернёмся к нашему кластеру из 15 узлов. Типовое потребление 18.2 kW, максимум 26.7 kW. Трёхфазный ввод на 32 A даёт 17.7 kW рабочей мощности. То есть кластер не проходит по вводу даже в обычный день, не говоря о максимуме.
Проверим иначе, по фазам. Идеальная раскладка — по 5 узлов на фазу, это 6.05 kW и 26.3 A при рабочем пределе 25.6 A. Не проходит и так, причём при безупречной балансировке. А если разложить небрежно, 6-5-4, то на первой фазе окажется 31.6 A — это уже не «тесно», это сработавший автомат.
Разнесённый вариант выглядит иначе. Восемь узлов дают 14.2 kW на максимуме и около 20.6 A на фазу, семь узлов — 12.5 kW и 18.1 A. Оба укладываются в ввод на 32 A с нормальным запасом. То, что выглядело решением «не хватило киловатт», при ближайшем рассмотрении оказывается решением «не хватило номинала ввода», и это разные вещи: подвод в зал мог быть и больше, упёрлись в то, чем эту мощность раздают по стойке.
Дальше — три ошибки, которые мы видим в расчётах питания чаще всего.
Первая: считать по шильдикам блоков питания. В узле с восемью ускорителями стоит восемь блоков по 3200 W, суммарно 25.6 kW установленной мощности при реальном максимуме около 12 600 W. Заказчик, заложивший в заявку энергетикам паспортную сумму, либо получает отказ, либо платит за вдвое большую подведённую мощность, чем ему нужна. Блоки ставятся с запасом и под резервирование, их сумма не является потреблением.
Вторая, обратная и опаснее: делить нагрузку между лучами. Резервирование по схеме с двумя независимыми вводами означает, что каждый луч обязан держать полную нагрузку, а не половину. Кто считает, что на каждый ввод приходится своя доля, узнаёт об ошибке при первом плановом отключении одного ввода — когда всё переходит на второй. Резервирование не уменьшает требования к лучу, оно их удваивает: два луча по 18 kW, а не два по девять.
Третья: забыть про нейтраль и балансировку. Блоки питания серверов — нелинейная нагрузка, и при перекосе фаз в нейтрали течёт ток, который не компенсируется. Отсюда требование закладывать нейтраль с запасом относительно фазных проводников и следить за равномерностью. Практически это означает, что порядок подключения серверов в розетки — не вопрос аккуратности монтажника. На вертикальном блоке розеток группы разнесены по фазам, и если воткнуть восемь узлов подряд в соседние розетки, они могут оказаться на одной фазе. Ток на ней вырастет втрое против расчётного.
Отсюда практика, которую стоит требовать от монтажа и фиксировать документом: схема подключения с указанием, какой узел в какую розетку и на какую фазу попадает, с расчётом тока по каждой фазе каждого луча — отдельно в нормальном режиме и отдельно при потере одного луча. Блоки розеток с пофазным измерением тока стоят дороже обычных, и эта разница окупается первым же случаем, когда нужно понять, почему сработала защита.
И последнее, про источники бесперебойного питания. Их мощность указывается в киловольт-амперах, а не в киловаттах, и у старых моделей коэффициент мощности составляет 0.8. Источник на 20 kVA в этом случае даёт 16 kW, а не 20. У современных моделей коэффициент близок к единице, но проверять это надо по конкретной модели, а не по названию. Ошибка здесь обнаруживается в худший момент — при переходе на батареи.
Структура счёта
Что платит за факт включения
Комплекс на 45 узлов и три площадки. Семьдесят один процент расхода электричества не зависит от того, работает ли что-нибудь.
Дальше — комплекс целиком, и он показывает вещь, которая меняет подход к экономии.
45 узлов на трёх площадках, 7740 ядер, около 90 TB памяти. Работают все три, но нагрузка распределена неравномерно: основная площадка несёт примерно 65% работы, две другие по 17-18% каждая — там живут вспомогательные сервисы и готовность принять основной контур.
По потреблению это 17.8 kW на основной площадке и по 12.0 kW на двух остальных. Всего 41.8 kW.
А теперь разложим эти 41.8 kW на две части. Узел в простое — это не выключенный узел: память, два десятка накопителей, сетевые карты, вентиляторы и платформа продолжают потреблять независимо от того, считает процессор или нет. По нашей оценке такой узел берёт около 660 W против 1210 W под нагрузкой.
Отсюда: 29.7 kW приходится на то, что оборудование просто включено, и только 12.1 kW зависит от реальной работы. Семьдесят один процент счёта за электричество платится за факт включения.
Это ломает привычную логику оптимизации. Консолидация нагрузки, повышение утилизации, борьба за плотность виртуальных машин — всё это работает внутри тех 29%, которые остались. Рычаги, которые двигают основную часть, лежат в другом месте и нажимаются один раз: сколько узлов вы включили и сколько ватт стоит одно ядро. После закупки эта часть счёта не оптимизируется никак.
Семьдесят один процент счёта за электричество платится за факт включения, а не за вычисления.
Из того же расчёта следует неожиданно приятный вывод про резерв. Если бы резервные площадки ничего не делали, комплекс потреблял бы около 38.2 kW. Работающий резерв обходится в 41.8 — плюс 9% к счёту. А полезной работы при этом делается примерно наполовину больше, потому что вспомогательные сервисы считают на железе, которое всё равно оплачено, запитано и охлаждается.
То есть правильная формулировка не «резерв простаивает и это расточительство», а «резерв должен работать, потому что основную часть его счёта вы платите в любом случае». Единственное условие — задачи на резервных площадках должно быть не жалко подвинуть в момент переключения. Это вопрос регламента, а не электричества.
Для проектирования питания, заметим, всё равно берётся максимум. Каждая площадка обязана принять полный контур, а это около 27 kW против 12 в обычный день. Разница между тем, что зал должен выдержать, и тем, что он несёт ежедневно, — больше чем вдвое, и оба числа нужны: первое для инженерии, второе для счёта.
Чек-лист
Что проверить до закупки
Восемь вопросов, которые стоит пройти до того, как оборудование приедет на площадку.
- Какой подвод электричества на стойку есть фактически, а не по проекту здания. Если цифры нет — посчитать по тому, что уже стоит и работает.
- Сколько киловатт даёт закупаемый комплект в типовой работе и сколько на расчётном максимуме. Это два разных числа, и нужны оба.
- Как устроено резервирование питания: при схеме с двумя лучами каждый должен держать полную нагрузку, а не половину.
- Какой номинал у вводных автоматов и сколько это даёт с учётом правила 80%. Мощность зала и номинал ввода в стойку — разные ограничения.
- Есть ли схема подключения по фазам с расчётом тока на каждой фазе каждого луча — в нормальном режиме и при потере одного ввода.
- В каких единицах указана мощность источника бесперебойного питания и какой у него коэффициент мощности.
- Сколько стоек потребуется по питанию, а не по юнитам, и что это делает с доменами отказа платформы.
- Сколько ватт приходится на ядро в выбранном процессоре и как это соотносится с лицензионной метрикой платформы.
Итог
Вместо вывода
Инфраструктуру покупают в ядрах и терабайтах, а размещают в киловаттах. Пока эти две величины живут в разных документах и обсуждаются разными людьми, разрыв между ними будет обнаруживаться на этапе монтажа — в самый неудобный момент, когда оборудование уже пришло.
Хорошая новость в том, что посчитать это можно заранее и без специальных знаний. Состав конфигурации известен до закупки, мощность компонентов опубликована, арифметика простая. Плохая — что после закупки поменять почти ничего нельзя: основная часть счёта за электричество определяется тем, сколько узлов вы включили, а это решение принимается один раз.
Если у вас на столе спецификация и вопрос, встанет ли это в существующий зал, — посчитаем вместе. Разложим по стойкам, по лучам и по фазам, и сразу станет видно, упираетесь вы в подвод, в номинал ввода или пока ни во что.