مجموعة أدوات تطوير مستوى البيانات

مجموعة أدوات تطوير مستوى البيانات ( DPDK ) هي مشروع برمجي مفتوح المصدر تديره مؤسسة لينكس . توفر هذه المجموعة مكتبات مستوى البيانات وبرامج تشغيل وضع الاستقصاء لوحدة تحكم واجهة الشبكة ، وذلك لتفريغ معالجة حزم بروتوكول TCP من نواة نظام التشغيل إلى العمليات التي تعمل في مساحة المستخدم . يحقق هذا التفريغ كفاءة حسابية أعلى وإنتاجية حزم بيانات أكبر مما هو ممكن باستخدام المعالجة القائمة على المقاطعات المتوفرة في النواة.

توفر DPDK إطار عمل برمجيًا لمعالجات x86 و ARM و PowerPC ، مما يُتيح تطويرًا أسرع لتطبيقات شبكات حزم البيانات عالية السرعة. [ 2 ] [ 3 ] وهي قابلة للتوسع من معالجات الأجهزة المحمولة، مثل Intel Atom ، إلى معالجات الخوادم، مثل Intel Xeon . كما تدعم بنى مجموعات التعليمات مثل Intel وIBM POWER8 و EZchip و ARM . [ 4 ] وهي مُتاحة ومدعومة بموجب ترخيص BSD مفتوح المصدر . [ 5 ]

تم إنشاء DPDK بواسطة مهندس شركة إنتل فينكي فينكاتيسان، المعروف باسم "أبو DPDK". توفي في عام 2018 بعد صراع طويل مع مرض السرطان. [ 6 ]

ملخص

يُنشئ إطار عمل DPDK مجموعة من المكتبات لبيئات برمجية/مادية محددة من خلال إنشاء طبقة تجريد البيئة (EAL). [ 7 ] [ 8 ] تُخفي طبقة تجريد البيئة تفاصيل البيئة وتوفر واجهة برمجة قياسية للمكتبات، ومُسرّعات الأجهزة المتاحة، وعناصر أخرى من الأجهزة وأنظمة التشغيل (لينكس، فري بي إس دي). بمجرد إنشاء طبقة تجريد البيئة لبيئة معينة، يقوم المطورون بربطها بالمكتبة لإنشاء تطبيقاتهم. على سبيل المثال، توفر طبقة تجريد البيئة أطر عمل لدعم لينكس ، وفري بي إس دي ، ومعالجات إنتل IA بنظامي 32 أو 64 بت ، ومعالجات IBM POWER9 و ARM بنظامي 32 أو 64 بت.

كما يوفر نظام EAL خدمات إضافية تشمل المراجع الزمنية، والوصول العام إلى ناقل البيانات ، ووظائف التتبع والتصحيح، وعمليات الإنذار.

باستخدام مكتبات DPDK، يُمكن تنفيذ نموذج تشغيل كامل منخفض التكلفة ، أو نموذج خطي، أو نموذج مرحلي، أو نموذج قائم على الأحداث، أو نموذج هجين، كل ذلك في مساحة المستخدم، مما يُلغي الحاجة إلى نواة النظام ونسخها إلى المستخدم. يُساعد الدعم المادي من بطاقات الشبكة/التعبيرات النمطية/المُسرّعات ، بالإضافة إلى المكتبات المُحسّنة للاستفادة من تسريع التخزين الذكي (ISA) [ 9 ] لتحسين الأداء بشكل كبير، كما يُساعد الوصول إلى الأجهزة عبر الاستقصاء على التخلص من عبء الأداء الناتج عن المقاطعات . تُستخدم الصفحات الضخمة لتخصيص مساحات كبيرة من الذاكرة، مما يُقلل من عمليات البحث وإدارة الصفحات. [ 10 ]

يتضمن DPDK أيضًا أمثلة برمجية تسلط الضوء على أفضل الممارسات لهندسة البرمجيات، ونصائح لتصميم وتخزين بنية البيانات، وأدوات تحليل أداء التطبيقات وضبط الأداء، ونصائح تعالج أوجه القصور الشائعة في أداء الشبكة.

المكتبات

