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