$ lsusb
作为集群管理员,您可以公开集群中的 USB 设备,使虚拟机 (VM) 所有者可以将其分配给虚拟机。启用此 USB 设备直通允许客户机连接到连接到 OpenShift Container Platform 节点的实际 USB 硬件,就像硬件和虚拟机物理连接一样。
您可以首先启用主机直通,然后配置虚拟机以使用 USB 设备来公开 USB 设备。
您可以在集群级别启用 USB 主机直通。
您需要为每个要先添加然后分配给虚拟机 (VM) 的设备指定资源名称和 USB 设备名称。您可以为单个资源名称分配多个设备(在超融合 (HCO) 自定义资源 (CR) 中称为 `selector`)。如果集群上有多个相同的 USB 设备,您可以选择将虚拟机分配给特定设备。
您可以作为具有 `cluster-admin` 角色的用户访问 OpenShift Container Platform 集群。
通过运行以下命令识别 USB 设备厂商和产品
$ lsusb
通过运行以下命令打开 HCO CR
$ oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnv
根据以下示例在 `permittedHostDevices` 节中添加 USB 设备
apiVersion: hco.kubevirt.io/v1beta1
kind: HyperConverged
metadata:
name: kubevirt-hyperconverged
namespace: {CNVNamespace}
spec:
configuration:
permittedHostDevices: (1)
usbHostDevices: (2)
- resourceName: kubevirt.io/peripherals (3)
selectors:
- vendor: "045e"
product: "07a5"
- vendor: "062a"
product: "4102"
- vendor: "072f"
product: "b100"
1 | 列出已获准在集群中使用的主机设备。 |
2 | 列出可用的 USB 设备。 |
3 | 为要添加并分配给虚拟机的每个设备使用 `resourceName: deviceName`。在此示例中,资源绑定到三个设备,每个设备都由 `vendor` 和 `product` 标识,并称为 `selector`。 |
您可以配置虚拟机 (VM) 对 USB 设备的访问。此配置允许客户机连接到连接到 OpenShift Container Platform 节点的实际 USB 硬件,就像硬件和虚拟机物理连接一样。
通过运行以下命令找到 USB 设备
$ oc /dev/serial/by-id/usb-VENDOR_device_name
通过运行以下命令打开虚拟机实例自定义资源 (CR)
$ oc edit vmi vmi-usb
根据以下示例编辑 CR 以添加 USB 设备
apiVersion: kubevirt.io/v1
kind: VirtualMachineInstance
metadata:
labels:
special: vmi-usb
name: vmi-usb (1)
spec:
domain:
devices:
hostDevices:
- deviceName: kubevirt.io/peripherals
name: local-peripherals
# ...
1 | USB 设备的名称。 |