5.5 OpenVswitch-DPDK
كونها مكتبة لا تفعل الكثير من تلقاء نفسها ، لذلك فهي تعتمد على المشاريع الناشئة التي تستفيد منها. أحد مستهلكات المكتبة التي تم تجميعها بالفعل في إصدار Ubuntu 16.04 هو OpenVswitch مع دعم DPDK في الحزمة openvswitch-switch-dpdk.
فيما يلي مثال على كيفية تثبيت OpenVswitch الأساسي وتكوينه باستخدام DPDK للاستخدام لاحقًا عبر libvirt / qemu-kvm.
sudo apt-get install openvswitch-switch-dpdk
sudo update-بدائل - set ovs-vswitchd / usr / lib / openvswitch-switch-dpdk / ovs-vswitchd- dpdk
صدى "DPDK_OPTS = '- dpdk -c 0x1 -n 4 -m 2048 - مالك المضيف libvirt-qemu: kvm --vhost-perm 0664'" | sudo tee -a / etc / default / openvswitch-switch
إعادة تشغيل sudo service openvswitch-switch
يرجى تذكر أنه يجب عليك تعيين الأجهزة لبرامج التشغيل المتوافقة مع DPDK (انظر أعلاه) قبل إعادة التشغيل.
القسم --vhost-owner libvirt-qemu: kvm -vhost-perm 0664 سيعمل على تعيين منافذ vhost_user مع المالك / الأذونات لتكون متوافقة مع طريقة Ubuntus لتشغيل qemu-kvm / libvirt بامتيازات منخفضة لمزيد من الأمان.
يرجى ملاحظة أن القسم -M 2048 هو أبسط إعداد numa لنظام مقبس واحد. إذا كان لديك عدة مآخذ ، فقد ترغب في تحديد كيفية تقسيم الذاكرة الخاصة بك فيما بينها ، على سبيل المثال - م 1024 ، 1024. يرجى العلم أن DPDK سيحاول العمل فقط مع الذاكرة المحلية لبطاقات الشبكة التي يعمل معها (لأسباب تتعلق بالأداء). ومع ذلك ، إذا كان لديك عدة عقد ، ولكن جميع بطاقات الشبكة على واحدة ، يجب أن تفكر في نشر البطاقات الخاصة بك. إذا لم يكن على الأقل تخصيص ذاكرتك للعقدة حيث توجد البطاقات ، على سبيل المثال في عقدتين ، كل ذلك في العقدة رقم 2: - م 0 ، 2048. يمكنك استخدام الأداة lstopo من العبوة hwloc-nox لمعرفة المقبس الذي توجد عليه البطاقات الخاصة بك.
يدعم OpenVswitch الذي بدأته الآن جميع أنواع المنافذ التي يقوم OpenVswitch بها عادةً ، بالإضافة إلى أنواع منافذ DPDK. فيما يلي مثال على كيفية إنشاء جسر و - بدلاً من منفذ خارجي عادي - إضافة منفذ DPDK خارجي إليه.
ovs-vsctl add-br ovsdpdkbr0 - تعيين الجسر ovsdpdkbr0 datapath_type = netdev ovs-vsctl add-port ovsdpdkbr0 dpdk0 - Set Interface dpdk0 type = dpdk
تم تغيير تمكين DPDK في Open vSwitch في الإصدار 2.6. لذلك لمستخدمي الإصدارات
> = 16.10 ، ولكن أيضًا لمستخدمي Ubuntu Cloud Archive37 > = نيوترون ، تم تغيير التمكين مقارنةً بمستخدمي Ubuntu 16.04. يتم الآن تكوين الخيارات التي تم تمريرها سابقًا عبر DPDK_OPTS عبر ovs-vsctl في قاعدة بيانات تكوين Open vSwitch.
سيبدو نفس المثال أعلاه بالطريقة الجديدة كما يلي:
37 https://wiki.ubuntu.com/OpenStack/CloudArchive
# تمكين DPDK
تعيين ovs-vsctl Open_vSwitch. "other_config: dpdk-init = true"
# تشغيل على النواة 0
تعيين ovs-vsctl Open_vSwitch. "other_config: قناع dpdk-lcore = 0x1"
# تخصيص صفحات 2G الضخمة (لا تدرك عقدة نوما)
تعيين ovs-vsctl Open_vSwitch. "other_config: dpdk-تخصيص-mem = 2048"
# مجموعة / أذونات لمآخذ vhost-user (مطلوبة للعمل مع libvirt / qemu) مجموعة ovs-vsctl Open_vSwitch. \
"other_config: dpdk-extra = - مالك vhost libvirt-qemu: kvm --vhost-perm 0666"
يرجى الاطلاع على وثائق المنبع المرتبطة وصفحة الدليل لتكوين vswitch كما هو موضح في الحزمة لمزيد من التفاصيل:
• /usr/share/doc/openvswitch-common/INSTALL.DPDK.md.gz
• /usr/share/doc/openvswitch-common/INSTALL.DPDK-ADVANCED.md.gz
• رجل ovs-vswitchd.conf.db