Linux Bond (Агрегация сетевых соединений)
Связывание (также называемое объединением сетевых карт или агрегацией каналов) - это метод привязки нескольких сетевых карт к одному виртуальному сетевому устройству. Этим можно достичь различных целей, например сделать сеть отказоустойчивой, повысить производительность или и то, и другое вместе.
Высокоскоростное оборудование, такое как Fibre Channel и связанное с ним коммутационное оборудование, может быть довольно дорогим. При выполнении агрегации каналов две сетевые карты могут отображаться как один логический интерфейс,что приводит к двойной скорости. Это встроенная функция ядра Linux, которая поддерживается большинством коммутаторов. Если ваши узлы имеют несколько портов Ethernet, вы можете распределить свои точки отказа, запустив сетевые кабели на разные коммутаторы, и связанное соединение будет переключаться на один кабель или другой в случае неполадок в сети.
Агрегированные связи могут улучшить задержки динамической миграции и повысить скорость репликации данных между узлами кластера Proxmox VE.
Есть 7 режимов для связывания:
- Round-robin (balance-rr): Передача сетевых пакетов в последовательном порядке от первого доступного связанного сетевого интерфейса (NIC) до последнего. Этот режим обеспечивает балансировку нагрузки и отказоустойчивость.
- Active-backup (active-backup): Только один из связанных в bond сетевых интерфейсов активен. Другой связанный интерфейс становится активным, если и только если активный интерфейс выходит из строя. MAC-адрес одного логического связанного интерфейса виден извне только на одном сетевом адаптере (порту), чтобы избежать искажений в сетевом коммутаторе. Этот режим обеспечивает отказоустойчивость.
- XOR (balance-xor): Передача сетевых пакетов на основе [(source MAC address XOR’d with destination MAC address) modulo NIC slave count]. Это выбирает тот же ведомый сетевой адаптер для каждого MAC-адреса назначения. Этот режим обеспечивает балансировку нагрузки и отказоустойчивость.
- Broadcast (broadcast): Передает сетевые пакеты по всем связанным сетевым интерфейсам. Этот режим обеспечивает отказоустойчивость.
- IEEE 802.3ad Dynamic link aggregation (802.3ad)(LACP): Создает группы агрегации с одинаковыми настройками скорости и дуплекса. Использует все связанные сетевые интерфейсы в активной группе агрегаторов в соответствии со спецификацией 802.3 ad.
- Adaptive transmit load balancing (balance-tlb): Linux bonding driver mode, который не требует специальной поддержки сетевых коммутаторов. Исходящий сетевой пакетный трафик распределяется в соответствии с текущей нагрузкой (вычисленной относительно скорости) на каждом ведомом устройстве сетевого интерфейса. Входящий трафик получен одним в настоящее время назначенным ведомым сетевым интерфейсом. Если этот принимающий интерфейс отказывает, другой связанный интерфейс берет на себя MAC-адрес отказавшего принимающего интерфейса.
- Adaptive load balancing (balance-alb): Включает balance-tlb plus receive load balancing (rlb) для трафика IPV4 и не требует специальной поддержки сетевых коммутаторов. Балансировка нагрузки на прием достигается путем согласования ARP. Драйвер связи перехватывает ответы ARP, отправленные локальной системой на их выходе, и перезаписывает исходный аппаратный адрес с уникальным аппаратным адресом одного из подчиненных сетевых карт в едином логическом связанном интерфейсе так, чтобы различные сетевые узлы использовали различные MAC-адреса для своего сетевого пакетного трафика.
Если коммутатор поддерживает протокол LACP (IEEE 802.3 ad), рекомендуется использовать соответствующий режим соединения (802.3 ad). В противном случае обычно следует использовать режим активного резервного копирования. Если вы собираетесь запустить сеть кластера на связанных интерфейсах, то вы должны использовать активный-пассивный режим на связанных интерфейсах, другие режимы не поддерживаются. Следующая конфигурация связи может использоваться в качестве распределенной/общей сети хранения. Преимущество будет заключаться в том, что вы получите больше скорости, и сеть будет отказоустойчивой.