เวิร์กสเตชันออนไลน์ของ OnWorks Linux และ Windows

โลโก้

ฟรีโฮสติ้งออนไลน์สำหรับเวิร์กสเตชัน

<ก่อนหน้านี้ | 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


ระบบปฏิบัติการคลาวด์คอมพิวติ้งยอดนิยมที่ OnWorks: