บางครั้งคุณอาจต้องเชื่อมต่อแฟลชไดรฟ์ USB ภายนอก (แท่ง) กับโฮสต์ VMWare ESXi ของคุณโดยตรง ตัวอย่างเช่น คุณอาจต้องคัดลอกอิมเมจเครื่องเสมือนเพื่อส่งไปยังสำนักงานระยะไกล (หากช่อง WAN ระหว่างสำนักงานทำงานช้าหรือโหลดมาก) เพื่อสำรองไฟล์ VM ไปยังสื่อ USB ภายนอก เพื่อคัดลอกไฟล์ ISO หรือ อิมเมจ VM ไปยังโฮสต์ ESXi (เมื่อจะดีกว่าที่จะไม่โอเวอร์โหลด LAN ของคุณ) ในบทความนี้ เราจะแสดงวิธีเชื่อมต่อแฟลชไดรฟ์ USB/แท่งกับโฮสต์ ESXi เป็น VMFS datastore หรือเพื่อคัดลอกไฟล์จากพาร์ติชั่น FAT32/NTFS โดยตรง
จะเชื่อมต่อไดรฟ์ USB ภายนอกเป็น VMFS Datastore ใน VMWare ESXi ได้อย่างไร
สมมติว่าคุณต้องการเชื่อมต่อไดรฟ์ USB กับโฮสต์ ESXi และสร้างที่เก็บข้อมูล VMFS เพื่อคัดลอก/ย้ายไฟล์และรูปภาพของเครื่องเสมือนอย่างสะดวก
อย่างเป็นทางการ VMWare ไม่รองรับไดรฟ์ USB ภายนอกเป็น VMFS datastore อย่างไรก็ตาม มันใช้งานได้และคุณสามารถใช้งานได้ นอกจากนี้ ESXi ยังไม่รองรับอุปกรณ์ USB ที่มีขนาดใหญ่กว่า 2 TBใน VMWare ESXi 6.5 ขึ้นไป วิธีการเชื่อมต่ออุปกรณ์ USB กับโฮสต์มีการเปลี่ยนแปลง ก่อนหน้านี้มีการใช้ไดรเวอร์หลายตัว (xhci, ehci-hcd, usb-uhci, usb-storage) จากนั้นไดรเวอร์ USB ตัวเดียว (vmkusb ) แทนที่ทั้งหมดแล้ว
- เชื่อมต่อกับคอนโซล ESXi ผ่าน SSH;
- หยุด USB อนุญาโตตุลาการ . บริการนี้ใช้เพื่อส่งผ่านอุปกรณ์ USB จากโฮสต์ ESXi ไปยังเครื่องเสมือน (USB Passthrough):
# /etc/init.d/usbarbitrator stop
หากคุณไม่ต้องการให้อนุญาโตตุลาการ USB เริ่มทำงานหลังจากการรีสตาร์ทโฮสต์ ให้รันคำสั่ง:# chkconfig usbarbitrator off
- เชื่อมต่อไดรฟ์ USB เปล่ากับโฮสต์ ESXi ของคุณ
- คุณสามารถระบุชื่อของไดรฟ์ USB ได้ในบันทึก:/var/log/vmkernel.log หรือใช้ /dev/disks :
# ls /dev/disks/
ดิสก์ USB มักจะมีชื่อว่า mpx.vmhbaX หรือ naa.X . - สร้างตารางพาร์ติชัน GPT (GUID) บนไดรฟ์ USB ของคุณ:
# 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 Client และไปที่ Storages . ไดรฟ์ USB ของคุณจะปรากฏในรายการที่เก็บข้อมูลที่มี
จะคัดลอกไฟล์จากไดรฟ์ USB (NTFS/FAT32) ไปยัง ESXi โดยตรงได้อย่างไร
หากคุณไม่ต้องการเปลี่ยนระบบไฟล์บนไดรฟ์ USB ของคุณเป็น VMFS (มีเคล็ดลับเล็กน้อยในการเข้าถึง VMFS จาก Windows) คุณสามารถเข้าถึงไฟล์บนพาร์ติชันที่จัดรูปแบบ NTFS หรือ FAT32 จากคอนโซล ESXi และคัดลอกไฟล์ที่คุณต้องการ .
ปิดใช้งานบริการอนุญาโตตุลาการ USB ก่อนเชื่อมต่อไดรฟ์ USB กับโฮสต์ ESXiในการเข้าถึงพาร์ติชันที่จัดรูปแบบ FAT32 จาก ESXi คุณสามารถใช้ mcopy เครื่องมือ. ในการเข้าถึงพาร์ติชัน NTFS บนไดรฟ์ USB ให้ใช้ ntfscat . ระบบไฟล์ Ext3 ยังรองรับอยู่แต่เดิม ข้อจำกัดพื้นฐานคือ:
- FAT32 และ Ext3 มีพาร์ติชั่นให้อ่านและเขียน
- NTFS ไดรฟ์เป็นแบบอ่านอย่างเดียว (หมายความว่าคุณสามารถคัดลอกข้อมูลจากไดรฟ์ NTFS USB ไปยังโฮสต์ ESXi ได้ แต่จะทำในทางกลับกันไม่ได้)
ในการคัดลอกไฟล์จากอุปกรณ์ USB FAT32 ไปยัง 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 ดังนั้นจึงค่อนข้างยากที่จะคัดลอกไฟล์ VMDK ของเครื่องเสมือน ตามกฎแล้ว คุณสามารถแยกไฟล์ต้นฉบับออกเป็นบางส่วนก่อนคัดลอก (เช่น 3 GB):
# split -b 3221225472 /vmfs/volumes/xx/vm1/vm1.vmdk
จากนั้นคุณสามารถคัดลอกทุกส่วนไปยังไดรฟ์ USB และรวมเข้ากับโฮสต์ ESXi เป้าหมายได้:
# cat vm1* > vm1.vmdk
ในการคัดลอกไฟล์จากไดรฟ์ USB ที่จัดรูปแบบ NTFS ไปยังโฮสต์ ESXi จะใช้คำสั่งต่อไปนี้:
# /bin/ntfscat -f /dev/disks/naa.5000000000000001:2" some.iso > /vmfs/volumes/12345678-ddd654321-4321-aaaabbbb2222/iso/some.iso
คุณสามารถคัดลอกไฟล์ไปยัง ESXi เท่านั้น ไม่สามารถคัดลอกกลับได้ ไม่สามารถเขียน NTFS ด้วย ntfscat ได้