Наша почта:
В Москве:
РФ (звонок бесплатный):
Сетевая инфраструктура ЦОД для самых маленьких (c)
{ Team Lead в Rubytech }
Сергей Бочарников

Видео доклада

Презентация спикера

Построение сети ЦОД
Опыт построения более чем 20 фабрик ЦОД разного масштаба: от 30–40 стоек до нескольких сотен. Диапазон достаточно широкий, и подходы, описанные ниже, отрабатывались на объектах разной величины. Задача — показать, как в целом подходят к проекту построения сети ЦОД, какие шаги нужно пройти и что для этого сделать. Здесь нет глубокого погружения в детали, тонкости протоколов и подобные вещи. Цель — дать точку отсчёта, от которой можно отталкиваться при планировании собственной инфраструктуры.

Постановка задачи

Задача сформулирована исходя из критериев, характерных для компании-интегратора, которая обслуживает и строит крупные сети, но при этом имеет и собственную инфраструктуру. Штат такой компании — порядка одной-двух тысяч человек, и у неё есть свой небольшой ЦОД. Он и взят за референс; плюс-минус такие же ЦОДы встречаются и в других компаниях.
Это небольшой ЦОД на 10 стоек, каждая стойка по 7 кВт. В каждой стойке максимум 12 серверов — ограничение возникает из-за мощности, хотя по факту можно уйти и в плюс. Из каждого сервера берётся минимум по два порта 10 Гбит/с.
Всё это обязательно нужно резервировать.
Кроме того, служба ИБ часто хочет разделять потоки трафика на зоны безопасности: например, чтобы in-band-управление не шло вместе с data-трафиком, а взаимодействие было организовано через firewall. И эта история может вырасти достаточно резко — такое бывает, и этот момент тоже нужно учитывать.
В цифрах картина выглядит так. 10 стоек по 12 серверов дают 120 серверов, а в сумме — 240 портов. Сети управления на данный момент нет: возможно, некоторая её часть и присутствует, но будем считать, что её нет. Условно она есть на уровне СКС, но именно сети управления с точки зрения инфраструктуры нет — её тоже предстоит сделать.

В среднем на каждый хост приходится один порт:

Подключается сервер, подключается коммутатор — имеется в виду менеджмент-подключение с out-of-band-управлением. Получается 120 серверов плюс N сетевых устройств. Почему N — потому что их количество пока не посчитано; оно будет определено далее.
  • Необходимы коммутаторы для основного трафика
    С портами 10G как downlink и 100G как uplink. Downlink — это порты в сторону хостов, туда, куда подключаются серверы. Uplink — порты в сторону вышестоящих коммутаторов, которые образуют уровень агрегации.
  • Для трафика управления нужны коммутаторы с минимальным набором портов
    На данный момент самый минимальный набор на рынке — это 1 Гбит/с в сторону хостов и 10 Гбит/с наверх. Таких коммутаторов нужно достаточно много, и, скорее всего, при форм-факторе 48-портового коммутатора все они будут именно такими. При этом нужен запас — на случай, если сеть управления вырастет. Если же в сети управления оказывается 10 Гбит/с трафика, с этим уже нужно что-то делать: возможно, разделять её и оставлять там действительно только управление.

Переподписка

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

Переподписка — это соотношение ёмкости хостовых портов к ёмкости сетевых портов (тех, что смотрят наверх). Идея такая: если в какой-то момент все подключённые серверы дадут burst по трафику и каждый нагрузит свой линк на максимум, то в единицу времени на коммутаторе окажется занято, например, 200 Гбит/с, и их нужно отдать наверх. Если наверх ведёт один линк на 100 Гбит/с, возникает соотношение 2:1 — то есть 50 % трафика будет отброшено.
На практике это не страшно: таких burst-ов в среднем почти не возникает.
Стандартная рекомендация для корпоративных ЦОД — строить 4:1.
Эта рекомендация растёт корнями из дизайнов Cisco, но так делают многие, и это приемлемо. Некоторые более важные элементы стоит делать 1:1 — когда burst реально возникает и его нужно полностью передать наверх. Такие требования тоже встречаются. Главное — этот параметр нужно учитывать. Для сети управления он значения не имеет: если там появляются burst-ы по 100 Гбит/с, значит, что-то идёт не так.

Направление трафика

Внутри ЦОД есть два типа направления трафика
  • Восток-запад (East-West)
    горизонтальное направление, трафик внутри одного или нескольких ЦОД, который не уходит вовне.
  • Север-юг (North-South)
    вертикальное направление, трафик, который уходит наружу. Это важно учитывать при выборе топологии.

Топология

