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

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

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

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

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

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

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

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

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

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

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

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

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

Коммутаторы

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

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

<p>DGS-1510-28. <a href="https://api.vc.ru/v2.8/redirect?to=https%3A%2F%2Fwww.dlink.ru%2Fru%2Fproducts%2F1%2F1899.html&postId=504892" rel="nofollow noreferrer noopener" target="_blank">Источник</a></p>

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

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

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

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

Роутер

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

Mikrotik RB3011. <a href="https://api.vc.ru/v2.8/redirect?to=https%3A%2F%2Fm.onlinetrade.ru%2Fcatalogue%2Fmarshrutizatory-c6345%2Fmikrotik%2Ffullreviews%2Fmarshrutizator_mikrotik_rb3011uias_rm_10_port_10_100_1000m-666875-r72669.html&postId=504892" rel="nofollow noreferrer noopener" target="_blank">Источник</a>
Mikrotik RB3011. Источник

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Решение

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

<p>Ippon Smart Winner 1500. <a href="https://api.vc.ru/v2.8/redirect?to=https%3A%2F%2Fstabelektro.ru%2Fwa-data%2Fpublic%2Fshop%2Fproducts%2F75%2F10%2F1075%2Fimages%2F1357%2F1357.970.jpg&postId=504892" rel="nofollow noreferrer noopener" target="_blank">Источник</a></p>

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. К нему я подключил магнито-контактные датчики и дымовой извещатель.

<p>SNR ERD-4s-GSM</p>

SNR ERD-4s-GSM

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

110110
67 комментариев

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

48

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

3

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

1

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

16

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

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

13