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

การกำหนดค่าอุปกรณ์ USB Passthrough จาก VMWare ESXi ไปยัง Virtual Machine


บนโฮสต์ VMWare ESXi ของคุณ คุณสามารถเปลี่ยนเส้นทางอุปกรณ์ USB/แฟลชไดรฟ์/ดิสก์ภายในเครื่องที่เชื่อมต่อภายในเครื่องเสมือน เทคโนโลยีนี้เรียกว่า USB Passthrough และพร้อมใช้งานตั้งแต่ ESXi 4.1

สมมติว่างานของเราคือเปลี่ยนเส้นทางไดรฟ์ USB 3.0 ภายนอกที่เชื่อมต่อกับโฮสต์ ESXi 6.7 ไปยังเครื่องเสมือน เราจำเป็นต้องเข้าถึงไดรฟ์เพื่อคัดลอกข้อมูลโดยตรงจาก VM ไปยังไดรฟ์ USB แยกต่างหากอย่างรวดเร็ว

VMWare USB พาสทรู

โหมด Passthrough ช่วยให้สามารถเปลี่ยนเส้นทางอุปกรณ์ทางกายภาพที่เชื่อมต่อกับโฮสต์ ESXi ได้โดยตรงไปยังระบบปฏิบัติการเกสต์ของเครื่องเสมือน ในโหมด Passthrough คุณสามารถให้สิทธิ์แก่เครื่องเสมือนในการเข้าถึงไดรฟ์ USB โมเด็ม หรือคอนโทรลเลอร์ PCI/USB ได้โดยตรง

ในการเปลี่ยนเส้นทางอุปกรณ์ USB ใน ESXi คุณจะต้องมีองค์ประกอบหลักบางอย่าง:

  • อนุญาโตตุลาการ เป็นบริการแยกต่างหากบนโฮสต์ ESXi ซึ่งจะสแกนอุปกรณ์ USB จริงที่เชื่อมต่อ กำหนดเส้นทางการรับส่งข้อมูลของอุปกรณ์ USB ระหว่างโฮสต์และ VM และควบคุมการเข้าถึงอุปกรณ์ (VM เดียวเท่านั้นที่อาจใช้อุปกรณ์ USB ที่เชื่อมต่อ ). อนุญาโตตุลาการ USB สามารถติดตามคอนโทรลเลอร์ USB ได้สูงสุด 15 ตัวพร้อมกัน

  • ตัวควบคุม USB — ต้องติดตั้งตัวควบคุม USB ทั้งบนโฮสต์จริงและบนเครื่องเสมือน

ในการติดตั้งคอนโทรลเลอร์ USB สำหรับ VM บน VMWare ESXi ให้เปิดการตั้งค่า 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 patch 3 เพื่อรองรับ คอนโทรลเลอร์ xHCI จะต้องทำงานในระบบปฏิบัติการเกสต์ Windows 8.1/Windows Server 2012 R2 และ Linux ที่มีเคอร์เนลเวอร์ชัน 2.6.35 หรือใหม่กว่าได้รับการสนับสนุนในฐานะระบบปฏิบัติการเกสต์

ส่งผ่านอุปกรณ์ USB ไปยัง ESXi VM

ในโหมด USB Passthrough ดั้งเดิม คุณสามารถเชื่อมต่ออุปกรณ์ USB จริงจากโฮสต์กับเครื่องเสมือน VMWare

ข้อกำหนดหลักและข้อจำกัดของวิธีการเปลี่ยนเส้นทางนี้:

  • ฮาร์ดแวร์เสมือน 7.0 หรือใหม่กว่า;

  • คุณสามารถให้การเข้าถึงโดยตรงกับอุปกรณ์ USB สำหรับหนึ่ง VM เท่านั้น

  • จำนวนอุปกรณ์ USB ที่เปลี่ยนเส้นทางสูงสุดสำหรับ VM คือ 20;

  • ไม่รองรับการบูต VM จากอุปกรณ์ USB ที่เชื่อมต่อ

หลังจากเพิ่มตัวควบคุม USB เสมือนสำหรับ VM แล้ว คุณสามารถเปลี่ยนเส้นทางไดรฟ์ USB ที่เชื่อมต่อกับโฮสต์ได้:

  1. เพิ่ม โฮสต์อุปกรณ์ USB ใหม่ในการตั้งค่า VM แล้วคลิก เพิ่ม

  2. เลือกอุปกรณ์ USB ที่เชื่อมต่อจากรายการดรอปดาวน์เพื่อเพิ่ม

  3. หากต้องการเปิดใช้งานการรองรับ vMotion สำหรับ VM ด้วยไดรฟ์ USB จริงที่เชื่อมต่อ ให้เลือกตัวเลือก สนับสนุน vMotion ขณะเชื่อมต่ออุปกรณ์;

  4. จากนั้นไดรฟ์ USB จะปรากฏในระบบปฏิบัติการแขกของเครื่องเสมือน

