Skip to Content

sunchiahome 的部落格

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

RHEL5 KVM - VT-d

從 RHEL 5.4 64bite 開始 Redhat 就開始支援 KVM,到了新版的 Red Hat Enterprise Linux 6 其虛擬化也只剩下 KVM( Kernel-based Virtual Machine) ,RHEL6 已經將 Xen 移除了,所以目前 RHEL 會以 KVM 為主,目前他也支援 VT-d 的功能,在 KVM 的官方網站有詳細的說明 http://www.linux-kvm.org/page/How_to_assign_devices_with_VT-d_in_KVM
設定步驟如下:

Assigning device to guest

1. Modifying kernel config:
make menuconfig
set "Bus options (PCI etc.)" -> "Support for DMA Remapping Devices" to "*"
set "Bus options (PCI etc.)" -> "Enable DMA Remapping Devices" to "*"

RHEL5 Xen - VT-d

什麼是 VT-d ,IntelR Virtualization Technology(VT-d) 或是 AMD input/output memory management unit (IOMMU) 主要是透過內建於主機板的北橋晶片所提供的虛擬化技術.透過此一虛擬化的技術可讓虛擬機器針對週邊硬體等 I/O 等裝置做直接做存取 (Directed I/O),

不過首先必須你的硬體包括 CPU 和北橋都必須支援, BIOS 以及軟體都必須要支援, 而 RedHat 在 RHEL5.4 Xen 就開始支援的 VT-d 的功能,不過在使用前最好先詳細詢問一下你的硬體廠商是否有支援, 目前我手上的版子使用了 Nehalem + Tylersburg 的架構他剛好都有支援我所需的虛擬化技術 VT-x 以及 VT-d .

關於這幾項虛擬化可以參考先前的文章 http://benjr.tw/?q=node/596.

Linux virtualization and PCI passthrough

在 IBM 的官方網站有一份對於 I/O 虛擬化有很詳細的說明 http://www.ibm.com/developerworks/linux/library/l-pci-passthrough/ 並解釋了什麼是 PCI passthrough .大概的說明就是為了增加 I/O 的效能使用了一種叫做 device (or PCI) passthrough 的技術. 而這技術必須透過硬體來支援,不過在不同的處理器平台下有著不同的名稱 Intel (VT-d) 以及 AMD (IOMMU) .

IBM 也藉由這四張圖來說明傳統以模擬硬體的方式以及真正以硬體的方式來支援 I/O 有什麼不同.

Platform device emulation

  • Hypervisor-based device emulation
  • 傳統虛擬機的 I/O 都是透過 VMM(或稱為 hypervisor) 所模擬出來的.

VMware VMDirectPath I/O

VMware ESX / ESXi 4 的版本已經有支援 VT-d 的功能

什麼是 VT-d ,Intel® Virtualization Technology(VT-d) 或是 AMD input/output memory management unit (IOMMU) 主要是透過內建於主機板的北橋晶片所提供的虛擬化技術.透過此一虛擬化的技術可讓虛擬機器針對週邊硬體等 I/O 等裝置做直接做存取 Directed I/O,

不過首先必須你的硬體包括 CPU 和北橋都必須支援, BIOS 以及軟體都必須要支援,要使用前最好先詳細詢問一下硬體廠商,

目前我手上的版子使用了 Nehalem + Tylersburg 的架構他剛好都有支援我所需的虛擬化技術 VT-x 以及 VT-d .

RSS feed