5.5। ओपनवीस्विच-डीपीडीके
एक पुस्तकालय होने के नाते यह अपने आप बहुत कुछ नहीं करता है, इसलिए यह इसका उपयोग करने वाली उभरती परियोजनाओं पर निर्भर करता है। लाइब्रेरी का एक उपभोक्ता जो पहले से ही Ubuntu 16.04 रिलीज़ में बंडल किया गया है, वह OpenVswitch पैकेज openvswitch-switch-dpdk में DPDK समर्थन के साथ है।
यहां एक उदाहरण दिया गया है कि libvirt/ qemu-kvm के माध्यम से बाद में उपयोग के लिए DPDK का उपयोग करके एक बुनियादी OpenVswitch को कैसे स्थापित और कॉन्फ़िगर किया जाए।
sudo apt-get install openvswitch-switch-dpdk
सुडो अद्यतन-विकल्प --सेट ovs-vswitchd /usr/lib/openvswitch-switch-dpdk/ovs-vswitchd- DPDK
इको "DPDK_OPTS='--dpdk -c 0x1 -n 4 -m 2048 --vhost-owner libvirt-qemu:kvm --vhost-perm 0664'" | सुडो टी -ए /etc/default/openvswitch-switch
सुडो सेवा ओपनवीस्विच-स्विच पुनरारंभ
कृपया याद रखें कि पुनरारंभ करने से पहले आपको डिवाइस को DPDK संगत ड्राइवरों (ऊपर देखें) को असाइन करना होगा।
अनुभाग --vhost-मालिक libvirt-qemu:kvm --vhost-perm 0664 अधिक सुरक्षा के लिए कम विशेषाधिकारों के साथ qemu-kvm/libvirt चलाने के Ubuntu के तरीके के साथ संगत होने के लिए vhost_user पोर्ट को मालिक/अनुमतियों के साथ सेट करेगा।
कृपया ध्यान दें कि अनुभाग -m 2048 एकल सॉकेट सिस्टम के लिए सबसे बुनियादी नुमा सेटअप है। उदाहरण के लिए, यदि आपके पास एकाधिक सॉकेट हैं तो आप यह परिभाषित करना चाहेंगे कि अपनी मेमोरी को उनके बीच कैसे विभाजित किया जाए -एम 1024, 1024. कृपया ध्यान रखें कि डीपीडीके केवल उन नेटवर्क कार्डों की स्थानीय मेमोरी के साथ काम करने का प्रयास करेगा जिनके साथ वह काम करता है (प्रदर्शन कारणों से)। कहा गया है कि यदि आपके पास एकाधिक नोड हैं, लेकिन सभी नेटवर्क कार्ड एक पर हैं, तो आपको अपने कार्ड फैलाने पर विचार करना चाहिए। यदि नहीं, तो कम से कम अपनी मेमोरी को उस नोड पर आवंटित करें जहां कार्ड रहते हैं, उदाहरण के लिए दो नोड में सभी नोड #2 पर: -एम 0, 2048. आप टूल का उपयोग कर सकते हैं लस्टोपो पैकेज से hwloc-nox यह देखने के लिए कि आपके कार्ड किस सॉकेट पर स्थित हैं।
अब आपने जो OpenVswitch शुरू किया है वह सभी पोर्ट प्रकारों का समर्थन करता है जो OpenVswitch आमतौर पर करता है, साथ ही DPDK पोर्ट प्रकारों का भी। यहां एक उदाहरण दिया गया है कि ब्रिज कैसे बनाएं और - सामान्य बाहरी पोर्ट के बजाय - इसमें एक बाहरी डीपीडीके पोर्ट जोड़ें।
ovs-vsctl add-br ovsdpdkbr0 -- सेट ब्रिज ovsdpdkbr0 datapath_type=netdev ovs-vsctl ऐड-पोर्ट ovsdpdkbr0 dpdk0 -- सेट इंटरफ़ेस dpdk0 प्रकार=dpdk
संस्करण 2.6 में ओपन वीस्विच में डीपीडीके का सक्षमीकरण बदल गया है। तो रिलीज़ के उपयोगकर्ताओं के लिए
>=16.10, लेकिन उबंटू क्लाउड आर्काइव के उपयोगकर्ताओं के लिए भी37 >=न्यूट्रॉन सक्षमता Ubuntu 16.04 के उपयोगकर्ताओं की तुलना में बदल गई है। पहले DPDK_OPTS के माध्यम से पारित किए गए विकल्प अब ovs-vsctl के माध्यम से ओपन vSwitch कॉन्फ़िगरेशन डेटाबेस में कॉन्फ़िगर किए गए हैं।
ऊपर जैसा ही उदाहरण नए तरीके से दिखेगा:
37 https://wiki.ubuntu.com/OpenStack/CloudArchive
# DPDK सक्षम करें
ovs-vsctl ने Open_vSwitch सेट किया। "अन्य_कॉन्फिग:dpdk-init=सत्य"
# कोर 0 पर चलाएँ
ovs-vsctl ने Open_vSwitch सेट किया। "अन्य_कॉन्फिग:dpdk-lcore-mask=0x1"
# 2जी विशाल पेज आवंटित करें (नुमा नोड जागरूक नहीं)
ovs-vsctl ने Open_vSwitch सेट किया। "अन्य_कॉन्फिग:डीपीडीके-आवंटन-मेम=2048"
# vhost-उपयोगकर्ता सॉकेट के लिए समूह/अनुमतियाँ (libvirt/qemu के साथ काम करने के लिए आवश्यक) ovs-vsctl सेट 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