Существует несколько стандартных вариантов. Классическая трёхуровневая топология имеет очевидный минус — наличие уровня ядра (core). Взаимодействие между разными элементами на уровне access всегда идёт через уровень core, а это лишние хопы. При этом топология хорошо адаптирована именно под трафик север-юг, поскольку пришла из кампусных сетей. В кампусе она показывает себя отлично, потому что пользователи практически никогда не общаются напрямую.

То же самое справедливо для сети OOB. OOB-сеть направлена исключительно на взаимодействие север-юг: не бывает такого, чтобы один коммутатор подключался по менеджменту к другому. Исключение — когда кто-то потерял доступ, зашёл консолью и переходит вручную. Обычно же подключение всегда идёт откуда-то извне и персонифицировано на каждый узел.

Clos

Для основного трафика есть де-факто стандарт в мире ЦОД — так называемый Clos, он же spine-leaf, он же fat tree. Это плюс-минус синонимы; за этими аббревиатурами стоит достаточно сложная историческая справка, которую при желании можно изучить отдельно.
Плюсы этой топологии:
  • 1.
    Все линки сразу зарезервированы, и отказ любого коммутатора или линка не приводит к потере трафика — всё продолжает работать.
  • 2.
    Она заранее адаптирована под East-West, то есть под горизонтальное взаимодействие.
Это ровно то, что нужно для основного трафика, потому что основной трафик ЦОД — как показывают статистические выкладки последних лет — это как раз East-West. Это связано с тем, что внутри ЦОД ходит много репликаций и внутренней информации, а наверх отдаются только короткие пакеты, и трафика там немного.
Минус топологии в том, что она в целом дорогая: её нужно строить сразу целиком, заранее закладываясь на все линки, покупая трансиверы и так далее. Но на скоростях 100 Гбит/с это приемлемо.

Альтернатива

Существуют и более современные методы. Самый популярный на данный момент — Dragonfly+, топология, которую у себя реализовали в Яндексе. Она имеет плюсы по стоимости портовой ёмкости, так как подразумевает меньшее количество подключений. Но это играет роль уже на скоростях 400G и 800G, где трансивер по стоимости сопоставим с самолётом. У неё есть и существенные минусы: сложный, точнее очень специфичный роутинг — множество простых нюансов, которые вместе образуют запутанный клубок. Для рассматриваемой задачи это неприменимо.

Оборудование

По большому счёту существует два типа коммутаторов.
  • Модульный коммутатор
    большая коробка, которая занимает полстойки и набивается линейными картами разных типов. Её минус в том, что при выводе коробки из строя теряются все линейные карты и все подключения. Потерять её можно по разным причинам — не только из-за аварии по питанию, но и при штатной замене или обновлении. Эксплуатировать её в таком режиме неприятно.
  • Pizza box
    Они эксплуатируются в сетях уже более 10 лет и очень хорошо встраиваются в Clos. Такой коммутатор занимает один-два юнита, и при необходимости его можно просто заменить на другой — всё остальное продолжает работать. Это обеспечивается наличием второго плеча: отдельный коммутатор, отдельный control plane, отдельные сессии, отдельные «мозги», отдельное питание.
В модульном варианте всё это объединено в одну коробку. Поэтому на уровне агрегации и access выбор — именно pizza box.

Сеть управления

Для сети управления подходит коммутатор с 48 гигабитными портами и 4 портами 10G — в примере это модель MikroTik. По требованиям нужно обслужить 120 серверов плюс некоторое количество сетевого оборудования, поэтому имеет смысл брать с запасом — 4 таких коммутатора, что даёт портовую ёмкость 192 порта.

Особенность решения в том, что ставятся, по сути, 4 access-коммутатора, один из которых выступает агрегатором: три access подключаются к нему портами 10G, ещё одна десятка остаётся свободной на случай необходимости. К этому же агрегатору можно подключать и другие линки.

Маршрутизатор и терминальный сервер

Для обеих сетей — управления и data — нужен маршрутизатор, который умеет в IPsec. Минимально нужны гигабитные порты для подключения провайдера, при необходимости — подключение десятками снизу.

Ещё один полезный и часто выручающий девайс — терминальный сервер. Через него организуется консольный доступ. По сути, он имеет порты RJ45: в меди из консольного порта устройства через патч-панели линия дотягивается до терминального сервера, который подключается в OOB-сеть. Подключаясь по Telnet или SSH к его специфичному порту, попадаешь на консоль нужного устройства.

Data-сеть

Data-сеть — это сеть, куда включаются хосты. Здесь порты должны быть 100 Гбит/с и 10 Гбит/с. Функционал уровня leaf должен быть относительно богаче, чем у spine.
  • Leaf:
    это коммутатор, который является границей транспортной сети: он обрабатывает хостовый трафик и передаёт его наверх.
  • Задача spine:
    просто «переварить» трафик, это своего рода простая, не особо умная «молотилка». Иногда и на spine требуется что-то сделать, но это скорее исключение.
По требованию нужно 240 портов по 10G. С запасом это 10 коммутаторов по 24 порта. Кроме того, для подключения внешних сегментов используются border leaf.
Border leaf — это точно такой же стандартный коммутатор уровня leaf, встроенный в топологию так же, как обычный, но с другой задачей: в него подключаются не хосты, а внешние сети — другой ЦОД, firewall или что-либо ещё. На схеме слева как раз изображены border leaf, к ним подключены роутеры.

На что обратить внимание при выборе коммутатора

  • Схема вентиляции
    Иногда встречается ситуация, когда заказали одно, начали ставить — и оказывается, что горячий воздух дует в холодный коридор. Это приходится переделывать.
  • Резервирование блоков питания.
    Сейчас это почти нереальная проблема — чаще всего коммутаторы идут однотипными и уже зарезервированными. Но на всякий случай стоит убедиться, что есть два действительно разных блока питания, которые можно подключить в разные лучи и тем самым зарезервировать устройство.
  • Наличие в реестре ТОРП
    Актуально для тех, кто работает в госсекторе и под регуляторами.

Как сэкономить при выборе оборудования

  • Лицензии.
    Часто оборудование поставляется с определёнными уровнями лицензий — например, включён MACsec, который на leaf никогда не понадобится, ведь его задача — отдавать трафик на spine. Здесь можно сэкономить строчку бюджета.
  • Уровни поддержки.
    Стоит подумать, что реально нужно, и не закладываться избыточно в дорогую поддержку с реакцией one business day. Если это принципиально — вариантов нет, но зачастую здесь тоже можно сэкономить.
  • Косвенная экономия.
    Бывают компании, которые предлагают цену чуть выше, но ведут себя очень проактивно: по заведённому кейсу быстро прилетает ответ, подключается инженер, команда работает и выпускает feature request-ы в короткие сроки. Был случай с одним из отечественных вендоров: при сложном баге в сети IP/MPLS на их роутерах время от фиксации до решения составило три недели — очень хороший показатель реакции. Если такое оборудование стоит лишь немного дороже, это не играет роли и в будущем даже позволяет сэкономить.

Промежуточный итог:

  • Размещение в стойках
    На схеме в серверной стойке — 12 серверов (показана только часть, чтобы не перегружать), пара leaf, OOB-коммутатор и патч-панели. Справа — телекоммуникационная стойка, которая служит инфраструктурной частью: в ней размещаются spine, border leaf (BL), терминальный (консольный) сервер Digi, роутеры для OOB и агрегаторы OOB. Агрегатор на схеме размещён внизу, но расположение здесь условное — его можно менять как удобно. Исключение — патч-панель: её лучше не ставить в середину.
  • Сеть управления. Схема подключения
    Сервер подключается к OOB-access, OOB-access — линком к OOB-AGG, AGG — к роутеру, роутер — куда-то вовне. Аналогично идёт подключение leaf. Консольный путь: от leaf идёт консоль на патч-панель, патч-панель связана с другой патч-панелью в телеком-стойке, та — с терминальным сервером, а терминальный сервер подключается к OOB-агрегатору/access, который выполняет эту роль для доступа на консоль.
  • Промежуточный итог в цифрах

    Коммутаторы уровня access — 4 штуки, маршрутизатор — 1, терминальный сервер — 1, leaf — 12 (одинаковые), spine — 2.

Настройка и технологии

Оборудование собрано и стоит, лампочки моргают, но пока ничего не работает — нужно всё настроить. Стандартный вариант, который использовался более 10 лет назад, — Spanning Tree (STP) плюс MLAG. Есть вариант не тянуть L2 и делать чистый L3, но он в данном случае не подходит.
Причины следующие. При STP заблокирована половина линков. При чистом L3 не получится разделять трафик на потоки по зонам безопасности: трафик всё равно будет смешиваться и не пойдёт только через firewall. Пришлось бы делать истории с VRF и VRF-lite, что неудобно и сложно в эксплуатации, а также возникает ограничение по количеству подсетей.
Поэтому была разработана конструкция EVPN VXLAN. Она пришла из сетей провайдеров:
  • EVPN
    растёт корнями из L3VPN/MPLS VPN.
  • VXLAN
    это другой вариант data plane, более применимый к сетям ЦОД.
Идея в том, чтобы разделить трафик на плоскости. Есть транспортная (underlay) сеть, которая всегда стандартна: её не трогают и не меняют. И есть overlay-сеть. В рассматриваемой схеме spine относятся практически всегда только к underlay и в overlay не участвуют. Это спорный момент: на них можно навешивать функции route reflector или route server для обмена маршрутной информацией. Но организация туннелей всегда происходит на уровне leaf — коммутаторов, которые смотрят в сторону хостов.
При этом открываются все линки для трафика, в том числе для L2, так как используются L3-линки и STP уже ничего не блокирует. Доступно огромное количество так называемых VNI — метка принимает значения в несколько миллионов, что позволяет создать множество разделённых между собой сетей и разбить их на зоны безопасности.
Минус в том, что это сложнее в управлении, чем классический STP.
Всё работает средствами MP-BGP, где EVPN — это address family для BGP. Знание L2/L3 VPN становится обязательным — хотя бы в общих чертах: как формируется L2/L3 VPN на примере стандартного сценария MPLS. В рамках разбора проблем приходится погружаться достаточно глубоко, а EVPN VXLAN — комплексная технология, включающая классические сети, маршрутизацию и коммутацию.

Причина выбора EVPN VXLAN — это сейчас фактический стандарт. Большинство сетей его эксплуатируют, показывая хорошую устойчивость. Нет задачи экспериментировать над продуктивной сетью — для экспериментов есть прекрасные лабораторные инструменты.

Организация внешних подключений

Внешние сети в рамках EVPN VXLAN подключаются следующим образом. Border leaf уходят в spine. В примере рассмотрены два варианта: в сторону второго ЦОД (появляется ещё одна пара border leaf 3–4) и в сторону firewall — какого-то внешнего сегмента (кампус и т. п.).Существует два сценария :
  • Проприетарное решение:
    Cisco рекомендует Multi-Site, Huawei — Segment VXLAN. По сути, это аналогичные решения. В текущих условиях такой путь скорее не рекомендуется, но если вся фабрика построена на Huawei и это планируется развивать — использовать Segment VXLAN можно и нужно.
  • L2 handoff и L3 Option A:
    L2 handoff — это обрыв доменного VPN и создание простого VLAN: порты объединяются в LAG, и через них пробрасываются VLAN (на схеме они отмечены синим и объединены в кружок — это port-channel). L3-часть — сети, префиксы, маршруты — отдаётся через Option A, те самые VRF-lite: каждый VRF пирится с внешним узлом и передаёт наружу свою информацию. Так можно и растянуть L2, если это необходимо, и обеспечить L3-общение в рамках одного VRF.

Дополнительные службы

Без ряда служб инфраструктура будет в шатком состоянии. В качестве мониторинга — SNMP. Обязательно NTP: логи должны быть с актуальным временем. AAA — must have, потому что нужно понимать, кто зашёл на коробку и что сделал. Соответствующие open-source-инструменты приведены в материалах.
Первичная автоматизация — полезное дело.Минимум по автоматизации, который используется регулярно: проверка коммутации, создание конфигураций, плагины в NetBox, а также сбор специфичных данных с узлов и их разбор — например, сбор серийных номеров в моменте. Отказываться от этого точно не стоит.
Ещё два немаловажных инструмента. NetBox — нужно понимать, что происходит с инфраструктурой и IP-адресацией. Резервное копирование конфигураций — обязательно. Инженеры делятся на три типа: те, кто не делает бэкапы; те, кто делает бэкапы; и те, кто делает бэкапы и проверяет их. Разумно сразу перейти на третий уровень.

Нюансы эксплуатации

  • Всегда нужно планировать работы.
    Что бы ни делалось — переключение линка или что-то ещё, — работы должны быть запланированы. Заранее найдены контакты ответственных, под рукой схемы и вся сопутствующая информация: если произойдёт сбой, времени на её поиск не останется. Проводить работы лучше днём — так меньше приходится дёргать коллег.
  • Обязательно планировать проверки отказоустойчивости.
    Сеть должна находиться в понятном состоянии: нужно точно знать, а не предполагать, что при отключении spine ничего не ляжет. Для этого проверки планируются и проводятся.
  • Обязательно сформировать план восстановления (DR).
    Когда что-то падает, должен быть готовый план действий. В своё время известная компания СДЭК столкнулась с такой ситуацией, и плана под рукой не оказалось. Всё разрешилось, но с готовым планом это прошло бы мягче. Разумно перенимать этот опыт заранее.
Финал
В итоге получается инфраструктура на 10 стоек в описанном выше состоянии, с понятной логикой построения на каждом уровне — от постановки задачи до эксплуатации.
В Москве:
РФ (звонок бесплатный):
Наша почта:
GetNet
Остались вопросы?
Группа компаний VoxLink © 2011-2026