एसआर-आईओवी (Single Root Input/Output Virtualization
) एक होस्ट हार्डवेयर डिवाइस वर्चुअलाइजेशन तकनीक है जो वर्चुअल मशीन को होस्ट डिवाइस तक सीधे पहुंच की अनुमति देती है। यह विभिन्न प्रकार के उपकरणों का वर्चुअलाइजेशन कर सकता है, लेकिन अक्सर इसका उपयोग नेटवर्क एडेप्टर को वर्चुअलाइज करने के लिए किया जाता है। इस लेख में, हम आपको दिखाएंगे कि विंडोज हाइपर-वी सर्वर पर वर्चुअल मशीन नेटवर्क एडेप्टर के लिए एसआर-आईओवी को कैसे सक्षम और कॉन्फ़िगर किया जाए।
एसआरवी-आईओवी हाइपर-वी 2012+ में समर्थित है, जिसमें मुफ्त विंडोज हाइपर-वी सर्वर भी शामिल है। हम SR-IOV सिद्धांतों को विस्तार से नहीं समझेंगे, क्योंकि आप वेब पर पूर्ण दिशानिर्देश प्राप्त कर सकते हैं। व्यावहारिक समझ के लिए, यह जानना पर्याप्त है कि SR-IOV VMs के लिए होस्ट के भौतिक नेटवर्क एडेप्टर तक सीधी पहुंच प्रदान करने और हाइपर- V वर्चुअल स्विच द्वारा ट्रैफ़िक प्रोसेसिंग को बायपास करने की अनुमति देता है। SR-IOV मोड में एक भौतिक नेटवर्क एडेप्टर कई वर्चुअल मशीनों की सेवा कर सकता है।
हाइपर-V वर्चुअल मशीनों के लिए SR-IOV का उपयोग करने के कारण, आप थ्रूपुट में उल्लेखनीय वृद्धि करने में सक्षम होंगे। , नेटवर्क विलंबता और CPU लोड कम करें हाइपर-V सॉफ़्टवेयर द्वारा नेटवर्क ट्रैफ़िक के संसाधन के कारण होता है।
SR-IOV NIC टीमिंग के अनुकूल नहीं है।अपने हाइपर-V होस्ट पर SRV-IOV को सक्षम करने के लिए, कुछ आवश्यकताओं को पूरा किया जाना चाहिए।
सबसे पहले, अपने सर्वर के BIOS में SRV-IOV और वर्चुअलाइजेशन सपोर्ट को इनेबल करें। विक्रेता के आधार पर, सेटिंग्स भिन्न हो सकती हैं।
- वर्चुअलाइजेशन समर्थन:इंटेल (वर्चुअलाइजेशन टेक्नोलॉजी, इंटेल वीटी, वीटी-डी, वेंडरपूल), एएमडी (एसवीएम, एएमडी-वी)
- आईओएमएमयू
- एसआर-आईओवी
- एएसपीएम
हो सकता है कि आपके पास हर आइटम न हो, यहां तक कि कोई SR-IOV भी न हो। लेकिन इसका मतलब यह नहीं है कि SR-IOV आपके सर्वर द्वारा समर्थित नहीं है। उदाहरण के लिए, सुपरमाइक्रो मदरबोर्ड में BIOS में SR-IOV नहीं हो सकता है, लेकिन डिफ़ॉल्ट रूप से ASPM अक्षम है। यदि आप ASPM और वर्चुअलाइजेशन समर्थन को सक्षम करते हैं, तो SR-IOV स्वचालित रूप से सक्षम हो जाएगा।
ध्यान दें कि यदि BIOS सेटिंग्स में अक्षम SR-IOV के साथ एक होस्ट विंडोज ओएस स्थापित किया गया है, तो इसे सक्षम करने के बाद, एक सिस्टम मानता है कि आपने एक नेटवर्क एडेप्टर को बदल दिया है (वर्तमान स्थिर आईपी पता रीसेट है)।आप सुनिश्चित कर सकते हैं कि SR-IOV आपके हाइपर-V सर्वर द्वारा पावरशेल का उपयोग करके हार्डवेयर स्तर पर समर्थित है:
(get-vmhost).IovSupport
(get-vmhost).IovSupportReasons
यदि आपका सर्वर इस सुविधा का समर्थन करता है, तो IovSupport में True
. होगा . अगर ऐसा नहीं होता है, तो यह False
होगा . इस मामले में, IovSupportReasons आइटम कारण दिखाता है कि SR-IOV समर्थित क्यों नहीं है। आमतौर पर इसका कारण विस्तार से बताया गया है। यहाँ विशिष्ट कारण हैं:
- सिस्टम पर चिपसेट इंटरप्ट रीमैपिंग नहीं करता है, जिसके बिना SR-IOV समर्थित नहीं हो सकता।
- इस कंप्यूटर पर SR-IOV का उपयोग नहीं किया जा सकता क्योंकि प्रोसेसर सेकेंड-लेवल एड्रेस ट्रांसलेशन (SLAT) का समर्थन नहीं करता है। इंटेल प्रोसेसर के लिए, इस सुविधा को एक्सटेंडेड पेज टेबल्स (ईपीटी) के रूप में संदर्भित किया जा सकता है। एएमडी प्रोसेसर के लिए, इस सुविधा को रैपिड वर्चुअलाइजेशन इंडेक्सिंग (आरवीआई) या नेस्टेड पेज टेबल्स (एनपीटी) के रूप में संदर्भित किया जा सकता है।
- इस सिस्टम पर SR-IOV का उपयोग नहीं किया जा सकता क्योंकि PCI एक्सप्रेस हार्डवेयर किसी रूट पोर्ट पर एक्सेस कंट्रोल सर्विसेज (ACS) का समर्थन नहीं करता है। अधिक जानकारी के लिए अपने सिस्टम विक्रेता से संपर्क करें।
- इस कंप्यूटर पर SR-IOV का उपयोग करने के लिए, BIOS को अद्यतन किया जाना चाहिए क्योंकि इसमें हार्डवेयर क्षमताओं का वर्णन करने वाली गलत जानकारी है। अपडेट के लिए अपने कंप्यूटर निर्माता से संपर्क करें।
- सिस्टम पर चिपसेट डीएमए रीमैपिंग नहीं करता है, जिसके बिना SR-IOV समर्थित नहीं हो सकता।
- इस सिस्टम पर SR-IOV का उपयोग नहीं किया जा सकता क्योंकि इसे I/O रीमैपिंग हार्डवेयर के उपयोग को अक्षम करने के लिए कॉन्फ़िगर किया गया है।
- इस सिस्टम पर SR-IOV का उपयोग करने के लिए, Windows को PCI एक्सप्रेस को नियंत्रित करने की अनुमति देने के लिए सिस्टम BIOS को अद्यतन किया जाना चाहिए। अपडेट के लिए अपने सिस्टम निर्माता से संपर्क करें।
- सुनिश्चित करें कि सिस्टम में SR-IOV के लिए चिपसेट समर्थन है और BIOS में I/O वर्चुअलाइजेशन सक्षम है।
- इस सिस्टम पर SR-IOV का उपयोग नहीं किया जा सकता क्योंकि यह रिपोर्ट कर रहा है कि कोई PCI एक्सप्रेस बस नहीं है। अधिक जानकारी के लिए अपने सिस्टम निर्माता से संपर्क करें।
get-vmswitch | fl *iov*
कमांड में कुछ उपयोगी जानकारी होती है। उदाहरण के लिए:
IovVirtualFunctionCount : 6 IovVirtualFunctionsInUse : 3
संख्याएं दिखाती हैं कि कितने IOV वर्चुअल डिवाइस उपलब्ध हैं और उनमें से कितने वर्चुअल मशीन द्वारा उपयोग किए जाते हैं।
हाइपर-V वर्चुअल स्विच बनाते समय, SR-IOV समर्थन विकल्प की जाँच करें — सिंगल-रूट I/O वर्चुअलाइजेशन (SR-IOV) सक्षम करें ।
या PowerShell का उपयोग करके वर्चुअल स्विच बनाते समय EnableIOV विकल्प को सक्षम करें:
New-VMSwitch -Name "VMNetExt" -NetAdapterName "Ethernet 2" -EnableIov 1
यदि SR-IOV एक हाइपरविजर होस्ट द्वारा समर्थित है, तो इसका मतलब यह नहीं है कि यह एक विशिष्ट वर्चुअल स्विच पर काम करेगा। स्विच SR-IOV समर्थन वाले नेटवर्क एडेप्टर से बंधा होना चाहिए।
एक और महत्वपूर्ण बात है। एक मदरबोर्ड में कई नेटवर्क एडेप्टर हो सकते हैं, लेकिन SR-IOV केवल उनमें से कुछ द्वारा समर्थित हो सकता है। इसके अलावा, यदि SR-IOV अपने डेटाशीट के अनुसार एडेप्टर द्वारा समर्थित है, तो इसका मतलब यह नहीं है कि यह आपके मदरबोर्ड पर काम कर रहा है।
इसलिए, एक स्विच को कॉन्फ़िगर करने के बाद, इसे कमांड का उपयोग करके जांचें:
get-vmswitch | select IovSupport, IovSupportReasons, IovEnabled
. चुनें
IovEnabled विकल्प दिखाता है कि SR-IOV सक्षम है या नहीं।
आप पावरशेल का उपयोग करके SR-IOV समर्थन वाले नेटवर्क एडेप्टर की सूची प्रदर्शित कर सकते हैं:
Get-NetAdapterSriov | sort name | ft Name, InterfaceDescription, SriovSupport
हाइपरवाइजर और वर्चुअल स्विच स्तरों पर SR-IOV को सक्षम करने के बाद, आप इसे अपने वर्चुअल मशीन पर सक्षम कर सकते हैं (यह डिफ़ॉल्ट रूप से अक्षम है)। आपको SR-IOV सक्षम करें . मिल सकता है हार्डवेयर त्वरण . में विकल्प आपके वर्चुअल मशीन नेटवर्क एडेप्टर का अनुभाग।
या आप पावरशेल के माध्यम से वर्चुअल मशीन के नेटवर्क एडेप्टर के लिए SR-IOV को सक्षम कर सकते हैं:
Set-VMNetworkAdapter -VMName mytestvm -VMNetworkAdapterName “Network Adapter” -IovWeight 100
आप हाइपर-V में सभी SR-IOV त्रुटियों और घटनाओं को एक अलग इवेंट व्यूअर लॉग के साथ पा सकते हैं:
अनुप्रयोग और सेवाएँ लॉग्स -> Microsoft -> Windows -> Hyper-V-SynthNic -> Admin.
यदि SR-IOV ठीक से काम कर रहा है, तो आपको वर्चुअल मशीन स्टार्टअप पर इवेंट व्यूअर में निम्नलिखित प्रविष्टियाँ दिखाई देंगी:
12597 Network adapter (%NIC_ID%) Connected to virtual network. 12582 Network adapter (%NIC_ID%) started successfully. 12584 Network adapter (%NIC_ID%) allocated a virtual function. 12588 Network adapter (%NIC_ID%) assigned a virtual function.
SR-IOV वर्चुअल मशीन और एक हाइपरवाइजर के नेटवर्क प्रदर्शन को बढ़ाता है। आप वर्चुअल मशीनों के उच्च ट्रैफ़िक वाले हाइपर-V होस्ट पर SR-IOV का उपयोग करने के उच्चतम परिणाम देख सकते हैं, जिससे होस्ट CPU पर भारी भार पड़ता है।