Я пытаюсь проверить пропускную способность между двумя контейнерами докеров, используя Iperf3 (любое приложение для проверки пропускной способности), подключенное к OVS (openvswitch) и DPDK на ubuntu 18.04 (рабочая станция VMWare). Цель этого - сравнить производительность OVS-DPDK и ядра Linux в некоторых сценариях.
Я не могу найти подходящего решения, в котором объясняется, как подключить OVS + DPDK к контейнерам докеров, чтобы контейнеры могли передавать друг другу трафик TCP / UDP.
Буду признателен за вашу помощь в объяснении, как соединить два контейнера докеров с помощью OVS + DPDK. Конфигурация, которая должна быть выполнена в контейнерах докеров, и те, которые должны быть выполнены в ОС хоста.
Кстати, у меня нет движения извне.
Спасибо
Изменить
- Версия DPDK - 20.11.0
- Версия OVS - 2.15.90
- Iperf3
Вот шаги, которые я предпринимаю:
Я устанавливаю dpdk с помощью apt:
sudo apt install openvswitch-switch-dpdk
установите альтернативу как:
sudo update-alternatives --set OvS-vswitchd /usr/lib/openvswitch-switch -dpdk/OvS-vswitchd-dpdk
Выделите огромные страницы и обновите личинку.
монтировать огромные страницы
привязать сетевой адаптер к DPDK:
sudo dpdk-devbind --bind=vfio-pci ens33
. Хотя мне этот шаг не нужен, потому что у меня нет трафика извне, если я не привяжу свой сетевой адаптер,sudo service openvswitch-switch restart
выйдет из строя.Создаю мост:
ovs-vsctl add-br br0 -- set bridge br0 datapath_type=netdev
Я создаю два порта для своих контейнеров:
ovs-vsctl add-port br0 client -- set Interface client type=dpdk options:dpdk-devargs=<binded_nic_pci_addr>
иovs-vsctl add-port br0 server -- set Interface server type=dpdk options:dpdk-devargs=<binded_nic_pci_addr>
. (номер порта сервера: 1, номер порта клиента: 2)Открытый двунаправленный поток между портами:
sudo ovs-ofctl del-flows br0
sudo ovs-ofctl add-flow br0 in_port=1,action=output:2
ovs-ofctl add-flow br0 in_port=2,action=output:1
После шага 8 я не знаю, как подключить мои докер-контейнеры iperf3 для использования этих портов. Я ценю вашу помощь в том, что вы дали мне знать, как подключать контейнеры к портам и тестировать сеть.
Изменить 2
Основываясь на ответе Vipin, эти шаги не будут работать с учетом моих требований.
if the intention is to use OVS without DPDK, why are using OVS-DPDK? but if the intention is to use OVS-DPDK you should be using DPDK-iperf
. Отсюда и реальный вопрос для достижения максимальной производительностиI would like to use DPDK-OVS as virtual switch between 2 VM, but I am having difficulty in allowing traffic to Kernel
. - person Vipin Varghese   schedule 26.04.2021OVS-DPDK
. Возьмем там разговор. Спасибо. chat.stackoverflow.com/rooms/231963/ovs-dpdk - person Mohammad Siavashi   schedule 05.05.2021Based on Vipin's answer these steps won't work considering my requirements.
является недоразумением. Разъяснения понятны, как запустить iperf3 (сокеты ядра) с DPDK-OVS. Пожалуйста, примите и проголосуйте за закрытие текущего тикета - person Vipin Varghese   schedule 05.05.2021