(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)}; m[i].l=1*new Date(); for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }} k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)}) (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym"); ym(93790508, "init", { defer: true, clickmap:true, trackLinks:true, accurateTrackBounce:true }); ym(93790508, 'hit', window.location.href);

Как построить домашний дата-центр?

Привет! Меня зовут Ярослав Бовбель, я стажер инженерно-технического отдела Selectel. Несколько лет назад у меня была мечта — сделать домашний дата-центр. Я ее исполнил и хочу рассказать о своем опыте. А еще о том, как случайно не сжечь серверный шкаф и за что провайдеры могут подать в суд.

Дисклеймер: Я называю свой пет-проект дата-центром, потому что, помимо нескольких серверов, у меня целая инфраструктурная обвязка в виде сетевого оборудования, систем отказойстойчивой работы и даже СКУД. Естественно, он очень далек от того, что представляют собой настоящие дата-центры, но я все равно буду называть его в тексте именно так. Живите с этим! :)

Навигация по статье:

Зачем я построил дата-центр?

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

Я хотел изучить профессиональное сетевое оборудование, чтобы перейти на него со своего домашнего роутера. А еще — построить проводной интернет в квартире. Но потом я задался вопросом: могу ли самостоятельно сделать серверную с корпоративным качеством сервиса?

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

Закупка сетевого оборудования

Для начала нужно было купить сетевое оборудование:

  • коммутаторы — для объединения разных серверов внутри одной сети,

  • роутеры — для подключения к интернету.

Коммутаторы

Бюджет в 70 000 рублей меня сильно ограничивал: я не мог купить дорогое оборудование от известных производителей типа Cisco, Juniper, Huawei, H3C или Brocade.

В 2017 году, когда начал «строительство» дата-центра, наиболее оптимальным вариантом казалась связка из двух коммутаторов D-link DGS-1510-28. Стоимость одной штуки 16 000 рублей. Хотя можно было найти варианты и подешевле.

DGS-1510-28. Источник

Зачем нужно было два коммутатора?

Сначала я хотел сделать так, чтобы внутри квартиры все стационарные устройства подключались по кабелю, а телефоны — по беспроводной сети. Для этого нужно было развести по комнатам розетки rj45 — это такие коробочки с Ethernet-портами.

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

Роутер

В качестве роутера я использовал Mikrotik RB3011. Тогда, в 2017 году, его взял за 15 000 рублей.

Mikrotik RB3011. Источник

Серверная площадка

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

Неправильный расчет кабельной системы — мой первый факап.

Первая площадка

Унывать было некогда, и я продолжил работу над первой версией серверной.

Рекурсия. Фотографирую сам себя через камеру видеонаблюдения. На фото — первое помещение а-ля «серверная».

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

Кабель-менеджмент первого помещения

Первый сервер и серверный шкаф

Когда пришло осознание, что пора бы перестать мучить компьютер, я купил сервер — HPE ProLiant DL360p Gen8. Для него докупил подержанный шкаф на 32 юнита. Теоретически в нем можно разместить до 32 небольших серверов.

Первый серверный шкаф

Переезд на вторую площадку

Я использовал воздушное охлаждение в своих серверах. Но была проблема — сильный шум от вентиляторов. Не хотел, чтобы меня проклинали соседи по квартире, и понял, что серверу нужно переехать.

Я перенес оборудование на нежилую площадку. Только так мог повысить шансы бесперебойной работы сервера: не было соседей, которые могли случайно отключить электричество.

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

Шумоизоляция

Я все равно решил избавиться от «серверного воя» и обклеил уже новый серверный шкаф автомобильной шумоизоляцией.

Серверный шкаф с автомобильной шумоизоляцией

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

  1. Ноль эффекта. Лопасти вентиляторов не умолкали. Возможно, это из-за вентиляционных отверстий или плохих шумоизоляционных свойств материала.
  2. У материала высокая горючесть. Шумоизоляция неплохо так горит. В условиях серверного помещения это недопустимо.

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

Резервное питание

Для бесперебойного электроснабжения можно использовать источники бесперебойного питания (ИБП) трех типов — резервные, линейно-интерактивные и онлайн-ИБП.

Когда серверов у меня еще не было, я использовал офисные ИБП со встроенными аккумуляторными батареями (АКБ). Для питания сетевого оборудования, которое потребляет минимум электричества, они вполне подходили.

Когда я установил серверы, к ИБП появились дополнительные требования:

  • нужно регулировать входное напряжение и фильтровать его от помех;
  • емкости АКБ должно быть достаточно для питания серверов.

Решение

Я выбрал недорогой линейно-интерактивный ИБП Ippon Smart Winner 1500 мощностью 1500 кВА и тремя встроенными АКБ по 9 А/ч на 12В. К нему можно было подключить дополнительные блоки АКБ.

