如何在 VMware vSphere 虛擬機中使用 USB 設備

超威甾體的主要功能是在軟體層面模擬虛擬機使用的設備。像是虛擬控制器和硬盘、DVD-ROM、显卡、網絡卡、輸入設備等,這些都是在虛擬機中建立的設備。那麼,如果你想連接到打印機、掃描器、USB隨身碟、USB硬盤、USB智能卡閱讀器、安全彤雞、USB授權鍵等該如何是好呢?

對於具有USB接口的外部实体設備,你可以通過使用USB傳輸功能,將其連接到運行 VMware WorkstationESXi主機上的虛擬機。本篇文章涵蓋了在 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裝置。

仲裁器是ESXi伺服器上的專用服務。仲裁器 scanning實體伺服器上連接到有限责任公司的USB裝置,並負責將USB裝置流量路由到實體主機和虛擬機之間。任何時間只有一個虛擬機可以存取USB裝置。其他虛擬機將被阻止存取連接到虛擬機的USB裝置。USB仲裁器支持最多15個USB控制器和vSphere 7.0。仲裁器服務在ESXi中 default启用。

USB控制器和是用在实体ESXi伺服器上的控制器,連接实体USB埠。实体USB控制器和插入伺服器上实体USB埠的实体USB裝置一同工作。USB控制器和可以是在主板上内置(也稱為整合,並 Built into a chip on a motherboard)或外接(實作為PCI或PCIe卡片插入伺服器主板上相對插槽)。内置USB控制器作為USB總線和PCIe(或PCI)總線之間的桥梁。内置USB控制器透過合適數量的PCIe通道物理連接到主板上芯片集。

虛擬USB控制器是為在虚拟化平台運行的虚拟机专门创建的仿真设备。当一个物理USB设备从物理ESXi主機傳送到虚拟机中的访客操作系统时,虚拟USB控制器与实体USB控制器互动。在虚拟机配置中使用USB透传特性时,虚拟USB控制器的存在是必需的。在ESXi主機上的虚拟机最多可以连接八个虚拟USB控制器。如果您需要从虚拟机配置中移除虚拟USB控制器,您必须先移除连接到该控制器的所有USB装置。在向虚拟机配置中添加虚拟USB控制器后,访客操作系统会上安装VMware USB驱动程式。

实体USB裝置是通过USB接口和USB端口连接到电脑的任何USB裝置。单一虚拟机或ESXi主機最多可以连接20个USB裝置。

USB標準和控制器模式包括:

  • USB 2.0 與 USB 1.1 (EHCI+UHCI)
  • USB 3.0 (xHCI) VM 硬體版本 8 或以上

當您使用 VMware USB 軟件通過功能將物理 USB 裝置連接到虛擬機時,您可能需要在客作業系統中為連接的 USB 裝置安裝驅動程式。

USB 3.0 的需求

從 VMware vSphere 5.5 第三版修補開始,ESXi 伺服器支援 USB 3.0。這需要在 VM 配置中使用 USB xHCI 驅動程式。使用 USB 3.0 軟件通過的作業系統需求為:Windows 8.1 或以上,Windows Server 2012 R2 或以上,或內核為 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之後,當虛擬機 migrate到另一台ESXi主機時,USB設備仍然會連接到虛擬機。

對於使用USB直通碟的虛擬機,vMotion有一些限制:

  • 因為在ESXi主機關閉以節省電力時需要先從虛擬機斷開USB設備,所以無法支援Distributed Power Management (DPM)。应在這個主機上禁用DPM。
  • 不支援容錯功能。
  • 虛擬機不能暫停或關閉(否则,USB設備會從虛擬機斷開,且只能在將虛擬機 migrate到最初與USB設備實體連接的ESXi主機後重新連接)。當需要啟動這個虛擬機時,必須手動將虛擬機 migrate到有USB設備連接的ESXi主機。在重新連接後,已經 resume的Linux客串可以將USB設備掛载在不同的掛點。
  • 具有USB直通設備的虛擬機的ESXi主機必須通過虛擬機 kernel interface (for management networking) 的vmk0以及TCP端口902可供訪問。

