PCI/PCIE および NVIDIA GPU パススルー用に Proxmox VE 8 を構成する方法

Pci Pcie Oyobi Nvidia Gpu Pasusuru Yongni Proxmox Ve 8 Wo Gou Chengsuru Fang Fa



Proxmox VE 8 は、QEMU/KVM 仮想マシン (VM) および LXC コンテナーを実行するための、オープンソースで無料の Type-I ハイパーバイザーの中で最も優れたものの 1 つです。優れたWeb管理インターフェイスと多くの機能を備えています。

Proxmox VE の最も驚くべき機能の 1 つは、PCI/PCIE デバイス (つまり、NVIDIA GPU) をコンピューターから Proxmox VE 仮想マシン (VM) にパススルーできることです。新しい Proxmox VE リリースでは、PCI/PCIE パススルーがますます改善されています。この記事の執筆時点では、Proxmox VE の最新バージョンは Proxmox VE v8.1 であり、優れた PCI/PCIE パススルー サポートを備えています。







この記事では、Proxmox VE 8 ホスト/サーバーを PCI/PCIE パススルー用に構成する方法と、Proxmox VE 8 仮想マシン (VM) で PCIE パススルー用に NVIDIA GPU を構成する方法を説明します。





目次

  1. マザーボードの BIOS/UEFI ファームウェアから仮想化を有効にする
  2. Proxmox VE 8 のインストール
  3. Proxmox VE 8 コミュニティ リポジトリの有効化
  4. Proxmox VE 8 へのアップデートのインストール
  5. マザーボードの BIOS/UEFI ファームウェアから IOMMU を有効にする
  6. Proxmox VE 8 での IOMMU の有効化
  7. Proxmox VE 8 で IOMMU が有効になっているかどうかを確認する
  8. Proxmox VE 8 への VFIO カーネル モジュールのロード
  9. Proxmox VE 8 での IOMMU グループのリスト
  10. NVIDIA GPU が Proxmox VE 8 仮想マシン (VM) にパススルーできるかどうかを確認する
  11. Proxmox VE 8 での PCI/PCIE パススルーのブラックリストにカーネル モジュールが登録されているかどうかを確認する
  12. Proxmox VE 8 での PCI/PCIE パススルーに必要なカーネル モジュールのブラックリストへの登録
  13. Proxmox VE 8 で VFIO カーネル モジュールを使用するように NVIDIA GPU を構成する
  14. NVIDIA GPU を Proxmox VE 8 仮想マシン (VM) にパススルーする
  15. Proxmox VE 8 仮想マシン (VM) での PCI/PCIE パススルーに関する問題がまだ解決していませんか?
  16. 結論
  17. 参考文献





マザーボードの BIOS/UEFI ファームウェアから仮想化を有効にする

Proxmox VE 8 をコンピュータ/サーバーにインストールする前に、マザーボードの BIOS/UEFI ファームウェアからプロセッサのハードウェア仮想化機能を有効にする必要があります。このプロセスはマザーボードごとに異なります。したがって、マザーボード上でハードウェア仮想化を有効にする際にサポートが必要な場合は、 この記事を読む



Proxmox VE 8 のインストール

Proxmox VE 8 は無料でダウンロード、インストール、使用できます。始める前に、必ず Proxmox VE 8 をコンピューターにインストールしてください。それに関してサポートが必要な場合は、 この記事を読む

Proxmox VE 8 コミュニティ リポジトリの有効化

Proxmox VE 8 をコンピュータ/サーバーにインストールしたら、必ず次のことを行ってください。 Proxmox VE 8 コミュニティ パッケージ リポジトリを有効にする

デフォルトでは、Proxmox VE 8 エンタープライズ パッケージ リポジトリが有効になっており、Proxmox VE 8 エンタープライズ ライセンスを購入しない限り、エンタープライズ リポジトリからアップデートやバグ修正を取得/インストールすることはできません。したがって、Proxmox VE 8 を無料で使用したい場合は、必ず次のことを行ってください。 Proxmox VE 8 コミュニティ パッケージ リポジトリを有効にする Proxmox から最新のアップデートとバグ修正を無料で入手できます。

