Управление сетевыми сбоями — одна из проблем в сфере облачных вычислений. Эти сбои влияют на производительность и надежность публичных облаков: снижается эффективность и появляется риск потери данных. Поскольку зависимость от облачных сервисов продолжает расти, нужно решение проблемы. SWARM — система, которая смягчает последствия сетевых сбоев в публичных облаках.
Наша статья основана на материале Mitigating the Performance Impact of Network Failures in Public Clouds, авторами которого выступают ученые из Microsoft Research и Университета Южной Калифорнии. Здесь мы разберемся в тонкостях SWARM и ее роли в снижении влияния сетевых сбоев на производительность в публичных облаках.
SWARM работает по принципу ранжирования средств защиты на основе их влияния на известные метрики CLP (Cloud Performance). Этот подход позволяет более тонко и эффективно реагировать на сетевые сбои и гарантирует, что производительность облачной сети остается стабильной даже в условиях неожиданных проблем.
Влияние сетевых сбоев
Сбои сети в дата-центрах варьируются от отказа или потери связи до локализованных постоянных перегрузок. Устранение этих проблем требует времени. Иногда приходится тратить часы на устранение повреждений пакетов, вызванных аппаратным обеспечением, либо даже дни, чтобы заменить оптические каналы. Пока ведутся ремонтные работы, поставщики облачных услуг принимают меры для снижения воздействия сбоев.
Сбои в сети негативно влияют на пропускную способность потока и время его завершения. Существующие подходы к устранению сбоев сети имеют ограничения. Например, некоторые используют локальные критерии для оценки смягчения последствий, такие как отключение канала, если он оставляет достаточно функциональных восходящих каналов на соответствующем коммутаторе. Другие методы применяют глобальные, но не сквозные показатели, такие как потеря пакетов и использование сети. Эти способы негативно влияют на клиентов, так как предлагают неадекватные меры по смягчению последствий.
SWARM: решение для сетевых сбоев
SWARM — это сервис, который предназначен для быстрого ранжирования мер по устранению последствий при масштабировании на большие кластеры. Он ориентирован на то, что для ранжирования средств защиты требуется только оценка распределений CLP (Connection-Level Performance) с достаточной точностью для создания эффективных порядков. SWARM использует оценщик CLP, который аппроксимирует распределение метрик CLP, моделирует трафик, маршрутизацию достаточно подробно, чтобы обеспечить точность ранжирования. И выдает результаты всего за несколько минут.
SWARM принимает в качестве входных данных распределения прибытия потоков, их размеров и вероятностей связи. Он использует их для выборки набора требований трафика на уровне потока. Для каждого такого требования он генерирует образцы маршрутизации, чтобы отразить неопределенность потоков. SWARM объединяет оценки CLP из каждой комбинации выборок маршрутизации и трафика, чтобы сформировать составное распределение. Оно кратко отражает изменчивость трафика и маршрутизации. Затем SWARM использует это распределение для ранжирования мер по смягчению последствий.
Для вычисления быстрых оценок SWARM использует набор агрессивных методов масштабирования, которые включают конвейеризацию, параллелизм, уменьшение топологии и тщательное проектирование структуры данных. Он оценивает CLP отдельно для длинных и коротких потоков. Оценить CLP для коротких потоков проще, так как их поведение в сети меньше меняется во времени. SWARM тщательно моделирует длинные потоки по двум параметрам: ограничена ли их пропускная способность потерями и как это ограничение изменяется со временем.
При разработке SWARM использовали опыт работы с операторами крупного производственного облака ProviderX. Метод позволяет найти способ смягчения последствий с наименьшим влиянием на производительность сети.
Эмпирически доказано, что SWARM работает лучше, чем стандартные методики. Для распространенных сценариев отказа он выбирает либо лучшее решение, либо то, которое не более чем на 9% хуже. Он также превосходит современные решения в 793 раза.
Автономные измерения в SWARM
SWARM полагается на три эмпирически обусловленных распределения, которые измеряются в автономном режиме:
верхняя граница пропускной способности длинных потоков в сети с потерями;
количество RTT, необходимое коротким потокам для завершения;
их задержка в очереди.
Чтобы измерить пропускную способность длинных потоков в сети с потерями, SWARM использует топологию, где один узел посылает длинный поток другому узлу. Пропускная способность этого потока измеряется в различных условиях сети, например, вызывая потери пакетов или изменяя RTT путем добавления задержки.
SWARM избегает ограничений мелкозернистых матриц трафика (TM) на уровне потока и использует приблизительное распределение TM. Он генерирует несколько образцов ТМ из трех входных данных, которые операторы уже собирают: скорости прибытия потоков, распределения их размеров и вероятности связи между серверами. Чтобы надежно оценить распределение CLP без точной информации о маршрутизации потока, SWARM выбирает несколько потенциальных путей для каждого потока, чтобы обеспечить необходимую статистическую достоверность.
SWARM решает проблемы изменения пропускной способности во времени и зависимости потоков с помощью быстрого и масштабируемого оценщика скорости потока на основе эпох. Он делит время на несколько эпох, пересчитывая CLP в каждой, и сшивает результаты для получения общей оценки. В течение каждой эпохи он оценивает пропускную способность и FCT для коротких и длинных потоков отдельно, поскольку сбои в сети влияют на них по-разному.
Устойчивость SWARM к ошибкам
Устойчивость SWARM к ошибкам — ключевой аспект его надежности при работе со сбоями в сети. Он разработан для обработки ошибок во входной скорости потери пакетов и скорости прибытия потока. SWARM может принимать эффективные решения в изменяющихся условиях сети.
Была проведена оценка чувствительности SWARM к различным входным данным. Обнаружено, что за пределами нескольких точек перегиба выбор наилучшего смягчения последствий очевиден, даже если входные данные для системы меняются. Есть только несколько точек перегиба, где SWARM чувствителен к ошибкам во входных данных. В этих точках SWARM может ошибиться и выбрать неоптимальные меры по смягчению последствий. Это означает, что SWARM может мириться с большими ошибками во входном распределении. Разница между смягчениями либо достаточно велика около этой точки, чтобы выбор смягчения был очевиден, либо достаточно мала, чтобы ошибка не была слишком дорогостоящей.
Также была продемонстрирована способность SWARM выбирать наилучшее смягчение при различных протоколах управления перегрузками. Например, его сравнивали с двумя протоколами с различным поведением при потерях. Cubic резко снижает скорость отправки при потере пакетов. BBR этого не делает. SWARM выбирает наилучшее смягчение независимо от того, какой протокол используется. Но он более точен, когда известно сочетание протоколов, так как он может явно учесть их различия в обработке потерь.
Сравнение производительности SWARM
В области смягчения последствий сетевых сбоев SWARM доказал, что он — грозный соперник существующим методикам, так как постоянно превосходит все базовые решения с производительностью.
В сценарии, где Priority-FCT используется для приоритезации 99p FCT, SWARM демонстрирует максимальный штраф за производительность FCT всего в 0,1% по сравнению с 79,3% штрафом ближайшего базового уровня, CorrOpt-75. Это демонстрирует исключительную способность SWARM поддерживать время завершения потока даже в условиях сбоя сети.
При использовании Priority-AvgT для определения приоритетов средней пропускной способности максимальный штраф SWARM на среднюю пропускную способность похож на несколько базовых моделей, таких как NetPilot-99 и CorrOpt-75. Однако SWARM выделяется тем, что снижает штраф за производительность по всем трем метрикам CLP.
С точки зрения масштабируемости SWARM продемонстрировал свою способность обрабатывать большие топологии Clos с 16K серверов, находя наилучшее смягчение менее чем за 5 минут — хороший показатель.
SWARM — перспективное решение для управления сетевыми сбоями
Производительность SWARM в смягчении последствий сетевых сбоев в публичных облаках впечатляет. Она постоянно превосходит другие системы, сохраняет низкие штрафы по всем метрикам и масштабируется до больших размеров сети. Эти качества делают SWARM перспективным решением для управления сетевыми сбоями в публичных облаках.