9.12.12. USB ホストパススルーの設定


クラスター管理者は、クラスター内の USB デバイスを公開できます。これにより、デバイスは仮想マシン(VM)の所有者が仮想マシンに割り当てることができます。この USB デバイスのパススルーを有効にすると、仮想マシンは、ハードウェアと仮想マシンが物理的に接続されているかのように、OpenShift Container Platform ノードに接続されている USB ハードウェアに接続できます。

USB デバイスを公開するには、まずホストパススルーを有効にしてから、USB デバイスを使用するように仮想マシンを設定します。

9.12.12.1. USB ホストパススルーの有効化

USB デバイスを仮想マシン(VM)に割り当てるには、まずクラスターレベルで USB ホストパススルーを有効にする必要があります。

これを行うには、最初に追加する各デバイスにリソース名と USB デバイス名を指定してから、仮想マシンに割り当てます。複数のデバイスを、それぞれ HyperConverged カスタムリソース(CR)の selector として知られている、単一のリソース名に割り当てることができます。クラスターに同一の USB デバイスが複数ある場合には、仮想マシンを特定のデバイスに割り当てるように選択できます。

前提条件

  • cluster-admin ロールを持つユーザーとして OpenShift Container Platform クラスターにアクセスできる。
  • OpenShift CLI (oc) がインストールされている。

手順

  1. HostDevices 機能ゲートが有効になっていることを確認します。

    $ oc get featuregate cluster -o yaml

    正常な出力

      featureGates:
    # ...
        enabled:
        - name: HostDevices
  2. USB デバイスベンダーおよび製品を特定します。

    $ lsusb

    出力例

    Bus 003 Device 007: ID 1b1c:0a60 example_manufacturer example_product_name
    • lsusb コマンドを使用できない場合は、ホストの /sys/bus/usb/devices/ ディレクトリーの USB デバイス設定を調べます。

      for dev in *; do
          if [[ -f "$dev/idVendor" && -f "$dev/idProduct" ]]; then
              echo "Device: $dev"
              echo -n "  Manufacturer : "; cat "$dev/manufacturer"
              echo -n "  Product: "; cat "$dev/product"
              echo -n "  Vendor ID : "; cat "$dev/idVendor"
              echo -n "  Product ID: "; cat "$dev/idProduct"
              echo
          fi
      done

      出力例

      Device: 3-7
        Manufacturer : example_manufacturer
        Product: example_product_name
        Vendor ID : 1b1c
        Product ID: 0a60
  3. 必要な USB デバイスを HyperConvered CR の permittedHostDevices スタンザに追加します。以下の例では、ベンダー ID 045e および製品 ID 07a5 のデバイスを追加します。

    oc patch hyperconverged kubevirt-hyperconverged \
      -n openshift-cnv \
      --type=merge \
      -p '{
        "metadata": {
          "annotations": {
            "kubevirt.kubevirt.io/jsonpatch": "[{\"op\": \"add\", \"path\": \"/spec/permittedHostDevices/usbHostDevices/-\", \"value\": {\"resourceName\": \"kubevirt.io/peripherals\", \"selectors\": [{\"vendor\": \"045e\", \"product\": \"07a5\"}]}}]"
          }
        }
      }'

検証

  • HCO CR に必要な USB デバイスが含まれていることを確認します。

    $ oc get hyperconverged kubevirt-hyperconverged -n openshift-cnv

    出力例

    apiVersion: hco.kubevirt.io/v1beta1
    kind: HyperConverged
    metadata:
       name: kubevirt-hyperconverged
       namespace: openshift-cnv
    spec:
        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 を使用します。この例では、リソースは 3 つのデバイスにバインドされており、各デバイスは vendorproduct で識別され、selector と呼ばれます。
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る