Computer >> คอมพิวเตอร์ >  >> ซอฟต์แวร์ >> เครื่องเสมือน

การกำหนดค่าอุปกรณ์ 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

โหมด Passthrough อนุญาตให้เปลี่ยนเส้นทางอุปกรณ์จริงที่เชื่อมต่อกับโฮสต์ ESXi ไปยัง guest OS ของเครื่องเสมือนได้โดยตรง ในโหมด Passthrough คุณสามารถให้ Virtual Machine เข้าถึงไดรฟ์ 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 ต้องทำงานใน guest OS รองรับ Windows 8.1/Windows Server 2012 R2 และ Linux ที่มีเคอร์เนลเวอร์ชัน 2.6.35 หรือใหม่กว่าเป็นระบบปฏิบัติการสำหรับแขก

การกำหนดค่าอุปกรณ์ USB Passthrough จาก VMWare ESXi เป็น Virtual Machine

ส่งผ่านอุปกรณ์ 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 ขณะเชื่อมต่ออุปกรณ์ ตัวเลือก การกำหนดค่าอุปกรณ์ USB Passthrough จาก VMWare ESXi เป็น Virtual Machine
  4. จากนั้น ไดรฟ์ USB จะปรากฏในระบบปฏิบัติการแขกของเครื่องเสมือน
มีข้อจำกัด vMotion บางประการสำหรับ VM ที่มีไดรฟ์ USB ที่เปลี่ยนเส้นทาง:

  • คุณไม่สามารถหยุดหรือหยุด VM ชั่วคราวได้ หากคุณเปิดเครื่อง คุณต้องย้ายเครื่องด้วยตนเองไปยังโฮสต์ที่อุปกรณ์ USB เชื่อมต่ออยู่
  • ไม่รองรับโหมด DPM เนื่องจาก vCenter สามารถปิดโฮสต์ด้วยอุปกรณ์ USB ที่เชื่อมต่อเพื่อประหยัดพลังงาน
  • โฮสต์ ESXi ที่มี VM และอุปกรณ์ USB จริงต้องสามารถเข้าถึงได้ผ่าน vmk0 ผ่าน TCP Port 902

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

การกำหนดค่าอุปกรณ์ USB Passthrough จาก VMWare ESXi เป็น Virtual Machine

ในกรณีนี้ คุณสามารถเปลี่ยนเส้นทางคอนโทรลเลอร์ 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
หากคุณไม่เห็นไดรฟ์ USB ให้ลองถอดอุปกรณ์ออกแล้วเชื่อมต่อใหม่อีกครั้ง ดู vmkernel.log เพื่อเรียนรู้ว่า USB Arbitrator ตรวจพบไดรฟ์ของคุณหรือไม่:

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

การกำหนดค่าอุปกรณ์ USB Passthrough จาก VMWare ESXi เป็น Virtual Machine

หากโฮสต์ 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 ใช้ ). คลิกตกลง; การกำหนดค่าอุปกรณ์ USB Passthrough จาก VMWare ESXi เป็น Virtual Machine
  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 ที่เชื่อมต่อ “อุปกรณ์ USB ภายนอก USB 3.0 ของโตชิบา ” ปรากฏในแขก Windows Server 2012 R2 การกำหนดค่าอุปกรณ์ USB Passthrough จาก VMWare ESXi เป็น Virtual Machine

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

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

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