четверг, 3 мая 2012 г.

Что лучше: Etherchannel и IP Hash или Load Based Teaming?

Споры что лучше - Etherchannel или LBT ведутся с тех пор, как последний механизм балансировки нагрузки появился в vSphere 4.1. Основная причина споров состоит в том, что администраторы или не знают о существовании LBT, или же думают, что сетевой стек у vSphere работает как и у физических серверов - один интерфейс активен, а все остальные простаивают до момент выхода активного из строя.

Варианты тиминга сетевых интерфейсов в vSphere

С самого начала хочу отметить, что vNetwork Distributed Switch (vDS) поддерживает пять разных режимов тиминга, но не поддерживает  LACP (802.3ad) или же Dynamic Etherchannel, поддерживается только Static Etherchannel. Для использования LACP необходимо использовать Cisco Nexus 1000V или какой-либо другой сторонний vDS.

Итак, vSphere поддерживает следующие режимы работы:

  • Route based on originating virtual port
  • Route based on IP Hash (единственный механизм, поддерживаемый с  Static Etherchannel и Static 802.3ad)
  • Route based on Source MAC address
  • Route based on physical NIC load (Load Based Teaming или LBT)
  • Use explicit failover order (не является механизмом балансировки нагрузки. Обеспечивает только отказоустойчивость).
Таким образом, всего 4 механизма предоставляют возможность балансировки нагрузки, но ни один из них не является механизмом, позволяющим ВМ с одним IP адресом использовать пропускную способность всех физических интерфейсов одновременно.

Etherchannel и IP Hash Load Balancing

IP Hash Load Balancing требует настроенного Static Etherchannel на свитчах, и использует хэш IP адрес источника и адресата для выбора интерфейса по которому будет отправлен трафик. В KB 1004048 описаны все поддерживаемые конфигурации и примеры настройки сетевого оборудования.

Конфигурации когда виртуальная машина сможет использовать все сетевые интерфейсы возможны, но довольно редки - ВМ должна отсылать большое количество трафика на разные адреса. Каждый поток будет привязан к одному интерфейсу, а выбор интерфейса не зависит от
его загруженности.

Сам процесс настройки довольно нетривиален и может привести к тому, что менеджмент интерфейсы станут недоступны. При балансировке нагрузки можно легко столкнуться с тем, что некоторые интерфейсы будут сильно нагружены, а некоторые практически простаивать, при этом на ЦПУ будет дополнительная нагрузка за счёт необходимости подсчёт хешей.
Наконец, Etherchannel имеет серьёзные ограничения:
  • Все используемые свитчи должны поддерживать Static Etherchannel, и он должен быть настроен для всех используемых серверов.
  • Для обеспечения избыточности свитчей они должны поддерживать стэкирование или протокол аналогичный Virtual Port Channel.
  •  Нельзя использовать beacon probing.
  • Нельзя настроить неиспользуемые или standby интерфейсы.
  • Поддерживается только один Etherchannel на vNetwork Distributed Switch (vDS). 
  •  Поддерживается от одного до восьми сетевых интерфейсов.
  • Для обеспечения максимальной эффективности необходимо использовать множество источников и получателей.
Наилучшая сфера применения для данного механизма - сервер для загрузки файлов или высоконагруженный веб сервер, когда нет возможности использовать внешние балансировщики нагрузки или невозможно развернуть большое количество ВМ для отдачи трафика.

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

Load Based Teaming

Load Based Teaming, или же Route based on Physical NIC Load, проверяет нагрузку сетевого интерфейса каждые 30 секунд, и если она превышает 75%, то порт виртуальной машины будет перемещён на другой интерфейс.

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

Данный механизм тиминга обладает следующими преимуществами:

  • Простота настройки и использования.
  • Лёгкость в локализации и решении проблем.
  • Динамическая утилизация ресурсов.
  • Поддержка исходящего и входящего трафика.
  • Небольшой overhead.
  • Уменьшает вероятность включения механизмов Network IO Control (NIOC).
  • Нету ограничений свойственных Etherchannel и IP Hash Load Balancing.
Единственный же реальный недостаток - это то, что ВМ будет ограничена пропускной способностью одного интерфейса, что можно обойти добавив несколько сетевых интерфейсов в ВМ.

Так что же на счёт LACP?

Для использования LACP вам нужен развёрнутый Cisco Nexus 1000V, и физические свитчи поддерживающие Virtual Port Channels. Данный dVS поддерживает 19 алгоритмов хэширования.
Вместе с тем, LACP страдает от тех же недостатков что и EtherChannel, как-то необходимость дополнительной настройки оборудования.

Оригинал: http://longwhiteclouds.com/

    5 комментариев:

    1. LACP работает и без Nexus'а. Достаточно использовать VMware Distributed Switch и соответствующие настройки портов физических коммуаторов.

      Тезис о недостатке LACP по причине кофигурирования портов надуман, так как (1) порты всё равно настраивать и (2) пять лишних строчек в конфиге не повышают сложность плюс (3) port-channel используется просто везде и всюду

      ОтветитьУдалить
      Ответы
      1. Хотелось бы поподробней про настройку физических коммутаторов для LACP

        Удалить
    2. LACP работает на стандартном свитче (vSS).

      ОтветитьУдалить
    3. ESXi 5.0.0 702188 - где находится Load Based Teaming?

      ОтветитьУдалить
      Ответы
      1. Load Based Teaming- это настройка балансировки в VMware Distributed Switch

        Удалить