Bond active backup Linux

Я пытаюсь установить связь на моем сервере proxmox 4.4.

Я выбрал активную резервную копию, потому что связь будет связана с мостом Linux, который не будет использовать Протокол Spanningtree.

связь (bond1) будет иметь 2 подчиненных устройства: Bond0, который представляет собой LACP из 3 ссылок (eth0, eth1, eth2) на 1 коммутатор и eth3 на другой коммутатор. Я отсоединяю все кабели от (eth0 eth1 eth2)

Bond1 сохраняет bond0 как активный канал и как следствие: сервер недоступен из локальной сети.

Я думаю, это потому, что Bond0 остается в рабочем состоянии, даже когда его 3 подчиненных устройства работают down.

, потому что когда я делаю ifconfig bond0 down.

Bond1 использует другую ссылку (eth3) для подключения. и сервер снова в локальной сети.

именно так он и должен работать.

Итак, я попробовал несколько параметров в bond0, чтобы заставить его иметь состояние DOWN, когда eth0 eth1 и eth2 находятся в DOWN.

Я не мог узнать.

Я даже использовал параметры post-down, post-up, .... на eth0, eth1 и eth2 в / etc / network / interface, чтобы запустить скрипт, который выполняет ifdown bond0 когда эти порты в DOWN и ifup bond0, когда один из них снова работает.

Но это не работает, я попытался отключить bond0. bond1 по-прежнему использует bond0 как активную ссылку. Скрипт не запущен.

В этот момент я хотел вырвать себе волосы ....

Скрипт не запускается, потому что. они выполняются только тогда, когда я выполняю ifdown eth0 ifdown eth1 или ifdown eth2 ...

(post-down, post-up): теперь я знаю, что эти параметры запускают команду только тогда, когда мы запускаем ifdown или ifup, но не когда отключаем вилку. (серьезно, в чем смысл этой функциональности).

Я хочу выполнить действие, когда интерфейс не работает, и оно не работает, когда я отсоединяю кабель Ethernet .....

это не то, что я хочу в все.

Я перезапустился между изменениями.

Я сейчас в каком-то отчаянии, я потратил на это 9 часов.

поэтому прошу вашей помощи.

Я нашел пакет debian "ifplugd" "который будет выполнять действия, когда интерфейсы отключены. Спасибо.

update

Вот / etc / network / interface:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual
        post-down do_i_bring_bond0_down.sh
        post-up do_i_bring_bond0_up.sh

auto eth1
iface eth1 inet manual
        post-down do_i_bring_bond0_down.sh
        post-up do_i_bring_bond0_up.sh

auto eth2
iface eth2 inet manual
        post-down do_i_bring_bond0_down.sh
        post-up do_i_bring_bond0_up.sh

iface eth3 inet manual


auto bond0
iface bond0 inet manual
        slaves eth0 eth1 eth2
        bond_miimon 100
        bond_mode 802.3ad
        bond_xmit_hash_policy layer3+4
        bond_min_links 1

auto bond1
iface bond1 inet manual
        slaves bond0 eth3
        bond_miimon 100
        bond_mode active-backup
        bond_primary bond0
        bond_updelay 100
        bond_downdelay 100

auto vmbr0
iface vmbr0 inet static
        address  10.4.2.4
        netmask  255.255.255.192
        gateway  10.4.2.1
        bridge_ports bond1.20
        bridge_stp off
        bridge_fd 0

auto vmbr1
iface vmbr1 inet manual
        bridge_ports bond1
        bridge_stp off
        bridge_fd 0
        bridge_vlan_aware yes

/ proc / net / bonding / bond1

Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: bond0 (primary_reselect always)
Currently Active Slave: bond0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 100
Down Delay (ms): 100

Slave Interface: bond0
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: c8:1f:66:c2:dc:3b
Slave queue ID: 0

Slave Interface: eth3
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:15:17:3a:a9:bf
Slave queue ID: 0

/ proc / net / bonding / bond0

Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer3+4 (1)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

802.3ad info
LACP rate: slow
Min links: 0
Aggregator selection policy (ad_select): stable
System priority: 65535
System MAC address: c8:1f:66:c2:dc:3b
Active Aggregator Info:
        Aggregator ID: 2
        Number of ports: 3
        Actor Key: 9
        Partner Key: 67
        Partner Mac Address: 80:2a:a8:df:42:b1

Slave Interface: eth0
MII Status: down
Speed: Unknown
Duplex: Unknown
Link Failure Count: 1
Permanent HW addr: c8:1f:66:c2:dc:3b
Slave queue ID: 0
Aggregator ID: 2
Actor Churn State: none
Partner Churn State: none
Actor Churned Count: 1
Partner Churned Count: 1
details actor lacp pdu:
    system priority: 65535
    system mac address: c8:1f:66:c2:dc:3b
    port key: 0
    port priority: 255
    port number: 1
    port state: 61
