超威甾體的主要功能是在軟體層面模擬虛擬機使用的設備。像是虛擬控制器和硬盘、DVD-ROM、显卡、網絡卡、輸入設備等,這些都是在虛擬機中建立的設備。那麼,如果你想連接到打印機、掃描器、USB隨身碟、USB硬盤、USB智能卡閱讀器、安全彤雞、USB授權鍵等該如何是好呢?
對於具有USB接口的外部实体設備,你可以通過使用USB傳輸功能,將其連接到運行 VMware Workstation 或 ESXi主機上的虛擬機。本篇文章涵蓋了在 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 中的配置。
- 將 USB 設備插入 ESXi 伺服器上的 USB 接口。在我的案例中,我將插入一個 USB 閃存盤。
- 然後你可以在 ESXi 命令行介面中檢查 USB 設備是否已連接到 ESXi:
lsusb
- 如您在以下截圖中所見,我的閃存盤現在已連接到 ESXi 伺服器。
- USB 仲裁服務必須正在運行中。你可以用命令檢查服務的狀態:
chkconfig usbarbitrator --list
- 如果USB仲裁器已停止,您可以使用命令
/etc/init.d/usbarbitrator start
來啟動它。
注意:在部落格貼文中了解更多關於ESXiCLI的資訊。
在我的例子中,VM位元體所在的ESXi主機是由vCenter Server管理的。在我的虛擬機上安裝了Windows作為來賓作業系統。打开VMware vSphere Client,轉到Hosts and Clusters。在導航窗格中選擇一個要使用透傳功能连接USB設備的虛擬機。該虛擬機必須已關閉。您必须在來賓作業系統上安裝VMware Tools。
- 選擇了虛擬機後,點擊 Actions > Edit settings。
- 在 Edit Settings 窗口中,檢查虛擬機設定中是否有 USB 控制器。如果缺少 USB 控制器,請點擊 Add New Device > USB Controller,並選擇 USB 控制器的型態(USB 2.0 或 USB 3.0)。
- 如果已經存在 USB 控制器,您需要將連接到 ESXi 主機的 USB 設備添加到您的 VM 中。點擊 Add New Device > Host USB Device。
- 新增一個虛擬機配置的字串。在新建USB主機設備字串中,選擇一個你想要連接到VM的USB設備。現在我有一個实体ESXi服務器上連接到兩個USB閃存盤,並且將Verbatim閃存盤連接到我的VM (Verbatim產品0x0302)。如果你需要启用vMotion支持,請擴展新建USB主機設備並選擇“设备连接时支持vMotion”核選框。注意vMotion的要求和限制。點擊確定以保存設定並關閉此窗口。
- 啟動虛擬機。一旦客人作業系統被打開,等待它初始化並安裝USB閃存盤。接下來,打开Windows设备管理器。右擊我的電腦,從上下文菜單中,點擊管理。在计算机管理窗口中,點擊設備管理器並擴展磁盤驱动器部分(因為我們連接了一個USB閃存盤,這個設備應該出現在這個設備類別中)。我們可以看到Verbatim USB設備,這是我使用VMware USB直通功能連接到VM的USB棍的名字。
- 打开磁盤管理在計算機管理視窗,並確定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。
- 要識別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客戶端,然后前往主機和集群。
- 选择您虚拟机所在ESXi主機(您需要連接到USB設備)。
- 轉到配置标签,然后在硬件部分选择PCI器件。
- 使用您早先檢測到的ID,从PCI器件列表中找到并选择所需的USB控制器。
- 所選驱动程序的状态現在應該變為可用。
- 按確定保存設定。
- 重启ESXi主機以使更改生效。
- 確保您的虛擬機器已關閉。前往 VM 設定,點擊 新增設備 > PCI 設備 > 新增。從下拉選單中選擇您的 USB 控制器,使用正確的 ID。
- 啟動虛擬機器。在客體操作系統中檢查設備。如果虛擬機器上安裝了 Windows,打開設備管理器並檢查驅動程式和儲存設備。
USB 智能卡連接
某些具有適當 CCID 類別的 USB 設備可能預設不支援連接到 VMs。錯誤訊息為 “無法將‘path:0/1/6/1’連接到此虛擬機器。找不到設備”。在日誌中,您可以看見以下訊息:
(vmx-vcpu-0) 在使用前未聲明接口 0
PCSCD 是控制智慧卡讀取器的 ESXi 守護程式。為了避免衝突,對虛擬機器禁用了對 USB 智能卡的訪問,因為 ESXi 主機需要一張智慧卡。因此,在預設設定下無法將 USB 透傳與 USB 智能卡一起使用。您必須編輯 ESXi 主機配置,以啟用 USB 智能卡的 USB 透傳。
- 停止虛擬機器。打開虛擬機器設定,選擇 VM 選項標籤,並點擊 編輯配置。
- 在配置 parameters窗口中,點按新增 Configuration Params。
或者,您可以使用 SSH 客戶端連接到 ESXi 控制台,在命令行界面编辑虚拟机的 VMX 配置文件。
- 如果该参数不存在,请编辑虚拟机配置,或添加以下行:
usb.generic.allowCCID = "TRUE"
- 保存虚拟机设置。
- 在 ESXi 命令行上使用以下命令停止 PCSCD 服务:
sudo /etc/init.d/pcscd stop
- 确保 PCSCD 服务没有运行:
ps | grep pcscd
- 启动虚拟机并检查设备,以验证 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/