تتضمن DPDK مكتبات مستوى البيانات وبرامج تشغيل وحدة التحكم في واجهة الشبكة (NIC) المحسّنة لما يلي: [ 11 ]

  • يقوم مدير قائمة الانتظار بتنفيذ قوائم انتظار بدون تأمين.
  • يقوم مدير المخزن المؤقت بتخصيص مخازن مؤقتة ذات حجم ثابت مسبقًا
  • يقوم مدير الذاكرة بتخصيص مجموعات من الكائنات في الذاكرة ويستخدم حلقة لتخزين الكائنات غير المستخدمة؛ ويضمن توزيع الكائنات بالتساوي على جميع قنوات DRAM
  • تم تصميم برامج تشغيل وضع الاستقصاء (PMD) للعمل بدون إشعارات غير متزامنة، مما يقلل من الحمل الزائد
  • إطار عمل الحزم - مجموعة من المكتبات التي تساعد في تطوير معالجة الحزم

يتم تخزين جميع المكتبات في الدلائل dpdk/lib/librte_*

الإضافات

تتضمن حزمة تطوير البرامج (DPDK) برامج تشغيل لأنواع عديدة من الأجهزة. [ 12 ] وقد وُجدت في السابق بعض برامج التشغيل الإضافية الخارجية، والتي تُعتبر الآن قديمة.

  • librte_pmd_vmxnet3.so يوفر طبقة إيثرنت PMD التي تدعم بطاقة الشبكة الافتراضية Vmxnet3؛ تم استبدالها بدعم VMXNET3 الكامل في DPDK الأصلي. 
  • librte_pmd_memnic_copy.so يوفر طبقة إيثرنت افتراضية لبروتوكول PMD من خلال ذاكرة مشتركة تعتمد على نسختين من الحزم في الذاكرة 

بيئة

صُممت حزمة تطوير البرامج DPDK في الأصل للعمل باستخدام وضع التشغيل المباشر (bare-metal mode)، وهو وضع مُهمل حاليًا. يوفر نظام إدارة التطبيقات (EAL) الخاص بحزمة DPDK دعمًا لتطبيقات بيئة المستخدم في أنظمة Linux أو FreeBSD .

يمكن توسيع نطاق EAL لدعم أي معالجات.

النظام البيئي

يُعدّ DPDK الآن مشروعًا مفتوح المصدر تابعًا لمؤسسة لينكس ، ويحظى بدعم العديد من الشركات. ويخضع DPDK لإدارة مجلس إدارة، بينما يشرف مجلس تقني على أنشطته التقنية. [ 13 ] إلى جانب شركة إنتل ، المساهمة في DPDK، يدعم العديد من الموردين الآخرين DPDK ضمن منتجاتهم، ويقدم بعضهم تدريبًا ودعمًا وخدمات احترافية إضافية. تشمل قائمة الموردين الذين أعلنوا دعمهم لـ DPDK: 6WIND ، [ 14 ] وALTEN Calsoft Labs، [ 15 ] [ 16 ] وAdvantech، [ 17 ] وBrocade، [ 18 ] وBig Switch Networks، و Mellanox Technologies ، [ 19 ] وRadisys ، [ 20 ] وTieto، [ 21 ] وWind River ، [ 22 ] و Lanner Inc. ، [ 23 ] و NXP . [ 24 ]

المشاريع

نشر مشروع pfSense خارطة طريق في 25 فبراير 2015، أعلن فيها المطور جيم تومسون عن إعادة كتابة نواة pfSense - بما في ذلك pf ، وتوجيه حزم الشبكة وتشكيلها، وربط الروابط ، وIPsec - باستخدام DPDK: "هدفنا هو القدرة على التوجيه، مع تصفية الحزم بمعدلات لا تقل عن 14.88  مليون حزمة في الثانية. هذا هو معدل نقل البيانات على  واجهة 10 جيجابت في الثانية. ببساطة، لا توجد طريقة لاستخدام حزم نواة FreeBSD (أو Linux) الحالية لهذا النوع من الأحمال." [ 25 ]

يحتوي Open vSwitch (OVS) على مجموعة محدودة من الميزات التي تعمل على مستوى المستخدم، والتي يمكن استغلالها لتجاوز معالجة OVS في نواة لينكس. تُعرف حالة استخدام OVS مع DPDK في مستوى المستخدم عادةً باسم OVS-DPDK. يتم نشرها في الغالب مع OpenStack Neutron، ولكنها تفترض تعطيل العديد من ميزات وإمكانيات الشبكات المعرفة بالبرمجيات (SDN) في OpenStack. على سبيل المثال، عند استخدام OVS-DPDK، يوفر Neutron مستوى أمان أقل مما هو عليه عند استخدام نواة OVS (لا يوجد جدار حماية ذو حالة، ومجموعة أمان أقل).

منصة FD.IO VPP هي إطار عمل قابل للتوسيع يوفر وظائف تبديل/توجيه عالية الجودة وجاهزة للاستخدام الفوري. وهي النسخة مفتوحة المصدر من تقنية معالجة حزم البيانات المتجهة (VPP) من سيسكو: وهي حزمة معالجة حزم بيانات عالية الأداء تعمل على وحدات المعالجة المركزية العادية، وتستفيد من برامج تشغيل وضع الاستقصاء لكل من بطاقات الشبكة وأجهزة ومكتبات تسريع التشفير. [ 26 ] تدعم VPP مكتبة DPDK وتستخدمها. [ 27 ]

TRex هو مولد حركة مرور مفتوح المصدر يستخدم DPDK. يُولّد حركة مرور من الطبقة الرابعة إلى السابعة (L4-7) بناءً على المعالجة المسبقة وإعادة التشغيل الذكية لقوالب حركة المرور الحقيقية. يُضخّم TRex حركة المرور من جانب العميل والخادم، ويمكن توسيعه ليصل إلى 200  جيجابت/ثانية باستخدام وحدة UCS واحدة مزودة بمعالج Intel XL710. يدعم TRex أيضًا تدفقات متعددة، وإمكانية تغيير أي حقل في الحزمة، ويوفر إحصائيات لكل تدفق، بالإضافة إلى زمن الاستجابة والارتعاش. [ 28 ]

DTS (مجموعة اختبارات DPDK) هو إطار عمل قائم على لغة بايثون لاختبارات الوظائف ومعايير الأداء. وهو مشروع مفتوح المصدر، بدأ في عام 2014، ويتم استضافته على موقع dpdk.org. يدعم DTS كلاً من مولدات حركة البيانات البرمجية مثل Scapy وdpdk-pktgen، ومولدات حركة البيانات المادية مثل Ixia . [ 29 ]

يدعم DPDK العديد من برامج تشغيل شبكة SRIOV ، مما يتيح إنشاء PF (الوظيفة الفيزيائية) وVFs، وكذلك تشغيل الأجهزة الافتراضية (مثل QEMU VMs) وتعيين VFs لها باستخدام PCI Passthrough [ 30 ].

تُعدّ DDP (التخصيص الديناميكي للأجهزة) إحدى الميزات المتقدمة الجديدة المُطبقة مع DPDK. وهي تتيح لك تحميل البرامج الثابتة للجهاز ديناميكيًا، دون إعادة ضبط الجهاز المضيف. [ 31 ]

انظر أيضاً

مراجع

  1. "DPDK" . core.dpdk.org .
  2. سيمون ستانلي، تغيير جذري في معالجة الحزم، مؤرشف في 21 أغسطس 2016 في أرشيف الإنترنت ، هيفي ريدينغ، 2013
  3. شاموس ماكجيليكودي، دي بي دي كي، تصميمات مرجعية للمفاتيح والخوادم تدفع نظام SDN البيئي إلى الأمام. مؤرشف في 18 سبتمبر 2015 في Wayback Machine ، SearchSDN، أبريل 2013
  4. "DPDK: مجموعة أدوات تطوير مستوى البيانات - ما هي؟" . dpdk.org . تم الاطلاع عليه بتاريخ 29 مارس 2016 .
  5. سيمون ستانلي، DPDK يصبح مفتوح المصدر ، مجتمع إنتل للأنظمة المدمجة، مايو 2013
  6. "في ذكرى محبة: فينكي فينكاتيسان، "أبو دي بي دي كي""" . DPDK . تم الاطلاع عليه بتاريخ 12 مايو 2022 .
  7. وثائق DPDK، مجموعة أدوات تطوير مستوى البيانات: دليل المبرمجين ، سبتمبر 2017
  8. "كيف يمكن لـ DPDK الوصول إلى الأجهزة من مساحة المستخدم؟" . CodiLime . 22 أغسطس 2019. تم الاطلاع عليه بتاريخ 28 أغسطس 2019 .
  9. "كيف يمكن لـ DPDK أن يقلل من حجم بياناتك! | SNIA" . www.snia.org . تم الاطلاع عليه بتاريخ 21 يونيو 2021 .
  10. PANTHEON.tech (9 يناير 2020). "VPP 105: إدارة الذاكرة وواجهات برمجة تطبيقات DPDK" . PANTHEON.tech . تم الاطلاع عليه بتاريخ 21 يونيو 2021 .
  11. قسم البنية التحتية للاتصالات في شركة إنتل، نظرة عامة على مجموعة أدوات تطوير مستوى البيانات ، ديسمبر 2012
  12. " دعم نظام التحقق من الهوية الوطنية "
  13. المجلس الفني لـ DPDK
  14. PRWeb، 6WIND توسع برنامج معالجة الحزم المحمول لدعم مجموعة تطوير مستوى البيانات. مؤرشف في 26 مارس 2016 في Wayback Machine ، سبتمبر 2011
  15. ستقدم شركة Calsoft Labs خدمات ودعمًا احترافيًا لمجموعة أدوات تطوير Data Plane ، ALTEN Calsoft Labs، 18 فبراير 2014، مؤرشفة من الأصل في 4 مارس 2016 ، تم استرجاعها في 28 أكتوبر 2014
  16. "مكتبة الوثائق - البنى المرجعية، والأوراق البيضاء، وملخصات الحلول" . شركة إنتل® لبناء حلول الصناعة . تم الاطلاع بتاريخ 18 أكتوبر 2025 .
  17. مجلة COTS، شفرة ATCA تقدم معالج Xeon E5-2600، مؤرشفة في 4 مارس 2016 في Wayback Machine ، يونيو 2012
  18. جهاز توجيه بروكيد الافتراضي
  19. التقنيات، ميلانوكس. "مجموعة تطوير مستوى البيانات (DPDK) | برنامج تشغيل وضع الاستقصاء (PMD)" . ميلانوكس . تم الاسترجاع في 10 فبراير 2021 .
  20. ماركت ووتش، راديسيس تقدم أول حل 40G في الصناعة لمجموعة تطوير مستوى البيانات ، سبتمبر 2012
  21. شركة Tieto، تقدم Tieto خدمات برمجية احترافية ودعمًا لمجموعة أدوات تطوير Data Plane. مؤرشفة في 27 أغسطس 2021 على موقع Wayback Machine ، فبراير 2012
  22. رويترز، ويند ريفر تقدم الدعم والخدمات لمجموعة أدوات تطوير مستوى البيانات لمعالجة الحزم عالية الأداء ، مايو 2012
  23. انطلق في رحلة طيران مع مجموعة تطوير Data Plane ، شركة Lanner Electronics Inc.، 20 فبراير 2013، مؤرشفة من الأصل في 6 ديسمبر 2015 ، تم استرجاعها في 11 يوليو 2013
  24. دعم منصة NXP في مجموعة أدوات تطوير مستوى البيانات
  25. تومسون، جيم (25 فبراير 2015). "مزيد من (خارطة طريق لـ pfSense)" . blog.pfsense.org . شركة Electric Sheep Fencing LLC . تم الاطلاع عليه بتاريخ 21 أبريل 2015 .
  26. " VPP fd.io" . wiki.fd.io. مؤسسة لينكس . تم الاطلاع عليه بتاريخ 29 ديسمبر 2016 .
  27. PANTHEON.tech (9 يناير 2020). "VPP 105: إدارة الذاكرة وواجهات برمجة تطبيقات DPDK" . PANTHEON.tech . تم الاطلاع عليه بتاريخ 21 يونيو 2021 .
  28. "TRex" . شركة سيسكو سيستمز . تم الاطلاع عليه بتاريخ 29 ديسمبر 2016 .
  29. رامي روزن، تسريع الشبكة باستخدام DPDK ، lwn.net، يوليو 2017
  30. رامي روزن، شبكات مساحة المستخدم باستخدام DPDK ، مجلة لينكس، أبريل 2018.
  31. رامي روزن، تحليل معمق لـ DPDK ، Kernel TLV، أغسطس 2018