Настройка И Использование Ограничения Скорости Для Open Vswitch С Dpdk

В этой статье описано, как настроить ограничение скорости входящего трафика для интерфейса.

Комплект разработки плоскости данных (DPDK) В Открыть vSwitch (OVS) с ДПДК.

Эта статья предназначена для сетевых администраторов, которые могут использовать ограничение скорости Open vSwitch, чтобы гарантировать гарантированную скорость приема для портов DPDK на развернутых серверах Open vSwitch. Эта статья дополняет статью Настройка и использование QoS для Open vSwitch* с DPDK , поскольку ограничение скорости и качество обслуживания действуют соответственно на путях приема и передачи, используя уникальные команды API для настройки и работы.



Настройка и использование ограничения скорости для Open vSwitch с DPDK

Примечание.

На момент написания этой статьи ограничение скорости OVS с помощью DPDK доступно только в главный филиал ОВС .

Вы можете скачать ZIP-архив основной ветки OVS. Здесь .

Описаны шаги по установке OVS с DPDK. Здесь .



Ограничение скорости в ОВС с ДПДК

Прежде чем настраивать ограничение скорости, следует поговорить о различиях в качестве обслуживания и о том, как оно взаимодействует с трафиком в vSwitch. Качество обслуживания применяется к исходящему трафику, то есть данным, отправленным с порта OVS. С другой стороны, ограничение скорости применяется только к входящему трафику, то есть к данным, полученным портом vSwitch. Ограничение скорости реализовано в OVS с DPDK с помощью ограничителя входящего трафика (аналогично ограничителю исходящего трафика качества обслуживания, поддерживаемому в OVS с DPDK).

Ограничитель входящего трафика начинает просто отбрасывать пакеты после превышения определенной скорости приема на интерфейсе (алгоритм буфера токена).

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

Для виртуального интерфейса, то есть порта DPDK vhost-user, ограничитель будет отбрасывать трафик, отправленный с гостевой машины на vSwitch. По сути, скорость передачи данных с гостевой машины на этот порт ограничена.

Это показано на рис.

1.

Настройка и использование ограничения скорости для Open vSwitch с DPDK

Рис.

1. Ограничение скорости за счет ограничения входящего трафика на порт vhost-user

Тестовая среда



Настройка и использование ограничения скорости для Open vSwitch с DPDK

Рис.

2. Тестовая среда Примечание.

И главный компьютер, и виртуальные машины (ВМ), используемые в этой среде, работают под управлением 64-разрядной версии.

Сервер Fedora* 23 с ядром Linux* 4.4.6. Каждая виртуальная машина имеет виртуальный сетевой адаптер, подключенный к мосту vSwitch через интерфейс DPDK vhost-user. Виртуальный сетевой адаптер отображается как устройство ядра Linux (например, ens0) в операционной системе виртуальной машины.

Убедитесь, что между виртуальными машинами есть соединение (например, выполните проверку связи VM2 с VM1).



Установка и проверка ограничения скорости

Для проверки настроек установите iPerf* на обеих виртуальных машинах.

Убедитесь, что версия rpm соответствует версии гостевой ОС.

В этом случае вам следует использовать 6564-битную версию Fedora. Если вы используете менеджер пакетов в Fedora 23, например dnf в Fedora 23, вы можете автоматически установить iPerf с помощью следующей команды:

  
  
  
  
  
   

dnf install iperf

Чтобы проверить настройку, убедитесь, что iPerf установлен на обеих виртуальных машинах.

iPerf можно запускать в режиме клиента и режиме сервера.

В этом примере мы запустим клиент iPerf на виртуальной машине 1 и сервер iPerf на виртуальной машине 2.

Тест без ограничителя входящего трафика

На виртуальной машине 2 выполните следующую команду, чтобы развернуть сервер iPerf в режиме UDP на порту 8080:

iperf –s –u –p 8080

На виртуальной машине 1 выполните следующую команду, чтобы развернуть клиент iPerf в режиме UDP на порту 8080 с пропускной способностью 100 Мбит/с:

iperf -c 7.7.7.2 -u -p 8080 -b 100m

В этом случае ВМ1 попытается передать данные на ВМ2 по UDP на скорости 100 Мбит/с.

Через 10 секунд появится набор значений.

Выполните эти команды перед установкой ограничения скорости.

Вы увидите результаты, аналогичные показанным на рис.

3. В отчете сервера нас интересует столбец «Пропускная способность».



Настройка и использование ограничения скорости для Open vSwitch с DPDK

Рис.

3. Вывод данных без ограничения входящего трафика Данные, приведенные на рис.

3, свидетельствуют о том, что пропускная способность соединения между виртуальными машинами составляет 100 Мбит/с.



Тест с настроенным ограничителем входящего трафика

Теперь настроим ограничение скорости с помощью ограничителя входящего трафика vhost-user1 до 10 Мбит/с с помощью следующей команды:

ovs-vsctl set interface vhost-user1 ingress_policing_rate=10000 ingress_policing_burst=1000

Опции описаны ниже.

  • ingress_policing_rate : максимальная скорость (Кбит/с), разрешенная для этой виртуальной машины.

    Это значение необходимо для создания ограничителя входящего трафика.

    Если значение не указано, существующая настройка ограничения скорости останется неизменной.

  • ingress_policing_burst : Размер буфера токена в килобайтах.

    Минимальное значение этого параметра должно быть равно максимальному ожидаемому размеру пакета.

    Если значение не указано, используется значение по умолчанию — 8000 КБ.

Если вы снова запустите тест пропускной способности iPerf UDP, результаты будут аналогичны показанным на рис.

4.

Настройка и использование ограничения скорости для Open vSwitch с DPDK

Рис.

4. Выходные данные при ограниченном входящем трафике Обратите внимание, что после настройки ограничителя трафика доступная пропускная способность теперь составляет 9,59 Мбит/с, а не 100 Мбит/с.

Программа iPerf отправляла трафик по UDP от клиентской ВМ1 к серверной ВМ2 на скорости 100 Мбит/с, но скорость трафика была снижена, так как на входящем пути портов vhost-user1 vSwitch стоит ограничитель входящего трафика.

За счет этого скорость трафика, передаваемого от клиента iPerf VM1, снизилась примерно до 10 Мбит/с.

Обратите внимание: если используется TCP-трафик, то значение параметра ingress_policing_burst должна составлять значительную долю значения параметра ingress_policing_rate ; рекомендуется, чтобы оно превышало 10%.

Это связано с ухудшением производительности TCP при отбрасывании пакетов и проблемами с повторной передачей пакетов.

Существующую настройку ограничения скорости для vhost-user1 можно получить с помощью следующей команды:

ovs-vsctl list interface vhost-user1

Чтобы переопределить ограничения скорости трафика vhost-user1, установите параметр ingress_policing_rate значение 0, как показано ниже (отрегулируйте значение параметра ingress_policing_burst незачем):

ovs-vsctl set interface vhost-user1 ingress_policing_rate=0



Заключение

В этой статье мы показали простой пример, в котором трафик передается между двумя виртуальными машинами через Open vSwitch* с помощью DPDK с настроенным ограничителем входящего трафика.

Мы продемонстрировали команды для настройки ограничения скорости для данного порта DPDK, для получения информации о текущих настройках ограничения скорости и для отмены ограничения скорости.



Дополнительная информация

Дополнительную информацию об использовании ограничения скорости, настройках и многом другом см.

в разделах об ограничении скорости в разделе vswitch.xml И ovs-vswitchd.conf.db .

Есть вопрос? Запросы относительно Open vSwitch можно отправлять по адресу опубликовать обсуждение .

Дополнительные сведения об Open vSwitch* с помощью DPDK см.

в следующих видеороликах и статьях в зоне разработчиков Intel и Университете Intel Network Builders.

Переведенные статьи на Хабрахабре Теги: #Сетевые технологии #DPDK #Open vSwitch
Вместе с данным постом часто просматривают: