Привет. Эта история не ставит перед собой цель похвастаться тем, что я (а впоследствии «мы») сделали за этот долгий промежуток времени, не стремится прорекламировать наш проект. В первой статье я бы хотел дать вводные физические и верхнеуровневые мазки того, как можно построить свою инфраструктуру из ~~фигни и палок~~ подручных средств, а потом масштабировать ее и развивать. Поехали?
Моя цель — поделиться историей создания своего личного проекта‑хобби, который вырос с одного еще тогда маминого ноутбука на ubuntu 16 до пет‑проекта с посещаемостью в сотни уникальных посетителей в день. Разделю это на три статьи, каждая из которых расскажет про свои особенности и аспекты:
Что может делать 17-летний школьник в свободное от учебы время, если не играть в игрушки? Читать, заниматься программированием, шататься по улице? Я нашел свое хобби в администрировании и получил в свои руки первый ноутбук.
Тогда я еще не знал, что такое терминал и как с ним работать, но у меня зародилась первая идея: зачем платить за хостинг, если свой сервер можно запустить самому на своем же компьютере? Так и появился первый недопроект по ванильному майнкрафт-серверу на ноутбуке. С группой энтузиастов мы сделали его, наверное, уникальным в своем роде: не использовали какие‑либо плагины, а напрямую залезали в ядро ванильной версии и правили его, приравнивая это к нашему «супер‑пупер» решению.
В те года были популярны чистые майнкрафт‑сервера по вайт‑листу (ограниченный список игроков) без каких‑либо плагинов, меняющих механику игры. В моем распоряжении было два моих старых ноутбука: один — на ubuntu 16, где крутился сайт на WordPress и другой на ESXi, на котором были две виртуалки с сервером. Как помню, первый «сервер» не дотягивал до продакшена из‑за максимального количества оперативки — нельзя было использовать больше 8 гигабайт, а второй уже был, по‑моему мнению, вау каким классным — целых две плашки по 8 — и вот уже продакшн-решение для небольшого школьного сервера. Первый микротик hap AC lite на 100Mb, первые статьи «как настроить роутер» и что такое NAT и белые адреса и «а как подключиться по SSH если вписал DROP в iptables» — тогда было всё, с чем сейчас, казалось бы, столкнуться уже невозможно.
Мы размещались на балконе, потому что мне казалось это удобным. Тогда я не думал ни о летящей с улицы пыли, ни о солнце. Но в какой‑то момент на смену зиме и весне пришло лето, и надо было оперативно что‑то решать. В ход шли любые подручные средства, и на смену фольге подоспела идея холодного и горячего коридора. Но не как в датацентрах, а по‑простому — в коробке.
Мы засасывали теплый воздух в «холодный» коридор на вдуве из коробки, внутри вентиляторы охлаждали задние крышки ноутбуков, а их кулеры выдували горячий воздух с другой стороны. На удивление, мы действительно так жили — это спасало нас в ужасно горячие летние дни и экономило нам порядка 10–20 градусов на процессорах.
Масштабируемся — 2019, универ и оптика
В какой‑то момент мне начали отдавать старые компьютеры на i3 и i5. И тут вместо неуспешного опыта с ESXi пришел Proxmox 5 версии. Первые tower-сервера (так их назвать, конечно, язык не повернется, но звучит же красиво) встали на «балкон». Новое лето уже исторически они переживали с горем пополам — под вентилятором и прикрывшись любыми подручными средствами.
Майнкрафт стал отходить на второй план, я начал разбираться в докере и завел первый swarm-кластер. В этот момент в ВУЗе мы решили сделать сайт, а я — опять подучиться чему‑то новому. Сворм жил, ежедневно на сайт заходило большое количество перво- и второкурсников, потому что мы публиковали там самописные лекции и семинары, а «поддержать автора» в совокупности со стипендией сработало: мы купили 19U стойку, которая должна была заменить эту ~~совсем не~~ пожароопасную деревянную.
В какой‑то момент МГТС начал менять всё оборудование на оптику, мы жили на их F660 роутере, а наш микротик — в его DMZ зоне. Но так как весь трафик проходил через него, это все равно являлось bottleneck'ом для нас. И на смену пришел преобразователь оптики на ethernet от ubiqiti.
Как помню, тогда было примерно 3 или 4 статьи на тему использования нештатного оборудования МГТС для нормальной работы через медь, но мои ночные поиски спустя 4 дня увенчались успехом: мы завели нормальный линк, и на микротике вместо серой сети появился белый статичный адрес от МГТСа.
Стойка переехала на тот момент уже в комнату, потому что на балконе она начала бить током всё вокруг, а пыль стала скапливаться не вокруг, а уже в серверах.
Пандемия и хостинг — 2020
1 июня 2020 года мы запустили наш хостинг серверов майнкрафта. Тогда уже мы умели немного в k8s, а идея с docker swarm давно ушла в ящик «попробовали и забыли и слава богу»
Первый прототип сайта был запущен на php на нескольких подах. Это был серьезный монолит сайта и большой монолит панели, которая полностью отвечала за управление пользовательскими игровыми серверами в docker-контейнерах.
Сам хостинг (его ноды — сервера, на которых располагаются игровые майнкрафт-сервера) мы держали в mail.ru cloud solutions (cloud.vk.com), а весь продакшн — сайты и бэкенд — на «балконе». Это историческое название, кстати, мы до сих пор активно используем.
Сервера в MCS периодически ддосили школьники, а мы таким образом клали им гипервизоры, переполняя contrack-таблицу. Наши айпишники отправляли в blackhole, и мы приходили к школьникам с грустными историями о том, что на их сервера по старым адресам больше не получится зайти.
Настал переломный момент, когда количество клиентов перевалило определенную отметку, и мы начали выходить в ноль по прибыли — и поехали в hetzner и selectel. Историю переездов и технической части я расскажу в следующей статье L3 — уровень инфраструктуры, а сейчас мы продолжим разговор про стойку.
Стойка разрасталась, сервера обновлялись, и в какой‑то момент комната, в которой я раньше ютился со стойкой 19U, освободилась. В этот момент пришла гениальная идея: почему бы не потратить несколько сотен тысяч рублей и обновить всё вокруг? Так мы и получили домашний дата‑центр в Москве.
От ноутбука до 32U стойки
Вместо нескольких абзацев текста я просто покажу эту фотографию и, думаю, вы всё поймете.
С 2017 года мы проделали огромный путь, и в 2023, спустя 6 лет, пришли к стойке стоимостью порядка миллиона рублей (понимаю, для enterprise-компаний это плевок, но это хобби...) и выделенному месту для нее. Наш Балкон превратился в имя с большой буквы, теперь это специальная комната с кондиционером, бесперебойниками, выделенной линией питания, выдерживающими 6 киловатт напряжения, которая не зависит от розеток и питания самой квартиры, и тремя независимыми интернет‑провайдерами.
Конечно, мы до сих пор не защищены от перебоев в электропитании на уровне дома и отключении сети на >1 час, но таких случаев за всё время существования Балкона можно было пересчитать по трем пальцам. Во всех остальных случаях мы могли только выйти из строя по одному из каналов. И в основном — на уровне провайдеров.
Максимальная мощность стойки на данный момент ограничена 6КВт, мы потребляем около 2.5 в пике по мощности. На 32 юнита у нас занято 10 серверов, 6 из которых — 4U сервера с серверными процессорами (разновидности эпиков и xeon'ов) и 4 одноюнитовых supermicro на ксеонах.
Мы смогли создать ceph‑кластер в этой стойке для бесшовной миграции виртуалок между машинами на случай отказа одного из гипервизоров, объединив их в 10Ge сеть, выделили отдельную подсеть под ipmi‑управление: если нужно что‑то оперативно поправить с любой точки мира, и настроили камеры видеонаблюдения на какие‑либо экстренные случаи. На балконе стали крутиться пользовательские ноды с майнкрафт-серверами, два куб‑кластера под продакшн и инфраструктурные сервисы и виртуалки под различные системы, которые мы не завозим в куб. Но об этом в следующий раз.
Смотря на всё это ретроспективно, сейчас я понимаю, что хобби из одного ноутбука выросло в настоящий проект. С одного человека — превратилось в команду, состоящую из 9 сотрудников, но мы, два основателя хостинга superhub, по‑прежнему называем всё это хобби. Мы также совершаем ошибки, падаем, теряем девятки по SLA, и работаем в свободное от основной работы время над тем, что так долго выращивали.
Наша идеология с 1 июня 2020 года заключалась и до сих пор остается неизменной — мы решили делать хостинг не для заработка, а для того опыта, который не сможем получить по каким‑либо причинам в другом месте. И к счастью или к сожалению, до сих пор ей и придерживаемся.
Заходите на наш сайт, оцените его, пожалуйста, и посоветуйте нам что‑нибудь интересное, если найдете. Нам будет очень приятно. https://superhub.host