Создание домашнего кластера: от теории к «колхозному» продакшену

Привет, SE7EN! Хочу представить вашему вниманию обзор моей домашней лаборатории, которую я выстроил для отработки навыков, необходимых современному DevOps-инженеру. Сначала кратко пройдемся по «железу», а затем обсудим перспективы дальнейшего развития проекта.

Серверная часть

Основой моего стенда стали сервера в форм-факторе SuperMicro 5017C-MF. В моем распоряжении четыре устройства: одно базируется на системной плате X9SCL-F, остальные три — на X10SLL-F. Основное различие между ними заключается в поддержке процессорных архитектур: плата 9-го поколения работает с CPU первого и второго поколений, тогда как 10-е поколение совместимо с 3-м и 4-м.

Визуальные отличия представлены ниже:

X10SLL-F
X10SLL-F
X9SCL-F
X9SCL-F
Сверху - X10SLL-F; Снизу - X9SCL-F
Сверху — X10SLL-F; снизу — X9SCL-F
Сверху - X10SLL-F; Снизу - X9SCL-F
Сверху — X10SLL-F; снизу — X9SCL-F

Конфигурация серверов:
— Сервер #1 (консольный): X9SCL-F, Xeon E3-1220v2, 8GB RAM, 60GB SSD (система) + 8TB HDD (NFS-хранилище)
— Серверы #2, 3, 4 (воркеры): X10SLL-F, Xeon E3-1220v3, 16GB RAM, 60GB SSD (система)

Сетевая инфраструктура

В качестве сетевого коммутатора был выбран Tenda-TEG1016M. Он привлек меня достаточным числом гигабитных портов и поддержкой VLAN, что крайне актуально для моих будущих задач. Кроме того, девайс отличается компактностью и добротной сборкой.

Tenda TEG1016M вид спереди
Tenda TEG1016M: фронтальная панель
Tenda TEG1016M вид сзади
Tenda TEG1016M: вид сзади

Источник бесперебойного питания

Для электропитания я использую «ветерана» — APC PowerStack 450. Несмотря на почтенный возраст, этот ИБП отлично поддается настройке и мониторингу через штатный COM-порт с помощью утилиты apcupsd в Linux. Будьте готовы к тому, что при покупке такой «ретро-техники» придется повозиться со сбросом счетчика жизненного цикла АКБ — здесь выручат форумные архивы и консольный софт вроде minicom. Я провел небольшую кастомизацию: добавил блок питания 220v->12v для коммутатора, чтобы не занимать дефицитные розетки C-13. Разумеется, прежде чем внедрять это решение, я провел стресс-тест ИБП при 100% нагрузке на сервера. Аппарат оснащен системами защиты от перегрузок и предоставляет подробную телеметрию. Номинальная мощность составляет 280 Вт, пиковая — 450 Вт.

APC P450 вид спереди
APC P450: фронтальная панель
APC P450 вид сзади
APC P450: вид сзади
APC P450 вид внутри
APC P450: внутреннее устройство

«Серверный» шкаф

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

Пустой шкаф, вид спереди
Пустой каркас шкафа

Конструктив выполнен из ЛДСП по индивидуальным размерам. В качестве направляющих использованы мебельные шариковые рельсы с механизмом Push-to-Open — это позволяет легко выдвигать сервера без необходимости их полного демонтажа. Коммутатор закреплен на напечатанных на 3D-принтере кронштейнах, а кабельный менеджмент организован с помощью аккуратных пластиковых площадок и стяжек.

Шкаф с коммутатором, вид спереди
Шкаф в сборе
Крепление коммутатора
Крепление коммутатора
Заполненный шкаф, вид спереди
Стойка с установленным оборудованием
Заполненный шкаф, вид сзади
Вид с тыльной стороны

Благодаря использованию направляющих длиной 450 мм, обслуживать «железо» стало крайне удобно — достаточно просто выкатить нужный узел.

Выезд серверов, вид спереди
Демонстрация работы рельс
Выезд серверов, вид сверху
Вид сверху

Итоги

Проект развивался в течение полугода, пережив три итерации. Главная сложность заключалась в проектировании самого шкафа — первые прототипы требовали усиления стальными уголками. Текущая версия удачна тем, что систему можно масштабировать, просто надстраивая ячейки друг на друга. В планах — оптимизация NFS-трафика и установка пылезащитной сетки на лицевую панель.

Почему я не купил готовый шкаф? Предложения на вторичном рынке зачастую были либо невыгодны по цене с учетом логистики, либо не подходили по конструктиву. Вдобавок, штатные «ушки» для стоек вызывали у меня опасения в плане надежности фиксации, поэтому я решил сконструировать решение самостоятельно.

Что по затратам?
Шкаф: ~5 000 руб. (ЛДСП, рельсы, фурнитура).
Сервера: ~25 000 руб. (комплектующие, кулеры, SSD) + 16 000 руб. (HDD).
Сетевое и ИБП: ~6 000 руб. (коммутатор, ИБП, батареи).
Мелочевка: ~2 000 руб.
Итого: вполне приемлемый бюджет для создания отказоустойчивой инфраструктуры, на базе которой можно развернуть Nextcloud, SeaFile или другие сервисы, необходимые для обучения и разработки. Спасибо за внимание, всем удачи в собственных проектах!

 

Источник

Читайте также