Назад | Перейти на главную страницу

Интерфейсы на основе VLAN для виртуальных машин

Я нахожусь в процессе разработки эксперимента, в котором у нас есть несколько VLAN, поступающих на одну сетевую карту, причем каждая VLAN связана с одной виртуальной машиной.

Самый простой способ сделать это - настроить тегированные интерфейсы с помощью vconfig и связать эти интерфейсы с каждой из виртуальных машин. Меня несколько беспокоит влияние этого на производительность (использование ЦП и задержка), потому что я не уверен, как пакеты перенаправляются на определенные виртуальные интерфейсы на виртуальных хостах. Есть ли способ сделать то же самое с помощью IOMMU, предполагая, что это обеспечит прямой доступ для приложений в виртуальных машинах?

В этом случае нельзя использовать IOMMU. IOMMU обеспечивает прямой доступ к полной физической карте PCI-e для виртуальной машины.

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

Итак, единственное решение для достижения вашей цели - это то, что @dyasny написал выше, то есть создать интерфейсы с тегами VLAN (eth0.X) на хосте, а затем связать каждый интерфейс с виртуальной машиной.

Простым решением было бы создать интерфейсы с тегами, построить мост на каждом и подключить виртуальные машины к ним. С IOMMU у вас, вероятно, будет лучше с точки зрения задержки, но теги на IOMMU проще выполнять внутри виртуальной машины.

Просто убедитесь, что порт коммутатора настроен на транк.

Что касается нагрузки на хост, я видел хосты с сотнями помеченных интерфейсов без видимого налогообложения ресурсов хоста.

Я не могу говорить о KVM, но с vSphere это не похоже на проблему с точки зрения ЦП - я использую несколько VLAN (помеченных на коммутаторе) на нашем производственном сервере, и я не могу говорить о каких-либо заметных изменениях по сравнению с немаркированная настройка одного VLAN раньше.