Proxmox VE 8 へのアップデートのインストール

完了したら Proxmox VE 8 コミュニティ パッケージ リポジトリを有効にしました 、必ず Proxmox VE 8 サーバーに利用可能なアップデートをすべてインストールします

マザーボードの BIOS/UEFI ファームウェアから IOMMU を有効にする

IOMMU 構成は、異なるマザーボードの異なる場所にあります。マザーボードで IOMMU を有効にするには、 この記事を読む

Proxmox VE 8 での IOMMU の有効化

IOMMU がハードウェア側で有効になったら、ソフトウェア側からも IOMMU を有効にする必要があります (Proxmox VE 8 以降)。

Proxmox VE 8 から IOMMU を有効にするには、次のカーネル ブート パラメータを追加する必要があります。

プロセッサベンダー 追加するカーネルブートパラメータ
インテル intel_iommu=on、iommu=pt
AMD iommu=pt

Proxmox VE 8 のカーネル ブート パラメータを変更するには、 /etc/default/grub nano テキスト エディタを使用して次のようにファイルを作成します。

$ nano /etc/default/grub

の終わりに、 GRUB_CMDLINE_LINUX_DEFAULT 、使用しているプロセッサに応じて、IOMMU を有効にするために必要なカーネル ブート パラメータを追加します。

AMDプロセッサを使用しているため、カーネルブートパラメータのみを追加しました。 iommu=pt の終わりに GRUB_CMDLINE_LINUX_DEFAULT の行 /etc/default/grub ファイル。

完了したら、 を押します + バツ に続く そして そして <入力> を保存するために /etc/default/grub ファイル。

ここで、次のコマンドを使用して GRUB ブート構成を更新します。

$ update-grub2

GRUB ブート構成が更新されたら、 リブート 変更を有効にするには、Proxmox VE 8 サーバーを再起動します。

Proxmox VE 8 で IOMMU が有効になっているかどうかを確認する

IOMMU が Proxmox VE 8 で有効になっているかどうかを確認するには、次のコマンドを実行します。

$ dmesg | grep -e DMAR -e IOMMU

IOMMU が有効になっている場合は、IOMMU が有効であることを確認する出力がいくつか表示されます。

IOMMU が有効になっていない場合、出力が表示されない場合があります。

また、 IOMMU 割り込みの再マッピング PCI/PCIE パススルーが機能するように有効化されています。

Proxmox VE 8 サーバーで IOMMU 割り込み再マッピングが有効になっているかどうかを確認するには、次のコマンドを実行します。

$ dmesg | grep「再マッピング」

ご覧のとおり、Proxmox VE 8 サーバーでは IOMMU 割り込み再マッピングが有効になっています。

最新の AMD および Intel プロセッサでは、IOMMU 割り込み再マッピングが有効になっています。何らかの理由で IOMMU 割り込み再マッピングが有効になっていない場合は、回避策があります。 VFIO の安全でない割り込みを有効にする必要があります。 この記事を読む Proxmox VE 8 サーバーで安全でない割り込みを有効にする方法の詳細については、「Proxmox VE 8 サーバーで安全でない割り込みを有効にする」を参照してください。

Proxmox VE 8 への VFIO カーネル モジュールのロード

PCI/PCIE パススルーは、主に Proxmox VE 8 上の VFIO (仮想機能 I/O) カーネル モジュールによって実行されます。Proxmox VE 8 では、デフォルトで VFIO カーネル モジュールは起動時にロードされません。ただし、VFIO をロードするのは簡単です。 Proxmox VE 8 の起動時のカーネル モジュール。

まず、 /etc/modules-load.d/vfio.conf を含むファイル ナノ テキストエディタは次のようになります。

$ nano /etc/modules-load.d/vfio.conf

次の行を入力します。 /etc/modules-load.d/vfio.conf ファイル。

