10.8. 仮想マシンの SR-IOV ネットワークへの接続


Single Root I/O Virtualization (SR-IOV) デバイスを使用することで、仮想マシン (VM) を物理ネットワークに接続できます。

SR-IOV ネットワークを設定し、仮想マシンをそのネットワークに接続するには、次の手順を実行します。

  1. SR-IOV 物理ネットワークデバイスを設定します。
  2. 二次 SR-IOV ネットワークを定義する。
  3. 仮想マシンを SR-IOV ネットワークに接続します。

10.8.1. SR-IOV ネットワークデバイスの設定

SR-IOV Network Operator は SriovNetworkNodePolicy.sriovnetwork.openshift.io カスタムリソース定義 (CRD) を OpenShift Container Platform に追加します。SR-IOV ネットワークデバイスは、SriovNetworkNodePolicy カスタムリソース (CR) を作成して設定できます。

注記

SR-IOV Operator は、SriovNetworkNodePolicy CR で指定された設定を適用する際、ノードをドレインし、場合によってはノードを再起動することがあります。再起動は次の場合にのみ行われます。

  • Mellanox NIC (mlx5 ドライバー) の場合、Physical Function (PF) 上の Virtual Function (VF) の数が増加するたびにノードの再起動が行われます。
  • Intel NIC の場合、カーネルパラメーターに intel_iommu=oniommu=pt が含まれていない場合にのみ再起動が行われます。

設定の変更が適用されるまでに数分かかる場合があります。

前提条件

  • OpenShift CLI (oc) がインストールされている。
  • cluster-admin ロールを持つユーザーとしてクラスターにアクセスできる。
  • SR-IOV Network Operator がインストールされている。
  • drain (Pod の退避) が実行されたノードから退避されたワークロードを処理するために、クラスター内に利用可能な十分なノードがある。
  • SR-IOV ネットワークデバイス設定にコントロールプレーンノードを選択していない。

手順

  1. SriovNetworkNodePolicy オブジェクトを作成してから、YAML を <name>-sriov-node-network.yaml ファイルに保存します。<name> をこの設定の名前に置き換えます。

    apiVersion: sriovnetwork.openshift.io/v1
    kind: SriovNetworkNodePolicy
    metadata:
      name: <name>
      namespace: openshift-sriov-network-operator
    spec:
      resourceName: <sriov_resource_name>
      nodeSelector:
        feature.node.kubernetes.io/network-sriov.capable: "true"
      priority: <priority>
      mtu: <mtu>
      numVfs: <num>
      nicSelector:
        vendor: "<vendor_code>"
        deviceID: "<device_id>"
        pfNames: ["<pf_name>", ...]
        rootDevices: ["<pci_bus_id>", "..."]
      deviceType: vfio-pci
      isRdma: false
    • metadata.name はSriovNetworkNodePolicy オブジェクトの名前を定義します。
    • metadata.namespace は、SR-IOV Network Operator がインストールされている名前空間を定義します。
    • spec.resourceName は、SR-IOV デバイスプラグインのリソース名を定義します。1 つのリソース名に複数の SriovNetworkNodePolicy オブジェクトを作成できます。
    • spec.nodeSelector.feature.node.kubernetes.io/network-sriov.capable は、どのノードを設定するかを選択するためのノードセレクターを定義します。選択したノード上の SR-IOV ネットワークデバイスのみが設定されます。SR-IOV Container Network Interface (CNI) プラグインおよびデバイスプラグインは、選択したノードにのみデプロイされます。
    • spec.priority は、0 から 99 までの整数値を定義するオプションのフィールドです。数値が小さいほど優先度が高くなります。したがって、1099 よりも優先度が高くなります。デフォルト値は 99 です。
    • spec.mtu は、Virtual Function の最大伝送単位 (MTU) の値を定義するオプションのフィールドです。MTU の最大値は NIC モデルによって異なります。
    • spec.numVfs は、SR-IOV 物理ネットワークデバイス用に作成する Virtual Function (VF) の数を定義します。Intel ネットワークインターフェイスコントローラー (NIC) の場合、VF の数はデバイスがサポートする VF の合計よりも大きくすることはできません。Mellanox NIC の場合、VF の数は 127 よりも大きくすることはできません。
    • spec.nicSelector は、Operator が設定するイーサネットデバイスを定義します。すべてのパラメーターの値を指定する必要はありません。

      注記

      意図せずにイーサネットデバイスを選択する可能性を最低限に抑えるために、イーサネットアダプターを正確に特定できるようにすることが推奨されます。rootDevices を指定する場合は、vendordeviceID、または pfNames の値も指定する必要があります。

      pfNamesrootDevices の両方を同時に指定する場合、それらが同一のデバイスをポイントすることを確認します。

    • spec.nicSelector.vendor は、SR-IOV ネットワークデバイスのベンダーの 16 進コードを定義するオプションのフィールドです。許可される値は 8086 または 15b3 のいずれかのみになります。
    • spec.nicSelector.deviceID は、SR-IOV ネットワークデバイスのデバイス 16 進コードを定義するオプションのフィールドです。許可される値は 158b10151017 のみになります。
    • spec.nicSelector.pfNames は、イーサネットデバイスの 1 つ以上の Physical Function (PF) 名の配列を定義するオプションのフィールドです。
    • spec.nicSelector.rootDevices は、イーサネットデバイスの Physical Function に対応する 1 つ以上の PCI バスアドレスの配列を定義するオプションのフィールドです。以下の形式でアドレスを指定します: 0000:02:00.1
    • spec.deviceType は ドライバーの種類を定義します。OpenShift Virtualization の仮想機能には、vfio-pci ドライバータイプが必要です。
    • spec.isRdma は、リモートダイレクトメモリーアクセス (RDMA) モードを有効にするかどうかを定義するオプションフィールドです。Mellanox カードの場合、isRdmafalse に設定します。デフォルト値は false です。

      注記

      isRDMA フラグが true に設定される場合、引き続き RDMA 対応の VF を通常のネットワークデバイスとして使用できます。デバイスはどちらのモードでも使用できます。

  2. オプション: SR-IOV 対応のクラスターノードにまだラベルが付いていない場合は、SriovNetworkNodePolicy.Spec.NodeSelector でラベルを付けます。ノードのラベル付けの詳細は、「ノードのラベルを更新する方法について」を参照してください。
  3. SriovNetworkNodePolicy オブジェクトを作成します。以下のコマンドを実行する際は、<name> を この設定の名前に置き換えてください。

    $ oc create -f <name>-sriov-node-network.yaml

    設定の更新が適用された後に、sriov-network-operator namespace のすべての Pod が Running ステータスに移行します。

  4. SR-IOV ネットワークデバイスが設定されていることを確認するには、以下のコマンドを実行します。<node_name> を、設定したばかりの SR-IOV ネットワークデバイスを持つノードの名前に置き換えます。

    $ oc get sriovnetworknodestates -n openshift-sriov-network-operator <node_name> -o jsonpath='{.status.syncStatus}'
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

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

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

会社概要

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

Theme

© 2026 Red Hat
トップに戻る