21,968 瀏覽數

USB support for ESX/ESXi 4.1

這是 VMware ESX 4.1 官方網站對於 USB 裝置的支援說明: 
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1022290

大概的概念就是 ESX 4.1 透過 passthrough 的方式來讓 ESX 或是 ESXi 來支援 USB 的裝置.須要透過設定 USB controller 並指定 USB device virtual machine 才能使用 USB 的裝置.
 
USB device passthrough 系統需求 :

  • 需要 Virtual hardware version 7 或是更高的版本(ESX 4 所採用的版本)
  • USB Arbitrator
  • USB controller (主機板)
  • USB device 或是 device hub

note:Passthrough  http://benjr.tw/6562
Intel® Virtualization Technology(VT-d) 或是 AMD input/output memory management unit (IOMMU) 主要是透過內建於主機板的北橋晶片所提供的虛擬化技術.透過此一虛擬化的技術可讓虛擬機器針對週邊硬體等 I/O 等裝置做直接做存取 Directed I/O. IOMMU / VT-d 主要是透過 DMA remapping ,Address translation 和 Interrupt remapping 等技術.讓虛擬機直接存取真實的裝置,不管是網卡或是顯示卡以及硬碟裝置都不需要再透過 VMM 這一層. 這就是 Device passthrough.
新增一個 USB controller 或是一個 USB device

  1. 在 virtual machine(VM) 點選右鍵,選擇 "Edit Settings".
  2. 選擇 "Add" 新增裝置.
  3. 選擇 "USB Device" USB 裝置,並按 "Next" 下一步.

可以看到此時是不能新增 USB Devices (unavailable)

vmware_usb_controller01
這邊跟你提示了
"The presdence of a USB controller allows USB devices to be connected to the virtual machine"

"The controller itself has no configurable settings"

簡單的來說就是要使用 VMware Host 上的 USB 裝置前必須新增一個 USB controller.

vmware_usb_controller02

USB controller 的相關訊息.必須透過下一個步驟才能使用 USB 的裝置.
vmware_usb_controller03

  • 第一步新增一個 USB controller:
    USB Controller 有以下的限制:

    • 在主機板上必須要有 USB controller , VMware 支援 USB 2.0 以及 USB 1.1 的硬體裝置.
    • 每一台 virtual machine 只能增加一個 virtual USB controller.
    • The USB arbitrator can monitor a maximum of 15 USB controllers. If your system includes an additional number of controllers and you connect USB devices to these controllers, the devices are not available to the virtual machine.
    • 不光要新增 USB controller 還需要新增 USB device 在 virtual machine 才能使用 USB 裝置.
    • USB controller 要移除前必須先將所有的 USB devices 移除.
  • 第二步新增 USB device:
    USB devices 有以下的限制:

    • 所有在 ESX/ESXi host 上實體連接的USB 裝置,都可以透過 USB devices 來指定給 virtual machine 來使用.
    • 不過單一 USB Device 裝置同時間只能給單一 virtual machine 來使用無法共享.
    • 上限是 20 USB devices 裝置同時指定給單一台 virtual machine.
    • 在 ESX/ESXi 有支援  USB devices 的列表請參考這連結, see Supported USB device models for passthrough from an ESX or ESXi host to a virtual machine (1021345).
    • 如果要現上新增 memory, CPU, 或是 PCI devices 時,須要先移除 USB devices. 線上新增這些終至會讓 USB devices 中斷進而導致資料的遺失.
    • 在 virtual machine 使用 suspend 或是 resume 時 , USB devices 會先中斷等待系統開啟後才連接至 virtual machine 上.
    1. 在 virtual machine(VM) 點選右鍵,選擇 "Edit Settings".
    2. 選擇 "Add" 新增裝置.
    3. 選擇 "USB Device" USB 裝置,並按 "Next" 下一步.

    vmware_usb01
    這邊會顯示出所有可使用的 USB 裝置.指派 USB 裝置給這一台 VM 使用.並按 "Next" 下一步.

    Note: 這邊可以看到支援 vMotion 的選項,依需求來點選 "select Support vMotion while device is connected".

    vmware_usb02
    這是該 USB 裝置詳細的裝置名稱,並按 "Finish" 設定完成.
    vmware_usb03
    在 VM 硬體裝置中可以很清楚看到多了一個 USB 的裝置.
    vmware_usb04
    回到 VM 就可以看到新增的 USB的裝置了.
    vmware_usb05

5 個網友的想法 “USB support for ESX/ESXi 4.1

  1. VMware VMDirectPath I/O – USB device

    VMware ESX / ESXi 對於 USB 裝置的支援一直是比較弱的,網路上找到一篇是關於透過 VMDirectPath ,也就是利用 VT-d 或是 IOMMU 的功能讓 VM 可以支援 USB 的裝置.  http://www.petri.co.il/vmware-esxi4-vmdirectpath.htm

    今天拿了一支 USB flash disk 接在系統上,不過很可惜的是我一直試不出來,首先我並不清楚我這一支 USB flash disk 算是再哪一個 USB Controller 上

    # lspci
    00:1a.0 USB Controller: Intel Corporation Unknown device 3a37
    00:1a.1 USB Controller: Intel Corporation Unknown device 3a38
    00:1a.7 USB Controller: Intel Corporation Unknown device 3a3c
    00:1d.0 USB Controller: Intel Corporation Unknown device 3a34
    00:1d.1 USB Controller: Intel Corporation Unknown device 3a35
    00:1d.2 USB Controller: Intel Corporation Unknown device 3a36
    00:1d.7 USB Controller: Intel Corporation Unknown device 3a3a
    
    # lsusb
    Bus 02 Device 03: ID 0781:5151 SanDisk Corp. Cruzer Micro 256/512MB Flash Drive
    Bus 02 Device 01: ID 0000:0000
    Bus 07 Device 03: ID 0557:2213 ATEN International Co., Ltd
    Bus 07 Device 02: ID 0557:7000 ATEN International Co., LtdHub
    Bus 07 Device 01: ID 0000:0000
    Bus 06 Device 01: ID 0000:0000
    Bus 05 Device 01: ID 0000:0000
    Bus 04 Device 01: ID 0000:0000
    Bus 03 Device 01: ID 0000:0000
    Bus 01 Device 01: ID 0000:0000
    

    我完全比對不出來,也不知道 "Bus 02 Device 03: ID 0781:5151 SanDisk Corp. Cruzer Micro 256/512MB Flash Drive" 到底是在哪一個 USB 底下的裝置.

    不過我還是試了兩台不同的 IBM 機台但結果都是失敗不過失敗的結果不一樣,首先第一台將 USB 裝置指定成 Direct I/O 裝置後 ,重新開啟這已經指定成 Direct I/O 的 USB 裝置卻消失在 VMDirectPath Configuration 了. 第二台雖然 VMDirectPath Configuration 裡的裝置不會消失但指派 Direct I/O 的 VM 該系統卻無法開啟.

    後來上網查了一下,好像要到 VMware ESX / ESXi 4.1才會正式支援
    "Configuring USB Device Passthrough from an ESX/ESXi Host to a Virtual Machine — Virtual machines can be configured to use USB devices that are connected to the ESX host on which the virtual machine is running. However, you cannot use vMotion to migrate a virtual machine that has a connected USB device. The device must be disconnected from the virtual machine before it can be migrated. You can connect up to 20 USB devices to a virtual machine. "

    http://bbs.vmanager.cn/redirect.php?tid=2165&goto=lastpost

  2. 由 USB Key 開機
    一位朋友問我 ESX/ESXi 4.1 支援 USB 裝置,那是否可以從 USB Key 開機,試了一下似乎不行.從兩邊來看.

    • BIOS
      在 BIOS 裡面找不到 USB Key.
      boot_usb01
    • Edit Settings
      USB 的 device status 是 disconnected
      boot_usb02

    Live USB 是無法透過 ESX/ESXi 4.1 開啟,也就是說只能使用 Live CD 的開機方式來取代.

  3. 有些情況下 VMware ESX 本身可能無法使用 USB Flash Disk 此時需要將 usbarbitrator 的服務停止.

    # service usbarbitrator stop
    
  4. 自動參照通知: VMware vSphere | Benjr.tw

發表迴響