Как резервируют коммутаторы в Selectel. Сравнение Stack и MLAG

По мотивам выступления Кирилла Малеванова, технического директора Selectel, рассказываем о технологиях физического резервирования коммутаторов. Что такое Stack и MLAG, как они помогают в L2-резервировании и какую технологию выбрать.

Где используют стекирование

Иногда клиенты запрашивают резервированное соединение (резервирование канала). В таком случае подключение их сервера происходит с помощью: 

  • двух физически разных линков,
  • двух коммутаторов,
  • агрегированного интерфейса из двух портов сетевых карт на стороне сервера.

Для «синхронизации» двух или более коммутаторов используют технологии стекирования — Stack или MLAG. В результате для вышестоящего устройства или подключенного сервера объединенные коммутаторы представляются одним устройством. Такой подход к резервированию применяется в услуге Colocation

Так мы повышаем вероятность того, что пользовательский трафик пройдет по топологии сети до пункта назначения. Вдобавок это сокращает время внеплановых простоев. 

Для описания связи «сервер-интернет» принято использовать модель link aggregation. Это, по сути, «свернутая» схема L2-фабрики. 

Модель link aggregation

Об этом говорили в статье о резервировании в дата-центрах Selectel. Теперь углубимся в технологии физического резервирования. 

Stack и его недостатки

Стекирование и L2-резервирование пришли в повседневную практику из бизнеса. Впервые стекирование широко распространилось на коммутаторах типа Cisco Catalyst 3750. 

Благодаря технологии Cisco StackWise можно было объединять до девяти коммутаторов Catalyst 3750 в один логический. Притом с высокой производительностью — от 32 Гбит/c до 128 Гбит/c, что и по современным меркам неплохо. 

Catalyst 3750. Источник

Постепенно технология набирала популярность и получила реализацию у разных вендоров. Но не у всех. 

Как называется Stack у разных вендоров

В таблице «забыли» упомянуть Arista. Как называется технология стекирования у них — напишите в комментариях. 

Плюсы стекирования

Стекируемые коммутаторы у каждого вендора свои, но для всех можно выделить следующие плюсы: 

  1. Соединение от 2 до 10 коммутаторов.
  2. Единый адрес управления — общий control plane. Не нужно управлять десятью коммутаторами. Достаточно подключиться к одному и ввести нужную команду.
  3. Экономия uplink-портов. Это сейчас на каждом коммутаторе по четыре uplink-порта. Но раньше их было по два, и этого не хватало. Для стекирования можно использовать отличные от uplink выделенные порты.

На этом плюсы заканчиваются. Более того, некоторые из них несут «переменный» характер. Расшифруем.

Минусы стекирования

Общий control plane

Один из главных плюсов Stack — это и его проклятие. Если отключается master — коммутатор, через который происходит управление стеком, — могут пострадать все остальные коммутаторы.

Встречаются и другие сценарии. Например, если в Stack четное количество коммутаторов, то при падении одного из линков стек может разбиться пополам. Результат — Stack не может определить новый master и полностью отключается. По крайней мере, на коммутаторах Juniper это работает так. 

Сложность подбора нужных stack-кабелей

Способ стекирования зависит от модели используемых коммутаторов:

  • Первый вариант — при помощи специально выделенных портов.
  • Второй вариант — через медные патч-корды Ethernet и соединяемые этим способом порты, которые предварительно объявляются портами для стекирования.
  • Третий вариант — при помощи кабелей с разъемами GBIC, SFP и пр.

В первом варианте стекирования используют специальные кабели. Их нужно где-то закупать и планировать их кроссировку заранее.

При этом важно не ошибиться с длинами каждого из них. Они могут различаться в зависимости от размера стека. Например, чтобы соединить нулевой коммутатор с «верхним», нужен кабель большей длины, чем для линка между первым и вторым устройствами. Вдобавок stack-кабели толстые, и их сложно «втиснуть» в стойки. 

Stack, вид сзади. Источник

Второй и третий варианты лишены этих проблем еще на стадии проектирования. Не нужно держать stack-кабели в ЗИПе. Можно использовать обычные трансиверы и оптические патч-корды, которые нужны для включения клиентских линков в коммутаторы. Более того, можно размещать устройства на расстоянии более 5 метров. Это полезно, когда нужно расположить коммутаторы в разных точках дата-центра. 

Сложный процесс обновления ПО на коммутаторах

Нельзя обновить только один коммутатор. Нужно обновляться на всех устройствах. Стекирование, можно сказать, не терпит коммутаторов с разными версиями софта. Однако в моделях некоторых вендоров процесс обновления оптимизирован. 

Например, на коммутаторах Cisco каждое из устройств поочередно обновляется и уходит в reboot. То есть остаются коммутаторы, которые продолжают обслуживать клиентов.

Аналогичная технология реализована у Juniper, но есть вендоры или модели, где перезагрузка всех коммутаторов в стеке происходит одновременно.

Высокая вероятность split-brain

Представьте, что стек состоит из двух коммутаторов. Между ними протянуты stack-кабели. В случае повреждения порта или линка может возникнуть ситуация — первый коммутатор считает, что упал второй, а второй коммутатор — что упал первый. Хотя оба они работают. Из-за этого появляется лишний master стека, и все начинает сбоить. 

Чтобы избавиться от всех минусов, «сетевики» придумали MLAG. 

Что такое MLAG и чем он лучше Stack

MLAG/MC-LAG (Multi-Chassis Link Aggregation) — это технология объединения data plane нескольких коммутаторов в один логический data plane, но с сохранением раздельного control plane на каждом из коммутаторов. Как и Stack, технология проприетарна — нельзя создавать пары из коммутаторов от разных вендоров. 

Резервированное подключение по MLAG Источник

Технология MLAG может быть знакома под разными названиями. 

Как называется MLAG у разных вендоров

В большинстве случаев за MLAG скрывается резервирование двух «коробок» (коммутаторов), которые соединяются одним или несколькими кабелями. Все вендоры рекомендуют использовать минимум два кабеля для резервирования, чтобы можно было, например, спокойно почистить оптику или переобжать основной кабель. 

Порты для подключений линков на схемах обозначают как peer-link.

Подчищаем за Stack

Сегодня MLAG — это новый Stack, широко распространенный в дата-центрах и в сетях операторов связи.

MLAG лишен всех недостатков Stack. Например, проблему с общим control plane MLAG решает через объявление двух master-устройств. В случае падения первого мастера стек не развалится, а просто делегирует функции первого на второй «главный» коммутатор. 
Примечание: На самом деле иерархия на программном уровне никуда не делась. Среди двух мастеров есть главный (primary) и подчиненный — slave-коммутатор (secondary).

Конфигурации MLAG-пары

Проблема с обновлением софта тоже решена. Так как в MLAG-стеке каждое устройство самостоятельно, можно обновлять их по отдельности. Во время обновления коммутаторы будут работать на разных версиях ПО (старой и новой). Однако версии софта на коммутаторах одного стека не могут различаться на условные 10 релизов. Обновляться нужно постепенно. 

Надежность: зачем подключать третий линк

Единственное, что нельзя убрать полностью, — риски split-brain. Но их можно свести к минимуму, добавив в схему подключений keepalive link. 

Он включается, как правило, в менеджмент-порты (out of band). Через них происходит управление и контроль: коммутаторы проверяют состояние друг друга с помощью keepalive-запросов. 

Keepalive link позволяет убедиться, что соседний коммутатор действительно перестал работать. В случае если упал только peer-link и оба коммутаторы «живы», slave-коммутатор «гасит» свои порты. Таким образом, риски split-brain сводятся к минимуму. 

Стоит добавить, что в MLAG нет проблем с подбором кабелей: он перенял от Stack третий вариант стекирования, при помощи кабелей с разъемами GBIC, SFP и пр.

В общем, благодаря MLAG можно подготовиться к различным сценариям протекания трафика.

С помощью данных схем можно отработать несколько случаев:

  1. Прямой доступ от сервера к интернету. Например, от сервера B через первый коммутатор. При условии, что между ними есть живой линк (первая схема).
  2. Финт через второй коммутатор. Если между сервером B и первым коммутатором линк все же упал, трафик пойдет через вторую «коробку» и peer-link (вторая схема).
  3. Доступ через peer-link. Может быть и такое, что трафик, который должен попасть на сервер D через второй коммутатор, почему-то «свалился» на первый коммутатор (например, могла не сойтись хеш-функция). В таком случае активируется peer-link и трафик совершает финт через второй коммутатор (третья схема).
  4. Соединение между серверами A и D. Горизонтальный обмен трафиком между двумя серверами (четвертая схема).

Вендорская реализация MLAG

Перед работой важно изучить схему включения линков в MLAG конкретного вендора. Если от одного сервера можно протянуть только одно включение в один коммутатор стека, все сломается по первому случаю на линке от сервера. Поэтому важно зарезервировать не только коммутаторы и peer-линки, но и включения в стек.

Если вам интересно, как реализован MLAG у разных вендоров: Arista, Huawei, H3C, Cisco, Juniper — погружайтесь в видео. 

Таймкоды докладов про релизы MLAG:

  • Кирилл Малеванов. Реализация у вендоров Arista — 1:01:20
  • Евгений Никифоров. Китайские товарищи: Huawei + H3C — 1:06:30
  • Никита Степанов. «Наше все»: Cisco + Juniper — 1:17:08

Задавайте вопросы по докладам и делитесь мнением о статье в комментариях.

Размещайте оборудование в дата-центрах Selectel

Обеспечим стабильными каналами связи, бесперебойным питанием и микроклиматом.
Ознакомиться с услугой

Что еще почитать по теме

Как переехать с Microsoft на Linux: краткий чек-лист и подводные камни

Делимся планом переезда с Microsoft на Linux и рассказываем, на что нужно обратить внимание при переносе данных и сервисов.
Владимир Туров 5 октября 2022

DBaaS: что такое облачные базы данных

Рассказываем о сервисе управляемых баз данных в облаке и объясняем, как разделяется ответственность за работу кластеров БД между провайдером и клиентом.
Владимир Туров 5 октября 2022
Кирилл Филипенко 14 сентября 2022

Увеличиваем FPS в аниме с помощью нейросети и GPU Tesla T4

Рассказываем про технологию интерполяции и ее практическое применение с помощью облачных серверов с GPU.
Кирилл Филипенко 14 сентября 2022

Новое в блоге

Михаил Фомин 24 июня 2022

Docker Swarm VS Kubernetes — как бизнес выбирает оркестраторы

Рассказываем, для каких задач бизнесу больше подойдет Docker Swarm, а когда следует выбрать Kubernetes.
Михаил Фомин 24 июня 2022
T-Rex 23 ноября 2022

Как работает СУБД Redis

Рассказываем, что такое Redis: рассматриваем его применение и преимущества, поддерживаемые типы данных.
T-Rex 23 ноября 2022

Полезные ресурсы для погружения в Go

Попросили коллег порекомендовать ресурсы для изучения Go и собрали подборку. Пригодится и начинающим, и опытным специалистам.
Дарья Маташина 22 ноября 2022

Как пережить «Черную пятницу»‎ без потерь?

Чек-лист для подготовки IT-инфраструктуры и специальные предложения от Selectel.
Дарья Маташина 22 ноября 2022