การเข้าถึง USB Flash Drive จาก VMWare ESXi
บางครั้งคุณอาจต้องเชื่อมต่อแฟลชไดรฟ์ USB ภายนอก (สติ๊ก) กับโฮสต์ VMWare ESXi ของคุณโดยตรง ตัวอย่างเช่น คุณอาจต้องใช้เพื่อคัดลอกอิมเมจเครื่องเสมือนเพื่อส่งไปยังสำนักงานระยะไกล (หากช่อง WAN ระหว่างสำนักงานช้าหรือโหลดสูง) เพื่อสำรองไฟล์ VM ไปยังสื่อ USB ภายนอก เพื่อคัดลอกไฟล์ ISO หรือ อิมเมจ VM ไปยังโฮสต์ ESXi (เมื่อเป็นการดีกว่าที่จะไม่โอเวอร์โหลด LAN ของคุณ) ในบทความนี้ เราจะแสดงวิธีเชื่อมต่อแฟลชไดรฟ์ USB/แท่งกับโฮสต์ ESXi เป็นที่เก็บข้อมูล VMFS หรือเพื่อคัดลอกไฟล์จากพาร์ติชัน FAT32/NTFS โดยตรง
วิธีเชื่อมต่อไดรฟ์ USB ภายนอกเป็น VMFS Datastore ใน VMWare ESXi
สมมติว่าคุณต้องการเชื่อมต่อไดรฟ์ USB กับโฮสต์ ESXi และสร้างที่เก็บข้อมูล VMFS บนนั้นเพื่อคัดลอก/ย้ายไฟล์และรูปภาพของเครื่องเสมือนอย่างสะดวก
อย่างเป็นทางการ VMWare ไม่รองรับไดรฟ์ USB ภายนอกเป็นที่เก็บข้อมูล VMFS อย่างไรก็ตามมันใช้งานได้และคุณสามารถใช้งานได้ นอกจากนี้ 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