Ippon Smart Winner 1500. Источник

Увеличение емкости ИБП

Мощности выбранного ИБП хватило для электропитания двух серверов HPE ProLiant. Но возникли проблемы с емкостью и продолжительностью работы АКБ.

Я попробовал ее решить за счет приобретения дополнительного блока АКБ. И это помогло: емкости ИБП хватает на 2 часа работы оборудования. Так как на серверах не хостятся коммерческие сервисы, этого достаточно.

Планы

В будущем планирую перейти на онлайн-ИБП. Они используют двойное преобразование электроэнергии: из переменного тока в постоянный и обратно. Оборудование получает «чистую электроэнергию». На мой взгляд, это лучший способ организации электропитания серверного оборудования. Но и самый дорогой. Кстати, именно его мы используем в Selectel.

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

Пример онлайн-ИБП с подключенными АКБ

Физическое резервирование аплинков

Для стабильной связи дата-центра с интернетом нужно резервировать аплинки — соединения от роутеров во «внешний мир», в интернет. Есть ряд особенностей, которые нужно учитывать.

Юридическая ответственность

В качестве аплинков необходимо использовать каналы с широкополосной передачей данных. Но есть нюанс: интернет-провайдеры не разрешают использовать аплинки для коммерческих целей.

Не рекомендую сдавать в аренду домашние серверы: можно нарваться на судебный иск.

Отказоустойчивые аплинки

Почти в каждом многоквартирном доме есть несколько интернет-провайдеров. Это хорошо: можно выбрать два независимых провайдера и организовать отказоустойчивый выход в интернет.

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

Как узнать, какие провайдеры независимы друг от друга — открытый вопрос. Напишите в комментариях, если есть идеи.

Резервный оптический аплинк

Иногда провайдеры «падают» из-за электропитания коммутаторов, которые подключены к общедомовой электросети: отключили в доме электричество — бах — аплинки не работают.

Чтобы это не отразилось на дата-центре, я использую один PON-аплинк от провайдера.

PON (Passive Optical Network) — технология деления и передачи сигнала от потребителя по оптическому волокну.

У PON-аплинков есть преимущество. Активное оборудование, к которому протянуто оптоволокно, зарезервировано провайдерами по питанию от другой сети. Она не зависит от электроснабжения дома. Если в доме погаснет свет, соединение дата-центра с интернетом будет работать как минимум 2 часа, пока не разрядится ИБП. Или пока кто-то не сломает резервный PON-аплинк.

Переключения между IP-адресами

На следующем этапе нужно было настроить доступ к серверам через интернет.

Но и здесь было препятствие: каждый провайдер выдал по одному «белому» IP, а пакеты можно отправлять только через конкретный адрес. То есть нужно было научиться переключаться между IP-адресами и балансировать трафик. Я нашел два пути решения этой задачи.

DNS с минимальным TTL

Изначально планировал передавать через одну запись DNS сразу несколько IP-адресов. Но тогда, если пользователь отправит запрос к DNS-серверу, в ответ он может получить «пачку адресов». А дальше неизвестно, что с ней сделает ОС клиента: она может постучаться по произвольному адресу и, например, получить ответ «Ресурс недоступен».

Чтобы избежать таких ошибок, я загрузил на роутер скрипт. За его основу взял код из github-проекта. Но есть отличие: я запускаю скрипт не по расписанию, а через утилиту netwatch — она проверяет, «живы» ли аплинки, а при падении одного из них запускает скрипт. Так роутер Mikrotik отслеживает состояния каналов и через API DNS-сервис меняет IP-адрес на актуальный.

Минимальное время жизни записи (TTL) нужно для того, чтобы после переключения на резервный канал запись со старым IP долго не жила в кешах устройств — это может привести к ошибкам вроде 404 — и удалялась. Из минусов: долгое время переключения на резерв, равное значению TTL, необходимость поддержки API DNS-сервисом.

В качестве DNS провайдера я использую сервис Cloudflare, так как он поддерживает API и есть возможность указать минимальный TTL, равный 1 минуте.

Но есть и другие варианты.

Промежуточный хост-сервер

Для балансировки трафика между двумя IP-адресами можно использовать хост-сервер: пользователь отправляет трафик на надежный хост, который определяет, на какой IP его перенаправить. Есть два способа организации такого сценария.

VPN-туннель

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

Обратный прокси-сервер

Чтобы снизить нагрузку, можно использовать обратный прокси-сервер вместо VPN-туннеля.

Обратный прокси-сервер — это балансировщик, который перенаправляет весь HTTP-трафик на web-серверы внутри сети, учитывая доступность и загруженность каждого из серверов.

Я пробовал организовать обратный прокси-сервер. Он анализировал доступность внешних адресов с помощью специальных запросов на каждый из внешних 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. К нему я подключил магнито-контактные датчики и дымовой извещатель.

