कभी-कभी आपको बाहरी USB फ्लैश ड्राइव (स्टिक) को सीधे अपने VMware ESXi होस्ट से कनेक्ट करने की आवश्यकता हो सकती है। उदाहरण के लिए, आपको वर्चुअल मशीन इमेज को कॉपी करके रिमोट ऑफिस भेजने की आवश्यकता हो सकती है (यदि कार्यालयों के बीच WAN चैनल धीमा या अत्यधिक लोडेड है), VM फाइलों का बैकअप बाहरी USB मीडिया पर लेने के लिए, ISO फाइल या VM इमेज को ESXi होस्ट पर कॉपी करने के लिए (जब अपने LAN को ओवरलोड न करना बेहतर हो)। इस लेख में हम दिखाएंगे कि USB फ्लैश ड्राइव/स्टिक को ESXi होस्ट से VMFS डेटास्टोर के रूप में कैसे कनेक्ट करें या FAT32/NTFS पार्टीशन से सीधे फाइलें कॉपी करें।
VMware ESXi में बाहरी USB ड्राइव को VMFS डेटास्टोर के रूप में कैसे कनेक्ट करें?
मान लीजिए आप ESXi होस्ट पर USB ड्राइव कनेक्ट करना चाहते हैं और उस पर VMFS डेटास्टोर बनाना चाहते हैं ताकि वर्चुअल मशीनों की फाइलों और इमेज को आसानी से कॉपी/मूव कर सकें।
आधिकारिक तौर पर, VMware VMFS डेटास्टोर के रूप में बाहरी USB ड्राइव का समर्थन नहीं करता। हालांकि, यह काम करता है और आप इसका उपयोग कर सकते हैं। साथ ही, ESXi 2 TB से बड़े USB डिवाइस का समर्थन नहीं करता।
VMware ESXi 6.5 और उच्चतर में, होस्ट पर USB डिवाइस कनेक्ट करने की विधि बदल गई थी। पहले कई ड्राइवर्स (xhci, ehci-hcd, usb-uhci, usb-storage) उपयोग किए जाते थे। फिर एक सिंगल USB ड्राइवर (vmkusb) ने उन सभी को बदल दिया।
- SSH के माध्यम से ESXi कंसोल से कनेक्ट करें;
- USB आर्बिट्रेटर बंद करें। यह सेवा ESXi होस्ट से वर्चुअल मशीन में USB डिवाइस को पासथ्रू करने के लिए उपयोग की जाती है (USB पासथ्रू):
# /etc/init.d/usbarbitrator stopयदि आप नहीं चाहते कि होस्ट रीस्टार्ट के बाद USB आर्बिट्रेटर शुरू हो, तो कमांड चलाएं:# chkconfig usbarbitrator off - अपने ESXi होस्ट पर खाली USB ड्राइव कनेक्ट करें;
- आप लॉग में USB ड्राइव का नाम पहचान सकते हैं: /var/log/vmkernel.log या /dev/disks का उपयोग करके:
# ls /dev/disks/USB डिस्क आमतौर पर mpx.vmhbaX या naa.X नामित होती है।

- अपने USB ड्राइव पर GPT (GUID) पार्टीशन टेबल बनाएं:
# partedUtil mklabel /dev/disks/naa.5000000000000001 gpt - फिर अपनी ड्राइव पर मैन्युअली पार्टीशन बनाएं। ऐसा करने के लिए, ड्राइव पर पहला और अंतिम सेक्टर निर्दिष्ट करें। डिस्क सेक्टर्स के बारे में जानकारी सूचीबद्ध करें:
# partedUtil getptbl /dev/disks/naa.5000000000000001

