บนโฮสต์ 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 ไปยัง ESXi VM
ในโหมด USB Passthrough ดั้งเดิม คุณสามารถเชื่อมต่ออุปกรณ์ USB จริงจากโฮสต์กับเครื่องเสมือน VMWare
ข้อกำหนดหลักและข้อจำกัดของวิธีการเปลี่ยนเส้นทางนี้:
- ฮาร์ดแวร์เสมือน 7.0 หรือใหม่กว่า
- คุณสามารถให้การเข้าถึงโดยตรงไปยังอุปกรณ์ USB สำหรับ VM เดียวเท่านั้น
- จำนวนสูงสุดของอุปกรณ์ USB ที่เปลี่ยนเส้นทางสำหรับ VM คือ 20;
- ไม่รองรับการบูต VM จากอุปกรณ์ USB ที่เชื่อมต่อ
หลังจากเพิ่มคอนโทรลเลอร์ USB เสมือนสำหรับ VM คุณสามารถเปลี่ยนเส้นทางไดรฟ์ USB ที่เชื่อมต่อกับโฮสต์ได้:
- เพิ่ม โฮสต์อุปกรณ์ USB . ใหม่ ในการตั้งค่า VM แล้วคลิก เพิ่ม;
- เลือกอุปกรณ์ USB ที่เชื่อมต่อจากรายการแบบเลื่อนลงเพื่อเพิ่ม
- ในการเปิดใช้การรองรับ vMotion สำหรับ VM ด้วยไดรฟ์ USB จริงที่เชื่อมต่ออยู่ ให้ทำเครื่องหมายที่สนับสนุน vMotion ขณะเชื่อมต่ออุปกรณ์ ตัวเลือก
- จากนั้น ไดรฟ์ 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 ทั้งหมดไปยัง 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
หากโฮสต์ ESXi ของคุณตรวจไม่พบไดรฟ์ USB ตรวจสอบให้แน่ใจว่า usbarbitrator
บริการกำลังทำงาน:
#chkconfig usbarbitrator --list
หยุดบริการ usbarbitrator เฉพาะในกรณีที่คุณต้องการเข้าถึงแท่ง USB โดยตรงจากเชลล์ ESXi เพื่อคัดลอกไฟล์
ดังนั้นเราจึงได้หมายเลขคอนโทรลเลอร์ USB ที่จะเปลี่ยนเส้นทางไปยัง VM
- หากต้องการเปลี่ยนเส้นทางคอนโทรลเลอร์ USB จริง ให้เลือกโฮสต์ ESXi ที่ VM ของคุณกำลังทำงานอยู่ และไปที่ จัดการ -> การตั้งค่า -> อุปกรณ์ PCI -> แก้ไข;
- ในรายการอุปกรณ์ PCI ให้เลือกคอนโทรลเลอร์ USB ที่ต้องการตาม ID (ในตัวอย่างของฉัน มันคือ
00:1D.0
คอนโทรลเลอร์นี้มีชื่อว่าC610/X99 series chipset USB Enhanced Host Controller #1 Intel Corporation
); - สถานะของคอนโทรลเลอร์ USB ต้องเปลี่ยนจาก ไม่พร้อมใช้งาน (อุปกรณ์นี้ไม่พร้อมใช้งานสำหรับ VM ในขณะนี้ ) เป็น มีจำหน่าย (อุปกรณ์นี้พร้อมให้ VM ใช้ ). คลิกตกลง;
- หากต้องการบันทึกการเปลี่ยนแปลง ให้รีสตาร์ทโฮสต์ ESXi ของคุณ
- หลังจากบูตโฮสต์แล้ว ให้ปิด 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 ของคุณ - เปิด VM และตรวจสอบว่าไดรฟ์ USB ปรากฏในระบบปฏิบัติการของแขก ในกรณีของฉัน ไดรฟ์ USB ที่เชื่อมต่อ “อุปกรณ์ USB ภายนอก USB 3.0 ของโตชิบา ” ปรากฏในแขก Windows Server 2012 R2
ในโหมด VMDirectPath คุณเปลี่ยนเส้นทางอุปกรณ์ PCI จริงได้สูงสุด 2 เครื่องไปยัง VM
มีข้อจำกัดบางประการใน VM ที่มีอุปกรณ์ PCI ที่เปลี่ยนเส้นทาง:คุณไม่สามารถหยุด VM (ระงับชั่วคราว) ดำเนินการ vMotion กับโฮสต์อื่น (เป็นตรรกะ เนื่องจากคุณถูกผูกไว้กับตัวควบคุมทางกายภาพ) หรือสร้างสแน็ปช็อตHyper-V ยังรองรับการเปลี่ยนเส้นทางของอุปกรณ์ USB จริงไปยัง VM