SNR ERD-4s-GSM

Контроллер можно мониторить по локальной сети и через SMS-оповещения: если в серверной что-то загорелось, на телефон придет сообщение. В дополнение к охранной сигнализации я использую видеонаблюдение.

Видеокамера второго помещения

Распределение питания

Для управления питанием серверов собрал «аналог» PDU из трех управляемых розеток со встроенными реле, которые я подключил к выходам контроллера. Через них можно управлять электропитанием блока вентиляторов и некоторыми сетевыми устройствами: коммутаторами и вентиляторами..

Управляемые розетки, аналог PDU

Можно ли назвать домашний дата-центр полноценным?

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

Но для коммерческих проектов и дачный вариант дата-центра использовать нельзя. Я уже говорил о юридической ответственности. Но есть и вторая причина — технические ограничения. Вот некоторые из них:

— для охлаждения большого количества серверов нужны мощные кондиционеры;

— нельзя превышать лимит по потребляемой электроэнергии;

— в домашнем дата-центре нет дежурного персонала.

Для серьезных проектов рекомендую обращаться за услугами к настоящим дата-центрам — это надежней и выгодней, чем строить свою инфраструктуру на коленке. Например, мы в Selectel помогаем хранить данные по 152-ФЗ, строить отказоустойчивую инфраструктуру и защищать системы от DDoS-атак.

Что вы думаете насчет проекта? Напишите свое мнение в комментариях и подпишитесь на блог Selectel. Так точно не пропустите новые обзоры, новости и кейсы из мира IT и технологий.

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

0
67 комментариев
Написать комментарий...
Российский Крым

Жениться Вам надо, барин! (с)

Ответить
Развернуть ветку
Alister Brown

да да, часики еще тикают

Ответить
Развернуть ветку
1 комментарий
Denis
Ответить
Развернуть ветку
Isuzu Dzanarnoghno

То же самое хотел отправить, но искать поленился :)

Ответить
Развернуть ветку
Roman Rodin

Ох помню-помню эти замечательные времена домашних серверных :) Мой вариант из далекого 2007-го:

Ответить
Развернуть ветку
Lnc

А сейчас куда переехали ресурсы? В облака?

Ответить
Развернуть ветку
1 комментарий
Странник

Ещё не дочитал, но сразу напишу, пока помню. У провайдеров есть понятие "последняя миля" - это когда провайдер не хочет тратить деньги на прокладывание оптики от своей магистрали до конкретного дома, а арендует этот небольшой участок у другого провайдера, который уже подключил этот дом. В результате может быть так, что вроде каналы разные, маршруты отличаются, но у самого дома кусок оптики один на всех, а значит, ни о каком резервировании речи не идёт. Так было, когда я работал в телекоме (лет 6 назад). Как сейчас - не знаю.

Ответить
Развернуть ветку
toverovskiy

Стажёр здорового человека! Хорошая работа и статья

Ответить
Развернуть ветку
Алексей Инкогнито

для чего в итоге этот домашний датацентр использовался? :)

Ответить
Развернуть ветку
Selectel
Автор

Здравствуйте!
Автор проекта использовал домашний дата-центр как файловое хранилище на основе Nextcloud. Кроме того, на серверах хостилась виртуальная лаборатория Eve-ng для обучения. В остальном — домашний дата-центр Ярослав строил из чистого интереса, чтобы развить профессиональные навыки. Может, у вас есть идеи, как улучшить проект?

Ответить
Развернуть ветку
6 комментариев
Аккаунт отморожен

Файлопомойка, пиратский сундук - всё как обычно.

Ответить
Развернуть ветку
4 комментария
Artem Borisenko

Для написания рекламной статьи на VC, очевидно же. А так — ну детский сад, пипец. Но молодец, пацан, знания получает.

Ответить
Развернуть ветку
Куртуазный маньерист

В принципе это отличный вариант потренироваться и внести в своё резюме скилы. И при собеседовании владеть фактажом и не плыть на вопросы.

Ответить
Развернуть ветку
Selectel
Автор

Возможно, эти тексты тоже вас заинтересуют:

→ Как сделать радио из 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

Ответить
Развернуть ветку
Selectel
Автор

Добрый день!

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

Ответить
Развернуть ветку
2 комментария
Alexander Ustimenko

"В будущем планирую перевезти серверы на дачный участок."
СНТ с оптикой?

Ответить
Развернуть ветку
Куртуазный маньерист

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

Ответить
Развернуть ветку
1 комментарий
Selectel
Автор

Здравствуйте!

Верно, в СНТ есть оптическая PON-сеть. Но ее стабильность под вопросом.

Ответить
Развернуть ветку
Борис Николаевич

