Комплект разработки плоскости данных
Стабильная версия | 24.07
/ 31 июля 2024 г. [ 1 ] |
---|---|
Репозиторий | мерзавец |
Написано в | С |
Операционная система | Linux , FreeBSD , Windows |
Тип | Обработка пакетов |
Лицензия | БСД |
Веб-сайт | www |
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 ]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «ДПДК» . core.dpdk.org .
- ^ Саймон Стэнли, Все изменения в обработке пакетов. Архивировано 21 августа 2016 г. в Wayback Machine , Heavy Reading, 2013 г.
- ^ Шамус МакГилликуди, DPDK, дизайн коммутаторов и серверов продвигает экосистему SDN вперед. Архивировано 18 сентября 2015 г. на Wayback Machine , SearchSDN, апрель 2013 г.
- ^ «DPDK: Комплект разработки плоскости данных — что это такое» . dpdk.org . Проверено 29 марта 2016 г.
- ^ Саймон Стэнли, DPDK становится открытым исходным кодом , Intel Embedded Community, май 2013 г.
- ^ «Светлой памяти: Венки Венкатесан, «отец ДПДК» » . ДПДК . Проверено 12 мая 2022 г.
- ^ Документы DPDK, Комплект разработки Data Plane: Руководство для программистов , сентябрь 2017 г.
- ^ «Как DPDK может получить доступ к устройствам из пользовательского пространства?» . КодиЛайм . 22 августа 2019 г. Проверено 28 августа 2019 г.
- ^ «Как DPDK может обесценить ваши данные! | SNIA» . www.snia.org . Проверено 21 июня 2021 г.
- ^ PANTHEON.tech (9 января 2020 г.). «VPP 105: Управление памятью и API-интерфейсы DPDK» . ПАНТЕОН.техника . Проверено 21 июня 2021 г.
- ^ Подразделение коммуникационной инфраструктуры Intel, Обзор комплекта разработки Data Plane , декабрь 2012 г.
- ^ « Поддерживаемые NICS »
- ^ Технический совет ДПДК
- ^ PRWeb, 6WIND расширяет портативное программное обеспечение для обработки пакетов для поддержки комплекта разработки Data Plane. Архивировано 26 марта 2016 г. на Wayback Machine , сентябрь 2011 г.
- ^ Calsoft Labs предложит профессиональные услуги и поддержку для Data Plane Development Kit , ALTEN Calsoft Labs, 18 февраля 2014 г., заархивировано из оригинала 4 марта 2016 г. , получено 28 октября 2014 г.
- ^ https://builders.intel.com/docs/ALTEN-Calsoft-Labs-and-Intel-Improving-Network-Agility-with-Virtual-CPE.pdf [ только URL-адрес PDF ]
- ^ Журнал COTS, ATCA Blade обслуживает процессор Xeon E5-2600. Архивировано 4 марта 2016 г. в Wayback Machine , июнь 2012 г.
- ^ Brocade vRouter
- ^ Технологии, Мелланокс. «Комплект разработки плоскости данных (DPDK) | Драйвер режима опроса (PMD)» . Мелланокс . Проверено 10 февраля 2021 г.
- ^ MarketWatch, Radisys представляет первое в отрасли решение 40G для комплекта разработки плоскости передачи данных , сентябрь 2012 г.
- ^ Tieto, Tieto предоставляет профессиональные программные услуги и поддержку для Data Plane Development Kit , февраль 2012 г.
- ^ Reuters, Wind River предоставляет поддержку и услуги для комплекта разработки плоскости данных для высокопроизводительной обработки пакетов , май 2012 г.
- ^ Летайте с комплектом Data Plane Development Kit , Lanner Electronics Inc., 20 февраля 2013 г., заархивировано из оригинала 6 декабря 2015 г. , получено 11 июля 2013 г.
- ^ Поддержка платформы NXP в комплекте разработки Data Plane
- ^ Томпсон, Джим (25 февраля 2015 г.). «Дальше (дорожная карта для pfSense)» . blog.pfsense.org . ООО «Электрическое ограждение овец» . Проверено 21 апреля 2015 г.
- ^ «ВПП fd.io» . wiki.fd.io. Фонд Linux . Проверено 29 декабря 2016 г.
- ^ PANTHEON.tech (9 января 2020 г.). «VPP 105: Управление памятью и API-интерфейсы DPDK» . ПАНТЕОН.техника . Проверено 21 июня 2021 г.
- ^ «ТРекс» . Сиско Системы . Проверено 29 декабря 2016 г.
- ^ Рами Розен, Ускорение сети с помощью DPDK , lwn.net, июль 2017 г.
- ^ Рами Розен, Сеть в пользовательском пространстве с помощью DPDK , Linux Journal, апрель 2018 г.
- ^ Рами Розен, подробно о DPDK , Kernel TLV, август 2018 г.