details partner lacp pdu:
    system priority: 32768
    system mac address: 80:2a:a8:df:42:b1
    oper key: 67
    port priority: 128
    port number: 8
    port state: 61

Slave Interface: eth1
MII Status: down
Speed: Unknown
Duplex: Unknown
Link Failure Count: 1
Permanent HW addr: c8:1f:66:c2:dc:3c
Slave queue ID: 0
Aggregator ID: 2
Actor Churn State: none
Partner Churn State: none
Actor Churned Count: 0
Partner Churned Count: 0
details actor lacp pdu:
    system priority: 65535
    system mac address: c8:1f:66:c2:dc:3b
    port key: 0
    port priority: 255
    port number: 2
    port state: 61
details partner lacp pdu:
    system priority: 32768
    system mac address: 80:2a:a8:df:42:b1
    oper key: 67
    port priority: 128
    port number: 7
    port state: 61

Slave Interface: eth2
MII Status: down
Speed: Unknown
Duplex: Unknown
Link Failure Count: 1
Permanent HW addr: 00:15:17:3a:a9:be
Slave queue ID: 0
Aggregator ID: 2
Actor Churn State: none
Partner Churn State: none
Actor Churned Count: 1
Partner Churned Count: 1
details actor lacp pdu:
    system priority: 65535
    system mac address: c8:1f:66:c2:dc:3b
    port key: 0
    port priority: 255
    port number: 3
    port state: 61
details partner lacp pdu:
    system priority: 32768
    system mac address: 80:2a:a8:df:42:b1
    oper key: 67
    port priority: 128
    port number: 9
    port state: 61
0
задан 28 December 2016 в 10:33
2 ответа

Похоже, проблема в этом: "Мин связи": 0". Из документации по связи для параметра min_linkks

min_linkks

Это позволяет установить минимальное количество портов-членов, которое должно быть увеличено (состояние соединения) перед маркировкой связующего устройства как "вверх" (несущая на)

Значение по умолчанию равно 0. Это приведет к утверждению несущей (для 802.3ad режим) при наличии активного агрегатора, независимо от количества доступных ссылок в этом агрегаторе.

Однако, эта часть несколько запутанная:

Обратите внимание, что, поскольку агрегатор не может быть активным без наличия хотя бы одного доступная ссылка, установка этого параметра в 0 или в 1 имеет точно такое же значение Эффект.

В вашем примере bond0 все три эти интерфейса имеют статус MII (link-state) нисходящего, но отягчающее обстоятельство, в котором они находятся (2), является активным, что, кажется, противоречит документации. Посмотрим на источник.

Код для функции bond_3ad_set_carrier() вызывает __agg_active_ports(), которая просто проверяет значение флага "is_enabled" каждого дэва и, кажется, не имеет никакого отношения к статусу связи.

Этот патч, похоже, указывает на то, что это так:

Пока патч использует количество активных ведомых устройств, чтобы сравнить с min_ссылки, чтобы узнать, когда включить/выключить носитель облигаций. Предлагаемая настройка min_linkks равен 1, а не нулю по умолчанию. Использование min_ссылок=1 говорит, что, по крайней мере, 1 раб должен быть активен в пределах связи, чтобы связь была На основе того, что я могу сказать, что патч не был интегрирован в основную линию или, может быть, он был в модифицированной форме, которую я не смог разглядеть.

Попробуйте установить min_linkks на 1 или 2 и посмотрите, что произойдет. Если это не сработает, можно переключиться с miimon на arp мониторинг (установка arp_interval apr_ip_target и т.д.)

P.S. Если вы закончите использовать LACP, я изменю значение lacp_rate со стандартного (медленные LACPDU каждые 30 секунд - т.е. время на обнаружение сбоя 30 секунд) на быстрое или на 1 (Запрос партнера на передачу LACPDU каждые 1 секунду).

Редактирование: Заглядывая в код больше, я задаюсь вопросом. Функция bond_3ad_handle_link_change() должна отключать dev при изменении статуса ссылки. Может быть, вы не ждали 30+ секунд, пока заработает машина состояния LACP? Тем не менее, я оставлю ответ, так как потратил на него столько времени. :)

.
-1
ответ дан 5 December 2019 в 18:45

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

Смотрите мой другой ответ на вопрос о том, как добиться "обхода отказа между облигациями" только с помощью LACP, что является правильной конфигурацией: https://unix.stackexchange.com/questions/82569/bonds-vs-aggregators/172232#172232

0
ответ дан 5 December 2019 в 18:45

Теги

Похожие вопросы