มีข้อจำกัด vMotion บางประการสำหรับ VM ที่มีไดรฟ์ USB ที่เปลี่ยนเส้นทาง:

  • คุณไม่สามารถหยุดหรือหยุด VM ชั่วคราวได้ หากคุณเปิดเครื่อง คุณต้องย้ายเครื่องไปยังโฮสต์ที่อุปกรณ์ USB เชื่อมต่อด้วยตนเอง

  • ไม่รองรับโหมด DPM เนื่องจาก vCenter สามารถปิดโฮสต์ด้วยอุปกรณ์ USB ที่เชื่อมต่อเพื่อประหยัดพลังงาน

  • โฮสต์ ESXi ที่มี VM และอุปกรณ์ USB จริงต้องสามารถเข้าถึงได้ผ่าน vmk0 ผ่านพอร์ต TCP 902

หากเมื่อเพิ่มอุปกรณ์ USB ใหม่ ไคลเอนต์ vSphere แสดงข้อความว่าไม่พบอุปกรณ์ USB (ไม่มีอุปกรณ์ USB ที่พร้อมใช้งาน) แสดงว่า VMWare ไม่สนับสนุนไดรฟ์ USB ของคุณสำหรับการเปลี่ยนเส้นทางใน USB โหมดการส่งผ่าน คุณสามารถค้นหารายการอุปกรณ์ USB ที่ใช้งานร่วมกันได้บนเว็บไซต์อย่างเป็นทางการของ VMWare (รายการไม่ยาวนัก) ตรวจสอบส่วน “อุปกรณ์ USB ที่ทดสอบสำหรับ Passthrough จากโฮสต์ ESXi ไปยังเครื่องเสมือนใน ESXi 6.7” ในบทความ https://kb.vmware.com/s/article/1021345

ในกรณีนี้ คุณสามารถเปลี่ยนเส้นทางคอนโทรลเลอร์ USB ทั้งหมดไปยัง VM จากโฮสต์ ESXi

VMware PCI Passthrough (VMDirectPath): เปลี่ยนเส้นทางคอนโทรลเลอร์ USB ไปยัง VM

อีกวิธีที่สะดวกน้อยกว่าในการเข้าถึงอุปกรณ์ USB จริงจาก VM คือการเปลี่ยนเส้นทางคอนโทรลเลอร์ USB ทั้งหมดจากโฮสต์ ESXi โหมดนี้เรียกว่า VMDirectPath หากต้องการใช้งาน ชิปเซ็ตเซิร์ฟเวอร์ของคุณต้องรองรับ Intel Directed I/O หรือ AMD I/O Virtualization Technology (AMD IOMMU) และเปิดใช้งานโหมดนี้ใน BIOS/UEFI การตั้งค่า.

หากติดตั้งคอนโทรลเลอร์ USB เพียงตัวเดียวบนเซิร์ฟเวอร์และคุณเปลี่ยนเส้นทางไปยัง VM คุณจะไม่สามารถใช้อุปกรณ์ USB ที่เชื่อมต่อกับโฮสต์ของคุณในเครื่อง (คีย์บอร์ด เมาส์) ในกรณีนี้ การเพิ่มคอนโทรลเลอร์ PCI USB เข้ากับเซิร์ฟเวอร์จะเป็นการดีกว่า