Стоит уже несколько лет, беззвучный. 1С сетевая с удаленным доступом, принт-сервер для домочадцев, файл-сервер... Можно было решить проще, но привычка с прошлых лет осталась. 15 лет в IT...

Ответить
Развернуть ветку
Павел

А можно модель?)

Ответить
Развернуть ветку
1 комментарий
Денис Терехов

Шикарно! Люблю читать такие статьи, сам все хочу сделать себе небольшую серверную, но все никак не соберусь. Удачи вам!

Ответить
Развернуть ветку
Кирилл Трубецкой

Приму серверное железо в дар, погонять хочется)

Ответить
Развернуть ветку
Артём Басов

Прикольно. Сам люблю поковыряться с железом) Мне в 2013-том достались как-то 4 списанных пк года эдак 2003-2006. Собрал из них единый "домашний сервер" под файлопомойку)

Ответить
Развернуть ветку
Alexander Kovalko

Ну всё, наконец-то можно запустить сервер манкрафта

Ответить
Развернуть ветку
Вайтишник

мог бы в ванной разместить все это оборудование, прямо в самой ванне

Ответить
Развернуть ветку
Silverjohn

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

Ответить
Развернуть ветку
1 комментарий
Uranus In Fire
> на схеме видно...

На схеме ничего не видно

Ответить
Развернуть ветку
Selectel
Автор

Добрый день!

Спасибо, что заметили. Исправили!

Ответить
Развернуть ветку
1 комментарий
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Андрей Касливцев

Для проверки что провайдеры разные как вариант можно трасер использовать и смотреть ip какие прилетают там)

Ответить
Развернуть ветку
G Sh

У нас недавно в соседнем доме крыша сгорела, говорят ваши коллеги по цеху виноваты.

Ответить
Развернуть ветку
Todd

Чтобы "поиграться" даже домашнее оборудование достаточно производительное и ёмкое. При этом домашнее будет бесшумным, занимать мало места (не требует стоек) и не таким пожароопасным.

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

Self-hosted стэк потянет даже Intel NUC на Core i3, лишь бы дали достаточно оперативы.

Кубер также на домашнем будет работать без проблем, ну накрайняк K3s, который даже поедет на Raspberry Pi.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Mihail Fedorov

- Даже если проверить сейчас второй аплинк - это не значит что провайдер первого не перекупит его через пару месяцев. Для СПб, например, очень актуальный вопрос - всех скупает один провайдер. Так обнаружил однажды оба своих аплинка воткнутыми в один свитч.
- Внешнее питание или минимальный UPS, даже у PON - редкость. В 99% случаев упадёт электричество - упадут все провайдеры в доме.
- IPv6-only и /56 поможет решить проблему с IP, для всего остального есть Cloudflare. У них же теперь есть cloudflared и magic wan - с ними белый IP не нужен вовсе.

Ответить
Развернуть ветку
Кирилл Загоскин

Спасибо за материал, много пробелов у меня, но погрузиться было интересно.

И такое отношение к пет прожекту очень вдохновляет. За это отдельное спасибо!

Ответить
Развернуть ветку
Доминика Павлова

а так можно было Ё!?😐😲

Ответить
Развернуть ветку
Матиас Янович

Ещё на Хабре прочёл вашу статью. Спасибо, сохранил.

Ответить
Развернуть ветку
Selectel
Автор

Вам спасибо)

Ответить
Развернуть ветку
Персонаж 🐾

Почему не использовал один RB3011 для двух провайдеров? Или даже для трех(usb модем).

Ответить
Развернуть ветку
Selectel
Автор

Здравствуйте!

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

Ответить
Развернуть ветку
Ярослав Мирошников

Вопрос — сколько это чудо жрало квт*ч в месяц?

Ответить
Развернуть ветку
Selectel
Автор

Здравствуйте! Отвечает автор:

Период: 07.12.2022 - 20.01.2022 (44 дня)
Дневной: 431 - 864 = 433
Ночной: 213 - 428 = 215
Общий: 645 - 1292 = 647

Дневной: 9,84/сут
Ночной: 4,89/сут
Общий: 14,70/сут (0,61/час)

Потребление указано в кВт

Ответить
Развернуть ветку
Вася Идейный

Капец )

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
AstraN

Чем бы дитя не тешилось, лишь бы не вешалось. В Selectel нет лабов для сотрудников? Приходиться так дома извращаться?)

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Невероятный Блондин

Короче ясно, чувак построил seedbox для торрентов

Ответить
Развернуть ветку
Dmitry Rybakov

Тема интересная.
Интересно, а можно для внешнего доступа зарезервировать дешевую машинку на любом хостинге с несколькими IP адресами и как-то сделать маппинг на внутренние IP адреса ???

Ответить
Развернуть ветку
64 комментария
Раскрывать всегда