ITequipment.ruсетевое и серверное оборудование · МоскваПерейти в каталог →

Архитектура leaf-spine в центре обработки данных

Коротко: Leaf-spine — двухуровневая топология сети ЦОД, в которой каждый коммутатор доступа (leaf) подключён к каждому коммутатору ядра (spine), а связей между leaf-коммутаторами и между spine-коммутаторами нет. Любые два сервера в такой фабрике разделяют одинаковое число переходов: leaf — spine — leaf, то есть не более трёх коммутаторов на пути. Схема появилась как ответ на рост горизонтального трафика между серверами и вытеснила классическую трёхуровневую схему там, где важны предсказуемая задержка и равномерная полоса. Ключевой проектный параметр — переподписка, отношение суммарной полосы серверных портов к суммарной полосе аплинков.

Почему трёхуровневая схема перестала справляться

Классическая сеть ЦОД строилась тремя уровнями: доступ (access), агрегация (aggregation) и ядро (core). Она проектировалась под трафик, который идёт в основном вертикально — от пользователя к серверу и обратно. Такой трафик называют северо-южным (north-south).

С распространением виртуализации, распределённых хранилищ и микросервисов основная масса трафика стала горизонтальной — между серверами внутри ЦОД (east-west). Один запрос пользователя порождает десятки внутренних обращений, не выходящих за пределы машинного зала.

Трёхуровневая схема обслуживает такой трафик плохо по двум причинам. Во-первых, путь между двумя серверами разных стоек непредсказуем по длине: он может пройти через агрегацию, а может подняться до ядра. Во-вторых, на канальном уровне петли предотвращает протокол STP (Spanning Tree Protocol), который переводит избыточные линки в блокирующее состояние. Половина купленных портов при этом простаивает, а полоса между уровнями не растёт при добавлении линков.

Как устроена топология leaf-spine

Фабрика состоит из двух ролей. Leaf — коммутатор верха стойки (ToR, top of rack), в него включаются серверы и системы хранения. Spine — коммутатор, который соединяет между собой все leaf-коммутаторы и больше ни с чем не связан.

Правила соединений простые и строгие: каждый leaf подключён ко всем spine; leaf с leaf напрямую не соединяются; spine со spine не соединяются; серверы подключаются только к leaf. Внешние подключения (выход в корпоративную сеть, межсетевые экраны, балансировщики) заводят на выделенную пару leaf, которую называют border leaf или service leaf.

Из этих правил следует главное свойство схемы: расстояние между любыми двумя серверами в разных стойках одинаково — два перехода между коммутаторами. Задержка перестаёт зависеть от того, в какой стойке оказалась виртуальная машина, и приложение ведёт себя одинаково при любом размещении нагрузки.

Все параллельные пути через разные spine используются одновременно. Балансировка выполняется механизмом ECMP (Equal-Cost Multi-Path), который распределяет потоки между равнозначными маршрутами. Блокирующих линков нет, STP в фабрике не работает — его роль берёт на себя маршрутизация.

Чем leaf-spine отличается от трёхуровневой схемы

ПараметрТрёхуровневаяLeaf-spine
Уровней коммутацииТри: доступ, агрегация, ядроДва: leaf и spine
Профиль трафикаСеверо-южныйВосточно-западный
Путь между серверамиПеременный, два или четыре переходаПостоянный, два перехода
Избыточные линкиБлокируются STPАктивны все, ECMP
Рост полосыЗаменой устройств агрегацииДобавлением spine
Рост числа портовОграничен шасси агрегацииДобавлением leaf
Домен широковещанияШирокий, на уровне агрегацииУзкий, в пределах leaf
Типичная основаШасси с линейными картамиФиксированные коммутаторы 1U

Практическое следствие: трёхуровневая схема масштабируется вверх (более мощное шасси), leaf-spine — вширь (больше одинаковых коробок). Второй путь дешевле прогнозировать и проще обслуживать, поскольку устройства однотипны и взаимозаменяемы.

Что такое переподписка и как её считать

Переподписка (oversubscription) — отношение суммарной полосы портов, обращённых к серверам, к суммарной полосе аплинков, обращённых к spine. Это главный числовой параметр фабрики.

Формула: переподписка = (число серверных портов × их скорость) / (число аплинков × их скорость).

Пример. Leaf-коммутатор имеет 48 портов по 25 Гбит/с для серверов и 6 аплинков по 100 Гбит/с. Серверная полоса: 48 × 25 = 1200 Гбит/с. Полоса аплинков: 6 × 100 = 600 Гбит/с. Переподписка равна 1200 / 600 = 2:1.

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

ПереподпискаГде применяютКомментарий
1:1Кластеры ИИ, HPC, распределённые СХДПолоса гарантирована при любой нагрузке
2:1Нагруженная виртуализация, аналитикаРазумный компромисс для нагруженных сред
3:1Типовая виртуализация, корпоративные сервисыРаспространённое проектное значение
4:1 и вышеТестовые среды, архивы, резервное копированиеРиск перегрузки аплинков в пике

Ориентироваться следует на пиковую, а не среднюю нагрузку. Средняя утилизация аплинков в корпоративном ЦОД часто не превышает единиц процентов, но резервное копирование, миграция виртуальных машин или перестроение массива создают длительные пики в десятки гигабит.

Как рассчитать число портов, аплинков и спайнов

Расчёт фабрики выполняется в несколько шагов, и каждый следующий опирается на предыдущий.

Число leaf-коммутаторов определяется количеством серверных портов. Если требуется подключить 400 серверов двумя портами каждый, нужно 800 портов доступа. При leaf на 48 портов это 800 / 48, то есть 17 коммутаторов, округляя вверх. На практике берут по два leaf на стойку для отказоустойчивости, и расчёт ведут от числа стоек.

Число аплинков на leaf вытекает из выбранной переподписки. При 48 портах по 25 Гбит/с и цели 3:1 нужна полоса аплинков 1200 / 3 = 400 Гбит/с, то есть четыре порта по 100 Гбит/с.

Число spine-коммутаторов равно числу аплинков на одном leaf. Это прямое следствие правила «каждый leaf подключён к каждому spine»: четыре аплинка означают четыре spine, по одному линку в каждый. Добавление пятого spine потребует пятого аплинка на каждом leaf.

Требуемая ёмкость spine определяется числом leaf: каждому leaf нужен один порт на spine. Для 17 leaf достаточно spine на 32 порта, и останется запас на рост. Именно портовая ёмкость spine задаёт предел масштабирования фабрики: spine на 64 порта по 100 Гбит/с вмещает до 64 leaf. Если портов перестаёт хватать, добавляют третий уровень super-spine, объединяющий несколько блоков leaf-spine, — для большинства корпоративных ЦОД это избыточно.

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

Скорость серверного порта определяется задачей, скорость аплинка — выбранной переподпиской. Между ними принято держать кратность не менее четырёх, чтобы один сервер не мог занять аплинк целиком.

Порт сервераТиповой аплинкТипичная нагрузка
1 Гбит/с10 Гбит/сУстаревшие и вспомогательные серверы
10 Гбит/с40 или 100 Гбит/сОбщая виртуализация, файловые сервисы
25 Гбит/с100 Гбит/сТекущий массовый стандарт ЦОД
100 Гбит/с400 Гбит/сУзлы ИИ, NVMe-хранилища, аналитика

Скорость 25 Гбит/с вытеснила 10 Гбит/с в новых проектах: она использует одну линию (lane) вместо четырёх и опирается на ту же оптическую инфраструктуру, что и 100 Гбит/с, построенную на четырёх линиях по 25 Гбит/с. Подробнее о модулях и их обозначениях — в материале о модулях SFP и QSFP, а о выборе кабельной основы — в разборе оптоволокна OM3, OM4 и OS2.

L2 или L3 в фабрике: где проходит граница

Исторически сеть ЦОД строилась на канальном уровне: VLAN растягивались через агрегацию, чтобы виртуальная машина мигрировала между стойками без смены адреса. Платой были широкий домен широковещания и зависимость от STP.

