Если я использую адаптер с поддержкой SRIOV для виртуализации и устанавливаю 2 разных канала LACP в двух гостевых системах, поэтому на одних и тех же портах на стороне коммутатора может быть 2 канала LACP, сможет ли коммутатор справиться с этим случаем?
Например:
порт коммутатора 0 <=> порт адаптера 0
PF (хост): eth0
VF1 (Guest1-eth0): команда 1 LACP
VF2 (Guest2-eth0): команда 2 LACP
===================
порт коммутатора 1 <=> порт адаптера 1
PF (хост): eth1
VF1 (Guest1-eth1): команда 1 LACP
VF2 (Guest2-eth1): команда LACP 2
Заранее спасибо.
Это не сработает так, как вы ожидаете. Коммутатор не знает о PF и VF, он просто собирается связать два интерфейса Ethernet с использованием LACP или нет (все это, а не только трафик к тому или иному VF)
Как мне пришлось это сделать: включить LACP на PF и связать их. Затем вы ДОЛЖНЫ также связать VF, когда они передаются гостю. Как упоминал Джамиб, проверка подделки Mac будет проблемой, но есть способы обойти это. С помощью сетевых адаптеров Intel SR-IOV вы можете установить параметр, который разрешает VF устанавливать свои собственные MAC-адреса, и вы можете отключить проверку спуфинга с помощью «ip link». Если у вас есть что-то вроде Broadcom NetExtremeII nics (серия драйверов bnx2), вы не можете отключить спуфинг MAC или разрешить гостям устанавливать свой собственный MAC.
Если вы используете Broadcom, вам нужно будет выполнить небольшую предварительную настройку, прежде чем гости смогут использовать их должным образом. После загрузки включите VF, установите их MAC-адреса (они изначально представляют MAC как все нули, которые нельзя использовать), затем вы должны отключить и снова включить VF для этих MAC-адресов, чтобы их можно было использовать с MAC-адреса, которые вы установили. Я назначаю их попарно с одним и тем же Mac, например, port0-vf0 устанавливает mac равным 22: 27: 1a: 2a: d5: 3a port1-vf0 устанавливает mac одинаково, передаю оба VF гостю (я использую KVM) и в qemu xml назначьте MAC-адреса такие же, как вы установили вручную на VF. Затем в гостевом режиме скрепите их, используя режим 2, и тогда склейка будет работать правильно.
С Intel вы просто говорите PF, что хотите отключить отслеживание MAC-адресов и разрешите VF установить свой собственный MAC-адрес, а затем вы можете разрешить kvm управлять MAC-адресами, и вам не нужно делать ничего особенного с связыванием, он будет работать как обычные адаптеры.
Важно то, что вы запускаете LACP ТОЛЬКО на PF. Как только это будет сделано, пары VF из PF в основном уже связаны на стороне коммутатора и ДОЛЖНЫ быть связаны на гостевом конце для ВСЕХ vfs из этих PF. LACP - это протокол канального уровня, а не протокол по MAC-адресу. Он не связывает пути к определенным MAC-адресам с помощью LACP, он связывает вместе физические порты, и эти физические порты несут трафик для PF и всех VF.
Вам необходимо отключить проверку спуфинга на коммутаторах SR-IOV. Когда вы связываете интерфейсы в гостевых системах, связь меняет MAC интерфейса. Коммутатор SR-IOV обычно отбрасывает любые кадры, которые не принадлежат его собственным PF или VF. Это называется проверкой на спуф.
В остальном это должно работать нормально.