Skip to main content
  • Place orders quickly and easily
  • View orders and track your shipping status
  • Enjoy members-only rewards and discounts
  • Create and access a list of your products
  • Manage your Dell EMC sites, products, and product-level contacts using Company Administration.

『PowerEdge: vSphere上の仮想マシンでGPUを使用している場合にPCIパススルーで「Module 'DevicePowerOn' power on failed」エラーが発生する

Summary: ESXiホストでPCIデバイスのパススルーを構成してVMにデバイスを追加した後に、VMがオンになりません。80%でスタックし、「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」エラーが発生します。 ...

This article applies to   This article does not apply to 

Instructions

PCI error.PNG


前提条件

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

対象デバイス

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

ホストBIOS

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

MMIO.png


ゲストOS 

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

これらの大容量メモリー マッピングにアクセスする方法については、VMwareサイト(『Guest OS must boot with EFI』)を参照してください。つまり、VMでEFIを有効にしてから、ゲストOSのEFIインストールを実行する必要があります。
 

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

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

vSphereでは、すべてのPCIデバイスをこのように認識します。vSphere Clientツールに表示されるPCIデバイスのリストは、作業中の特定のホスト サーバーを選択し、メニューの選択肢

に従って確認できます。[Hardware] > 、[ > PCI Devices]、[ > Edit]を選択してリストを表示します(次の図2の例を参照)。

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

image.png


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の標準手順に従って、ホスト レベルでパススルー デバイスを有効にし、VMに渡すデバイスを指定します。これで、VMはパススルー モードでデバイスを使用して正しく起動するはずです。
 

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

再度vSphere Clientで仮想マシンを選択し、オプションを使用します。

Edit Settings > VM Options >Advanced > Configuration Parameters > Edit Configuration」を選択して、以下に示すPCI関連オプションのリストを表示します。

image.png


「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デバイス リストまでスクロール ダウンします。お使いのデバイスがまだリストにない場合は、[Add New Device]ボタンを使用してリストに追加します。追加すると、仮想マシンの設定は図7に示すようになります。この例では、関連するエントリーは「PCI Device 0」です。

image.png


メモリー予約

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

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

  • Linux仮想マシンでは、次のコマンドを使用します。
"lspci | grep nvidia"

または

  • Windowsオペレーティング システムでは、コントロール パネルの[デバイス マネージャー]を使用して、使用可能なGPUデバイスを確認します。


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

Additional Information

トラブルシューティング

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

マッピングの問題:
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で「above 4GB」のマッピングが正しく有効になっていないか、VMXエントリーを正しく指定しなかったことを示します。

デバイスを使用できない:
上記のすべての手順に従ってVMを正常に起動したが、ゲストOSでnvidia-smiユーティリティーを実行すると、次のようなメッセージが表示される場合:

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

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

Affected Products

Servers, PowerEdge
Article Properties
Article Number: 000199172
Article Type: How To
Last Modified: 15 Dec 2022
Version:  4
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.
Article Properties
Article Number: 000199172
Article Type: How To
Last Modified: 15 Dec 2022
Version:  4
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.