|
この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。 |
PCIデバイスコントローラー
SUSE® Virtualizationにおける`PCIDevice`は、PCIアドレスを持つホストデバイスを表します。 デバイスは、`PCIDeviceClaim`リソースを作成するか、UIを使用してパススルーを有効にすることによって、ハイパーバイザーを介してVMに渡すことができます。デバイスをハイパーバイザーを介して渡すことは、VMがデバイスに直接アクセスでき、実質的にそのデバイスを所有することを意味します。VMは、そのデバイス用のドライバーを自分でインストールすることさえできます。
これは、`pcidevices-controller`アドオンを使用することで実現されます。
PCIデバイス機能を使用するには、ユーザーはまず`pcidevices-controller`アドオンを有効にする必要があります。
`pcidevices-controller`アドオンが正常にデプロイされたら、スキャンが完了し、PCIDevice CRDが利用可能になるまでに数分かかることがあります。
PCIデバイスでのパススルーの有効化
-
次に、`Advanced → PCI Devices`ページに移動します:
-
ベンダー名(例:NVIDIA、Intelなど)またはデバイス名でデバイスを検索します。
-
パススルーを有効にしたいデバイスを選択します:
-
次に、*パススルーを有効にする*をクリックし、警告メッセージを読みます。これらのデバイスを有効にしたい場合は、*有効にする*をクリックし、すべてのデバイスが`Enabled`されるのを待ちます。
host-ownedPCIデバイス(例:管理用およびVLAN NIC)は使用しないでください。不適切なデバイスの割り当ては、ノードの障害を含むクラスターに損害を与える可能性があります。
VMへのPCIデバイスの接続
これらのPCIデバイスを有効にした後、*仮想マシン*ページに移動し、*設定を編集*を選択してこれらのデバイスを渡すことができます。
*PCIデバイス*を選択し、*利用可能なPCIデバイス*のドロップダウンを使用します。表示されたリストから接続したいデバイスを選択し、次に*保存*をクリックします。
VM内でパススルーされたPCIデバイスを使用する
VMを起動し、VM内で`lspci`を実行すると、接続されたPCIデバイスが表示されますが、VM内のPCIアドレスはホストのPCIアドレスと必ずしも一致するわけではありません。
VM内でのPCIデバイスのドライバーをインストールする
これはホストでドライバーをインストールするのと同じです。PCIパススルー機能は、ホストデバイスを`vfio-pci`ドライバーにバインドし、VMが独自のドライバーを使用できるようにします。
既知の問題
-
問題 #6648:クラスターに同じPCIデバイスの複数のインスタンスがある場合、仮想マシンは不正なノードにスケジュールされる可能性があります。
pcidevices-controllerアドオンは、現在、ユニークなリソース記述子を使用してデバイスをkubeletに公開しています。クラスター内に同じデバイスタイプの複数の`PCIDeviceClaims`が存在する場合、これらの`PCIDeviceClaims`には同じユニークなリソース記述子が使用されるため、仮想マシンは不正なノードにスケジュールされる可能性があります。正しいデバイスとノードが使用されることを確認するために、*ノードスケジューリング*設定を構成する際に*特定のノードでVMを実行*を選択してください。
SR-IOVネットワークデバイス
`pcidevices-controller`アドオンは、基盤となるホスト上のネットワークインタフェースをスキャンし、SRIOV仮想関数(VF)をサポートしているかどうかを確認できるようになりました。有効なデバイスが見つかった場合、`pcidevices-controller`は新しい`SRIOVNetworkDevice`オブジェクトを生成します。
SriovNetworkDevice上でVFを作成するには、*⋮ → 有効にする*をクリックし、次に*仮想関数の数*を定義します。
`pcidevices-controller`はネットワークインタフェース上のVFを定義し、新しく作成されたVFの新しいPCIデバイスの状態を報告します。
次回の再スキャン時に、`pcidevices-controller`はVFのPCIDevicesを作成します。これには最大1分かかる場合があります。
新しいデバイスを表示するために、*PCIデバイス*ページに移動できます。
基盤となるネットワークインタフェースによってPCIデバイスをフィルタリングするための新しいフィルターも導入しました。
新しく作成されたPCIデバイスは、他のPCIデバイスと同様に仮想マシンにパススルーできます。
USBデバイス
Harvesterの`USBDevice`リソースは、ノード上のUSBデバイスを表します。USBデバイスは、ハイパーバイザーによって「パススルー」され、VMからの直接アクセスを可能にします。これは`pcidevices-controller`アドオンを通じて実現されます。USBパススルーを使用するには、`USBDeviceClaim`リソースを作成するか、Harvester UIで機能を有効にします。
USBパススルーは、PCIパススルーとは少し異なります。例えば、`PCIDeviceClaim`を作成することで、4つのUSBポートを持つUSBコントローラーを完全に制御できます。ただし、1つのUSBポートのみを制御するために`USBDeviceClaim`を作成することもできます。他の3つのUSBポートはノードに利用可能なままです。
|
USBデバイスを削除する前に、仮想マシンから切り離し、次に*USBデバイス*画面でパススルーを無効にしてください。 |
USBデバイスでパススルーを有効にする
-
Harvester UIで、*高度な→ USBデバイス*に移動します。
-
リストでデバイスを見つけます。
-
対象デバイスを選択し、次に*⋮ → パススルーを有効にする*を選択します。
-
確認メッセージを読み、次に*有効にする*をクリックします。
デバイスの状態が*有効*に変わるまでしばらくお待ちください。
USBデバイスを仮想マシンに接続する
-
対象デバイスでパススルーが有効になっていることを確認します。
-
*仮想マシン*に移動し、仮想マシンを作成するか、既存の仮想マシンの設定を編集します。
-
仮想マシンの設定画面で、*USBデバイス*タブに移動し、次に*利用可能なUSBデバイス*リストからデバイスを選択します。
-
*作成*または*保存*をクリックします。
仮想マシンに接続されているUSBデバイスを表示します。
-
仮想マシンを起動してからアクセスします。
-
`lsusb`を実行します。
このユーティリティは、USBバスと接続されたデバイスに関する情報を表示します。
制限
-
接続されたUSBデバイスを持つ仮想マシンは、デバイスが特定のノードにバインドされているため、ライブマイグレーションできません。
-
USBデバイスのホットプラグおよび再接続はサポートされていません。詳細については、 KubeVirtの問題 #11979をご覧ください。
-
デバイスを再接続するかノードを再起動したときにデバイスのパスが変更される場合は、仮想マシンからデバイスを切り離し、再度パススルーを有効にする必要があります。