ビデオフィオ

vfio_iommu_type1

vfio_pci

完了したら、 を押します + バツ に続く そして そして <入力> をクリックして変更を保存します。

ここで、次のコマンドを使用して、Proxmox VE 8 インストールの initramfs を更新します。

$ update-initramfs -u -k all

initramfs が更新されたら、 リブート 変更を有効にするには、Proxmox VE 8 サーバーを再起動します。

Proxmox VE 8 サーバーが起動すると、必要なすべての VFIO カーネル モジュールがロードされていることがわかります。

$ lsmod |グリップvfio

Proxmox VE 8 での IOMMU グループのリスト

Proxmox VE 8 仮想マシン (VM) 上の PCI/PCIE デバイスをパススルーするには、PCI/PCIE デバイスの IOMMU グループを頻繁にチェックする必要があります。 IOMMU グループの確認を簡単にするために、パスにシェル スクリプト (GitHub から入手しましたが、元の投稿者の名前を思い出せません) を記述することにしました。 /usr/local/bin/print-iommu-groups ただ走れるように print-iommu-groups コマンドを実行すると、Proxmox VE 8 シェルに IOMMU グループが出力されます。

まず、新しいファイルを作成します print-iommu-groups 道中で /usr/local/bin 次のように nano テキスト エディタで開きます。

$ nano /usr/local/bin/print-iommu-groups

次の行を入力します。 print-iommu-groups ファイル:

#!/bin/bash

-s nullglob

のために g ` 探す / システム / カーネル / iommu_groups /* -max Depth 0 -タイプ d | 選別 -で ` ; する

エコー 「イオムグループ」 ${g##*/} :'

のために d $g / デバイス /* ; する

エコー -それは \t $(lspci -nns ${d##*/})

終わり ;

終わり ;

完了したら、 を押します + バツ に続く そして そして <入力> への変更を保存するには、 print-iommu-groups ファイル。

を作る print-iommu-groups 次のコマンドで実行可能なスクリプト ファイル:

$ chmod +x /usr/local/bin/print-iommu-groups

これで、 print-iommu-groups 次のようにコマンドを実行して、Proxmox VE 8 サーバーにインストールされている PCI/PCIE デバイスの IOMMU グループを出力します。

$ print-iommu-groups

ご覧のとおり、Proxmox VE 8 サーバーにインストールされている PCI/PCIE デバイスの IOMMU グループが出力されます。

NVIDIA GPU が Proxmox VE 8 仮想マシン (VM) にパススルーできるかどうかを確認する

PCI/PCIE デバイスを Proxmox VE 8 仮想マシン (VM) にパススルーするには、そのデバイスが独自の IOMMU グループに属している必要があります。 2 つ以上の PCI/PCIE デバイスが IOMMU グループを共有している場合、その IOMMU グループの PCI/PCIE デバイスを Proxmox VE 8 仮想マシン (VM) にパススルーすることはできません。

したがって、NVIDIA GPU とそのオーディオ デバイスが独自の IOMMU グループ上にある場合は、NVIDIA GPU を任意の Proxmox VE 8 仮想マシン (VM) にパススルーできます。

Proxmox VE 8 サーバーでは、Ryzen 3900X プロセッサーおよび Gigabyte RTX 4070 NVIDIA GPU と組み合わせた MSI X570 ACE マザーボードを使用しています。私のシステムの IOMMU グループによると、NVIDIA RTX 4070 GPU (IOMMU グループ 21)、RTL8125 2.5Gbe イーサネット コントローラー (IOMMU グループ 20)、Intel I211 ギガビット イーサネット コントローラー (IOMMU グループ 19)、USB 3.0 コントローラー ( IOMMU グループ 24)、およびオンボード HD オーディオ コントローラー (IOMMU グループ 25)。

$ print-iommu-groups

この記事の主な焦点は、NVIDIA GPU を Proxmox VE 8 仮想マシンにパススルーするように Proxmox VE 8 を構成することであるため、NVIDIA GPU とそのオーディオ デバイスは独自の IOMMU グループに存在する必要があります。

Proxmox VE 8 での PCI/PCIE パススルーのブラックリストにカーネル モジュールが登録されているかどうかを確認する

Proxmox VE 8 仮想マシン (VM) 上の PCI/PCIE デバイスをパススルーするには、Proxmox VE が元のカーネル モジュールの代わりに VFIO カーネル モジュールを使用するように強制する必要があります。

PCI/PCIE デバイスが使用しているカーネル モジュールを確認するには、これらの PCI/PCIE デバイスのベンダー ID とデバイス ID を知る必要があります。 PCI/PCIE デバイスのベンダー ID とデバイス ID は、 print-iommu-groups 指示。

$ print-iommu-groups

たとえば、NVIDIA RTX 4070 GPU のベンダー ID とデバイス ID は次のとおりです。 10de:2786 そしてそのオーディオデバイスは 10de:22bc

カーネルモジュールと PCI/PCIE デバイスを見つけるには 10de:2786 (私の NVIDIA RTX 4070 GPU) を使用している場合は、 lspci 次のようにコマンドを実行します。

$ lspci -v -d 10de:2786

ご覧のとおり、私の NVIDIA RTX 4070 GPU は nvidiafb そして 新しい デフォルトではカーネルモジュール。したがって、現時点では、それらを Proxmox VE 8 仮想マシン (VM) に渡すことはできません。

NVIDIA RTX 4070 GPU のオーディオ デバイスは、 snd_hda_intel カーネルモジュール。したがって、現時点では Proxmox VE 8 仮想マシンにも渡すことはできません。

$ lspci -v -d 10de:22bc

したがって、Proxmox VE 8 仮想マシン (VM) 上の NVIDIA RTX 4070 GPU とそのオーディオ デバイスをパススルーするには、 nvidiafb 新しい 、 そして snd_hda_intel カーネル モジュールをインストールし、NVIDIA RTX 4070 GPU とそのオーディオ デバイスを使用するように設定します。 vfio-pci カーネルモジュール。

Proxmox VE 8 での PCI/PCIE パススルーに必要なカーネル モジュールのブラックリストへの登録

Proxmox VE 8 でカーネル モジュールをブラックリストに登録するには、 /etc/modprobe.d/blacklist.conf nano テキスト エディタを使用して次のようにファイルを作成します。

$ nano /etc/modprobe.d/blacklist.conf

カーネルモジュールをブラックリストに登録するには 新しい nvidiafb 、 そして snd_hda_intel カーネル モジュール (NVIDIA GPU をパススルーするため) に次の行を追加します。 /etc/modprobe.d/blacklist.conf ファイル:

ブラックリストヌーボー

ブラックリストnvidiafb

ブラックリスト snd_hda_intel

完了したら、 を押します + バツ に続く そして そして <入力> を保存するために /etc/modprobe.d/blacklist.conf ファイル。

Proxmox VE 8 で VFIO カーネル モジュールを使用するように NVIDIA GPU を構成する

VFIO カーネル モジュールを使用するように PCI/PCIE デバイス (つまり、NVIDIA GPU) を構成するには、ベンダー ID とデバイス ID を知る必要があります。

この場合、NVIDIA RTX 4070 GPU とそのオーディオ デバイスのベンダー ID とデバイス ID は次のとおりです。 10de:2786 そして 10de:22bc

VFIO カーネル モジュールを使用するように NVIDIA GPU を構成するには、 /etc/modprobe.d/vfio.conf nano テキスト エディタを使用して次のようにファイルを作成します。

$ nano /etc/modprobe.d/vfio.conf

NVIDIA GPU とそのオーディオ デバイスを : で構成するには 10de:2786 そして 10de:22bc (としましょう) それぞれ VFIO カーネル モジュールを使用するには、次の行を /etc/modprobe.d/vfio.conf ファイル。

オプション vfio-pci ids=10de:2786,10de:22bc

