ovs что это такое в торговле

OvS, DPDK и Intel HT: 12-кратное ускорение виртуального коммутатора

ovs что это такое в торговле. Смотреть фото ovs что это такое в торговле. Смотреть картинку ovs что это такое в торговле. Картинка про ovs что это такое в торговле. Фото ovs что это такое в торговле

Высокоуровневая архитектура OvS-DPDK

Обычный Open vSwitch занимается передачей сетевых пакетов через пространство ядра Linux (это показано на рисунке ниже). В канале передачи данных ядра, «быстрый путь» («fastpath») обработки данных реализуется благодаря простой таблице потоков, содержащей правила пересылки и обработки принятых пакетов. Если первый пакет в потоке не соответствует ни одной из существующих записей в таблице ядра, его отправляют для обработки демону, который работает в пространстве пользователя. Это – так называемый «медленный путь» («slow path»). После того, как в пространстве пользователя этот пакет будет обработан, демон обновляет таблицу потоков в пространстве ядра, в результате следующие пакеты в потоке могут пройти по «быстрому пути», их не нужно передавать в пространство пользователя. Следуя этому подходу, обычный Open vSwitch позволяет избавиться от ресурсоёмкой операции переключения контекста между пространствами ядра и пользователя для большого процента полученных пакетов. Однако, достижимая пропускная способность ограничена полосой пропускания сетевого стека Linux, который не подходит для вариантов использования, в которых необходима высокая скорость обработки пакетов. Например – в телекоммуникационных компаниях.

DPDK – это набор библиотек, работающих в пространстве пользователя Linux, которые позволяют создавать высокопроизводительные приложения для обработки сетевых пакетов. Фактически, он предлагает набор драйверов опрашиваемого режима (Poll Mode Driver, PMD) для различных физических и виртуальных устройств, которые позволяют осуществлять прямую передачу пакетов между пространством пользователя и сетевым интерфейсом, минуя сетевой стек ядра. Это даёт значительный рост производительности по сравнению с передачей данных через ядро. Подобное происходит благодаря избавлению от необходимости обработки прерываний и от необходимости пользоваться сетевым стеком ядра. При интеграции OvS с DPDK, «быстрый путь» коммутации проходит через пространство пользователя, а «путь первого пакета» — это тот же путь в пространстве пользователя, по которому проходят пакеты в обычном OvS, когда «быстрый путь» пролегает через ядро.

Вот общая схема интеграции DPDK с OvS:

ovs что это такое в торговле. Смотреть фото ovs что это такое в торговле. Смотреть картинку ovs что это такое в торговле. Картинка про ovs что это такое в торговле. Фото ovs что это такое в торговле
Интеграция плоскости передачи данных DPDK с обычным Open vSwitch

На рисунке ниже показана высокоуровневая архитектура OvS-DPDK. Порты коммутации OvS представлены сетевыми устройствами (netdevs). Netdev-dpdk – это сетевое устройство, пользующееся возможностями DPDK, оно осуществляет обмен сетевыми данными через три различных интерфейса. Первый – физический интерфейс (работа с ним осуществляется с помощью библиотеки librte_eth в DPDK), далее – два виртуальных интерфейса (librte_vhost и librte_ring). Это – интерфейсы с физическими и виртуальными устройствами, подключенными к виртуальному коммутатору.

ovs что это такое в торговле. Смотреть фото ovs что это такое в торговле. Смотреть картинку ovs что это такое в торговле. Картинка про ovs что это такое в торговле. Фото ovs что это такое в торговле
Высокоуровневая архитектура Open vSwitch с DPDK

Другие архитектурные уровни OvS дают дополнительную функциональность и организацию взаимодействия, например, с SDN-контроллером. Dpif-netdev предоставляет услуги передачи данных в пространстве пользователя, ofproto – это библиотека OvS, которая реализует коммутатор стандарта OpenFlow. Она взаимодействует с OpenFlow-контроллерами по сети и с программным или аппаратным обеспечением коммутатора через провайдера ofproto. Сервер ovsdb поддерживает актуальную информацию в таблицах коммутации для данного экземпляра OvS и взаимодействует с SDN-контроллером.

Подробности об архитектуре OvS можно найти на openvswitch.org.

