आपके VMWare ESXi होस्ट पर, आप स्थानीय रूप से जुड़े USB डिवाइस/फ्लैश ड्राइव/डिस्क को वर्चुअल मशीन के अंदर रीडायरेक्ट कर सकते हैं। इस तकनीक को USB पासथ्रू कहा जाता है और यह ESXi 4.1 से उपलब्ध है।
मान लीजिए, हमारा कार्य ESXi 6.7 होस्ट पर स्थानीय रूप से जुड़े बाहरी USB 3.0 ड्राइव को वर्चुअल मशीन में रीडायरेक्ट करना है। हमें VM से अलग USB ड्राइव पर डेटा जल्दी कॉपी करने के लिए ड्राइव तक पहुंच की आवश्यकता है।
VMWare USB पासथ्रू
पासथ्रू मोड ESXi होस्ट से जुड़े भौतिक डिवाइस को वर्चुअल मशीन के गेस्ट OS में सीधे रीडायरेक्ट करने की अनुमति देता है। पासथ्रू मोड में आप वर्चुअल मशीन को USB ड्राइव, मॉडेम या PCI/USB कंट्रोलर तक सीधी पहुंच प्रदान कर सकते हैं।
ESXi में USB डिवाइस रीडायरेक्ट करने के लिए, आपको कुछ मुख्य घटकों की आवश्यकता होगी:
- आर्बिट्रेटर ESXi होस्ट पर एक अलग सेवा है जो कनेक्टेड भौतिक USB डिवाइस को स्कैन करती है, होस्ट और VM के बीच USB डिवाइस ट्रैफिक को रूट करती है, और डिवाइस तक पहुंच को नियंत्रित करती है (केवल एक VM कनेक्टेड USB डिवाइस का उपयोग कर सकता है)। एक USB आर्बिट्रेटर एक साथ 15 USB कंट्रोलर तक ट्रैक कर सकता है।
- USB कंट्रोलर — एक USB कंट्रोलर भौतिक होस्ट और वर्चुअल मशीन दोनों पर इंस्टॉल होना चाहिए।
VMware ESXi पर VM के लिए USB कंट्रोलर इंस्टॉल करने के लिए, VM सेटिंग्स खोलें और एक नया डिवाइस जोड़ें — एक USB कंट्रोलर। USB कंट्रोलर जोड़ते समय, इसका प्रकार चुनें:
- USB 2.0 (EHCI+UHCI) — USB 2.0 और USB 1.1 डिवाइस का समर्थन करने वाला कंट्रोलर;
- USB 3.0 (xHCI) — तेज़ USB 3.0 डिवाइस का समर्थन करता है, वर्चुअल हार्डवेयर संस्करण 8 या उच्चतर की आवश्यकता होती है।
USB 3.0 मोड vSphere 5.5 पैच 3 से उपलब्ध है। इसका समर्थन करने के लिए, गेस्ट OS में xHCI कंट्रोलर चल रहा होना चाहिए। गेस्ट OS के रूप में विंडोज 8.1/विंडोज सर्वर 2012 R2 और कर्नेल संस्करण 2.6.35 या नए वाला लिनक्स समर्थित हैं।
ESXi VM में USB डिवाइस पासथ्रू करें
नेटिव USB पासथ्रू मोड में, आप होस्ट से भौतिक USB डिवाइस को VMware वर्चुअल मशीन से कनेक्ट कर सकते हैं।
इस रीडायरेक्शन विधि की मुख्य आवश्यकताएं और प्रतिबंध:
- वर्चुअल हार्डवेयर 7.0 या नया;
- आप केवल एक VM के लिए भौतिक USB डिवाइस तक सीधी पहुंच प्रदान कर सकते हैं;
- VM के लिए रीडायरेक्टेड USB डिवाइस की अधिकतम संख्या 20 है;
- जुड़े USB डिवाइस से VM बूट समर्थित नहीं है।
VM के लिए वर्चुअल USB कंट्रोलर जोड़ने के बाद, आप होस्ट से जुड़े USB ड्राइव को रीडायरेक्ट कर सकते हैं:
- VM सेटिंग्स में एक नया होस्ट USB डिवाइस जोड़ें और जोड़ें पर क्लिक करें;
- ड्रॉपडाउन सूची से कनेक्टेड USB डिवाइस चुनें;
- कनेक्टेड भौतिक USB ड्राइव वाली VM के लिए vMotion समर्थन सक्षम करने के लिए, डिवाइस कनेक्ट होने पर vMotion समर्थन करें विकल्प चेक करें;
- तब USB ड्राइव वर्चुअल मशीन के गेस्ट OS में प्रकट होगी।
रीडायरेक्टेड USB ड्राइव वाली VMs के लिए कुछ vMotion प्रतिबंध हैं:
- आप VM को रोक या पॉज़ नहीं कर सकते। यदि आप मशीन चालू करते हैं, तो आपको इसे मैन्युअली उस होस्ट पर माइग्रेट करना होगा जिससे USB डिवाइस जुड़ा है;
- DPM मोड समर्थित नहीं है, क्योंकि vCenter बिजली बचाने के लिए कनेक्टेड USB डिवाइस वाले होस्ट को बंद कर सकता है;
- VM और भौतिक USB डिवाइस वाले ESXi होस्ट vmk0 के माध्यम से TCP पोर्ट 902 पर पहुंच योग्य होने चाहिए।
यदि नया USB डिवाइस जोड़ते समय vSphere क्लाइंट एक संदेश दिखाता है कि कोई USB डिवाइस नहीं मिला (कोई उपलब्ध USB डिवाइस नहीं), तो इसका मतलब है कि VMware आपके USB ड्राइव को USB पासथ्रू मोड में रीडायरेक्ट करने के लिए समर्थन नहीं करता। आप आधिकारिक VMware वेबसाइट पर संगत USB डिवाइस की सूची पा सकते हैं (सूची लंबी नहीं है)। "ESXi 6.7 में ESXi होस्ट से वर्चुअल मशीन में पासथ्रू के लिए टेस्ट किए गए USB डिवाइस" सेक्शन देखें, लेख https://kb.vmware.com/s/article/1021345 में।
इस मामले में आप पूरे USB कंट्रोलर को ESXi होस्ट से VM में रीडायरेक्ट कर सकते हैं।
VMware PCI पासथ्रू (VMDirectPath): VM में USB कंट्रोलर रीडायरेक्ट करें
भौतिक USB डिवाइस तक VM से पहुंच प्रदान करने की एक अन्य, कम सुविधाजनक विधि ESXi होस्ट से पूरे USB कंट्रोलर को रीडायरेक्ट करना है। इस मोड को VMDirectPath कहा जाता है। इसका उपयोग करने के लिए, आपके सर्वर चिपसेट को इंटेल डायरेक्टेड I/O या AMD I/O वर्चुअलाइजेशन टेक्नोलॉजी (AMD IOMMU) का समर्थन करना चाहिए, और यह मोड BIOS/UEFI सेटिंग्स में सक्षम होना चाहिए।
यदि सर्वर पर केवल एक USB कंट्रोलर इंस्टॉल है और आप इसे VM में रीडायरेक्ट करते हैं, तो आप अपने होस्ट से स्थानीय रूप से जुड़े USB डिवाइस (कीबोर्ड, माउस) का उपयोग नहीं कर पाएंगे। इस मामले में, सर्वर में एक अतिरिक्त PCI USB कंट्रोलर जोड़ना बेहतर है।
यदि होस्ट में एकाधिक USB कंट्रोलर हैं, तो आप ESXi शेल के माध्यम से कनेक्टेड USB डिवाइस और कंट्रोलर नंबर की पहचान कर सकते हैं। USB डिवाइस की सूची प्रदर्शित करने के लिए:
# lsusb -v | grep -e Bus -e iSerial
आउटपुट में USB ड्राइव से संबंधित लाइन ढूंढें। उदाहरण के लिए:
Bus 002 Device 003: ID 0280:a00c Toshiba America Info. Systems, Inc.
फिर रूट हब और उसके iSerial की पहचान कंट्रोलर नंबर (Bus02, इस मामले में) द्वारा करें:
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 3.0 root hub iSerial 1 0000:00:1D.0
यदि आप अपना USB ड्राइव नहीं देखते हैं, तो इसे भौतिक रूप से डिस्कनेक्ट और पुनः कनेक्ट करने का प्रयास करें। vmkernel.log देखें कि क्या USB आर्बिट्रेटर ने आपके ड्राइव का पता लगाया है:
tail -f /var/log/vmkernel.log | grep -i USB
यदि USB ड्राइव आपके ESXi होस्ट द्वारा पता नहीं लगाया जाता है, तो सुनिश्चित करें कि usbarbitrator सेवा चल रही है:
#chkconfig usbarbitrator --list
usbarbitrator सेवा केवल तभी रोकें जब आप ESXi शेल से सीधे USB स्टिक एक्सेस करना चाहते हैं ताकि फाइलें कॉपी कर सकें।
तो हमें VM में रीडायरेक्ट किए जाने वाले USB कंट्रोलर का नंबर मिल गया है।
- भौतिक USB कंट्रोलर को रीडायरेक्ट करने के लिए, उस ESXi होस्ट का चयन करें जिस पर आपका VM चल रहा है और प्रबंधित करें → सेटिंग्स → PCI डिवाइस → संपादित करें पर जाएं;
- PCI डिवाइस की सूची में, इसके ID द्वारा आवश्यक USB कंट्रोलर चुनें (मेरे उदाहरण में, यह
00:1D.0है, कंट्रोलर कोC610/X99 श्रृंखला चिपसेट USB एनहांस्ड होस्ट कंट्रोलर #1 Intel Corporationकहा जाता है); - USB कंट्रोलर की स्थिति अनुपलब्ध (यह डिवाइस वर्तमान में VMs के उपयोग के लिए उपलब्ध नहीं है) से उपलब्ध (यह डिवाइस VMs के उपयोग के लिए उपलब्ध है) में बदलनी चाहिए। OK पर क्लिक करें;
- परिवर्तन सहेजने के लिए, अपने ESXi होस्ट को पुनः आरंभ करें;
- होस्ट बूट होने के बाद, अपना VM बंद करें और एक नया डिवाइस जोड़ें (नया डिवाइस → PCI डिवाइस → जोड़ें)। ड्रॉपडाउन सूची में अपना USB कंट्रोलर चुनें (उदाहरण के लिए,
0000:00:1D| Intel Corporation USB Chipset…); यदि PCI डिवाइस जोड़ते समय VM सेटिंग्स में निम्न संदेश प्रकट होता है: "चेतावनी: VM तब तक पावर ऑन नहीं होगा जब तक इसकी मेमोरी रिजर्वेशन इसके मेमोरी आकार के बराबर नहीं होती", अपने VM के लिए कुछ RAM रिजर्व करें। - VM को पावर ऑन करें और सुनिश्चित करें कि USB ड्राइव गेस्ट OS में प्रकट हुई है। मेरे मामले में, कनेक्टेड USB ड्राइव "Toshiba External USB 3.0 USB Device" गेस्ट Windows Server 2012 R2 में प्रकट हुई।
VMDirectPath मोड में, आप VM में अधिकतम दो भौतिक PCI डिवाइस रीडायरेक्ट कर सकते हैं।
रीडायरेक्टेड PCI डिवाइस वाली VM पर कुछ प्रतिबंध हैं: आप VM को पॉज़ नहीं कर सकते (सस्पेंड), किसी अन्य होस्ट पर vMotion नहीं कर सकते (यह तार्किक है, क्योंकि आप भौतिक कंट्रोलर से बंधे हैं) या स्नैपशॉट नहीं बना सकते।
हाइपर-V भी वर्चुअल मशीन में भौतिक USB डिवाइस के रीडायरेक्शन का समर्थन करता है।