PowerEdge:vSphere上の仮想マシンでGPUを使用すると、PCIパススルーで「Module 'DevicePowerOn' Power on Failed」が発生する

概要: ESXiホストでPCIデバイスのパススルーを構成してVMにデバイスを追加した後に、VMがオンになりません。80%でスタックし、「必要なページの総数(4206594)が制限を超えています(917504)」というエラーが発生します。

この記事は次に適用されます: この記事は次には適用されません: この記事は、特定の製品に関連付けられていません。 すべての製品パージョンがこの記事に記載されているわけではありません。

手順

エラーメッセージ
2022-04-22T03:04:15.771Z| vmx| | I005: PCIPassthru: total number of pages needed (4206594) exceeds limit (917504), failing
2022-04-22T03:04:15.771Z| vmx| | I005: Module 'DevicePowerOn' power on failed.
 

PCIエラーのスクリーンショット


前提条件

NVIDIA GPUのパススルーを有効にするには、ホストBIOSを正しく構成する必要があり、これらの高速化されたワークロードを実行する予定の仮想マシンは、特定の要件を満たしている必要があります。このセクションでは、これらすべての要件について説明します。


対象デバイス

この記事は、PCIデバイスで合計16 GBを超えるサイズのメモリー領域にマッピングする場合にのみ関連します。VMware KB 1010789公開されている手順このハイパーリンクをクリックすると、デル・テクノロジーズ以外のWebサイトにアクセスします。に従って、vSphereでパススルー デバイスを有効にします。原則として、16 GBを超えるメモリー マッピングを必要とするカードはハイエンド カードです。仮想マシン内でそれらをパススルー モードで使用できるようにするには、この記事の手順に従う必要があります。


ホストBIOS

これらのハイエンドPCIデバイスに必要な大容量メモリー領域をサポートするようにホストBIOSを構成する必要があります。これを有効にするには、[Memory Mapped I/O above 4GB]のホストBIOS設定を有効にします。

システムBIOS設定の内蔵デバイスでのメモリー マッピング


注:このオプションは16Gでは使用できませんが、デフォルトで有効になっており、パススルーで48 GBのGPUをVMに割り当てることができます。


ゲストOS

注:これらの設定は、BIOS起動モードがUEFIに設定されている場合にのみ必要です。レガシーまたはBIOSモードの場合は、以下を無視できます。

これらの大容量メモリー マッピングにアクセスするには、VMwareサイトに接続します ゲストOSはEFI このハイパーリンクをクリックすると、デル・テクノロジーズ以外のWebサイトにアクセスします。で起動する必要があります。つまり、VMでEFIを有効にしてから、ゲストOSのEFIインストールを実行する必要があります。
 

ホスト サーバーでのPCIデバイス可用性の編集

取り付けられたPCI互換GPUハードウェア デバイスは、vSphereハイパーバイザーにインストールされた特定のドライバーなしで、サーバーの起動時にまずハイパーバイザーによって認識されます。

vSphereでは、すべてのPCIデバイスをこのように認識します。vSphere Clientツールに表示されるPCIデバイスのリストは、作業中の特定のホスト サーバーを選択し、次のメニューを選択することで確認できます。>の設定 ハードウェア>PCIデバイス>次の図2の例に示すように、編集してリストを表示します

特定のGPUデバイスでDirectPath I/Oが以前に有効になっていない場合は、NVIDIAデバイスの例に示すように、デバイス エントリーのチェック ボックスをクリックして、GPUデバイスをダイレクト パスI/O(パススルー)モードにすることができます。 

OSでのPCIデバイスの可用性の編集


VMファイルでのハイエンド デバイスの有効化

上記の要件を満たしたら、ファイルを直接変更するか、vSphereクライアントを使用してこれらの機能を追加することにより、VMのVMXファイルに2つのエントリーを追加する必要があります。最初のエントリーは次のとおりです。

pciPassthru.use64bitMMIO="TRUE"

2番目のエントリーを指定するには、簡単な計算が必要です。VMに渡すすべてのGPUデバイス(*)のGPUメモリー サイズを合計し、次の2の累乗に切り上げます。たとえば、4台の16 GB A2デバイスでパススルーを使用する場合、値は次のようになります。32 + 32 = 64で、次の2の累乗に切り上げると、128になります。この値を2番目のエントリーで使用します。

pciPassthru.64bitMMIOSizeGB="128"

VMXファイルにこれら2つの変更を加えたら、VMware KB 1010789標準vSphereの手順このハイパーリンクをクリックすると、デル・テクノロジーズ以外のWebサイトにアクセスします。に従って、ホスト レベルでパススルー デバイスを有効にし、VMに渡すデバイスを指定します。これで、VMはパススルー モードでデバイスを使用して正しく起動するはずです。
 

UIでのハイエンド デバイスの有効化