Теперь поговорим о таблицах коммутации OvS-DPDK.

Таблицы коммутации OvS-DPDK

Пакет, поступающий в OvS-DPDK с физического или виртуального интерфейса, получает уникальный идентификатор, или хэш, основанный на полях его заголовка, который затем сравнивают с записями, которые имеются в трёх основных таблицах коммутации. Это – таблица точного совпадения (Exact Match Cache, EMC), таблица классификатора маршрута передачи данных (Data Path Classifier, dpcls), и таблица классификатора ofproto (Ofrproto Classifier).

Идентификатор пакета сравнивают с cодержимым таблиц, в том порядке, в котором они здесь приведены, до тех пор, пока не будет найдено совпадение. Если совпадение найдено, будет выполнено действие, на которое указывает запись в таблице, содержащая правило обработки для пакета. После завершения всех действий над пакетом, он покидает коммутатор. Этот процесс показан на рисунке ниже.

ovs что это такое в торговле. Смотреть фото ovs что это такое в торговле. Смотреть картинку ovs что это такое в торговле. Картинка про ovs что это такое в торговле. Фото ovs что это такое в торговле
Иерархия таблиц коммутации в Open vSwitch с DPDK

У этих трёх таблиц разные характеристики пропускной способности и задержек. Таблица EMC предлагает самую быструю обработку для ограниченного числа записей. Идентификатор пакета должен точно совпасть с записью в таблице. Среди сравниваемых данных имеются точный IP-адрес источника и порт, адрес и порт назначения, протокол. Совпадение всего этого с записью в EMC даст самую высокую скорость обработки. В противном случае совпадение найдено не будет и начнётся поиск в таблице dpcls.

В dpcls имеется гораздо больше записей (они организованы во множестве подтаблиц), она поддерживает сравнение идентификаторов с использованием шаблонов. Например, с её помощью можно обработать пакеты, для которых в ней задан целевой IP-адрес и порт, но при этом разрешён любой источник такого пакета. При использовании dpcls приходится обслуживать гораздо больший набор записей таблиц, в результате, если решение об обработке пакета принимается на основе этой таблицы, можно достичь примерно половины пропускной способности EMC. Если в dpcls найдено подходящее правило, оно записывается в EMC, в результате, следующие пакеты с тем же идентификатором могут быть обработаны на более высокой скорости.

Если же правило для идентификатора пакета не найдено и в dpcls, начинается проверка по таблице классификатора ofproto, в результате контроллер OpenFlow может решить, как именно обрабатывать пакет. Это – самый медленный путь прохождения данных, он более чем в 10 раз медленнее, чем в случае, когда совпадение найдено в таблице EMC. Когда совпадение находят в классификаторе ofproto, это ведёт к созданию новых записей в более быстрых таблицах коммутации, в результате последующие пакеты того же потока можно обработать быстрее.

О возможностях и производительности OvS-DPDK

В тот момент, когда был написан этот материал, в ветке master проекта OvS-DPDK были доступны следующие высокоуровневые возможности:

ovs что это такое в торговле. Смотреть фото ovs что это такое в торговле. Смотреть картинку ovs что это такое в торговле. Картинка про ovs что это такое в торговле. Фото ovs что это такое в торговле

Сравнение производительности обычного OvS и OvS-DPDK

Похожие результаты получены в более сложном сценарии использования: (Phy-OvS-VM-OvS-Phy), когда данные с физического интерфейса поступают в OvS, потом идут в виртуальную машину, дальше – возвращаются в OvS, и, в итоге, снова передаются на физический интерфейс. А именно, здесь OvS-DPDK позволяет достичь примерно 9-кратного роста производительности.

Сведения о конфигурации аппаратного и программного обеспечения, на котором были проведены испытания, результаты которых упомянуты выше, можно найти в этом отчёте. Там же есть и данные по испытаниям для других сценариев использования.

Где взять OvS-DPDK

OvS-DPDK можно найти в upstream-ветви репозитория openvswitch.org, он имеется в различных дистрибутивах Linux. Последний стабильный релиз – OvS 2.6. Он выпущен в сентябре 2016-го года. Подобные релизы выходят раз в полгода.

