- PVSM.RU - https://www.pvsm.ru -

Как я собирал свой первый домашний сервер

Решил собрать свой домашний сервер для виртуализации, чтобы изучать и тестировать разные интересные штуки. Причем захотелось собрать самостоятельно вникая во все нюансы сборки сервера. Это было увлекательное путешествие в hardware мир!

В этой статье поделюсь тем что у меня получилось, с какими трудностями я столкнулся на всем пути самостоятельной сборки сервера и как их решал (правильно или неправильно), поделюсь личными выводами. А в конце посчитаем все это дело в цифрах (на начало 2023 года).

Мотивация

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

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

На самом деле здесь есть детали более весомые, и одно детское желание не могло склонить формальную логику к столь серьезным действиям.

Проработав на новой работе уже более трех месяцев (март 2023), на позиции DevOps инженера, я понял что мне нужно осваивать смежные специализации чтобы успешно коммуницировать не только с продуктовой разработкой, но и с суровой эксплуатацией. И так удачно совпало, что и работа неявно подталкивала меня к тому чтобы не только осваивать новые сервисы, но и обслуживать их самостоятельно. А как по другому понять рутину не имея собственных ресурсов?)

Но как собрать? Купить готовую сборку б/у как-то слишком легко, а вот "собрать полностью самостоятельно" звучало как увлекательное путешествие!

Как я собирал свой первый домашний сервер - 1

Здесь я еще не понимал сложность вопроса, потому что никогда не занимался такими делами на столько серьезно, чтобы взять и собрать сервер.

А теперь ближе к сути. Речь пойдет про миниатюрный "черный ящик" справа (слева белый это уже второй домашний сервер).

Как я собирал свой первый домашний сервер - 2

А вот так он выглядит в разрезе:

Как я собирал свой первый домашний сервер - 3

А так разобранный на этапе поставки первых комплектующих:

Как я собирал свой первый домашний сервер - 4

Итак, начнем :)

На первый взгляд ничего сложного

Когда я начинал эту затею, то мне казалось что последовательность действий примерно такая:

  • находим материнскую плату

  • к ней процессоры

  • накидываем охлаждение

  • затем ОЗУ

  • вставляем все это дело в корпус

  • покупаем блок питания

  • радуемся

Но так ли это на самом деле?

Компоненты

Перечисляю в порядке возникновения вопросов и поступления товаров:

Материнская плата

Так как это первый сервер в моей жизни, то я еще ничего не понимал в материнских платах, но осознавал что это фундаментальная часть сервера. От этого зависит выбор процессора, охлаждение, ОЗУ, дисков и прочее.

Мне нужна была плата с поддержкой процессоров только от Intel, потому что только с ними я работал как пользователь, с AMD не доводилось. И так как я собираю сервер, то мне нужна поддержка двух процессоров, true-сервер все-таки.

За пару дней нашел объявление на Авито о продаже Supermicro X9DBL-i [18] с двумя 6-ти ядерными Xeon E5-2420 [19] за 4250р. Посоветовался с другом, который имеет опыт работы с серверами - получил одобрение: не слишком старая и не дорогая.

Как я собирал свой первый домашний сервер - 5

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

Сокет процессора

Первый вопрос: какой выбрать сокет? А точнее: что это вообще такое?

Сокет это разъем для установки процессора.

Когда впервые с этим сталкиваешься то глаза разбегаются: LGA 1151/1366/1356/2011/2011v3 и это только малая часть и только для процессоров Intel, у AMD свои сокеты. Фото из поиска Яндекс:

Как я собирал свой первый домашний сервер - 6

Как выяснилось каждый вид сокета процессора поддерживает только ограниченные модели процессоров. Новый сокет - новые процессоры, но и цена выше. Например, материнские платы с сокетами 1356/1366 старше, но дешевле сокетов 2011/2011v3, а значит и менее актуальны.

Сейчас, после изучения этого вопроса, я пришел к выводу что нужно брать не старше чем LGA 2011. Но на тот момент я взял плату с LGA 1356. Здесь [20] есть краткое описание истории сокетов Intel, на википедии [21] есть информация по сокетам, а там [22] много материала по мейнстриму LGA 2011v3 и статьи по сборкам хуананов (к слову сейчас (ноябрь 2024) я себе взял двухсокетный хуанан на пробу).

Сокет LGA 1356 был не массовым и предшествовал LGA 2011, который близится к закату своего мейнстрима на б/у рынке (субъективно). Но сейчас я понимаю что за свою цену это приемлемое предложение. Если говорить про апгрейд до LGA 2011 где еще DDR3, то на выброс пойдут только материнская плата с процессорами, а охлаждение (если речь про quad сокет) и ОЗУ пойдут на новую плату.

IPMI

Раз уж речь идет о сервере, то по канонам нужен IPMI [23]. Но на момент покупки платы я еще не знал про это.

Здесь [23] есть интересная статья про IPMI, а если коротко то:

IPMI реализует BMC контроллер на плате, на котором тоже скорее всего стоит Linux, этот контроллер работает от дежурного питания материнской платы и позволяет управлять питанием сервера (вкл/выкл/перезагрузка), а также реализует KVM [24] (удаленный доступ с поддержкой клавиатуры, видео и мыши). Кроме того, этот же контроллер осуществляет роль видеокарты.

Как я собирал свой первый домашний сервер - 7

Проще говоря: IPMI позволяет удаленно через веб-интерфейс управлять питанием процессора и через KVM подключаться к серверу.

На моей плате был контроллер, но не было IPMI, видимо он выполнял роль только видеоконтроллера. Это побудило меня к исследованию вопроса что в конечном итоге вылилось в статью о поисках IPMI [25].

Самый простой способ понять есть ли IPMI на плате это посмотреть на LAN порты:

Как я собирал свой первый домашний сервер - 8

Если бы не история с ОЗУ (см. ниже) то наверное я бы не упомянул IPMI.

Форм-фактор

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

Как я собирал свой первый домашний сервер - 9

К слову, у меня возникли некоторые трудности в поисках корпуса для размера SSI-EEB, который E-ATX, но тут нужно уточнять в каждом конкретном случае, потому что трактовки этих форм-факторов разные у разных продавцов.

Для самОй материнской платы форма-фактор может влиять на количество и плотность компонентов:

Как я собирал свой первый домашний сервер - 10

Процессоры

Материнская плата с сокетом LGA 1356 есть, теперь под этот сокет нужно подобрать процессор.

В документации к плате сказано, что она поддерживает всю линейку процессоров Xeon E5-2400 v2, а топовый в этой линейке это Xeon E5-2470v2 [26] с 10-ю ядрами. Поискав на Авито, удалось найти объявления по 1000р за штуку, беру два.

Как я собирал свой первый домашний сервер - 11

Здесь мало что скажешь, мы ограничены небольшой линейкой моделей, но в LGA 2011v3 выбор будет больше (списки для v3 [27] и v4 [28]).

Охлаждение процессоров

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

Есть радиаторы, стоковые кулеры, башенные кулеры. У них есть различные крепления и есть даже переходники с одних сокетов на другие. Что выбрать?

Как я собирал свой первый домашний сервер - 12

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

Как я собирал свой первый домашний сервер - 13

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

Как я собирал свой первый домашний сервер - 14

Ладно, кулеры так кулеры, а что с креплениями?

Опытным путем и гуглением было выяснено что крепления для сокетов 1356 1366 и 2011 одинаковые. Значит нужны кулеры для одного из эти сокетов.

Если присмотреть к площадкам для процессоров на материнской плате, то можно увидеть 4 отверстия, вот туда то и должны вкручиваться ножки кулера.

Как я собирал свой первый домашний сервер - 15

В интернет-магазинах можно найти переходные варианты в виде пластиковых креплений для кулеров под AMD сокеты. Я взял, померил, но пока не стал использовать, субъективно - ненадежно. Сразу фото в цвете:

Как я собирал свой первый домашний сервер - 16

Поиски в интернете навели меня на башенные кулеры Deepcool GAMMAXX S40 за 1108р за штуку, а их надо 2, итого: 2216р

Как я собирал свой первый домашний сервер - 17

А вот так они стоят на плате:

Как я собирал свой первый домашний сервер - 18

Кулеры поддерживают сокеты LGA 1156, LGA 1366, LGA 2066, винты крепления имеют регулируемую удаленность, есть также переходники для AM3, AM3+.

Из-за регулируемых (нефиксированных) винтов монтаж на сокет оказался проблематичным, через несколько итераций монтажа резьба на одном из винтов была сорвана.

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

Как я собирал свой первый домашний сервер - 19

Для сравнения фото внутренностей моего второго сервера, здесь видно что расстояние между кулерами и верхней стенкой корпуса большое (в корпусе предусмотрена установка водяного охлаждения на верхней части):

Как я собирал свой первый домашний сервер - 20

К слову, необязательно было брать такие высокие и широкие, можно было чуть ниже и легче, возможно монтаж был бы проще. На фото видно что одну плашку ОЗУ не снять без демонтажа кулера:

Как я собирал свой первый домашний сервер - 21

Позже я обнаружил существования маленьких, аккуратных и работоспособных стоковых кулеров. Двухнедельный мониторинг Авито навел меня на Intel E47159-001 2U за 1000р каждый (итого 2000р):

Как я собирал свой первый домашний сервер - 22

А вот так они выглядят в корпусе:

Как я собирал свой первый домашний сервер - 23

Монтаж/демонтаж таких кулеров одно удовольствие, все максимально удобно. Особенно было заметно заточенность только под один сокет (группу похожих по размерам креплений): здесь не надо куда-то подгонять винты все уже выставлено ровно на том расстоянии, на котором должно быть.

Как я собирал свой первый домашний сервер - 24

Но, конечно же они не так мощно охлаждают процессоры как башенные кулеры, поэтому они были отложены в коробку на долгое хранение.

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

Для управления вентилятором используется коннектор 4pin (4 контакта) как на самом вентиляторе, так и на плате:

Как я собирал свой первый домашний сервер - 25

3pin (3 контакта) это неуправляемые вентиляторы, они будут крутиться с одинаковой скоростью все время. Следуя логике, кулеры должны быть 4pin и подключать их нужно тоже к 4pin, чтобы регулировка оборотов вентиляторов охлаждающих процессоры регулировалась в зависимости от нагрузки процессора.

ОЗУ

Вариантов плашек ОЗУ оказалось тоже много и возникают разные непонятные термины: UDIMM, RDIMM, LRDIMM, ECC, ранки, частота, многоканальность. Здесь [29] есть некоторые ответы.

Немного правил выявленных в ходе изучения:

  • в один и тот же сервер нужно ставить одинаковые типы памяти (все RDIMM или все LRDIMM), смешивать нельзя

  • в большинстве случаев серверные материнские платы поддерживают ОЗУ только с ECC

  • желательно занимать все разъемы на плате чтобы включалась многоканальность и как следствие увеличивалась скорость (как минимум так говорят интернеты)

  • детали нужно уточнять в документации к материнской плате, там будет достаточное описание для сужения поиска

Так как это изначально был эксперимент, который должен был вырасти во что-то большее, то я решил взять что-то простое: Klisre DDR3 ECC REG, 4 плашки на 8гб за 2600р комплект.

Как я собирал свой первый домашний сервер - 26

А позже, мне очень захотелось прокачать до максимума. Зная что DDR3 максимум 32гб, а у меня всего 6 разъемов, значит нужно искать 6 плашек. В тот момент, мой друг, который во многом способствовал, подкинул мне мысль о том, что нужно брать LRDIMM. И судя по документации к плате 32гб LRDIMM плашка выигрывает в частоте и может работать на 1333:

Как я собирал свой первый домашний сервер - 27

Но чего я тогда не знал, так это то что LRDIMM греется и ее нормальная системная температура 75-85C. И с тех пор начались мои приключения с мониторингом температуры [30] ОЗУ при отсутствующем IPMI, про это была серия постов в моем телеграм канале [31]. История завершилась моим смирением с отсутствующим IPMI и после некоторого времени я замерял температуру при помощи usb-термометров.

На данный момент в моем первом домашнем сервере стоит 6 плашек ОЗУ по 32гб, итого 192гб. Взял я их на Авито, комплектом за 16800р

Как я собирал свой первый домашний сервер - 28

Блок питания

Теперь определимся что нам нужно питать:

  • плату - 24pin

  • 2 процессора - на каждый по 8pin

  • диски - желательно несколько SATA

Посчитав энергопотребление каждого компонента послушав советы интернетных экспертов я приобрел Deepcool PK500D на 500Вт за 3630р:

Как я собирал свой первый домашний сервер - 29

Питание 24pin на плату и 2 по 8pin на каждый процессор. Сертификация 80 plus [32] Bronze (рекомендуют брать не ниже Bronze чтобы КПД был не низкий).

Большую ясность характеристик блока питания при выборе внесло это видео [33].

При установке возникло 2 проблемы:

  • кабель питания платы не дотягивался до разъема, пришлось взять удлинитель

  • кабель питания одного CPU не дотягивался до разъема, купил удлинитель, но он оказался не для CPU, а для GPU, поэтому с ним плата не стартовала, пришлось переделать провода:

