OnWorks Linux ו-Windows Online WorkStations

לוגו

אירוח מקוון בחינם עבור תחנות עבודה

<הקודם | תוכן | הבא>

5.5. OpenVswitch-DPDK


בהיותה ספרייה היא לא עושה הרבה בפני עצמה, אז היא תלויה בפרויקטים מתפתחים שעושים בה שימוש. צרכן אחד של הספרייה שכבר מצורפת במהדורת Ubuntu 16.04 הוא OpenVswitch עם תמיכה ב-DPDK בחבילה openvswitch-switch-dpdk.

הנה דוגמה כיצד להתקין ולהגדיר OpenVswitch בסיסי באמצעות DPDK לשימוש מאוחר יותר באמצעות libvirt/qemu-kvm.


sudo apt-get התקן openvswitch-switch-dpdk

sudo update-alternatives --set ovs-vswitchd /usr/lib/openvswitch-switch-dpdk/ovs-vswitchd-dpdk

echo "DPDK_OPTS='--dpdk -c 0x1 -n 4 -m 2048 --vhost-owner libvirt-qemu:kvm --vhost-perm 0664'" | sudo tee -a /etc/default/openvswitch-switch

שירות sudo openvswitch-switch הפעלה מחדש


זכור כי עליך להקצות התקנים למנהלי התקנים תואמים DPDK (ראה לעיל) לפני הפעלה מחדש.


החלק --vhost-owner libvirt-qemu:kvm --vhost-perm 0664 יגדיר יציאות vhost_user עם הרשאות בעלים/בעלים כדי להיות תואמות לדרך של אובונטו להפעיל את qemu-kvm/libvirt עם הרשאות מופחתות ליותר אבטחה.

שימו לב שהסעיף -מ 2048 היא הגדרת ה-numa הבסיסית ביותר עבור מערכת שקע בודד. אם יש לך מספר שקעים, אולי תרצה להגדיר כיצד לפצל את הזיכרון שלך ביניהם, למשל -m 1024, 1024. שימו לב ש-DPDK ינסה לעבוד רק עם זיכרון מקומי לכרטיסי הרשת איתם הוא עובד (מטעמי ביצועים). עם זאת, אם יש לך מספר צמתים, אבל כל כרטיסי הרשת באחד, עליך לשקול לפזר את הכרטיסים שלך. אם לא לפחות הקצו את הזיכרון שלכם לצומת שבו נמצאים הכרטיסים, למשל בצומת שני הכל לצומת מס' 2: -m 0, 2048. אתה יכול להשתמש בכלי לסטופו מהחבילה hwloc-nox כדי לראות באיזה שקע נמצאים הכרטיסים שלך.

ה-OpenVswitch שהתחלת כעת תומך בכל סוגי היציאות ש-OpenVswitch עושה בדרך כלל, בתוספת סוגי יציאות DPDK. הנה דוגמה כיצד ליצור גשר ובמקום יציאה חיצונית רגילה - להוסיף לו יציאת DPDK חיצונית.


ovs-vsctl add-br ovsdpdkbr0 -- set bridge ovsdpdkbr0 datapath_type=netdev ovs-vsctl add-port ovsdpdkbr0 dpdk0 -- set ממשק dpdk0 type=dpdk



תמונה

ההפעלה של DPDK ב-Open vSwitch השתנתה בגרסה 2.6. אז למשתמשי מהדורות

>=16.10, אבל גם למשתמשים בארכיון הענן של אובונטו37 >=נייטרון ההפעלה השתנתה בהשוואה לזו של משתמשי אובונטו 16.04. האפשרויות שהועברו בעבר דרך DPDK_OPTS מוגדרות כעת באמצעות ovs-vsctl לתוך מסד הנתונים של התצורה של Open vSwitch.


אותה דוגמה לעיל תיראה בדרך החדשה כך:


תמונה

37 https://wiki.ubuntu.com/OpenStack/CloudArchive



# אפשר DPDK

ovs-vsctl set Open_vSwitch . "other_config:dpdk-init=true"

# הפעל על ליבה 0

ovs-vsctl set Open_vSwitch . "other_config:dpdk-lcore-mask=0x1"

# הקצאת דפי 2G ענקיים (לא מודע לצומת Numa)

ovs-vsctl set Open_vSwitch . "other_config:dpdk-alloc-mem=2048"

# קבוצה/הרשאות עבור שקעי vhost-user (נדרש לעבודה עם libvirt/qemu) ovs-vsctl set Open_vSwitch . \

"other_config:dpdk-extra=--vhost-owner 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

man ovs-vswitchd.conf.db


מחשוב ענן מערכת ההפעלה המוביל ב-OnWorks: