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

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

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Instructions

エラーメッセージ
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はパススルー モードでアプリケーションを使用する準備が整いました。

Additional Information

トラブルシューティング

上記の手順に従っても、デバイスが有効な状態で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検索を実行し、役立つ可能性のある追加情報を見つけることをお勧めします。

Affected Products

VMware ESXi 8.x

Products

C Series, HS Series, Modular Infrastructure, Rack Servers, Tower Servers, XE Servers, XR Servers, OEM Server Solutions
Article Properties
Article Number: 000199172
Article Type: How To
Last Modified: 17 Jan 2025
Version:  7
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.