Как я собирал свой первый домашний сервер - 30

А вот так все это выглядит внутри:

Как я собирал свой первый домашний сервер - 31

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

Как я собирал свой первый домашний сервер - 32

Диски

Изначально я хотел виртуализацию на базе Proxmox, значит именно под это дело нужно планировать хранилище.

Сначала я поставил один SSD WD Blue на 500гб, но позже я подумал что нужна отказоустойчивость дисков и решил сделать RAID1, отдельно для системы [34], отдельно для хранения данных [35]. Но я тогда еще не знал что старые платы от Supermicro не полностью поддерживают NVMe даже после прошивки модифицированного BIOS [36].

Как бы там ни было, загружаться можно с SSD дисков по SATA, а после загрузки подключатся диски по NVMe, меня это устраивало.

Для организации этого я купил:

  • для системы Digma SSD RUN S9 на 256гб 2шт по 1400р

  • для хранения данных: адаптер NVMe для SSD m.2 в слот PCI-e 2шт по 340р + Apacer SSD-диск AS2280P4U PRO 2шт по 5400р

Так выглядит конструкция:

Как я собирал свой первый домашний сервер - 33

А так диски стоят внутри сервера:

Как я собирал свой первый домашний сервер - 34

Корпус

Для первого сервера я решил экономить и взял Ginzzu SL180 за 2900р. С ним все хорошо только на картинке, и последствия экономии вылезли по ходу эксплуатации (а чего я ждал когда экономил?).

Самое печальное это отсутствие нормальных съемных пылевых фильтров на передней панели, и как следствие через несколько месяцев все внутренности в пыли.

Для сравнения можно посмотреть на XPG DEFENDER (в 2 раза дороже) со съемной передней панелью и съемным пылевым фильтром:

Как я собирал свой первый домашний сервер - 35

Для установки вентиляторов пришлось снимать переднюю панель, а так как она внутри связана проводами с самим корпусом, то это было крайне неудобно. Для себя я сделал вывод: передняя панель корпуса не должна быть связана с фронтальным управлением (кнопка питания и usb). Для сравнения корпус Cougar Airface где фронтальное управление вынесено в боковую часть корпуса, а значит передняя панель корпуса не обременена проводами:

Как я собирал свой первый домашний сервер - 36

Более того на переднюю панель корпуса во внутреннюю часть крышки (как и должно быть) встали только средний и нижний вентиляторы (потом убрал нижний), а верхний пришлось размещать уже внутри корпуса, что выглядит криво, вентиляторы 120мм:

Как я собирал свой первый домашний сервер - 37

Кабель-менеджмент в боковой части корпуса сносный:

Как я собирал свой первый домашний сервер - 38

Охлаждение внутри корпуса

Перед тем как брать вентиляторы для внутреннего обдува нужно определиться с мощностью, которую подает материнская плата. Техподдержка утверждает что все платы Supermicro выдают по 3А [37] на каждый разъем вентилятора. В других источниках была цифра не более .

Я взял Delta AFB1212SH 120x120х25мм 0.8А (в пределах нормы), 46.5дБ (не слишком шумный) 4 pin(управляемый). Взял 3шт по 440р.

В добавок к вентиляторам понадобилось 2 комплекта винтов M5x10 16 шт за 160р за комплект, и комплект защитных решеток Fan Grill 120x120мм за 400р (5шт):

Как я собирал свой первый домашний сервер - 39

Позже, опытным путем выяснилось что на моей плате только один нижний разъем вентиляторов может регулировать обороты, поэтому пришлось взять разветвитель питания за 250р:

Как я собирал свой первый домашний сервер - 40

Расходники и инструменты

Термопаста (большой шприц за 300р):

Как я собирал свой первый домашний сервер - 41

Набор отверток за 655р:

Как я собирал свой первый домашний сервер - 42

Еще нужны SATA кабели. Сильно не вникал, взял самые дешевые.

Какова цена?

Подведем итог, сколько все это вышло (цены первой половины 2023 года):

Наименование

Модель

Количество

Цена за ед.

Общая сумма

Материнская плата

Supermicro X9DBL-I

1

4250

4250

CPU

E5-2470v2

2

1000

2000

ОЗУ

DDR3 ECC Reg 32Gb LRDIMM SK Hynix

6

2800

16800

Кулер

Deepcool GAMMAXX S40

2

1108

2216

Блок питания

Deepcool PK500D

1

3630

3630

Вентиляторы

