Jump to content

Комплект разработки плоскости данных

ДПДК
Стабильная версия
24.07 / 31 июля 2024 г. ( 31 июля 2024 г. ) [1]
Репозиторий мерзавец .dpdk .org
Написано в С
Операционная система Linux , FreeBSD , Windows
Тип Обработка пакетов
Лицензия БСД
Веб-сайт www .dpdk .org

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

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

DPDK был создан инженером Intel Венки Венкатесаном, которого ласково называют «отцом DPDK». Он умер в 2018 году после долгой борьбы с раком. [6]

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

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

Используя библиотеки DPDK, можно реализовать модель запуска до завершения с низкими издержками , конвейерную или поэтапную, управляемую событиями или гибридную модель, полностью в пользовательском пространстве, исключая ядро ​​и копирование ядра для пользователя. Аппаратная поддержка NIC/Regex/Accelerators , библиотек, улучшенных для использования Intelligence Storage Acceleration (ISA). [9] для массовой производительности и доступа к устройствам посредством опроса также помогает устранить издержки, связанные с прерываниями . Огромные страницы используются для выделения большого пула памяти, чтобы уменьшить количество поисков и управления страницами. [10]

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

Библиотеки

[ редактировать ]

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

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

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

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

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

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

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

Экосистема

[ редактировать ]

DPDK теперь является проектом с открытым исходным кодом Linux Foundation , поддерживаемым многими компаниями. DPDK управляется Советом управляющих. Техническую деятельность контролирует Технический совет. [13] Помимо Intel , которая участвует в разработке DPDK, несколько других поставщиков также поддерживают DPDK в своих продуктах, а некоторые предлагают дополнительное обучение, поддержку и профессиональные услуги. В список вендоров, объявивших о поддержке DPDK, входят: 6WIND , [14] АЛЬТЕН Calsoft Labs, [15] [16] Адвантек, [17] Парча, [18] Big Switch Networks, Mellanox Technologies , [19] Радисис , [20] эти, [21] Река Ветра , [22] Ланнер Инк. [23] и НХП . [24]

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

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

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

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

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

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

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

См. также

[ редактировать ]
  1. ^ «ДПДК» . core.dpdk.org .
  2. ^ Саймон Стэнли, Все изменения в обработке пакетов. Архивировано 21 августа 2016 г. в Wayback Machine , Heavy Reading, 2013 г.
  3. ^ Шамус МакГилликуди, DPDK, дизайн коммутаторов и серверов продвигает экосистему SDN вперед. Архивировано 18 сентября 2015 г. на Wayback Machine , SearchSDN, апрель 2013 г.
  4. ^ «DPDK: Комплект разработки Data Plane — что это такое» . dpdk.org . Проверено 29 марта 2016 г.
  5. ^ Саймон Стэнли, DPDK становится открытым исходным кодом , Intel Embedded Community, май 2013 г.
  6. ^ «Светлой памяти: Венки Венкатесан, «отец ДПДК» » . ДПДК . Проверено 12 мая 2022 г.
  7. ^ Документы DPDK, Комплект разработки Data Plane: Руководство для программистов , сентябрь 2017 г.
  8. ^ «Как DPDK может получить доступ к устройствам из пользовательского пространства?» . КодиЛайм . 22 августа 2019 г. Проверено 28 августа 2019 г.
  9. ^ «Как DPDK может обесценить ваши данные! | SNIA» . www.snia.org . Проверено 21 июня 2021 г.
  10. ^ PANTHEON.tech (9 января 2020 г.). «VPP 105: Управление памятью и API-интерфейсы DPDK» . ПАНТЕОН.техника . Проверено 21 июня 2021 г.
  11. ^ Подразделение коммуникационной инфраструктуры Intel, Обзор комплекта разработки Data Plane , декабрь 2012 г.
  12. ^ « Поддерживаемые NICS »
  13. ^ Технический совет ДПДК
  14. ^ PRWeb, 6WIND расширяет портативное программное обеспечение для обработки пакетов для поддержки комплекта разработки Data Plane. Архивировано 26 марта 2016 г. на Wayback Machine , сентябрь 2011 г.
  15. ^ Calsoft Labs предложит профессиональные услуги и поддержку для Data Plane Development Kit , ALTEN Calsoft Labs, 18 февраля 2014 г., заархивировано из оригинала 4 марта 2016 г. , получено 28 октября 2014 г.
  16. ^ https://builders.intel.com/docs/ALTEN-Calsoft-Labs-and-Intel-Improving-Network-Agility-with-Virtual-CPE.pdf [ только URL-адрес PDF ]
  17. ^ Журнал COTS, ATCA Blade обслуживает процессор Xeon E5-2600. Архивировано 4 марта 2016 г. в Wayback Machine , июнь 2012 г.
  18. ^ Brocade vRouter
  19. ^ Технологии, Мелланокс. «Комплект разработки плоскости данных (DPDK) | Драйвер режима опроса (PMD)» . Мелланокс . Проверено 10 февраля 2021 г.
  20. ^ MarketWatch, Radisys представляет первое в отрасли решение 40G для комплекта разработки плоскости передачи данных , сентябрь 2012 г.
  21. ^ Tieto, Tieto предоставляет профессиональные программные услуги и поддержку для Data Plane Development Kit , февраль 2012 г.
  22. ^ Reuters, Wind River предоставляет поддержку и услуги для комплекта разработки плоскости данных для высокопроизводительной обработки пакетов , май 2012 г.
  23. ^ Летайте с комплектом Data Plane Development Kit , Lanner Electronics Inc., 20 февраля 2013 г., заархивировано из оригинала 6 декабря 2015 г. , получено 11 июля 2013 г.
  24. ^ Поддержка платформы NXP в комплекте разработки Data Plane
  25. ^ Томпсон, Джим (25 февраля 2015 г.). «Дальше (дорожная карта для pfSense)» . blog.pfsense.org . ООО «Электрическое ограждение овец» . Проверено 21 апреля 2015 г.
  26. ^ «ВПП fd.io» . wiki.fd.io. Фонд Linux . Проверено 29 декабря 2016 г.
  27. ^ PANTHEON.tech (9 января 2020 г.). «VPP 105: Управление памятью и API-интерфейсы DPDK» . ПАНТЕОН.техника . Проверено 21 июня 2021 г.
  28. ^ «ТРекс» . Сиско Системы . Проверено 29 декабря 2016 г.
  29. ^ Рами Розен, Ускорение сети с помощью DPDK , lwn.net, июль 2017 г.
  30. ^ Рами Розен, Сеть в пользовательском пространстве с помощью DPDK , Linux Journal, апрель 2018 г.
  31. ^ Рами Розен, подробно о DPDK , Kernel TLV, август 2018 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 998f6bd951ff1239aacb658bddf5fec0__1723009920
URL1:https://arc.ask3.ru/arc/aa/99/c0/998f6bd951ff1239aacb658bddf5fec0.html
Заголовок, (Title) документа по адресу, URL1:
Data Plane Development Kit - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)