Июл 112011
 

Задумал я это дело ( агрегацию ) из-за того, что повысилась нагрузка на sql, samba сервера.
Все проделанное будет происходить на системе FreeBSD 7.4
Мой выбор пал на порт lagg.
Типы агрегаций
Failolver — работает один канал, если он упал, тогда второй, failover (по умолчанию) – посылает и получает сообщения, только через мастер порт. Если мастер порт становится недоступным, используется следующий активный порт. Интерфейс. который добавлен первым называется master, любой интерфейс, добавленный после него используются как резервный для обеспечения отказоустойчивости.
FEC – совместим с Cisco EtherChannel. Это статический транк.
LACP – IEEE 802.3ad Link Aggregation Control Protocol (LACP). Виртуальный интерфейс поднимается автоматически при обнаружении на другой стороне линка аналогично сконфигурированного интерфейса. Каждый LAGG-интерфейс состоит из портов с одинаковой скоростью, и полным дуплексом. В случае изменения в физической связи, Link Aggregation быстро перестраивается к новой конфигурации.
loadbalance — исходящего трафика распределяется через активный порты, на основании хэшированной информации в заголовке протокола, а входящий трафик принимается от любого активного порта. Хэш включает Ethernet-адреса источника и назначения, и, если возможно, VLAN Tag, и .IP адреса источника и назначения.
roundrobin – исходящий трафик распределяется round-robin планировщиком через все активные порты, а входящий трафик принимается с любого активного порта.
none — выключение виртуального интерфейса – блокирует весь трафик.
Приступим.
Для начало пересоберем ядро с поддеркой lagg

cat /usr/src/sys/i386/conf/FARMMED | grep lagg
device lagg

Добавим модуль в автозагрузку.

echo "if_lagg_load="YES"" >> /boot/loader.conf

В данный момент мне нельзя перегружать сервер.
Подгрузим модуль вручную.

 # kldload if_lagg 

Создадим и настроим интерфейс lagg0

# ifconfig lagg0 create
# ifconfig lagg0 up laggproto lacp laggport alc0 laggport re0 10.15.7.128 netmask 10.15.7.255

Трафик будет сбалансированным через порты в LAG с наибольшим общей скоростью, в большинстве случаев будет существовать только один LAG, который будет содержать все порты.
Так, теперь для того, что бы при перезагрузки lagg0 автоматом подымался добавим такую запись в /etc/rc.conf

cloned_interfaces="lagg0"
ifconfig_alc0="up"
ifconfig_alc1="up"
ifconfig_lagg0="laggproto lacp laggport alc0 laggport alc1 10.15.7.128 netmask 10.15.7.255"
ifconfig_lagg0="up"
# ifconfig lagg0
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=19b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4>
        ether 0f:12:11:fd:39:5c
        inet 10.15.7.128 netmask 0xffffff00 broadcast 10.15.7.255
        media: Ethernet autoselect
        status: active
        laggproto lacp
        laggport: alc1 flags=S12<ACTIVE,COLLECTING,DISTRIBUTING>
        laggport: alc0 flags=S12<ACTIVE,COLLECTING,DISTRIBUTING>

Ради интереса решил попробовать Failover

# ifconfig lagg0 up laggproto failover laggport alc0 laggport alc1

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

# ifconfig lagg0
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=19b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4>
        ether 0f:12:11:fd:39:5c
        inet 10.15.7.128 netmask 0xffffff00 broadcast 10.15.7.255
        media: Ethernet autoselect
        status: active
        laggproto lacp
        laggport: alc1 flags=S12< &qt;
        laggport: alc0 flags=S12<MASTER,ACTIVE >

 Leave a Reply

(required)

(required)

39 Запросов к базе. 0,406 Генерации страницы, 37MB Использование памяти.
Вы зашли с IP: 54.225.16.10