ค้นหาเว็บไซต์

การเข้าถึง 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) แทนที่ไดรเวอร์ทั้งหมด

  1. เชื่อมต่อกับคอนโซลโฮสต์ ESXi ผ่าน SSH

  2. หยุด อนุญาโตตุลาการ USB บริการนี้ใช้เพื่อส่งผ่านอุปกรณ์ USB จากโฮสต์ ESXi ไปยังเครื่องเสมือน (USB Passthrough):

    # /etc/init.d/usbarbitrator stop

    หากคุณไม่ต้องการให้อนุญาโตตุลาการ USB เริ่มทำงานหลังจากรีสตาร์ทโฮสต์ ให้รันคำสั่ง:

    # chkconfig usbarbitrator off
  3. เชื่อมต่อไดรฟ์ USB เปล่ากับโฮสต์ ESXi ของคุณ

  4. คุณสามารถระบุชื่อไดรฟ์ USB ในบันทึก: /var/log/vmkernel.log หรือใช้ /dev/disks:

    # ls /dev/disks/

    ดิสก์ USB มักจะมีชื่อว่า mpx.vmhbaX หรือ naa.X

  5. สร้างตารางพาร์ติชัน GPT (GUID) บนไดรฟ์ USB ของคุณ:

    # partedUtil mklabel /dev/disks/naa.5000000000000001 gpt
  6. จากนั้นสร้างพาร์ติชันในไดรฟ์ของคุณด้วยตนเอง โดยระบุเซกเตอร์แรกและเซกเตอร์สุดท้ายในไดรฟ์ รายการข้อมูลเกี่ยวกับเซกเตอร์ของดิสก์:

     # partedUtil getptbl /dev/disks/naa.5000000000000001

  7. ภาคแรกคือ 2048 เสมอ ขนาดของเซกเตอร์สุดท้ายคำนวณจากเอาต์พุต getptbl ในตัวอย่างของฉัน มีการคำนวณดังนี้:

    121597 * 255 * 63 -1 = 1953455804 

    หากมีพาร์ติชั่นในไดรฟ์ คุณสามารถเอาออกได้:

    # partedUtil delete /dev/disks/naa.5000000000000001 1
  8. สร้างพาร์ติชัน VMFS (GUID ของพาร์ติชันดังกล่าวคือ AA31E02A400F11DB9590000C2911D1B8 เสมอ):

    # partedUtil setptbl /dev/disks/naa.5000000000000001 gpt "1 2048 1953455804 AA31E02A400F11DB9590000C2911D1B8 0"
  9. จากนั้นคุณสามารถฟอร์แมตพาร์ติชันด้วย VMFS6:

    # vmkfstools -C vmfs6 -S USB-HDD-DSDatastore /dev/disks/naa.5000000000000001:1
  10. เปิดกราฟิก 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

บทความที่เกี่ยวข้อง