仮想化通信

日本仮想化技術株式会社の公式エンジニアブログ

KubeVirtでTesla T4をスケジューリングするとエラーとなってKubeVirtでVMIが作れない問題

KubeVirtのGPUスケジューリングの検証のためにTesla P100のほかTesla T4も用意してもらったのですが、Tesla T4はKubernetesクラスターには認識されているものの、そのリソースを要求してVMIを作ろうとすると次のようなイベントログが発生してVMIが作成できないという問題が発生しており、現在調査中です。

 server error. command SyncVMI failed: "LibvirtError(Code=1, Domain=0, Message='internal error: Unknown PCI header type '127' for device '0000:04:00.0'')"

一方、同様にKubernetesクラスターに認識されているP100の方はLinux VMでもWindows VMでも、GPUを割り当ててVMの中で問題なく利用できました。

f:id:virtualtech:20210511180513p:plain

エラーメッセージを一部抜き出して検索したところ、いくつか有益な情報を見つけられました。

可能性の一つとして、LibVirtの修正が必要という可能性。

https://bugzilla.redhat.com/show_bug.cgi?id=1542494

KubeVirtにおいてLibVirtはホスト上で動いているわけではないため、この場合はKubeVirt側の修正が必要になります。このパターンはすぐには試せそうにないですね。

Linuxカーネルを5.10以上にするとそのようなエラーが出なくなったという声もありました。

www.reddit.com

ただ、KubeVirtでの事象が同じ理由によるものなのかは現時点でわかっていません。 またエラーはちょっと違いますが、カーネルが古いためにうまくKubeVirtでVMIを作れないというIssueが報告されていました。

github.com

今利用しているカーネルより新しいバージョンにあげるのは容易にできそうなので、試してみようと思います。 Linuxディストリビューションを変えてみるのもありですね。

その結果はこちらの記事に追記予定です。

5/18追記

サーバーのファームウェアを更新

GPUサーバーのBIOS,Firmwareを更新。更新方法はサーバーベンダーの手順に従いました。 Firmwareはブラウザーからアップデート可能だったため、最新のバージョンをダウンロードして適用しました。BIOSはブラウザーからのパッチ適用は無理だったため、USBメモリーにBIOSアップデータを焼いてもらって作業してもらいました。

サーバーの設定変更

拡張カードのFirmwareモードをBIOSからUEFIに変更しました。 (無効化した覚えはないが)SR-IOVが無効化されていたので有効化しました。

ここら辺はBIOSもしくはFirmwareのアップデート時に初期化されてしまった可能性があります。

ホスト設定の変更

以下の情報をもとに設定を再確認、足りない設定(pci-stub.idsとrdblacklistオプション)を追加しました。

GRUBへの設定追加

ホストOSから初期化させないようにするため、 pci-stub.idsとオプションで両方のNVIDIA GPUを除外しました。レスキューモードでnouveauドライバーを読み込まないようにシステムに設定しました。

GRUB_CMDLINE_LINUX="... intel_iommu=on iommu=pt pci-stub.ids=10de:15f8,10de:1eb8 rdblacklist=nouveau modprobe.blacklist=nouveau"

nouveauドライバーを使わないように設定

NVIDIA GPUをnouveauドライバーで利用しないように設定しました。

# echo "blacklist nouveau" >> /etc/modprobe.d/blacklist-nouveau.conf

GRUBを再生成して再起動

# grub2-mkconfig -o /etc/grub2.cfg
# reboot

以上の設定変更で安定してTesla T4の利用が問題なく利用可能になりました。

ホストにはオンボードのグラフィックを割り当てていたし、VMにはQXLのグラフィックを別途割り当てていたので問題ないと思っていたのですが、pci-stub.idsの設定追加が足りていなかったのが今回の事象の原因なのかなと考えています。