Настройка сети в Proxmox
В первую очередь, на сервере виртуализации необходимо настроить сетевые подключения, которые в дальнейшем будут использоваться для доступа виртуальных машин в Интернет, обмена данными друг с другом, при необходимости распределить сети по VLAN. Для этого можно использовать реализованные в ядре Linux функции или установить Open vSwitch. В панели управления Proxmox VE реализован простой и понятный интерфейс управления сетями.
Таким образом, сервер на Proxmox VE можно использовать в качестве ядра виртуальной сети. В этой статье разберемся как выполняется настройка сети Proxmox Ve. Разберем, как настроить виртуальный мост и интерфейс с балансировкой по различным алгоритмам. Proxmox VE позволяет настроить VLAN на базе ядра Linux или Open vSwitch, но это отдельная большая тема, вне рамок обзора возможностей.
Виды сетевых соединений в Proxmox VE
- Linux Bridge — способ соединения двух сегментов Ethernet на канальном уровне, то есть без использования протоколов более высокого уровня, таких как IP. Поскольку передача выполняется на канальном уровне (уровень 2 модели OSI), все протоколы более высокого уровня прозрачно проходят через мост.
- Linux Bond — метод агрегации нескольких сетевых интерфейсов в единый логический bonded интерфейс. Таким образом, bond обеспечивает балансировку нагрузки либо горячий резерв по определённому сценарию.
- Linux VLAN – реализация на ядре Linux виртуальной локальной компьютерной сети.
- OVS Bridge – реализация моста на базе Open vSwitch.
- OVS Bond – реализация балансировки на базе Open vSwitch. Отличается от реализованной в ядре Linux балансировки режимами.
- OVS IntPort — реализация VLAN на базе Open vSwitch.
Установка OVS в Proxmox VE
После установки Proxmox VE доступны сетевые функции ядра Linux. Для того, чтобы использовать функциональность Open vSwitch, необходимо установить его в систему. В программе терминал напишите команды:
sudo apt install openvswitch-switch
После этого нужно перезагрузить компьютер.
Настройка сети в Proxmox VE
После установки всех необходимых пакетов и перезагрузки ОС в WTB-интерфейсе Proxmox VE перейдите в раздел Датацентр, выберите имя гипервизора (на скриншоте PVE). В меню Система найдите раздел Сеть и нажмите кнопку Создать:
1. Настройка bridge
Создание интерфейса bridge для Open vSwitch и для ядра Linux практически ничем не отличаются, за исключением выбора способа создания и возможности указания для OVS Bridge дополнительных ключей Open vSwitch. Если планируется использовать VLAN для сетевого интерфейса, не забудьте указать чек-бокс возле пункта VLAN при создании bridge. Включение чек-бокса Автозапуск позволяет запускать выбранный сетевой интерфейс при загрузке гипервизора:
В общем случае, если сетевой интерфейс bridge создаётся единственный для гипервизора, то нет необходимости перечислять в пункте Порты сетевого моста все имеющиеся сетевые карты. Однако, если существует необходимость на уровне интерфейса разделить подключения к различным каналам связи или сегментам сети, то можно использовать различные комбинации сетевых устройств. На представленном хосте гипервизора их четыре, поэтому можно ввести два из них (перечислением через пробел) в bridge OVS:
Адрес интерфейса можно не указывать, настроенные на подключение к интерфейсу виртуальные машины будут использовать его как обычный свитч. Если же указать адрес IPv4 и/или IPv6, то он будет доступен извне на всех сетевых интерфейсах или на интерфейсах, перечисленных в поле Порты сетевого моста:
2. Настройка bond
Для балансировки нагрузки и объединения нескольких сетевых интерфейсов в один виртуальный, создайте OVS Bond. Это связано с тем, что его возможности шире, чем Linux Bond, а процесс создания практически идентичен. Для создания балансировщика нагрузки нажмите в меню Сеть кнопку Создать и выберите пункт OVS Bond:
В отличие от создания OVS bridge, в параметрах vmbr1 OVS Bond указано в портах сетевого моста bond0 и в пункте OVS Options для тегирования VLAN можно использовать ключ tag=$VLAN, где $VLAN надо заменить на целое числовое значение, в примере это 50:
Режимы балансировки можно установить только при создании интерфейса bond, перечислим их основные характеристики.
Для OVS Bridge:
- Режим Active-Backup использует один из перечисленных сетевых интерфейсов для работы, а остальные находятся в резерве в статусе down, на случай выхода из строя основного интерфейса
- Режимы Balance-slb, LACP (balance-slb), LACP (balance-tcp) подходят для случая, когда вам необходимо расширить полосу пропускания и отказоустойчивость канала, объединив в единый бонд несколько сетевых интерфейсов.
Для Linux Bond:
- Режим balance-rr ядра Linux скорее переназначен для исходящего траффика, чем для входящего. Пакеты отправляются последовательно, начиная с первого доступного интерфейса и заканчивая последним. Применяется для балансировки нагрузки и отказоустойчивости.
- Режим active-backup ничем не отличается от аналогичного режима в OVS. Передача распределяется между сетевыми картами используя формулу: [( «MAC адрес источника» XOR «MAC адрес назначения») по модулю «число интерфейсов»]. Получается одна и та же сетевая карта передаёт пакеты одним и тем же получателям. Режим XOR применяется для балансировки нагрузки и отказоустойчивости.
- Режим агрегирования каналов по стандарту IEEE 802.3ad. Создаются агрегированные группы сетевых карт с одинаковой скоростью и дуплексом. При таком объединении передача задействует все каналы в активной агрегации, согласно стандарту IEEE 802.3ad. Необходимо оборудование гипервизора и активной сетевой части с поддержкой стандарта.
- Режим адаптивной балансировки нагрузки передачи balance-tlb. Исходящий трафик распределяется в зависимости от загруженности каждой сетевой карты (определяется скоростью загрузки). Не требует дополнительной настройки на коммутаторе. Входящий трафик приходит на текущую сетевую карту. Если она выходит из строя, то другая сетевая карта берёт себе MAC адрес вышедшей из строя карты.
- Режим адаптивной балансировки нагрузки Balance-alb. Включает в себя политику balance-tlb, а также осуществляет балансировку входящего трафика. Не требует дополнительной настройки на коммутаторе.
3. Настройка VLAN
В меню Система найдите раздел Сеть и нажмите кнопку Создать и выберите OVS InPort:
Задайте имя интерфейса vlan50 тег VLAN, равный 50, укажите OVS Bridge. VLAN 50 на указанном виртуальном интерфейсе OVS Bridge vmbr1 с тегом 50 создан и может быть использован, например для организации видеонаблюдения. Таким образом, предлагаю настроить дополнительно VLAN30 для IP телефонии и VLAN100 для локальной сети с виртуализированными рабочими местами. Для создания всех VLAN используйте интерфейс vmbr1.
Выводы
В этой статье рассказано как выполняется настройка сети Proxmox VE. Теперь вы знаете про различные сетевые подключения с помощью интерфейса управления сервером. Гибкость решения позволяет использовать Proxmox VE в качестве управляемого и неуправляемого коммутатора, балансировать нагрузку по различным режимам балансировки.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Где выше производительности сети — Bridge vs OpenVSwitch?
Доброго времени суток.
Имеется несколько виртуальных серверов на физическом сервере. Работают под управлением KVM. На данный момент все виртуалки подключены к сети с помощью OpenvSwitch.
Вопрос вот в чем — к какой из ситуаций производительность сети будет выше: в ситуации, когда к виртуалке подведен обычный линуксовый мост от интерфейса или же когда используется openvswitch? Вопрос скорее риторический, поскольку уходить от ovs никто не собирается, и , если поразмыслить логически, вероятнее всего обычный мост будет быстрее, просто хотелось бы узнать разницу в производительности. Насколько она велика, и есть ли какая то возможность настройки ovs для повышения производительности?
По-сути если и получите ускорение, оно будет незначительно.. еще важно понять, какой трафик идет внутри сети. Главная же разница — ovs обсчитывает flow трафика, прежде чем начать его коммутацию (т.е. возникает дополнительная задержка в момент начала передачи потока данных), а bridge просто молотит по forward-таблице. В итоге, если трафик достаточно гладкий (например, интерконнекты между серверами), то разницы и не будет. Если же трафик с большим количество новых flow в секунду, то можно выиграть по ресурсам как минимум
Если размышлять логически, то бридж само собой будет быстрее.
Но вот точное различие в производительности нельзя сказать без конкретных параметров нагрузки и железа. От ничтожных, до ощутимых.