Как построить домашний дата-центр?
Привет! Меня зовут Ярослав Бовбель, я стажер инженерно-технического отдела Selectel. Несколько лет назад у меня была мечта — сделать домашний дата-центр. Я ее исполнил и хочу рассказать о своем опыте. А еще о том, как случайно не сжечь серверный шкаф и за что провайдеры могут подать в суд.
Дисклеймер: Я называю свой пет-проект дата-центром, потому что, помимо нескольких серверов, у меня целая инфраструктурная обвязка в виде сетевого оборудования, систем отказойстойчивой работы и даже СКУД. Естественно, он очень далек от того, что представляют собой настоящие дата-центры, но я все равно буду называть его в тексте именно так. Живите с этим! :)
Навигация по статье:
Зачем я построил дата-центр?
Если вспомнить историю Selectel, то первый дата-центр появился для хостинга «Вконтакте». Почти то же самое случилось с моим пет-проектом. Только заказчиком был не «Вконтакте», а я не был крупным инвестором.
Я хотел изучить профессиональное сетевое оборудование, чтобы перейти на него со своего домашнего роутера. А еще — построить проводной интернет в квартире. Но потом я задался вопросом: могу ли самостоятельно сделать серверную с корпоративным качеством сервиса?
Закупка сетевого оборудования
Для начала нужно было купить сетевое оборудование:
коммутаторы — для объединения разных серверов внутри одной сети,
роутеры — для подключения к интернету.
Коммутаторы
Бюджет в 70 000 рублей меня сильно ограничивал: я не мог купить дорогое оборудование от известных производителей типа Cisco, Juniper, Huawei, H3C или Brocade.
В 2017 году, когда начал «строительство» дата-центра, наиболее оптимальным вариантом казалась связка из двух коммутаторов D-link DGS-1510-28. Стоимость одной штуки 16 000 рублей. Хотя можно было найти варианты и подешевле.
Зачем нужно было два коммутатора?
Сначала я хотел сделать так, чтобы внутри квартиры все стационарные устройства подключались по кабелю, а телефоны — по беспроводной сети. Для этого нужно было развести по комнатам розетки rj45 — это такие коробочки с Ethernet-портами.
Но у идеи был недостаток: для включения в коммутатор всех устройств, розеток и резервов нужно более 24 портов. У одного коммутатора, естественно, столько портов не было. Поэтому я решил докупить вторую железку.
Роутер
В качестве роутера я использовал Mikrotik RB3011. Тогда, в 2017 году, его взял за 15 000 рублей.
Серверная площадка
Отчасти идею с розетками удалось реализовать: стационарные устройства получили проводное подключение, а в некоторые комнаты были проведены дополнительные линии с розетками. Но большую часть розеток я так и не использовал.
Первая площадка
Унывать было некогда, и я продолжил работу над первой версией серверной.
Тогда о серверных стойках не было и речи: сетевое оборудование я разместил на столе, коммутаторы были скреплены деревянным бруском, кабель-менеджмент напрочь отсутствовал, а в качестве сервера использовал компьютер. Получилась вполне гиковская сборка.
Первый сервер и серверный шкаф
Когда пришло осознание, что пора бы перестать мучить компьютер, я купил сервер — HPE ProLiant DL360p Gen8. Для него докупил подержанный шкаф на 32 юнита. Теоретически в нем можно разместить до 32 небольших серверов.
Переезд на вторую площадку
Я использовал воздушное охлаждение в своих серверах. Но была проблема — сильный шум от вентиляторов. Не хотел, чтобы меня проклинали соседи по квартире, и понял, что серверу нужно переехать.
Я перенес оборудование на нежилую площадку. Только так мог повысить шансы бесперебойной работы сервера: не было соседей, которые могли случайно отключить электричество.
Шумоизоляция
Я все равно решил избавиться от «серверного воя» и обклеил уже новый серверный шкаф автомобильной шумоизоляцией.
Через несколько дней я понял, что мое решение не самое разумное. У него есть пара недостатков.
- Ноль эффекта. Лопасти вентиляторов не умолкали. Возможно, это из-за вентиляционных отверстий или плохих шумоизоляционных свойств материала.
- У материала высокая горючесть. Шумоизоляция неплохо так горит. В условиях серверного помещения это недопустимо.
Шумоизоляцию нужно было снять, притом как можно быстрее. Но и с этим возникли проблемы: материал намертво приклеился к серверному шкафу. До сих пор не могу снять «камуфляж», который остался после зачистки. Вот бы это было единственной заботой при проектировании…
Резервное питание
Когда серверов у меня еще не было, я использовал офисные ИБП со встроенными аккумуляторными батареями (АКБ). Для питания сетевого оборудования, которое потребляет минимум электричества, они вполне подходили.
Когда я установил серверы, к ИБП появились дополнительные требования:
- нужно регулировать входное напряжение и фильтровать его от помех;
- емкости АКБ должно быть достаточно для питания серверов.
Решение
Я выбрал недорогой линейно-интерактивный ИБП Ippon Smart Winner 1500 мощностью 1500 кВА и тремя встроенными АКБ по 9 А/ч на 12В. К нему можно было подключить дополнительные блоки АКБ.
Увеличение емкости ИБП
Мощности выбранного ИБП хватило для электропитания двух серверов HPE ProLiant. Но возникли проблемы с емкостью и продолжительностью работы АКБ.
Я попробовал ее решить за счет приобретения дополнительного блока АКБ. И это помогло: емкости ИБП хватает на 2 часа работы оборудования. Так как на серверах не хостятся коммерческие сервисы, этого достаточно.
Планы
В будущем планирую перейти на онлайн-ИБП. Они используют двойное преобразование электроэнергии: из переменного тока в постоянный и обратно. Оборудование получает «чистую электроэнергию». На мой взгляд, это лучший способ организации электропитания серверного оборудования. Но и самый дорогой. Кстати, именно его мы используем в Selectel.
Физическое резервирование аплинков
Для стабильной связи дата-центра с интернетом нужно резервировать аплинки — соединения от роутеров во «внешний мир», в интернет. Есть ряд особенностей, которые нужно учитывать.
Юридическая ответственность
В качестве аплинков необходимо использовать каналы с широкополосной передачей данных. Но есть нюанс: интернет-провайдеры не разрешают использовать аплинки для коммерческих целей.
Отказоустойчивые аплинки
Почти в каждом многоквартирном доме есть несколько интернет-провайдеров. Это хорошо: можно выбрать два независимых провайдера и организовать отказоустойчивый выход в интернет.
Но важно, чтобы провайдеры были независимыми, с разным оборудованием и линиями связи. Обратное бывает, когда один интернет-провайдер поглощает другого: тогда, если у одного провайдера сломается оборудование, велика вероятность, что у второго тоже будут сбои. Толку от такого резервирования нет.
Резервный оптический аплинк
Иногда провайдеры «падают» из-за электропитания коммутаторов, которые подключены к общедомовой электросети: отключили в доме электричество — бах — аплинки не работают.
Чтобы это не отразилось на дата-центре, я использую один PON-аплинк от провайдера.
У PON-аплинков есть преимущество. Активное оборудование, к которому протянуто оптоволокно, зарезервировано провайдерами по питанию от другой сети. Она не зависит от электроснабжения дома. Если в доме погаснет свет, соединение дата-центра с интернетом будет работать как минимум 2 часа, пока не разрядится ИБП. Или пока кто-то не сломает резервный PON-аплинк.
Переключения между IP-адресами
На следующем этапе нужно было настроить доступ к серверам через интернет.
Но и здесь было препятствие: каждый провайдер выдал по одному «белому» IP, а пакеты можно отправлять только через конкретный адрес. То есть нужно было научиться переключаться между IP-адресами и балансировать трафик. Я нашел два пути решения этой задачи.
DNS с минимальным TTL
Изначально планировал передавать через одну запись DNS сразу несколько IP-адресов. Но тогда, если пользователь отправит запрос к DNS-серверу, в ответ он может получить «пачку адресов». А дальше неизвестно, что с ней сделает ОС клиента: она может постучаться по произвольному адресу и, например, получить ответ «Ресурс недоступен».
Чтобы избежать таких ошибок, я загрузил на роутер скрипт. За его основу взял код из github-проекта. Но есть отличие: я запускаю скрипт не по расписанию, а через утилиту netwatch — она проверяет, «живы» ли аплинки, а при падении одного из них запускает скрипт. Так роутер Mikrotik отслеживает состояния каналов и через API DNS-сервис меняет IP-адрес на актуальный.
Но есть и другие варианты.
Промежуточный хост-сервер
Для балансировки трафика между двумя IP-адресами можно использовать хост-сервер: пользователь отправляет трафик на надежный хост, который определяет, на какой IP его перенаправить. Есть два способа организации такого сценария.
VPN-туннель
Идея в том, чтобы пользователи обращались хосту, от которого поднят VPN-туннель до моего дата-центра. Данный хост перенаправляет пакеты из интернета на сервер дата-центра через туннель. Для преобразования адресов на частные используется DST-NAT. Но есть минус — большая нагрузка на хост-сервер из-за шифрования во время передачи данных через VPN-туннель.
Обратный прокси-сервер
Чтобы снизить нагрузку, можно использовать обратный прокси-сервер вместо VPN-туннеля.
Я пробовал организовать обратный прокси-сервер. Он анализировал доступность внешних адресов с помощью специальных запросов на каждый из внешних IP и «смотрел», какой из них актуален на данный момент.
Резервирование аплинков хост-сервера
У вас мог появиться вопрос: «Разве для хост-сервера не нужно тоже резервировать аплинки и плодить IP-адреса?»
Самостоятельно — не нужно. Хост-сервер можно реализовать на виртуальной машине, bare metal-сервере или роутере. В случае с виртуальной машиной за резервирование ответственен облачный провайдер. А для резервирования физического сервера достаточно заказать услугу MC-LAG (MLAG).
Сетевая инфраструктура
Со всеми резервными и не резервными аплинками получилась такая топология сети дата-центра.
Откуда второй роутер?
На схеме видно, что в сети работают два роутера: основной и резервный. Когда я переезжал на вторую площадку, купил второй роутер — Mikrotik hEX. Он слабее, чем Mikrotik RB3011. Но это не просто так: скорость канала от резервного провайдера меньше, чем от основного, — всего 100 Мбит/с. С такой скоростью hEX справляется без проблем. Для резервирования шлюза на роутерах настроен протокол VRRP.
Резервное подключение серверов
Чтобы не резервировать коммутаторы, я решил включить серверы напрямую в роутеры и настроить MC-LAG: если отключится один роутер, всю нагрузку на себя заберет другой.
Портов на роутерах как раз хватило для включения двух серверов. Сами же коммутаторы использовал для включения в сеть остальной периферии дата-центра: видеокамеры, контроллера и прочего оборудования.
Мониторинг
На площадке я нахожусь не всегда, поэтому нужно было собрать систему для удаленного мониторинга оборудования.
Электроэнергия
Для учета электричества я использую электросчетчик с последовательным интерфейсом, который подключен к Ethernet-преобразователю RS-485.
Преобразователь нужен для передачи данных со счетчика на виртуальную машину — в систему мониторинга Zabbix. Это open source-программа для отслеживания статусов оборудования.
Охранно-пожарная сигнализация
В помещении я разместил контроллер SNR ERD-4s-GSM. К нему я подключил магнито-контактные датчики и дымовой извещатель.
Контроллер можно мониторить по локальной сети и через SMS-оповещения: если в серверной что-то загорелось, на телефон придет сообщение. В дополнение к охранной сигнализации я использую видеонаблюдение.
Распределение питания
Для управления питанием серверов собрал «аналог» PDU из трех управляемых розеток со встроенными реле, которые я подключил к выходам контроллера. Через них можно управлять электропитанием блока вентиляторов и некоторыми сетевыми устройствами: коммутаторами и вентиляторами..
Можно ли назвать домашний дата-центр полноценным?
Я доволен тем, что получилось. В будущем планирую перевезти серверы на дачный участок. Представляю, как буду летом отдыхать в холодном коридоре, а зимой — в горячем.
Но для коммерческих проектов и дачный вариант дата-центра использовать нельзя. Я уже говорил о юридической ответственности. Но есть и вторая причина — технические ограничения. Вот некоторые из них:
— для охлаждения большого количества серверов нужны мощные кондиционеры;
— нельзя превышать лимит по потребляемой электроэнергии;
— в домашнем дата-центре нет дежурного персонала.
Для серьезных проектов рекомендую обращаться за услугами к настоящим дата-центрам — это надежней и выгодней, чем строить свою инфраструктуру на коленке. Например, мы в Selectel помогаем хранить данные по 152-ФЗ, строить отказоустойчивую инфраструктуру и защищать системы от DDoS-атак.
Читайте также:
Жениться Вам надо, барин! (с)
да да, часики еще тикают
То же самое хотел отправить, но искать поленился :)
Ох помню-помню эти замечательные времена домашних серверных :) Мой вариант из далекого 2007-го:
А сейчас куда переехали ресурсы? В облака?
Ещё не дочитал, но сразу напишу, пока помню. У провайдеров есть понятие "последняя миля" - это когда провайдер не хочет тратить деньги на прокладывание оптики от своей магистрали до конкретного дома, а арендует этот небольшой участок у другого провайдера, который уже подключил этот дом. В результате может быть так, что вроде каналы разные, маршруты отличаются, но у самого дома кусок оптики один на всех, а значит, ни о каком резервировании речи не идёт. Так было, когда я работал в телекоме (лет 6 назад). Как сейчас - не знаю.
Стажёр здорового человека! Хорошая работа и статья
для чего в итоге этот домашний датацентр использовался? :)
Здравствуйте!
Автор проекта использовал домашний дата-центр как файловое хранилище на основе Nextcloud. Кроме того, на серверах хостилась виртуальная лаборатория Eve-ng для обучения. В остальном — домашний дата-центр Ярослав строил из чистого интереса, чтобы развить профессиональные навыки. Может, у вас есть идеи, как улучшить проект?
Файлопомойка, пиратский сундук - всё как обычно.
Для написания рекламной статьи на VC, очевидно же. А так — ну детский сад, пипец. Но молодец, пацан, знания получает.
В принципе это отличный вариант потренироваться и внести в своё резюме скилы. И при собеседовании владеть фактажом и не плыть на вопросы.
Возможно, эти тексты тоже вас заинтересуют:
→ Как сделать радио из Cyberpunk 2077 своими руками? (https://vc.ru/tech/448082-kak-sdelat-radio-iz-cyberpunk-2077-svoimi-rukami)
→ Самое неприятное — попасть под массовую блокировку IP-адресов (https://vc.ru/media/355080-samoe-nepriyatnoe-popast-pod-massovuyu-blokirovku-ip-adresov)
В Куратор.Радар можно посмотреть, кто аплинки у провайдеров и выбирать тех, у кого они разные.
https://radar.qrator.net/as-rating
Добрый день!
Спасибо за дельный совет:)
Остается только узнать, какие провайдеры не используют совместную инфраструктуру на последних милях (один оптический кабель до многоквартирного доступа).
"В будущем планирую перевезти серверы на дачный участок."
СНТ с оптикой?
По Подмосковью уже давно подключают по оптике, ибо по меди только адсл, но это уже не актуальные скорости.
Здравствуйте!
Верно, в СНТ есть оптическая PON-сеть. Но ее стабильность под вопросом.
Стоит уже несколько лет, беззвучный. 1С сетевая с удаленным доступом, принт-сервер для домочадцев, файл-сервер... Можно было решить проще, но привычка с прошлых лет осталась. 15 лет в IT...
А можно модель?)
Шикарно! Люблю читать такие статьи, сам все хочу сделать себе небольшую серверную, но все никак не соберусь. Удачи вам!
Приму серверное железо в дар, погонять хочется)
Прикольно. Сам люблю поковыряться с железом) Мне в 2013-том достались как-то 4 списанных пк года эдак 2003-2006. Собрал из них единый "домашний сервер" под файлопомойку)
Ну всё, наконец-то можно запустить сервер манкрафта
мог бы в ванной разместить все это оборудование, прямо в самой ванне
а потом набрать воды и включить всё оборудование. тоже интересный материал для поста...
На схеме ничего не видно
Добрый день!
Спасибо, что заметили. Исправили!
Комментарий недоступен
Для проверки что провайдеры разные как вариант можно трасер использовать и смотреть ip какие прилетают там)
У нас недавно в соседнем доме крыша сгорела, говорят ваши коллеги по цеху виноваты.
Чтобы "поиграться" даже домашнее оборудование достаточно производительное и ёмкое. При этом домашнее будет бесшумным, занимать мало места (не требует стоек) и не таким пожароопасным.
Если хочется поиграть со свичами, то есть более простые микротики, там тоже RouterOS и можно развлекаться до посинения.
Self-hosted стэк потянет даже Intel NUC на Core i3, лишь бы дали достаточно оперативы.
Кубер также на домашнем будет работать без проблем, ну накрайняк K3s, который даже поедет на Raspberry Pi.
Комментарий недоступен
- Даже если проверить сейчас второй аплинк - это не значит что провайдер первого не перекупит его через пару месяцев. Для СПб, например, очень актуальный вопрос - всех скупает один провайдер. Так обнаружил однажды оба своих аплинка воткнутыми в один свитч.
- Внешнее питание или минимальный UPS, даже у PON - редкость. В 99% случаев упадёт электричество - упадут все провайдеры в доме.
- IPv6-only и /56 поможет решить проблему с IP, для всего остального есть Cloudflare. У них же теперь есть cloudflared и magic wan - с ними белый IP не нужен вовсе.
Спасибо за материал, много пробелов у меня, но погрузиться было интересно.
И такое отношение к пет прожекту очень вдохновляет. За это отдельное спасибо!
а так можно было Ё!?😐😲
Ещё на Хабре прочёл вашу статью. Спасибо, сохранил.
Вам спасибо)
Почему не использовал один RB3011 для двух провайдеров? Или даже для трех(usb модем).
Здравствуйте!
Да, можно использовать один роутер. Но автор добивался большей отказоустойчивости.
Вопрос — сколько это чудо жрало квт*ч в месяц?
Здравствуйте! Отвечает автор:
Период: 07.12.2022 - 20.01.2022 (44 дня)
Дневной: 431 - 864 = 433
Ночной: 213 - 428 = 215
Общий: 645 - 1292 = 647
Дневной: 9,84/сут
Ночной: 4,89/сут
Общий: 14,70/сут (0,61/час)
Потребление указано в кВт
Капец )
Комментарий недоступен
Чем бы дитя не тешилось, лишь бы не вешалось. В Selectel нет лабов для сотрудников? Приходиться так дома извращаться?)
Комментарий недоступен
Короче ясно, чувак построил seedbox для торрентов
Тема интересная.
Интересно, а можно для внешнего доступа зарезервировать дешевую машинку на любом хостинге с несколькими IP адресами и как-то сделать маппинг на внутренние IP адреса ???