USB(通用串行总线)直通功能使您能够从虚拟机访问和管理 USB 设备。
某些运行在虚拟机(VM)中的应用程序具有加密需求,需要与专用的 USB 设备交互。在这种情况下,需要将 USB 设备从主机直通到虚拟机。
要将 USB 设备分配给虚拟机,必须通过 ResourceName 暴露该 USB 设备。可以通过编辑 kubevirt 命名空间下的 HyperConverged CR 中的 spec.permittedHostDevices.usbHostDevices
部分来配置。
以下是一个 USB 设备的示例配置,ResourceName 为 kubevirt.io/storage,厂商 ID 为 0bda
,产品 ID 为 8812
:
USB 设备的厂商和产品标识符可以通过 lsusb
命令获取。
例如:
该命令列出所有连接的 USB 设备,其中 ID 显示厂商:产品对 。
现在,在虚拟机配置中,可以添加 spec.domain.devices.hostDevices.deviceName
来引用上一步中提供的 ResourceName
,并为其指定本地名称。
例如:
编辑配置前请确保虚拟机已停止。
完成配置后,在虚拟机内执行 lsusb
命令。如果输出中列出了主机节点的 USB 设备,则表示直通成功。
例如:
您可能希望将多个 USB 设备直通到虚拟机,例如键盘、鼠标或智能卡设备。我们支持在同一个 resourceName 下分配多个 USB 设备。配置方法如下:
注意:所有 USB 设备必须物理连接并被主机检测到,才能确保成功分配给虚拟机。