Delta AFB1212SH 120x120х25мм 0.8А

3

440

1320

Комплект винтов

M5x10 (16шт)

2

160

320

Комплект защитных решеток

Fan Grill 120x120мм

1

400

400

Разветвитель для вентиляторов

1

250

250

Desktop корпус

Ginzzu SL180

1

2900

2900

Итого

34086

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

Что теперь?

Оказалось сборка сервера с нуля без опыта это не простая затея и требует много времени на изучение чтобы купить все совместимые друг с другом компоненты. Для первого опыта норм, но можно было сделать лучше. В совокупности у меня это заняло примерно 2 месяца.

Как я собирал свой первый домашний сервер - 43

После сборки я развернул несколько виртуалок и установил нужное мне ПО. А спустя некоторое время этот сервер продал по цене сборки, на подходе был второй домашний сервер, лучше и мощнее.

За все время сборки я получил интересный опыт и стал ближе к коллегам сисадминам.

Кроме одного домашнего сервера, в моем арсенале инфраструктуры появился блейд сервер и несколько неуправляемых коммутаторов (справа десктопный сервер, слева внизу блейд-сервер на 8 материнских плат, а на нем коммутатор):

Как я собирал свой первый домашний сервер - 44

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

Возможно, продолжение следует ...

Автор: Byurrer

Источник [38]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/server/400524

Ссылки в тексте:

[1] Мотивация: #motivation

[2] На первый взгляд ничего сложного: #its-simple

[3] Компоненты: #components

[4] Материнская плата: #motherboards

[5] Сокет процессора: #socket

[6] IPMI: #ipmi

[7] Форм-фактор: #formfactor

[8] Процессоры: #cpu

[9] Охлаждение процессоров: #cpu-cooling

[10] ОЗУ: #ram

[11] Блок питания: #ps

[12] Диски: #storage

[13] Корпус: #case

[14] Охлаждение внутри корпуса: #case-cooling

[15] Расходники и инструменты: #consumables

[16] Какова цена?: #money

[17] Что теперь?: #next

[18] Supermicro X9DBL-i: https://www.supermicro.com/products/archive/motherboard/x9dbl-i

[19] Xeon E5-2420: https://xeon-e5450.ru/socket-1356/xeon-e5-2420/

[20] Здесь: https://2hpc.ru/socket-intel/

[21] на википедии: https://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D1%80%D0%B0%D0%B7%D1%8A%D1%91%D0%BC%D0%BE%D0%B2_%D0%BC%D0%B8%D0%BA%D1%80%D0%BE%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81%D0%BE%D1%80%D0%BE%D0%B2

[22] там: https://xeon-e5450.ru/

[23] IPMI: https://habr.com/ru/companies/selectel/articles/439834/

[24] KVM: https://ru.wikipedia.org/wiki/KVM-%D0%BF%D0%B5%D1%80%D0%B5%D0%BA%D0%BB%D1%8E%D1%87%D0%B0%D1%82%D0%B5%D0%BB%D1%8C

[25] в статью о поисках IPMI: https://byurrer.ru/ipmi-detect

[26] топовый в этой линейке это Xeon E5-2470v2: https://www.intel.com/content/www/us/en/support/articles/000008194/server-products.html

[27] v3: https://ark.intel.com/content/www/us/en/ark/products/series/78583/intel-xeon-processor-e5-v3-family.html

[28] v4: https://ark.intel.com/content/www/us/en/ark/products/series/91287/intel-xeon-processor-e5-v4-family.html

[29] Здесь: https://habr.com/ru/companies/servermall/articles/321554/

[30] приключения с мониторингом температуры: https://byurrer.ru/usb-termometers-monitoring

[31] серия постов в моем телеграм канале: https://t.me/byurrer_ru/59

[32] 80 plus: https://ru.wikipedia.org/wiki/80_PLUS

[33] это видео: https://www.youtube.com/watch?v=bZrzaEZdE88

[34] отдельно для системы: https://byurrer.ru/proxmox-install-raid1-debian

[35] отдельно для хранения данных: https://byurrer.ru/storage-raid1

[36] старые платы от Supermicro не полностью поддерживают NVMe даже после прошивки модифицированного BIOS: https://byurrer.ru/modify-bios-nvme

[37] все платы Supermicro выдают по 3А: https://www.supermicro.com/support/faqs/faq.cfm?faq=23761

[38] Источник: https://habr.com/ru/articles/853354/?utm_source=habrahabr&utm_medium=rss&utm_campaign=853354