在使用熱新增功能以及新增 CPU、記憶體或 PCI 設備前,請先從虛擬機中 disconnect USB 設備。不然的话,當使用熱新增功能時 USB 設備會自動 disconnect 並且可能會發生一些數據丢失。如果你暫停 VM 然後再 resume 它,USB 設備會先 disconnect 然後再 reconnect 到 VM。

至於創建 VMware 虛擬 USB 驅動器或虛擬 U 盤來附加至正在運行 ESXi 或 VMware Workstation 的虛擬機,就像你會附加虛擬 floppy 牒或 CD/DVD 牒一樣,目前此選項不支持。

如何將 USB 設備連接到虛擬機

現在我們已經熟悉了理論,我們可以進行實際部分並查看 VMware vSphere 中的配置。

  1. 將 USB 設備插入 ESXi 伺服器上的 USB 接口。在我的案例中,我將插入一個 USB 閃存盤。
  2. 然後你可以在 ESXi 命令行介面中檢查 USB 設備是否已連接到 ESXi:

    lsusb

  3. 如您在以下截圖中所見,我的閃存盤現在已連接到 ESXi 伺服器。

  4. USB 仲裁服務必須正在運行中。你可以用命令檢查服務的狀態:

    chkconfig usbarbitrator --list

  5. 如果USB仲裁器已停止,您可以使用命令

    /etc/init.d/usbarbitrator start

    來啟動它。

    注意:部落格貼文中了解更多關於ESXiCLI的資訊。

    在我的例子中,VM位元體所在的ESXi主機是由vCenter Server管理的。在我的虛擬機上安裝了Windows作為來賓作業系統。打开VMware vSphere Client,轉到Hosts and Clusters。在導航窗格中選擇一個要使用透傳功能连接USB設備的虛擬機。該虛擬機必須已關閉。您必须在來賓作業系統上安裝VMware Tools

  6. 選擇了虛擬機後,點擊 Actions > Edit settings

  7. Edit Settings 窗口中,檢查虛擬機設定中是否有 USB 控制器。如果缺少 USB 控制器,請點擊 Add New Device > USB Controller,並選擇 USB 控制器的型態(USB 2.0 或 USB 3.0)。
  8. 如果已經存在 USB 控制器,您需要將連接到 ESXi 主機的 USB 設備添加到您的 VM 中。點擊 Add New Device > Host USB Device
  9. 新增一個虛擬機配置的字串。在新建USB主機設備字串中,選擇一個你想要連接到VM的USB設備。現在我有一個实体ESXi服務器上連接到兩個USB閃存盤,並且將Verbatim閃存盤連接到我的VM (Verbatim產品0x0302)。如果你需要启用vMotion支持,請擴展新建USB主機設備並選擇“设备连接时支持vMotion”核選框。注意vMotion的要求和限制。點擊確定以保存設定並關閉此窗口。
  10. 啟動虛擬機。一旦客人作業系統被打開,等待它初始化並安裝USB閃存盤。接下來,打开Windows设备管理器。右擊我的電腦,從上下文菜單中,點擊管理。在计算机管理窗口中,點擊設備管理器並擴展磁盤驱动器部分(因為我們連接了一個USB閃存盤,這個設備應該出現在這個設備類別中)。我們可以看到Verbatim USB設備,這是我使用VMware USB直通功能連接到VM的USB棍的名字。
  11. 打开磁盤管理計算機管理視窗,並確定USB隨身碟已指派給一個磁盤機。在我的案例中,一切都没問題,現在我可以在Windows宿主的虛擬磁盤與USB隨身碟之間複製數據。

VMware PCI 通透

如果您想透過VMware USB通透功能將USB設備連接到VM,但該設備不受VMware支援,您可以嘗試使用PCI通透功能,並將具有PCI介面 entire physical USB控制器連接到VM。

如果您的ESXi服務器有一個USB控制器插入PCI插槽,您可以將這個PCI設備傳遞給虛擬機。VMware PCI通透也稱為VMDirectPass。這種方法不如使用USB通透方便,但它可以幫助您完成任務。

需求

