如何在 VMware vSphere 虛擬機器中使用 USB 裝置
虛擬化管理程式的主要功能性,是在軟體層面上模擬虛擬機器所使用的裝置。虛擬機器中會建立各種裝置,例如虛擬控制器、磁碟、DVD-ROM、顯示卡、網路卡、輸入裝置等。但若您想連接印表機、掃描器、USB 隨身碟、USB 硬碟、USB 智慧卡讀卡機、安全金鑰、USB 授權金鑰等裝置時,該怎麼辦?
對於具備 USB 介面的外部實體裝置,您可以將其連接至運行於 VMware 工作站 或一個 ESXi 主機 透過使用 USB 直通特點。這篇部落格文章將介紹如何在 VMware vSphere 在 ESXi 主機上,包括連接 USB 裝置的需求與步驟。
什麼是 USB 直通功能?
VMware USB 裝置直通是一項特點,可讓您將連接至實體 ESXi 主機 USB 埠的實體 USB 裝置,連接至虛擬機器,其效果如同該 USB 裝置是直接連接至虛擬機器一般。VMware 直通特點自 ESXi 4.1 起提供。
將 ESXi 主機的 USB 裝置透過直通特點傳輸至虛擬機器的客體作業系統 (OS) 的原因各不相同。 例如,如果您擁有一台較舊的掃描器或印表機,而該裝置缺乏適用於最新版本 Windows 作業系統的驅動程式。您可以安裝支援該 USB 裝置的舊版 Windows,並將此裝置連接至虛擬機器。此特點的另一項實用情境,是當您需要以高速直接在虛擬機器與 USB 硬碟之間複製檔案時。此外,使用者可能需要在虛擬機器中使用受硬體 USB 授權金鑰保護的軟體。
USB 直通功能如何運作
要讓 USB 直通功能正常運作,需求三個主要元件:仲裁器、USB 控制器以及實體 USB 裝置。
The arbitrator 這是一項運行於 ESXi 伺服器上的專用服務。仲裁器會掃描連接至實體伺服器的實體 USB 裝置,並負責在實體主機與虛擬機器之間路由 USB 裝置的流量。每次僅有一台虛擬機器能存取該 USB 裝置。 其他虛擬機器將無法存取連接至該虛擬機器的 USB 裝置。USB 仲裁器最多可支援 15 個 USB 控制器(vSphere 7.0)。在 ESXi 中,仲裁器服務預設為啟用狀態。
A USB controller 用於實體 ESXi 伺服器的 USB 控制器,即是實體 USB 連接埠所連接的控制器。實體 USB 控制器負責處理插入伺服器實體 USB 連接埠的實體 USB 裝置。USB 控制器可分為內建式(亦稱為整合式,內建於主機板上的晶片中)或外接式(以 PCI 或 PCIe 擴充卡的形式,插入伺服器主機板上的對應插槽中)。 內建 USB 控制器充當 USB 匯流排與 PCIe(或 PCI)匯流排之間的橋接器。內建 USB 控制器透過適當數量的 PCIe 通道,實體連接至主機板晶片組。
A virtual USB controller 是一種專為在超管理程式上運行的虛擬機器所建立的模擬裝置。當實體 USB 裝置從實體 ESXi 主機傳遞至虛擬機器中的來賓作業系統時,虛擬 USB 控制器會與實體 USB 控制器進行互動。若要在虛擬機器中使用 USB 直通特點,虛擬機器配置中必須包含虛擬 USB 控制器。 在 ESXi 主機上,單一虛擬機器最多可連接八個虛擬 USB 控制器。若需從虛擬機器配置中移除虛擬 USB 控制器,必須先移除所有連接至該控制器的 USB 裝置。在將虛擬 USB 控制器新增至虛擬機器配置後,VMware USB 驅動程式會安裝於客體作業系統上。
A physical USB device 任何具備 USB 介面及用於連接電腦的 USB 連接埠的裝置,皆可視為 USB 裝置。單一虛擬機器或 ESXi 主機最多可連接 20 個 USB 裝置。
USB 標準與控制器模式如下:
- USB 2.0 與 USB 1.1 (
EHCI+UHCI) - USB 3.0 (
xHCI) 虛擬機器硬體版本 8 或更高版本
使用 VMware USB 直通特點將實體 USB 裝置連接至虛擬機器後,您可能需要在客體作業系統中安裝該 USB 裝置的驅動程式。
USB 3.0 的需求
自 VMware vSphere 5.5 Patch 3 起,ESXi 伺服器已支援 USB 3.0。這需要在虛擬機器設定中啟用 USB xHCI 驅動程式。使用 USB 3.0 直通功能的需求如下:Windows 8.1 或更高版本、Windows Server 2012 R2 或更高版本,或搭載 Linux 核心 2.6.35 或更高版本的 Linux 系統。 自 VMware vSphere 7.0 起,USB 3.1 裝置可支援全速運作。
USB 直通傳輸的限制
在開始使用 USB 直通特點之前,請注意以下幾項限制:
- USB 隨身碟無法用作虛擬機器的啟動磁碟。
- 如果使用 USB 隨身碟來 啟動 ESXi, 此 USB 隨身碟無法連接至虛擬機器。
- 虛擬機器需具備虛擬硬體版本 7 或更高版本。
某些 USB 裝置可能不被 VMware 支援:
- USB 集線器
- 採用非同步資料傳輸的音訊裝置與攝影機
- 某些 USB 鍵盤和滑鼠(更多詳細資訊請參閱 VMware 文章 1021345)
- 某些採用 CCID 的智慧卡,可能需要進行額外設定才能連接到虛擬機器。
vMotion 對於已連接 USB 直通裝置的虛擬機器,此功能是可行的。在您正確設定虛擬機器並啟用 vMotion 後,即使將虛擬機器遷移至另一台 ESXi 主機,USB 裝置仍會保持與該虛擬機器的連接。
對於使用 USB 直通磁碟的虛擬機器,vMotion 存在以下限制:
- 由於無法在不將虛擬機器的 USB 裝置斷開連接的情況下,透過 DPM 關閉 ESXi 主機以節省電力(若使用 DPM 關閉主機,USB 裝置將會被斷開連接),因此不支援分散式電源管理 (DPM)。應在此主機上停用 DPM。
- 不支援容錯功能。
- 虛擬機器無法被暫停或關機(否則,USB 裝置將與虛擬機器斷開連接,且必須在將虛擬機器遷移回 USB 裝置實際連接的原始 ESXi 主機後,才能重新連接)。當您需要啟動此虛擬機器時,必須手動將其遷移至連接有 USB 裝置的 ESXi 主機。已恢復運作的 Linux 來賓系統在重新連接後,可將 USB 裝置掛載至不同的掛載點。
- 若 ESXi 主機上的虛擬機器具備 USB 直通裝置,則必須能透過 vmk0 虛擬機器核心介面(用於管理網路)以及 TCP 902 埠進行存取。
在使用"熱添加"特點並新增 CPU、記憶體或 PCI 裝置之前,請先將 USB 裝置從虛擬機器中移除。否則,在使用"熱添加"特點時,USB 裝置將會自動斷開連接,且可能導致部分資料遺失。若您暫停虛擬機器後再恢復運作,USB 裝置將會先斷開連接,然後再重新連接到虛擬機器。
至於建立 VMware 虛擬 USB 隨身碟或虛擬快閃記憶體隨身碟,並將其掛載至執行 ESXi 或 VMware 工作站的虛擬機器上(如同掛載虛擬軟碟或 CD/DVD 光碟般),此功能目前尚不支援。
如何將 USB 裝置連接至虛擬機器
既然我們已經熟悉了相關理論,接下來就可以進入實作階段,並在 VMware vSphere 中查看相關設定。
- 將 USB 裝置插入 ESXi 伺服器的 USB 連接埠。以我為例,我將插入一個 USB 隨身碟。
- 接著,您可以在 ESXi 命令列介面中檢查 USB 裝置是否已連接至 ESXi:
lsusb - 如您在以下螢幕截圖中所見,我的隨身碟現已連接至 ESXi 伺服器。
- USB 仲裁器服務必須正在執行。您可以使用以下指令檢查該服務的狀態:
chkconfig usbarbitrator --list - 如果 USB 仲裁器已停止運作,您可以使用以下指令啟動它
/etc/init.d/usbarbitrator start註: 請參閱 部落格文章.
該虛擬機器位於由 vCenter Server 在我的範例中,Windows 已安裝在我的虛擬機器上作為客體作業系統。開啟 VMware vSphere Client,前往
Hosts and Clusters. 在"導覽窗格"中,選取您要透過直通特點將 USB 裝置連接至其上的虛擬機器。該虛擬機器必須處於關機狀態。您必須 安裝 VMware Tools 在客體作業系統上。 - 選取虛擬機器後,請按一下
Actions > Edit settings. - 在 編輯設定 視窗中,請檢查虛擬機器設定中是否包含 USB 控制器。若缺少 USB 控制器,請按一下
Add New Device > USB Controller,並選擇 USB 控制器類型(USB 2.0 或 USB 3.0)。 - 如果系統中存在 USB 控制器,您需要將連接至 ESXi 主機的 USB 裝置新增至您的虛擬機器。請按 A
dd New Device > Host USB Device.
- 虛擬機器設定中新增了一項字串。在 新的 USB 主機 裝置清單中,選取您要連接到虛擬機器的 USB 裝置。目前我的實體 ESXi 伺服器已連接了兩支 USB 隨身碟,我現在要將 Verbatim 隨身碟(Verbatim 產品 0x0302)連接到虛擬機器。若需啟用 vMotion 支援,請展開 新的 USB 主機 裝置並選取 "在裝置連線時支援 vMotion" 核取方塊。請注意 vMotion 的需求與限制。按一下
OK儲存設定並關閉此視窗。
- 啟動虛擬機器。待客體作業系統載入後,請等待其完成初始化並安裝 USB 隨身碟。接著,開啟 Windows 裝置管理員。右鍵點擊
My Computer然後從快顯選單中,點選Manage. 在 電腦管理 視窗中,點擊Device Manager並擴展Disk drives區段(由於我們已連接 USB 隨身碟,此裝置應會出現在此裝置類別中)。我們可以看到"Verbatim USB 裝置",這是我透過 VMware USB 直通特點連接至虛擬機器的 USB 隨身碟名稱。 - 開啟
Disk Management在 電腦管理 視窗,並確認 USB 隨身碟已分配到磁碟機代號。以我的情況來說,一切設定都正確,現在我已經可以將資料從 USB 隨身碟複製到 Windows 虛擬機器中的虛擬磁碟,反之亦然。
VMware PCI 直通
如果您想透過 VMware USB 直通特點將 USB 裝置連接到虛擬機器,但該裝置未獲 VMware 支援,您可以嘗試使用 PCI 直通特點,並將具備 PCI 介面的整個實體 USB 控制器連接到虛擬機器。
若您的 ESXi 伺服器有 USB 控制器插入 PCI 插槽中,您可以將此 PCI 裝置傳遞給虛擬機器。 VMware PCI 直通功能亦稱為 VMDirectPass。此方法雖不如使用 USB 直通功能便利,但仍可協助您完成此任務。
需求
伺服器硬體必須支援 Intel Directed I/O 或 AMD I/O 虛擬化技術 (AMD IOMMU),並需在 UEFI/BIOS 中啟用此功能。若您的伺服器僅配備一個 USB 控制器,應連接額外的 USB 控制器,以避免與實體 ESXi 主機所使用的 USB 裝置失去連線。
限制與限制事項:
- 您無法暫停虛擬機器。
- 無法使用 vMotion 將虛擬機器遷移至其他 ESXi 主機。
- 不支援虛擬機器快照。
讓我們來看看透過 PCI 直通將 USB 裝置連接到虛擬機器,以及將連接 USB 裝置的整個 USB 控制器連接到虛擬機器的操作流程。
- 若要識別 USB 裝置以及您的 USB 裝置所連接的 USB 控制器(若伺服器上安裝了多個 USB 控制器),請使用以下指令:
lsusb -v | grep -e Bus -e iSerial - 找出連接至 USB 控制器之 USB 裝置名稱的字串,並確認該控制器的 ID(例如 bus002)。
- 當您將 USB 裝置連接至 ESXi 伺服器時,可以查看 VMkernel 日誌:
tail -f /var/log/vmkernel.log | grep -i USB - 開啟 VMware vSphere Client,然後前往
Hosts and Clusters. - 請選取虛擬機器所在的 ESXi 主機(您需要將 USB 裝置連接至該主機)。
- 前往
Configure按一下"標籤"並選擇PCI Devices在Hardware章節。 - 請使用您先前偵測到的 ID,從 PCI 裝置清單中找出並選取所需的 USB 控制器。
- 選取的驅動程式狀態現在應變更為 有貨.
- 新聞
OK以儲存設定。 - 請重新啟動 ESXi 主機,以便變更生效。
- 請確認您的虛擬機器已關機。前往虛擬機器設定,點擊
Add New Device > PCI device > Add請從下拉式選單中,根據正確的 ID 選取您的 USB 控制器。 - 啟動虛擬機器。檢查客體作業系統中的裝置。如果虛擬機器上安裝了 Windows,請開啟"裝置管理員",並檢查驅動程式和儲存裝置。
USB 智慧卡連接
某些具備適當 CCID 類別的 USB 裝置,預設情況下可能不支援連接虛擬機器。錯誤訊息 "無法將『路徑:0/1/6/1』連接到此虛擬機器。找不到該裝置". 在日誌中,您可以看到以下訊息:
(vmx-vcpu-0) 在使用前未申領介面 0
PCSCD 是負責控制智慧卡讀卡機的 ESXi 守護程序。由於 ESXi 主機需要使用智慧卡,因此虛擬機器無法存取 USB 智慧卡,以避免發生衝突。因此,在預設設定下,無法對 USB 智慧卡使用 USB 直通功能。您必須編輯 ESXi 主機的設定,才能為 USB 智慧卡啟用 USB 直通功能。
- 停止虛擬機器。開啟虛擬機器設定,選取
VM Options分頁,然後點擊Edit Configuration. - 在 設定參數 視窗,點擊
Add Configuration Params.此外,您也可以透過 SSH 客戶端連線至 ESXi 主控台,在命令列介面中編輯虛擬機器的 VMX 設定檔。
- 如果虛擬機器設定中未包含此參數,請編輯或新增此行:
usb.generic.allowCCID = "TRUE" - 儲存虛擬機器設定。
- 請在 ESXi 命令列中使用以下命令停止 PCSCD 服務:
sudo /etc/init.d/pcscd stop - 請確認 PCSCD 服務是否已停止執行:
ps | grep pcscd - 啟動虛擬機器,並檢查裝置,以確認 USB 智慧卡讀卡機已連接至虛擬機器。
結論
您可以將連接至實體 ESXi 主機 USB 埠的各種裝置直接連接到虛擬機器,並在虛擬機器的來賓作業系統中使用這些裝置,就像在一般實體電腦上使用這些 USB 裝置一樣。您甚至可以利用 vMotion,將連接至主要 ESXi 主機的外部 USB 裝置連同虛擬機器一併遷移至另一台主機。儘管存在某些限制,VMware USB 直通特點仍能在各種情境下提供更多功能與靈活性。
對於使用 VMware vSphere 的使用者而言,VMware 虛擬機器備份至關重要。下載 NAKIVO Backup & Replication 並試試這款通用資料保護解決方案,以保護您的 VMware vSphere 虛擬機器以及環境中的其他資料。



