9.15.10. PCI パススルーの設定
PCI (Peripheral Component Interconnect) パススルー機能を使用すると、仮想マシンからハードウェアデバイスにアクセスし、管理できます。PCI パススルーが設定されると、PCI デバイスはゲストオペレーティングシステムに物理的に接続されているかのように機能します。
クラスター管理者は、oc コマンドラインインターフェイス (CLI) を使用して、クラスターでの使用が許可されているホストデバイスを公開および管理できます。
vfio-pci が PCI デバイスを割り当てる場合、他のカーネルドライバーがそのデバイスを管理することはできません。すでにドライバーがデバイスを管理している場合は、特定のカーネルモジュールをブロックリストに追加する必要があります。
カーネルモジュールをブロックリストに追加すると、そのモジュールによって管理されているすべてのデバイスがホストから利用できなくなります。
次の例は、/etc/modprobe.d/ に設定ファイルを作成し、カーネル引数を追加することで、enic ネットワークドライバーをブロックリストに追加する MachineConfig CR を示しています。
apiVersion: machineconfiguration.openshift.io/v1
kind: MachineConfig
metadata:
labels:
machineconfiguration.openshift.io/role: worker
name: 100-blacklist-enic
spec:
config:
ignition:
version: 3.4.0
storage:
files:
- contents:
source: data:,blacklist%20enic%0A
mode: 420
overwrite: true
path: /etc/modprobe.d/blacklist-enic.conf
kernelArguments:
- enic.blacklist=1
- rd.driver.blacklist=enic
9.15.10.1. GPU パススルー用のノードの準備 リンクのコピーリンクがクリップボードにコピーされました!
GPU パススルー用に指定したワーカーノードに GPU オペランドがデプロイされないようにすることができます。
9.15.10.1.1. NVIDIA GPU オペランドがノードにデプロイメントされないようにする リンクのコピーリンクがクリップボードにコピーされました!
クラスター内で NVIDIA GPU Operator を使用する場合は、GPU または仮想 GPU オペランド用に設定したくないノードに nvidia.com/gpu.deploy.operands=false ラベルを適用できます。このラベルは、GPU または仮想 GPU オペランドを設定する Pod の作成を防止し、Pod がすでに存在する場合は終了します。
前提条件
-
OpenShift CLI (
oc) がインストールされている。
手順
次のコマンドを実行して、ノードのラベルを付けます。
$ oc label node <node_name> nvidia.com/gpu.deploy.operands=false各項目の説明:
<node_name>- NVIDIA GPU オペランドをインストールしたくないノードの名前を指定します。
検証
次のコマンドを実行して、ラベルがノードに追加されたことを確認します。
$ oc describe node <node_name>オプション: GPU オペランドが以前にノードにデプロイされていた場合は、それらの削除を確認します。
次のコマンドを実行して、
nvidia-gpu-operatornamespace 内の Pod のステータスを確認します。$ oc get pods -n nvidia-gpu-operator出力例
NAME READY STATUS RESTARTS AGE gpu-operator-59469b8c5c-hw9wj 1/1 Running 0 8d nvidia-sandbox-validator-7hx98 1/1 Running 0 8d nvidia-sandbox-validator-hdb7p 1/1 Running 0 8d nvidia-sandbox-validator-kxwj7 1/1 Terminating 0 9d nvidia-vfio-manager-7w9fs 1/1 Running 0 8d nvidia-vfio-manager-866pz 1/1 Running 0 8d nvidia-vfio-manager-zqtck 1/1 Terminating 0 9dTerminatingステータスの Pod が削除されるまで、Pod のステータスを監視します。$ oc get pods -n nvidia-gpu-operator出力例
NAME READY STATUS RESTARTS AGE gpu-operator-59469b8c5c-hw9wj 1/1 Running 0 8d nvidia-sandbox-validator-7hx98 1/1 Running 0 8d nvidia-sandbox-validator-hdb7p 1/1 Running 0 8d nvidia-vfio-manager-7w9fs 1/1 Running 0 8d nvidia-vfio-manager-866pz 1/1 Running 0 8d