服務器硬體必須支持Intel 導向I/O或AMD I/O 虛擬化技術(AMD IOMMU),並在UEFI/BIOS中啟用。如果您服務器上只有一个USB控制器,您應該連接到一個額外的USB控制器,以避免失去您物理ESXi主機所用USB設備的連接。

限制和限制:

  • 您無法暫停虛擬機。
  • VM不能使用vMotion migrated到其他ESXi主機。
  • 虛擬機快照不支援。

讓我們看看如何通過PCI直通將USB設備連接到VM,以及如何將整個USB控制器和USB設備相連的VM。

  1. 要識別USB設備及其相連的USB控制器的USB控制器和USB設備(如果您的伺服器上安裝了多個USB控制器和USB設備)請使用以下命令:

    lsusb -v | grep -e Bus -e iSerial

  2. 找出USB設備附带的USB控制器的名字和控制器ID(例如bus002)。
  3. 您可以在將USB設備連接到ESXi服務器時查看VMkernel日誌:

    tail -f /var/log/vmkernel.log | grep -i USB

  4. 打开VMware vSphere客戶端,然后前往主機和集群
  5. 选择您虚拟机所在ESXi主機(您需要連接到USB設備)。
  6. 轉到配置标签,然后在硬件部分选择PCI器件
  7. 使用您早先檢測到的ID,从PCI器件列表中找到并选择所需的USB控制器。
  8. 所選驱动程序的状态現在應該變為可用
  9. 確定保存設定。
  10. 重启ESXi主機以使更改生效。
  11. 確保您的虛擬機器已關閉。前往 VM 設定,點擊 新增設備 > PCI 設備 > 新增。從下拉選單中選擇您的 USB 控制器,使用正確的 ID。
  12. 啟動虛擬機器。在客體操作系統中檢查設備。如果虛擬機器上安裝了 Windows,打開設備管理器並檢查驅動程式和儲存設備。

USB 智能卡連接

某些具有適當 CCID 類別的 USB 設備可能預設不支援連接到 VMs。錯誤訊息為 “無法將‘path:0/1/6/1’連接到此虛擬機器。找不到設備”。在日誌中,您可以看見以下訊息:

(vmx-vcpu-0) 在使用前未聲明接口 0

PCSCD 是控制智慧卡讀取器的 ESXi 守護程式。為了避免衝突,對虛擬機器禁用了對 USB 智能卡的訪問,因為 ESXi 主機需要一張智慧卡。因此,在預設設定下無法將 USB 透傳與 USB 智能卡一起使用。您必須編輯 ESXi 主機配置,以啟用 USB 智能卡的 USB 透傳。

  1. 停止虛擬機器。打開虛擬機器設定,選擇 VM 選項標籤,並點擊 編輯配置

  2. 配置 parameters窗口中,點按新增 Configuration Params

    或者,您可以使用 SSH 客戶端連接到 ESXi 控制台,在命令行界面编辑虚拟机的 VMX 配置文件。

  3. 如果该参数不存在,请编辑虚拟机配置,或添加以下行:

    usb.generic.allowCCID = "TRUE"

  4. 保存虚拟机设置。
  5. 在 ESXi 命令行上使用以下命令停止 PCSCD 服务:

    sudo /etc/init.d/pcscd stop

  6. 确保 PCSCD 服务没有运行:

    ps | grep pcscd

  7. 启动虚拟机并检查设备,以验证 USB 智能卡读卡器是否连接到虚拟机。

结论

您可以將連接至 physical ESXi 主機 USB 端口的各种設備直接連接至虛擬機,並在虛擬機的客房操作系统中像在一般的實體電腦上一樣使用它們。您甚至可以將使用 vMotion 連接至主要 ESXi 主機的 external USB 設備 migration 的虛擬機移转到另一個主機。雖然有一些限制,但 VMware USB 通透功能在不同的情況下增加了更多功能和靈活性。

對於使用 VMware vSphere 的用戶來說,VMware VM 備份非常重要。下載 NAKIVO Backup & Replication 並試用這個通用的數據保護解決方案,以保護您的 VMware vSphere 虛擬機和環境中的其他數據。

Source:
https://www.nakivo.com/blog/vmware-administration-essentials-configuring-esxi-vm-networks-2/