vSphere Clientで、再度仮想マシンを選択し、次のオプションを使用します。設定の編集>VMオプション>高度な>構成パラメーター>[Edit Configuration]をクリックして、以下に示すPCI関連オプションのリストを表示します。 

[Configuration Parameters Edit]ページ

「64bitMMIOSizeGB」パラメーターの値は、単純なアプローチを使用して計算します。このVMに渡すハイエンドPCI GPUデバイスの数をカウントします。これは、1台以上のGPUです。その数に16を掛けて、次の2の累乗に切り上げます。

例えば、1台のVMで2台のGPUデバイスにパススルー モードを使用する場合、値は次のようになります。4 * 16 = 64で、次の2の累乗に切り上げると、128になります。
 

仮想マシンへのGPUデバイスの割り当て

このセクションでは、GPUデバイスをVMに割り当てる方法について説明します。GPUデバイスを割り当てる前に仮想マシンの電源をオフにします。

PCIデバイスへの仮想マシン アクセスを有効にするには、vSphere Clientで仮想マシンを選択し、[ Edit Settings]オプションを使用して、[ PCI Device]リストまで下にスクロールします。お使いのデバイスがまだリストされていない場合は、[ Add New Device]ボタンを使用してリストに追加します。追加すると、仮想マシンの設定は図7に示すようになります。この例では、関連するエントリーは PCIデバイス0です。

新しく追加されたデバイスのスクリーンショット


メモリー予約

PCIデバイスがVMに割り当てられている場合、その仮想マシンでは、VMに対してフル構成のメモリー サイズ分のメモリー予約が必要です。これを行うには、vSphere ClientでVMを選択し、[Edit Settings]>[Virtual Hardware>Memory]を使用して[Reservation]領域にアクセスして値を変更します

最後に、仮想マシンの電源を入れます。仮想マシンの電源を入れたら、ゲストOSにログインし、次のコマンドを使用してGPUカードが装着されていることを確認します。

  • Linux仮想マシンでは、次のコマンドを使用します。
"lspci | grep nvidia"
  • Windowsオペレーティング システムでは、コントロール パネルデバイス マネージャーを使用して、使用可能なGPUデバイスを確認します

これで、GPUはパススルー モードでアプリケーションを使用する準備が整いました。

その他の情報

トラブルシューティング

上記の手順に従っても、デバイスが有効な状態でVMが正しく起動しない場合は、このセクションの資料が役立つ可能性があります。以下の提案を試しても問題が解決しない場合は、お問い合わせください

マッピングの問題:
VMのvmware.logファイルに次のようなエラーが表示された場合:

1	I120: PCIPassthru: 0000:82:00.0 : Device BAR 0 requested 64-bit memory address that exceeded MPN type (62105227100160)

BIOS設定が、このタイプのパススルー デバイスを有効にするために必要なESXi要件を満たしていません。ESXi 6.0 p4~ESXi 6.5では、PCIデバイス用にマッピングされたメモリーはすべて16 TB未満である必要があります。お使いのBIOSが、ホストのメモリー アドレス空間でPCIメモリー領域がマッピングされる量を制御する機能をサポートしている場合、この問題を回避できる可能性があります。例えば、一部のメーカー(SuperMicroなど)には、このメモリーがマッピングされる量を変更するBIOSオプションがあります。SuperMicroシステムでは、MMIOHBaseパラメーターをデフォルトの56 TBからより低い値に変更できます。Sugonシステムにも、同様のBIOS設定(非表示)があります。お使いのBIOSがこの再マッピング機能をサポートしているかどうかについては、お使いのシステムのベンダーに確認してください。もう1つの解決策として、ESXiバージョンを6.5 u1以降にアップデートします。このバージョン以降、16TBの制限が削除されています。

不正な構成:
次の形式のvmware.logファイルにエラーがあります。

1	2016-07-07T09:18:37.624Z| vmx| I120: PCIPassthru: total number of pages needed (2097186) exceeds limit (917504), failing

前述の「ホストBIOS」セクションで説明されているように、ホストBIOSで4 GBを超えるマッピングを正しく有効にしていないか、VMXエントリーが正しく指定されていないことを示します

デバイスを使用できません:
上記のすべての手順に従い、VM が正常に起動したにもかかわらず、 nvidia-smi ユーティリティをゲスト OS に含めます。

1	Unable to determine the device handle for GPU 0000:13:00.0: Unknown Error

NVIDIAに直接問い合わせるか、この文字列を使用してWeb検索を実行し、役立つ可能性のある追加情報を見つけることをお勧めします。

対象製品

VMware ESXi 8.x

製品

C Series, HS Series, Modular Infrastructure, Rack Servers, Tower Servers, XE Servers, XR Servers, OEM Server Solutions
文書のプロパティ
文書番号: 000199172
文書の種類: How To
最終更新: 14 5月 2026
バージョン:  8
質問に対する他のDellユーザーからの回答を見つける
サポート サービス
お使いのデバイスがサポート サービスの対象かどうかを確認してください。