В leaf-spine граница маршрутизации опускается на leaf: каждый leaf становится шлюзом для своих подсетей, а между leaf и spine работает только маршрутизация третьего уровня. Домен широковещания ограничен одной стойкой, сходимость определяется протоколом маршрутизации, ECMP распределяет потоки.

Проблему мобильности виртуальных машин решает наложенная сеть (overlay). Технология VXLAN инкапсулирует кадры канального уровня в UDP и переносит их поверх маршрутизируемой фабрики, а протокол EVPN на основе BGP распространяет сведения о том, за каким leaf находится какой MAC-адрес. Логический сегмент при этом может охватывать любые стойки, тогда как физическая сеть остаётся маршрутизируемой. Механика подробно разобрана в материале о VXLAN и EVPN.

Для подключения серверов двумя линками к двум разным leaf применяют MLAG — технологию, позволяющую паре коммутаторов выглядеть для сервера единым устройством. Разница между MLAG, стекированием и обычным LACP разобрана в отдельном материале о LACP, стекировании и MLAG.

Как выбрать коммутаторы leaf и spine

  1. Определите число серверных портов и их скорость с запасом на три года. Переделка фабрики обходится дороже, чем изначально выбранный коммутатор на 48 портов вместо 32.
  2. Задайте целевую переподписку по профилю нагрузки: 3:1 для типовой виртуализации, 2:1 для нагруженных сред, 1:1 для кластеров ИИ и распределённых хранилищ.
  3. Посчитайте число аплинков на leaf — оно же задаёт число spine в фабрике.
  4. Проверьте портовую ёмкость spine: число его портов — это предел по количеству leaf, то есть по размеру ЦОД.
  5. Проверьте аппаратную поддержку VXLAN, если планируется overlay. Программная реализация на процессоре коммутатора даёт неприемлемую производительность — требуется поддержка в микросхеме коммутации (ASIC).
  6. Оцените размер таблиц: число MAC-адресов, записей ARP и маршрутов. Для leaf в среде с плотной виртуализацией таблицы расходуются быстрее, чем порты.
  7. Проверьте буферы на leaf. Они сглаживают пики при схождении многих потоков на один порт (incast), типичном для распределённых хранилищ.
  8. Выберите схему охлаждения по направлению потока воздуха: от портов к блокам питания или наоборот. Направление должно совпадать с организацией горячих и холодных коридоров.
  9. Сопоставьте питание: два блока с горячей заменой на каждом коммутаторе, суммарная мощность — под полную загрузку портов оптикой, а не под паспортный минимум.
  10. Зафиксируйте единую версию программного обеспечения для всех устройств одной роли. Разные версии на spine усложняют диагностику и обновление.

Подобрать модели под рассчитанную схему можно в разделе коммутаторов; при необходимости подберём конфигурацию под вашу задачу и профиль нагрузки.

Типичные ошибки при проектировании

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

Spine используется как коммутатор доступа. Включение серверов или внешних каналов напрямую в spine нарушает симметрию фабрики: путь до такого сервера становится короче остальных, а балансировка искажается. Внешние подключения заводят на border leaf.

Разные модели leaf в одной фабрике. Различия в размерах буферов и таблиц приводят к тому, что часть стоек ведёт себя иначе под нагрузкой, и диагностика усложняется.

Не учтён MTU для overlay. Инкапсуляция VXLAN добавляет к кадру порядка 50 байт. Если на фабрике оставить MTU 1500, пакеты начнут фрагментироваться или отбрасываться. На всех линках между leaf и spine выставляют увеличенный MTU, обычно 9000 байт.

Таблицы кончились раньше портов. Коммутатор может иметь свободные порты, но исчерпать записи ARP или MAC. Этот предел проверяют на этапе выбора, а не после ввода в эксплуатацию.

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

Фабрика leaf-spine строится на однотипных устройствах, и это удобно для закупки на вторичном рынке: нужны партии одинаковых коммутаторов, а не редкие конфигурации шасси.

