×

作为集群管理员,您可以公开集群中的 USB 设备,使虚拟机 (VM) 所有者可以将其分配给虚拟机。启用此 USB 设备直通允许客户机连接到连接到 OpenShift Container Platform 节点的实际 USB 硬件,就像硬件和虚拟机物理连接一样。

您可以首先启用主机直通,然后配置虚拟机以使用 USB 设备来公开 USB 设备。

启用 USB 主机直通

您可以在集群级别启用 USB 主机直通。

您需要为每个要先添加然后分配给虚拟机 (VM) 的设备指定资源名称和 USB 设备名称。您可以为单个资源名称分配多个设备(在超融合 (HCO) 自定义资源 (CR) 中称为 `selector`)。如果集群上有多个相同的 USB 设备,您可以选择将虚拟机分配给特定设备。

先决条件
  • 您可以作为具有 `cluster-admin` 角色的用户访问 OpenShift Container Platform 集群。

步骤
  1. 通过运行以下命令识别 USB 设备厂商和产品

    $ lsusb
  2. 通过运行以下命令打开 HCO CR

    $ oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnv
  3. 根据以下示例在 `permittedHostDevices` 节中添加 USB 设备

    YAML 代码示例
    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`。

配置虚拟机连接到 USB 设备

您可以配置虚拟机 (VM) 对 USB 设备的访问。此配置允许客户机连接到连接到 OpenShift Container Platform 节点的实际 USB 硬件,就像硬件和虚拟机物理连接一样。

步骤
  1. 通过运行以下命令找到 USB 设备

    $ oc /dev/serial/by-id/usb-VENDOR_device_name
  2. 通过运行以下命令打开虚拟机实例自定义资源 (CR)

    $ oc edit vmi vmi-usb
  3. 根据以下示例编辑 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 设备的名称。