Обратите внимание на то, что вы можете загрузить ZIP-файл с веткой master OVS, или ветвь версии 2.6. Так же имеются инструкции по установке для ветки master и для версии 2.6. Пакеты OvS с SPDK доступны в следующих репозиториях:

Итоги и дополнительные материалы

Мы представили краткий обзор OvS-DPDK – виртуального коммутатора, который отличается высокой производительностью и надёжностью. Интеграция с DPDK позволяет значительно ускорить обычный Open vSwitch. Если вы хотите больше узнать об OvS, вот список полезных материалов на английском.

Источник

Ovs что это такое в торговле

Смотреть что такое «OVS» в других словарях:

OVS — may refer to: Object–verb–subject Onterio Varrio Sur Orchard View Schools a school district in the U.S. state of Michigan This disambiguation page lists articles associated with the same title. If an … Wikipedia

OVS — Langue OVS Pour les articles homonymes, voir OVS (homonymie). Une langue OVS est, en typologie syntaxique, une langue dont les phrases suivent, généralement, un ordre objet verbe sujet. Les langues suivant ce modèle sont assez rares, sauf dans la … Wikipédia en Français

OVS — … Википедия

OVS — Ojai Valley School (Community » Schools) *** Oranje Vrystaat (Regional » African) * Overview Video System (Community » Media) * Overview Video System (Computing » General) * Oregon Vineyard Supply Company (Business » Firms) * On line Viewing… … Abbreviations dictionary

OVS — Oberverwaltungssekretär EN senior administrative secretary … Abkürzungen und Akronyme in der deutschsprachigen Presse Gebrauchtwagen

OVS — abbr. Open Video Services … Dictionary of abbreviations

övsət — ə. 1) orta, aralıq; 2) ortancıl (oğul) … Klassik Azərbaycan ədəbiyyatında islənən ərəb və fars sözləri lüğəti

OVS (homonymie) — Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom. <<>> Sigles d une seule lettre Sigles de deux lettres > Sigles de trois lettres … Wikipédia en Français

övsətdirmək — (İrəvan) tabaqlamaq, taxılı tabaqlayaraq təmizləmək. – Get arpanı övsətdir … Azərbaycan dilinin dialektoloji lüğəti

Langue OVS — Une langue OVS est, en typologie syntaxique, une langue dont les phrases suivent, généralement, un ordre objet verbe sujet. Les langues suivant ce modèle sont assez rares, sauf dans la famille karib. La première systématiquement décrite est une… … Wikipédia en Français

Object–verb–subject — Linguistic typology Morphological Isolating Synthetic Polysynthetic Fusional Agglutinative Morphosyntactic Alig … Wikipedia

Источник

Русские Блоги

openstack лежащая в основе технологии использование openvswitch

Posted on January 23, 2017 by opengers in openstack

Введение в Open vSwitch

В прошлом серверы в центре обработки данных были напрямую подключены к аппаратным коммутаторам. Позже VMware внедрила технологию виртуализации серверов, позволяющую подключать виртуальные серверы (ВМ) к виртуальным коммутаторам. С помощью этого виртуального коммутатора виртуальные машины или Контейнер предоставляет логические виртуальные интерфейсы Ethernet. Эти логические интерфейсы подключены к виртуальным коммутаторам. Существует три популярных виртуальных коммутатора: виртуальный коммутатор VMware, Cisco Nexus 1000V и Open vSwitch.

В системах, основанных на ядре Linux, наиболее широко используется виртуальный коммутатор, который поставляется вместе с системой. Linux Bridge Это простой коммутатор уровня 2, основанный на изучении MAC-адресов, простой и эффективный, но в то же время не обладающий некоторыми дополнительными функциями, такими как OpenFlow, тег VLAN, QOS, ACL, Flow и т. Д., А в поддержке протокола туннеля Linux Bridge поддерживает только vxlan. OVS поддерживает gre / vxlan / IPsec и т. Д., Что также определяет, что OVS больше подходит для реализации технологии SDN.

OVS поддерживает следующееfeatures

Архитектура OVS

ovs что это такое в торговле. Смотреть фото ovs что это такое в торговле. Смотреть картинку ovs что это такое в торговле. Картинка про ovs что это такое в торговле. Фото ovs что это такое в торговле

ovs-vswitchd

ovs-vswitchd Демон является ключевым компонентом OVS, он и datapath Модули ядра вместе реализуют обмен данными на основе потоков OVS. В качестве основного компонента он использует протокол openflow для связи с контроллером OpenFlow верхнего уровня и протокол OVSDB для связи с ovsdb-server Общение, использование netlink и datapath Ядро связи модуля. ovs-vswitchd Читать при запуске ovsdb-server Информация о конфигурации, а затем настроить ядро datapaths И все переключатели OVS, когда информация о конфигурации в ovsdb изменяется (например, с помощью инструмента ovs-vsctl), ovs-vswitchd Также будет автоматически обновлять свою конфигурацию для поддержания синхронизации с базой данных

В ОВС, ovs-vswitchd Получите правила таблицы потоков из контроллера OpenFlow, а затем поместите datapath Сопоставьте пакеты данных, полученные в таблице потоков, найдите соответствующие потоки и верните необходимые действия приложения datapath Как часть процесса, ovs-vswitchd Будет в datapath Задайте потоки данных для последующих пакетов данных того же типа, чтобы выполнять действия непосредственно в ядре. Эти потоки данных эквивалентны кэшу потоков OpenFlow. для datapath Как правило, он не знает о существовании OpenFlow в пользовательском пространстве. Информация о модуле ядра datapath выглядит следующим образом

ovsdb-server

/etc/openvswitch/conf.db Это место хранения файла базы данных, которое гарантирует, что перезапуск сервера не повлияет на информацию о его конфигурации. ovsdb-server Нужен файл для запуска, вы можете использовать ovsdb-tool create Команда для создания и инициализации этого файла базы данных
—remote=punix:/var/run/openvswitch/db.sock Реализовано соединение с сокетами Unix, основной процесс OVS ovs-vswitchd Или другой инструмент командной строки (ovsdb-client) для управления ovsdb через это сокетное соединение
/var/log/openvswitch/ovsdb-server.log Ведение журнала

OpenFlow

OVS часто используется как коммутатор SDN (коммутатор OpenFlow), и именно поток OpenFlow контролирует стратегию пересылки данных. OpenStack Neutron реализует контроллер OpenFlow для доставки потоков OpenFlow в OVS для контроля доступа или изоляции между виртуальными машинами. По умолчанию в этой статье рассматривается сценарий переключения SDN

Записи таблицы потоков OpenFlow хранятся в основном процессе пользовательского пространства ovs-vswitchd Кроме того, OVS подключается к контроллеру OpenFlow для получения этого потока, инструмента командной строки, упомянутого далее в статье. ovs-ofctl Инструмент также может вручную управлять потоком OpenFlow в OVS, вы можете просмотреть man ovs-ofctl понимать

В OVS поток OpenFlow является наиболее важным видом потока, но существуют другие типы потоков, которые будут упомянуты в разделе концепции OVS ниже.

Controller

Контроллер относится к контроллеру OpenFlow. Контроллер OpenFlow может быть подключен к любому коммутатору, который поддерживает OpenFlow через протокол OpenFlow, например, OVS. Контроллер управляет потоком данных, отправляя правила таблицы потоков на коммутатор. В дополнение к настройке потоков в OVS через контроллер OpenFlow, вы также можете использовать те, которые предоставляются OVS ovs-ofctl Команда подключается к OVS через протокол OpenFlow для настройки потоков, и команда также может динамически контролировать состояние выполнения OVS.

Kernel Datapath

The datapath module in the kernel receives the packets first, from a physical NIC or a VM’s virtual NIC. Either ovs-vswitchd has instructed the datapath how to handle packets of this type, or it has not. In the former case, the datapath module simply follows the instructions, called actions, given by ovs-vswitchd, which list physical ports or tunnels on which to transmit the packet. Actions may also specify packet modifications, packet sampling, or instructions to drop the packet. In the other case, where the datapath has not been told what to do with the packet, it delivers it to ovs-vswitchd. In userspace, ovs-vswitchd determines how the packet should be handled, then it passes the packet back to the datapath with the desired handling. Usually, ovs-vswitchd also tells the datapath to cache the actions, for handling similar future packets.

Чтобы проиллюстрировать путь к данным, взгляните на более подробную диаграмму архитектуры, большинство компонентов на рисунке указаны выше.

ovs что это такое в торговле. Смотреть фото ovs что это такое в торговле. Смотреть картинку ovs что это такое в торговле. Картинка про ovs что это такое в торговле. Фото ovs что это такое в торговле

Пространство пользователя ovs-vswitchd И модули ядра datapath Решил переслать пакет данных, сначала datapath Модуль ядра получает входящий пакет данных (физическая сетевая карта или виртуальная сетевая карта), а затем просматривает свой кэш (потоки данных), при наличии соответствующего потока он выполняет соответствующую операцию, в противном случае datapath Отправит пакет в пространство пользователя ovs-vswitchd Отвечает за запросы в своих потоках OpenFlow (первый пакет на рисунке 1), ovs-vswitchd После запроса верните соответствующие действия в datapath И установить потоки данных в datapath Таким образом, последующие пакеты одного типа (последующие пакеты на рисунке 1) будут заблокированы из-за совпадения кэша datapath Прямая обработка без повторного входа в пространство пользователя.

datapath Фокус на обмене данными, для этого не нужно знать о существовании OpenFlow. Тот, кто имеет дело с OpenFlow ovs-vswitchd , ovs-vswitchd Сохранить все правила потока для datapath Запрос или кеш.

Хотя есть ovs-dpctl Инструменты управления существуют, но нам не нужно вручную управлять datapath Это пространство пользователя ovs-vswitchd Работа

Концепция ОВС

В этой части рассказывается о важных концепциях в OVS, в качестве примера используется мост OVS сетевого узла в режиме развертывания OpenStack нейтрон + vxlan

Bridge

Мост представляет собой коммутатор Ethernet (Switch), и на хосте можно создать один или несколько мостов. Функция Bridge заключается в пересылке пакетов данных, полученных от порта, на другой порт или несколько портов в соответствии с определенными правилами. В приведенном выше примере есть три моста. br-tun , br-int , br-ext

Как следует, есть физическая сетевая карта в хосте eth1 Установите его на мост OVS br-ext На OVS Порт с тем же именем будет создан автоматически eth1 。

Следует отметить, что устройство сетевой карты, установленное на OVS, не поддерживает назначение IP-адресов, поэтому, если eth1 Сконфигурированный с IP-адресом, IP-адрес не будет доступен после подключения к OVS. Устройство сетевой карты включает в себя не только физическую сетевую карту, но и виртуальную сетевую карту, созданную на хосте.

Затем создайте мост br0 и создайте порт внутреннего типа. p0

Вы можете видеть, что есть два порта. Когда ovs создает новый мост, по умолчанию создается Внутренний порт с тем же именем, что и у моста. В OVS только устройства типа «внутренняя» поддерживают настройку информации об IP-адресе, поэтому мы можем br0 Интерфейс настроен с IP-адресом, конечно p0 IP-адрес также может быть настроен

можешь использовать ovs-vsctl Создайте патч-устройство, создайте два моста следующим образом br0,br1 А потом использовать пару Patch Port Соедините их

Существует более одного способа соединить два моста. Linux поддерживает создание Veth Пара устройств, мы можем сначала создать пару Veth Снаряжение пара, затем положить эти два Veth Добавьте их к двум мостам по отдельности, эффект будет таким же, как порт патча, созданный в OVS, но производительность будет отличаться

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

Мост выше br-tun в Port «vxlan-080058ca» Только один vxlan Тип туннельного порта. Следующее использует два хоста для тестирования для создания туннеля vxlan

Затем соедините два хоста br-vxlan Виртуальная машина подключена к тому же коммутатору, может установить соединение L2 между хостами и полностью изолирована от физической сети.

Interface

Controller

datapath

Модуль ядра OVS отвечает за обмен данными. Внутри есть потоки, используемые как кеш, которые были представлены выше

Различные потоки в ОВС

OpenFlow flows

Наиболее важный вид потоков в OVS, который выдается контроллером. Кратко была представлена ​​архитектура OVS. Конкретное использование openflow будет объяснено в другой статье.

“hidden” flows

Когда OVS использует поток OpenFlow, ему необходимо установить TCP-соединение с контроллером OpenFlow.Если TCP-соединение не зависит от OVS, то есть соединение все еще может быть установлено без OVS. out-of-band control Режим, в котором «скрытые» потоки не нужны

Но в in-band control В этом режиме установление TCP-соединения зависит от сети, управляемой OVS, но в настоящее время OVS зависит от потоков, выдаваемых контроллером OpenFLow, для правильной работы. Если TCP-соединение не может быть установлено, потоки не могут быть созданы. Это создает противоречие, поэтому оно должно существовать. Некоторые «скрытые» потоки обеспечивают нормальное установление TCP-соединений. на in-band control За подробностями обращайтесь к официальной документации OVSDesign Decisions In Open vSwitchвIn-Band Controlраздел

datapath flows

поток данных datapath Потоки, поддерживаемые модулем ядра, поддерживаемые модулем ядра, означают, что нам не нужно изменять его и управлять им. В отличие от потоков OpenFlow, он не поддерживает приоритет, и есть только одна таблица, эти характеристики делают его очень подходящим для кэширования. Как и OpenFlow, он поддерживает подстановочные знаки и наборы команд (несколько действий)

потоки данных могут поступать из пространства пользователя ovs-vswitchd Кэш также может быть потоком, который модуль ядра канала данных узнает по MAC-адресу, который зависит от того, используется ли OVS в качестве коммутатора SDN или, как Linux Bridge, является простым коммутатором уровня 2, основанным на изучении MAC-адреса.

Инструмент командной строки для управления потоками

То, что мы можем изменить и настроить, это потоки OpenFlow. Поток Datapath и «скрытые» потоки управляются самим OVS, нам не нужно его изменять. Конечно, его можно изменить с помощью инструментов в сценарии отладки.

Внедрите три вышеупомянутых инструмента управления потоками, а не конкретные, вы можете проверить соответствующее руководство пользователя для конкретного использования

ovs-ofctl dump-flows
Выведите все потоки OpenFlow в указанном мосту, может быть несколько таблиц потоков (таблиц потоков), отображаемых в порядке следования таблиц. Не включает «скрытые» потоки. Это наиболее часто используемая команда потока представления, конечно, эта команда действительна для всех коммутаторов OpenFlow, а не только для OVS.

ovs-appctl bridge/dump-flows
Распечатать все потоки OpenFlow в назначенном мосту, включая «скрытые» потоки, in-band control Может использоваться для устранения неполадок в режиме

ovs-dpctl dump-flows [dp] Вывести поток данных в модуль ядра, [dp] Может быть опущен, в хосте по умолчанию есть только один путь к данным [email protected]
В руководстве man можно найти очень подробные инструкции. ovs-ofctl Управляет потоками OpenFlow

Использование и отличие инструментов ovs- *

Выше представлен процесс пространства пользователя OVS, а также протокол контроллера и OpenFlow.В этом заключается использование и отличие связанных инструментов командной строки.

ovs-vsctl

ovs-vsctl Это управление или конфигурация ovs-vswitchd Усовершенствованный инструмент командной строки, advanced означает, что его работа удобна для пользователя и содержит подробные сведения о работе базы данных. Это наиболее часто используемая команда для управления OVS. В дополнение к настройке потоков можно выполнить большинство других операций, таких как Bridge / Port / Interface / Controller / Database / Vlan.

ovsdb-tool

ovsdb-tool Это инструмент для управления файлами базы данных OVS, он не используется широко, он не имеет прямого отношения к ovsdb-server Процесс общения

ovsdb-client

ovsdb-client Здесь ovsdb-server Инструменты командной строки процесса, в основном из запуска ovsdb-server Запрос информации в работе базы данных

ovs-ofctl

ovs-ofctl Это инструмент командной строки, который специально управляет и настраивает коммутаторы OpenFlow. Мы можем использовать его для ручной настройки потоков OpenFlow в OVS. Обратите внимание, что он не может управлять потоками данных и «скрытыми» потоками.

ovs-vsctl Является комплексным инструментом управления конфигурацией, ovsdb-client Как правило, запрашивать определенную информацию из базы данных, в то время как ovsdb-tool Это инструмент для поддержки файлов базы данных

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *