Привет! Меня зовут Ярослав Бовбель, я стажер инженерно-технического отдела Selectel. Несколько лет назад у меня была мечта — сделать домашний дата-центр. Я ее исполнил и хочу рассказать о своем опыте. А еще о том, как случайно не сжечь серверный шкаф и за что провайдеры могут подать в суд.
Дисклеймер: Я называю свой пет-проект дата-центром, потому что, помимо нескольких серверов, у меня целая инфраструктурная обвязка в виде сетевого оборудования, систем отказойстойчивой работы и даже СКУД. Естественно, он очень далек от того, что представляют собой настоящие дата-центры, но я все равно буду называть его в тексте именно так. Живите с этим! 🙂
Навигация по статье:
→ Зачем я построил дата-центр?
→ Закупка сетевого оборудования
→ Физическое резервирование аплинков
→ Переключения между IP-адресами
→ Можно ли назвать домашний дата-центр полноценным?
Зачем я построил дата-центр?
Если вспомнить историю 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-атак.
Читайте также: