Из Википедии, свободной энциклопедии
Перейти к навигации Перейти к поиску

Набор данных Plane Development ( DPDK ) является открытым исходным программным проектом под управлением Linux Foundation , . Это обеспечивает набор плоских данных библиотек и контроллер сетевого интерфейса драйверов избирательного режима для разгрузки TCP обработки пакетов от операционной системы ядра в процессы , работающих в пользовательском пространстве . Эта разгрузка обеспечивает более высокую вычислительную эффективность и более высокую пропускную способность пакетов, чем это возможно при использовании обработки, управляемой прерываниями, предусмотренной в ядре.

DPDK предоставляет среду программирования для процессоров x86 , ARM и PowerPC и позволяет быстрее разрабатывать приложения для высокоскоростной сети с пакетами данных. [2] [3] Он масштабируется от мобильных процессоров, таких как Intel Atom , до процессоров серверного уровня, таких как Intel Xeon . Он поддерживает архитектуры набора команд, такие как Intel, IBM POWER8 , EZchip и ARM . [4] Он предоставляется и поддерживается по лицензии BSD с открытым исходным кодом [5] .

Обзор [ править ]

Платформа DPDK создает набор библиотек для конкретных аппаратных / программных сред путем создания уровня абстракции среды (EAL). [6] [7] EAL скрывает специфику среды и предоставляет стандартный программный интерфейс для библиотек, доступных аппаратных ускорителей и других элементов оборудования и операционных систем (Linux, FreeBSD). После создания EAL для конкретной среды разработчики связываются с библиотекой для создания своих приложений. Например, EAL предоставляет платформы для поддержки Linux , FreeBSD , Intel IA- 32 или 64-разрядных , IBM POWER9 и 32- или 64-разрядных ARM .

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

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

DPDK также находится в процессе включения модели программирования на основе событий для быстрой обработки плоскости данных.

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

Библиотеки [ править ]

DPDK включает библиотеки уровня данных и оптимизированные драйверы контроллера сетевого интерфейса (NIC) для следующего: [8]

  • В диспетчере очередей реализованы безблокирующие очереди.
  • Диспетчер буферов предварительно выделяет буферы фиксированного размера
  • Менеджер памяти выделяет пулы объектов в памяти и использует кольцо для хранения свободных объектов; гарантирует, что объекты равномерно распределены по всем каналам DRAM
  • Драйверы режима опроса (PMD) предназначены для работы без асинхронных уведомлений, что снижает накладные расходы.
  • Фреймворк пакетов - набор библиотек, которые помогают в разработке обработки пакетов.

Все библиотеки хранятся в каталогах dpdk / lib / librte_ *

Плагины [ править ]

DPDK включает драйверы для многих типов оборудования. [9] В прошлом было несколько дополнительных драйверов плагинов, которые теперь считаются устаревшими.

  • librte_pmd_vmxnet3.so  - обеспечивает уровень PMD Ethernet, поддерживающий паравиртуализированную сетевую карту Vmxnet3; заменен полной поддержкой VMXNET3 в собственном DPDK.
  • librte_pmd_memnic_copy.so  - обеспечивает уровень Virtual PMD Ethernet через разделяемую память на основе 2 копий памяти пакетов

Окружающая среда [ править ]

Первоначально DPDK был разработан для работы в режиме « голого железа », который в настоящее время считается устаревшим. Фактически, EAL DPDK обеспечивает поддержку приложений пользовательской среды Linux или FreeBSD .

EAL может быть расширен для поддержки любых процессоров.

Экосистема [ править ]

DPDK теперь является проектом с открытым исходным кодом под управлением Linux Foundation , поддерживаемым многими компаниями. DPDK управляется Правлением. Техническая деятельность игнорируется техническим советом. [10] Помимо Intel , которая является участником DPDK, несколько других поставщиков также поддерживают DPDK в своих продуктах, а некоторые предлагают дополнительное обучение, поддержку и профессиональные услуги. Список поставщиков, объявивших о поддержке DPDK, включает: 6WIND , [11] ALTEN Calsoft Labs, [12] [13] Advantech, [14] Brocade, [15] Big Switch Networks, Mellanox Technologies , [16] Radisys., [17] Tieto, [18] Wind River , [19] и Lanner . [20]

Проекты [ править ]

Проект pfSense опубликовал 25 февраля 2015 года дорожную карту, в которой разработчик Джим Томпсон объявил о переписывании ядра pfSense, включая pf , пересылку и формирование сетевых пакетов , связывание каналов , IPsec, с использованием DPDK: «У нас есть цель: для пересылки с фильтрацией пакетов со скоростью не менее 14,88 млн пакетов в секунду. Это «линейная скорость» для интерфейса 10 Гбит / с. Просто нет возможности использовать сегодняшние стеки ядра FreeBSD (или Linux) для такого типа нагрузки ». [21]

Open vSwitch (OVS) имеет ограниченный набор функций, запускающих пользовательскую среду, которые можно использовать для обхода обработки OVS ядра Linux. Этот вариант использования OVS с пользовательской средой DPDK обычно называется OVS-DPDK. Он в основном развертывается с OpenStack Neutron, но предполагает, что многие функции и возможности программно-определяемых сетей (SDN) Openstack отключены. Например, когда используется OVS-DPDK, Neutron обеспечивает более низкий уровень безопасности, чем при использовании ядра OVS (отсутствие межсетевого экрана с отслеживанием состояния, меньшая группа безопасности).

Платформа FD.IO VPP - это расширяемая среда, которая обеспечивает готовые функциональные возможности коммутации / маршрутизатора производственного качества. Это версия с открытым исходным кодом технологии Cisco Vector Packet Processing (VPP): высокопроизводительный стек обработки пакетов, который может работать на стандартных процессорах и может использовать драйверы режима опроса как для сетевых адаптеров, так и для оборудования и библиотек криптографического ускорения. [22]

TRex - генератор трафика с открытым исходным кодом, использующий DPDK. Он генерирует трафик L4–7 на основе предварительной обработки и интеллектуального воспроизведения реальных шаблонов трафика. TRex усиливает трафик как на стороне клиента, так и на стороне сервера и может масштабироваться до 200 Гбит / с с одной UCS с использованием Intel XL710. TRex также поддерживает несколько потоков, возможность изменять любое поле пакета и предоставляет статистику по потокам, задержку и джиттер. [23]

DTS (DPDK Test Suite) - это основанная на Python платформа для функциональных тестов и тестов. Это проект с открытым исходным кодом, стартовавший в 2014 году и размещенный на dpdk.org. Он поддерживает как программные генераторы трафика, такие как Scapy и dpdk-pktgen, так и аппаратные генераторы трафика, такие как Ixia . [24]

DPDK поддерживает несколько сетевых драйверов SRIOV , что позволяет создавать PF (Physical Function) и VF, а также запускать виртуальные машины (например, виртуальные машины QEMU ) и назначать им VF с помощью сквозной передачи PCI [25]

DDP (динамическая персонализация устройств) - одна из новых расширенных функций, реализованных в DPDK. Это позволяет загружать прошивку для устройства динамически, без перезагрузки хоста. [26]

Ссылки [ править ]

  1. ^ "DPDK" . core.dpdk.org . Проверено 3 апреля 2021 года .
  2. Саймон Стэнли, Все изменения для обработки пакетов, заархивировано 21 августа 2016 г. в Wayback Machine , Heavy Reading, 2013 г.
  3. ^ Шамус МакГилликади, DPDK , проекты коммутаторов и серверов продвигают экосистему SDN вперед , SearchSDN, апрель 2013 г.
  4. ^ «DPDK: Data Plane Development Kit - что это такое» . dpdk.org . dpdk.org . Проверено 29 марта 2016 года .
  5. ^ Саймон Стэнли, DPDK идет с открытым исходным кодом , Intel Embedded Community, май 2013
  6. ^ DPDK Docs, Data Plane Development Kit: Руководство программиста , сентябрь 2017 г.
  7. ^ "Как DPDK может получить доступ к устройствам из пользовательского пространства?" . CodiLime . 22 августа 2019 . Проверено 28 августа 2019 .
  8. ^ Intel Communications Infrastructure Division, Обзор комплекта разработки плоскости данных , декабрь 2012 г.
  9. ^ " Поддерживаемые NICS "
  10. ^ Технический совет DPDK
  11. ^ PRWeb, 6WIND расширяет портативное программное обеспечение для обработки пакетов для поддержки пакета разработки плоскости данных , сентябрь 2011 г.
  12. ^ Calsoft Labs предлагает профессиональные услуги и поддержку для Data Plane Development Kit , ALTEN Calsoft Labs, 18 февраля 2014 г. , получено 28 октября 2014 г.
  13. ^ https://builders.intel.com/docs/ALTEN-Calsoft-Labs-and-Intel-Improving-Network-Agility-with-Virtual-CPE.pdf
  14. ^ Журнал COTS, ATCA Blade обслуживает процессор Xeon E5-2600. Архивировано 4 марта 2016 г. на Wayback Machine , июнь 2012 г.
  15. ^ Парча vRouter
  16. ^ Технологии, Mellanox. «Комплект разработчика плоскости данных (DPDK) | Драйвер режима опроса (PMD)» . Mellanox . Проверено 10 февраля 2021 года .
  17. ^ MarketWatch, Radisys представляет первое в отрасли решение 40G для комплекта разработки плоскости данных , сентябрь 2012 г.
  18. ^ Tieto, Tieto предоставляет профессиональные программные услуги и поддержку для Data Plane Development Kit , февраль 2012 г.
  19. ^ Reuters, Wind River предоставляет поддержку и услуги для комплекта разработки плоскости данных для высокопроизводительной обработки пакетов , май 2012 г.
  20. ^ Get Flying with the Data Plane Development Kit , Lanner Electronics Inc., 20 февраля 2013 г. , получено 11 июля 2013 г.
  21. Томпсон, Джим (25 февраля 2015 г.). «Далее (дорожная карта для pfSense)» . blog.pfsense.org . ООО "Электрическое ограждение овец" . Проверено 21 апреля 2015 года .
  22. ^ "VPP fd.io" . wiki.fd.io . Linux Foundation . Проверено 29 декабря +2016 .
  23. ^ name = Trex "TRex" . Cisco Systems . Проверено 29 декабря +2016 .
  24. ^ Рами Розен, Сетевое ускорение с помощью DPDK , lwn.net, июль 2017 г.
  25. ^ Рами Розен, Userspace Networking with DPDK , Linux Journal, апрель 2018 г.
  26. ^ Рами Розен, DPDK в подробностях , Kernel TLV, август 2018 г.