Проверяйте следующее. Состояние лицензий — часть функций, включая возможности overlay, активируется лицензией, привязанной к прежнему владельцу. Срок поддержки — устройство, снятое с поддержки (End of Support), перестаёт получать исправления уязвимостей. Комплектность — блоки питания, вентиляторные модули и рельсы часто продаются отдельно, а направление продува должно совпадать с вашими коридорами.

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

Что учесть при закупке

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

Комплектность. Уточняйте, входят ли в поставку блоки питания, вентиляторы, кабели питания нужного стандарта и рельсы. Для фабрики из двух десятков устройств недостающие монтажные комплекты сдвигают срок ввода.

Оптика и кабели. Считайте модули и кабели отдельной позицией: число линков leaf-spine равно произведению числа leaf на число spine. Для фабрики из 16 leaf и 4 spine это 64 линка, то есть 128 модулей. Выбор между DAC, AOC и трансиверами заметно влияет на итоговый объём закупки.

Гарантия и сроки. Согласуйте срок гарантии и порядок замены, а также доступность подменного фонда. Для однотипной фабрики разумно держать один запасной leaf на каждые 10–15 установленных.

Последовательность поставки. Spine и межкоммутаторная оптика нужны раньше серверных линков: фабрику собирают сверху вниз, и задержка поставки spine останавливает весь монтаж. Общий порядок подготовки закупки разобран в материале о планировании закупки.

Смотреть коммутаторы в наличии →

Вопросы по теме

Чем leaf-spine отличается от топологии Клоза?
Leaf-spine — это двухуровневый частный случай сети Клоза, описанной Чарльзом Клозом в 1950-х годах для телефонной коммутации. Термины часто используют как синонимы. Многоуровневые варианты с super-spine называют трёхступенчатой или пятиступенчатой сетью Клоза.
Сколько spine-коммутаторов нужно?
Ровно столько, сколько аплинков выделено на каждом leaf, поскольку каждый leaf подключается к каждому spine одним линком. Минимально разумное число — два, для отказоустойчивости. Четыре spine дают более плавную деградацию: отказ одного снижает полосу на четверть, а не вдвое.
Что произойдёт при отказе одного spine?
Фабрика продолжит работать, но суммарная полоса между стойками уменьшится пропорционально доле отказавшего устройства. При четырёх spine потеря одного означает снижение полосы на 25 процентов. Именно поэтому переподписку считают с запасом на отказ одного spine.
Нужен ли STP в фабрике leaf-spine?
В маршрутизируемой фабрике протокол STP не используется: петель на канальном уровне нет, избыточность обеспечивает ECMP. STP может оставаться включённым на портах, обращённых к серверам и к внешним сетям, как защита от случайного замыкания.
Можно ли построить leaf-spine без VXLAN?
Да. Фабрика может работать на чистой маршрутизации, если приложениям не требуется растягивать сегменты канального уровня между стойками. VXLAN добавляют тогда, когда нужна мобильность виртуальных машин между стойками или изоляция арендаторов.
Какая переподписка считается приемлемой?
Для типовой корпоративной виртуализации применяют 3:1. Для нагруженных сред с распределёнными хранилищами берут 2:1. Для кластеров ИИ и высокопроизводительных вычислений проектируют 1:1, поскольку там синхронный обмен между узлами определяет время расчёта.
Сколько серверов помещается в фабрику leaf-spine?
Предел задаёт портовая ёмкость spine. При spine на 64 порта в фабрику входит до 64 leaf; при 48 серверных портах на leaf это порядка 3000 портов доступа. Для большинства корпоративных ЦОД такой ёмкости достаточно без третьего уровня.
Обязательно ли два leaf на стойку?
Не обязательно, но это распространённая практика: сервер подключается по одному линку в каждый leaf, и отказ коммутатора или его обновление не останавливают стойку. Пара leaf объединяется механизмом MLAG, чтобы сервер видел оба линка как одну группу агрегации.
Какой MTU выставлять на линках фабрики?
При использовании VXLAN инкапсуляция добавляет около 50 байт, поэтому MTU на линках между leaf и spine увеличивают. Распространённое значение — 9000 байт, что оставляет запас для любой инкапсуляции и попутно снижает накладные расходы при передаче больших блоков данных.