- पहला सेक्टर हमेशा 2048 होता है। अंतिम सेक्टर का आकार getptbl आउटपुट के आधार पर गणना की जाती है। मेरे उदाहरण में, इसकी गणना इस प्रकार की जाती है:
121597 * 255 * 63 -1 = 1953455804
यदि ड्राइव पर कोई पार्टीशन है, तो आप इसे हटा सकते हैं:# partedUtil delete /dev/disks/naa.5000000000000001 1 - VMFS पार्टीशन बनाएं (ऐसे पार्टीशन का GUID हमेशा AA31E02A400F11DB9590000C2911D1B8 होता है):
# partedUtil setptbl /dev/disks/naa.5000000000000001 gpt "1 2048 1953455804 AA31E02A400F11DB9590000C2911D1B8 0" - फिर आप पार्टीशन को VMFS6 के साथ फॉर्मेट कर सकते हैं:
# vmkfstools -C vmfs6 -S USB-HDD-DSDatastore /dev/disks/naa.5000000000000001:1 - ग्राफिकल VMware vSphere क्लाइंट खोलें और Storages पर जाएं। आपकी USB ड्राइव उपलब्ध डेटास्टोर की सूची में दिखाई देगी।

USB ड्राइव (NTFS/FAT32) से ESXi में सीधे फाइलें कैसे कॉपी करें?
यदि आप अपने USB ड्राइव पर फाइल सिस्टम को VMFS में नहीं बदलना चाहते हैं (VMFS को Windows से एक्सेस करने की एक छोटी ट्रिक है), तो आप ESXi कंसोल से NTFS या FAT32 फॉर्मेटेड पार्टीशन पर फाइलों को एक्सेस कर सकते हैं और वांछित फाइलें कॉपी कर सकते हैं।
ESXi होस्ट पर USB ड्राइव कनेक्ट करने से पहले USB आर्बिट्रेटर सेवा अक्षम करें।
ESXi से FAT32 फॉर्मेटेड पार्टीशन एक्सेस करने के लिए, आप mcopy टूल का उपयोग कर सकते हैं। USB ड्राइव पर NTFS पार्टीशन एक्सेस करने के लिए, ntfscat उपयोग करें। Ext3 फाइल सिस्टम भी मूल रूप से समर्थित है। मूल प्रतिबंध हैं:
- FAT32 और Ext3 पार्टीशन पढ़ने और लिखने के लिए उपलब्ध हैं;
- NTFS ड्राइव केवल पढ़ने के लिए हैं (इसका मतलब है कि आप NTFS USB ड्राइव से ESXi होस्ट पर डेटा कॉपी कर सकते हैं, लेकिन इसके विपरीत नहीं)।
FAT32 USB डिवाइस से ESXi पर फाइल कॉपी करने के लिए, इस कमांड का उपयोग करें:
# /bin/mcopy -i "/dev/disks/naa.5000000000000001:2" ::/some.iso /vmfs/volumes/12345678-ddd654321-4321-aaaabbbb2222/iso/some.iso
जहां /some.iso आपके USB ड्राइव पर फाइल का पथ है। दूसरा पथ दिखाता है कि ESXi होस्ट पर फाइल कहां कॉपी करनी है (उदाहरण के लिए, सीधे VMFS डेटास्टोर पर)।
ESXi से USB पर वापस फाइल कॉपी करने के लिए, कमांड में पथों को स्वैप करें।
मुख्य FAT32 समस्या यह है कि यह 4 GB से अधिक फाइलों का समर्थन नहीं करता। इसलिए VMs की VMDK फाइलों को कॉपी करना काफी कठिन है। नियम के रूप में, आप कॉपी करने से पहले सोर्स फाइल को कुछ भागों में विभाजित कर सकते हैं (उदाहरण के लिए, 3 GB के):
# split -b 3221225472 /vmfs/volumes/xx/vm1/vm1.vmdk
फिर आप सभी भागों को USB ड्राइव पर कॉपी कर सकते हैं और उन्हें टारगेट ESXi होस्ट पर जोड़ सकते हैं:
# cat vm1* > vm1.vmdk
NTFS फॉर्मेटेड USB ड्राइव से ESXi होस्ट पर फाइल कॉपी करने के लिए, निम्न कमांड का उपयोग किया जाता है:
# /bin/ntfscat -f /dev/disks/naa.5000000000000001:2" some.iso > /vmfs/volumes/12345678-ddd654321-4321-aaaabbbb2222/iso/some.iso
आप केवल ESXi पर फाइलें कॉपी कर सकते हैं, वापस नहीं। ntfscat से NTFS पर लिखा नहीं जा सकता।