<ก่อนหน้านี้ | Contents | ถัดไป>
5.5. OpenVswitch-DPDK
การเป็นห้องสมุดนั้นไม่ได้ช่วยอะไรมากในตัวเอง ดังนั้นมันจึงขึ้นอยู่กับโครงการใหม่ๆ ที่ใช้ประโยชน์จากมัน ผู้บริโภครายหนึ่งของไลบรารีที่รวมอยู่ใน Ubuntu 16.04 รีลีสคือ OpenVswitch พร้อมรองรับ DPDK ในแพ็คเกจ openvswitch-switch-dpdk
นี่คือตัวอย่างวิธีการติดตั้งและกำหนดค่า OpenVswitch พื้นฐานโดยใช้ DPDK เพื่อใช้งานในภายหลังผ่าน libvirt/ qemu-kvm
sudo apt-get ติดตั้ง openvswitch-switch-dpdk
sudo อัพเดตทางเลือก --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-เจ้าของ libvirt-qemu:kvm --vhost-perm 0664 จะตั้งค่าพอร์ต vhost_user พร้อมเจ้าของ / สิทธิ์เพื่อให้เข้ากันได้กับวิธีการรัน qemu-kvm/libvirt ของ Ubuntu ด้วยสิทธิ์ที่ลดลงเพื่อความปลอดภัยที่มากขึ้น
โปรดทราบว่าส่วน -m 2048 เป็นการตั้งค่า numa พื้นฐานที่สุดสำหรับระบบซ็อกเก็ตเดียว หากคุณมีหลายซ็อกเก็ต คุณอาจต้องการกำหนดวิธีแยกหน่วยความจำของคุณระหว่างซ็อกเก็ตเหล่านั้น ตัวอย่างเช่น -ม. 1024, 1024. โปรดทราบว่า DPDK จะพยายามทำงานเฉพาะกับหน่วยความจำภายในไปยังการ์ดเครือข่ายที่ใช้งานได้ (สำหรับเหตุผลด้านประสิทธิภาพ) ที่กล่าวว่าหากคุณมีหลายโหนด แต่การ์ดเครือข่ายทั้งหมดในที่เดียว คุณควรพิจารณากระจายการ์ดของคุณ ถ้าอย่างน้อยไม่จัดสรรหน่วยความจำของคุณไปยังโหนดที่มีการ์ดอยู่ ตัวอย่างเช่น ในสองโหนดทั้งหมดไปยังโหนด #2: -ม. 0, 2048. คุณสามารถใช้เครื่องมือ ลสโตโป จากแพ็คเกจ hwloc-nox เพื่อดูว่าการ์ดของคุณอยู่ที่ซ็อกเก็ตใด
OpenVswitch ที่คุณเริ่มตอนนี้รองรับพอร์ตทุกประเภทที่ OpenVswitch มักจะรองรับ บวกกับประเภทพอร์ต DPDK นี่คือตัวอย่างวิธีการสร้างบริดจ์และ - แทนที่จะเป็นพอร์ตภายนอกปกติ - เพิ่มพอร์ต DPDK ภายนอกเข้าไป
ovs-vsctl add-br ovsdpdkbr0 - ตั้งค่าบริดจ์ ovsdpdkbr0 datapath_type = netdev ovs-vsctl เพิ่มพอร์ต ovsdpdkbr0 dpdk0 - ตั้งค่าอินเทอร์เฟซ dpdk0 ประเภท = 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-mask=0x1"
# จัดสรรเพจขนาดใหญ่ 2G (ไม่รับรู้โหนด Numa)
ovs-vsctl ตั้งค่า Open_vSwitch "other_config:dpdk-alloc-mem=2048"
# กลุ่ม / สิทธิ์สำหรับซ็อกเก็ตผู้ใช้ vhost (จำเป็นต้องทำงานกับ libvirt/qemu) ovs-vsctl set Open_vSwitch \
"other_config:dpdk-extra=--vhost-owner libvirt-qemu:kvm --vhost-perm 0666"
โปรดดูเอกสารต้นทางที่เกี่ยวข้องและหน้า man ของการกำหนดค่า vswitch ที่จัดเตรียมโดยแพ็คเกจสำหรับรายละเอียดเพิ่มเติม:
• /usr/share/doc/openvswitch-common/INSTALL.DPDK.md.gz
• /usr/share/doc/openvswitch-common/INSTALL.DPDK-ADVANCED.md.gz
• ผู้ชาย ovs-vswitchd.conf.db