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 may have been automatically translated. If you have any feedback regarding its quality, please let us know using the form at the bottom of this page.

Article Content


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検索を実行して、役に立つ可能性のある追加情報を見つけることをお勧めします。

Article Properties


Affected Product

Servers, PowerEdge

Last Published Date

15 Dec 2022

Version

4

Article Type

How To