完了したら、 を押します + バツ に続く そして そして <入力> を保存するために /etc/modprobe.d/vfio.conf ファイル。

ここで、次のコマンドを使用して Proxmove VE 8 の initramfs を更新します。

$ update-initramfs -u -k all

initramfs が更新されたら、 リブート 変更を有効にするには、Proxmox VE 8 サーバーを再起動します。

Proxmox VE 8 サーバーが起動すると、NVIDIA GPU とそのオーディオ デバイス ( 10de:2786 そして 10de:22bc 私の場合)を使用しています vfio-pci カーネルモジュール。これで、NVIDIA GPU を Proxmox VE 8 仮想マシンに渡す準備が整いました。

$ lspci -v -d 10de:2786

$ lspci -v -d 10de:22bc

NVIDIA GPU を Proxmox VE 8 仮想マシン (VM) にパススルーする

これで、NVIDIA GPU が Proxmox VE 8 仮想マシン (VM) でパススルーできるようになったので、目的の Proxmox VE 8 仮想マシンで NVIDIA GPU をパススルーし、使用しているオペレーティング システムに応じて NVIDIA GPU ドライバーをインストールできます。いつものようにその仮想マシンを。

さまざまなオペレーティング システムがインストールされている Proxmox VE 8 仮想マシン (VM) 上で NVIDIA GPU をパススルーする方法の詳細については、次のいずれかの記事を参照してください。

  • NVIDIA GPU を Windows 11 Proxmox VE 8 仮想マシン (VM) にパススルーする方法
  • NVIDIA GPU を Ubuntu 24.04 LTS Proxmox VE 8 仮想マシン (VM) にパススルーする方法
  • NVIDIA GPU を LinuxMint 21 Proxmox VE 8 仮想マシン (VM) にパススルーする方法
  • NVIDIA GPU を Debian 12 Proxmox VE 8 仮想マシン (VM) にパススルーする方法
  • NVIDIA GPU を基本 OS 8 Proxmox VE 8 仮想マシン (VM) にパススルーする方法
  • NVIDIA GPU を Fedora 39+ Proxmox VE 8 仮想マシン (VM) にパススルーする方法
  • Arch Linux Proxmox VE 8 仮想マシン (VM) で NVIDIA GPU をパススルーする方法
  • Red Hat Enterprise Linux 9 (RHEL 9) Proxmox VE 8 仮想マシン (VM) で NVIDIA GPU をパススルーする方法

Proxmox VE 8 仮想マシン (VM) での PCI/PCIE パススルーに関する問題がまだ解決していませんか?

この記事に記載されているすべてを正しく試しても、PCI/PCIE パススルーがまだ機能しない場合は、必ず次のことを行ってください。 Proxmox VE PCI/PCIE パススルーのトリックや回避策をいくつか試してください。 ハードウェア上で PCI/PCIE パススルーを動作させるために使用できます。

結論

この記事では、PCI/PCIE パススルー用に Proxmox VE 8 サーバーを構成して、PCI/PCIE デバイス (つまり、NVIDIA GPU) を Proxmox VE 8 仮想マシン (VM) にパススルーできるようにする方法を説明しました。また、ブラックリストに登録する必要があるカーネル モジュールを見つける方法と、目的の PCI/PCIE デバイス (つまり、NVIDIA GPU) を Proxmox VE 8 仮想マシンに正常にパススルーするためにそれらをブラックリストに登録する方法も説明しました。最後に、VFIO カーネル モジュールを使用するように目的の PCI/PCIE デバイス (つまり、NVIDIA GPU) を構成する方法を説明しました。これは、目的の PCI/PCIE デバイス (つまり、NVIDIA GPU) のパススルーを成功させるための重要なステップでもあります。 ) を Proxmox VE 8 仮想マシン (VM) に追加します。

参考文献

  1. PCI(e) パススルー – Proxmox VE
  2. PCI パススルー – Proxmox VE
  3. proxmox の究極のゲーム仮想マシン - YouTube