หากโฮสต์มีคอนโทรลเลอร์ USB หลายตัว คุณสามารถระบุอุปกรณ์ USB ที่เชื่อมต่อและหมายเลขคอนโทรลเลอร์ผ่านเชลล์ ESXi ในการแสดงรายการอุปกรณ์ 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
tail -f /var/log/vmkernel.log | grep -i USB
cpu0:33271)<6>usb 4-2: new SuperSpeed USB device number 5 using xhci_hcd
cpu0:33271)<6>usb 4-2: New USB device found, idVendor=0480, idProduct=b207
cpu0:33271)<6>usb 4-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
cpu0:33271)<6>usb 4-2: Product: External USB 3.0
cpu0:33271)<6>usb 4-2: Manufacturer: TOSHIBA
cpu0:33271)<6>usb 4-2: SerialNumber: 20180528012427F
cpu0:33271)<6>usb 4-2: Vendor: 0x0480, Product: 0xb207, Revision: 0x0315
cpu0:33271)<6>usb 4-2: Interface Subclass: 0x06, Protocol: 0x50
cpu0:33271)WARNING: LinScsiLLD: scsi_add_host:573: vmkAdapter (usb-storage) sgMaxEntries rounded to 255. Reported size was 65535
cpu0:33271)<6>usb-storage 4-2:1.0: interface is claimed by usb-storage
cpu0:33271)<6>usb 4-2: device is not available for passthrough
cpu0:33271)<6>usb 4-2: usbfs: registered usb0405
cpu0:33207)<6>usb-storage 4-2:1.0: suspended

หากโฮสต์ ESXi ของคุณตรวจไม่พบไดรฟ์ USB ตรวจสอบให้แน่ใจว่า

usbarbitrator 

บริการกำลังทำงาน:

#chkconfig usbarbitrator --list

หยุดบริการ usbarbitrator เฉพาะในกรณีที่คุณต้องการเข้าถึงแท่ง USB โดยตรงจากเชลล์ ESXi เพื่อคัดลอกไฟล์

ดังนั้นเราจึงได้รับหมายเลขของคอนโทรลเลอร์ USB ที่จะเปลี่ยนเส้นทางไปยัง VM

  1. หากต้องการเปลี่ยนเส้นทางตัวควบคุม USB จริง ให้เลือกโฮสต์ ESXi ที่ VM ของคุณทำงานอยู่และไปที่ จัดการ -> การตั้งค่า -> อุปกรณ์ PCI -> แก้ไข;

  2. ในรายการอุปกรณ์ PCI ให้เลือกคอนโทรลเลอร์ USB ที่ต้องการตาม ID (ในตัวอย่างของฉันคือ

    00:1D.0

    , ผู้ควบคุมถูกเรียก

    C610/X99 series chipset USB Enhanced Host Controller #1 Intel Corporation

    );

  3. สถานะของคอนโทรลเลอร์ USB จะต้องเปลี่ยนจาก ไม่พร้อมใช้งาน (อุปกรณ์นี้ไม่พร้อมใช้งานสำหรับ VM ในขณะนี้) เป็น พร้อมใช้งาน (สิ่งนี้ อุปกรณ์ที่มีให้ VM ใช้งาน) คลิกตกลง;

  4. หากต้องการบันทึกการเปลี่ยนแปลง ให้รีสตาร์ทโฮสต์ ESXi ของคุณ

  5. หลังจากบูตโฮสต์ ให้ปิด VM และเพิ่มอุปกรณ์ใหม่ (อุปกรณ์ใหม่ -> อุปกรณ์ PCI -> เพิ่ม) เลือกคอนโทรลเลอร์ USB ของคุณในรายการดรอปดาวน์ (เช่น

    0000:00:1D| Intel Corporation USB Chipset…

    );

    หากเมื่อเพิ่มอุปกรณ์ PCI ข้อความต่อไปนี้จะปรากฏขึ้นในการตั้งค่า VM: “

    Warning: The VM will not power on until its memory reservation equals its memory size

    ”, จอง RAM บางส่วนสำหรับ VM ของคุณ

  6. เปิด VM และตรวจสอบให้แน่ใจว่าไดรฟ์ USB ปรากฏในระบบปฏิบัติการเกสต์ ในกรณีของฉัน ไดรฟ์ USB ที่เชื่อมต่อ “Toshiba External USB 3.0 USB Device ” ปรากฏใน Windows Server 2012 R2 ของผู้เยี่ยมชม

ในโหมด VMDirectPath คุณสามารถเปลี่ยนเส้นทางอุปกรณ์ PCI จริงได้สูงสุดสองเครื่องไปยัง VM

มีข้อจำกัดบางประการบน VM ที่มีอุปกรณ์ PCI ที่เปลี่ยนเส้นทาง: คุณไม่สามารถหยุด VM ชั่วคราว (Suspend) ดำเนินการ vMotion กับโฮสต์อื่นได้ (เป็นตรรกะ เนื่องจากคุณเชื่อมต่อกับตัวควบคุมทางกายภาพ) หรือสร้างสแน็ปช็อต

Hyper-V ยังรองรับการเปลี่ยนเส้นทางของอุปกรณ์ USB จริงไปยัง VM

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