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

PowerEdge: "Module "DevicePowerOn" power on failed" del passthrough PCI in caso di utilizzo di GPU con macchine virtuali in vSphere

Summary: La macchina virtuale non si accende dopo la configurazione del passthrough del dispositivo PCI sull'host ESXi e l'aggiunta del dispositivo alla macchina virtuale. Si blocca all'80% e quindi genera un errore 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


Premessa

Il BIOS dell'host deve essere configurato correttamente per abilitare la GPU NVIDIA per il passthrough e la macchina virtuale destinata all'esecuzione di questi carichi di lavoro accelerati deve soddisfare requisiti specifici. Questa sezione descrive tutti questi requisiti.

Quali dispositivi?

Questo articolo è pertinente solo se il dispositivo PCI esegue il mapping di regioni di memoria con dimensioni totali superiori a 16 GB. Seguire le istruzioni pubblicate nell'articolo 1010789 della KB di VMware per abilitare dispositivi passthrough in vSphere. Di regola, le schede che richiedono più di 16 GB di mapping della memoria sono schede di fascia alta. Seguire le istruzioni riportate in questo articolo per consentirne l'utilizzo in modalità passthrough all'interno di una macchina virtuale.
 

BIOS dell'host

Il BIOS dell'host deve essere configurato per supportare le aree di memoria di grandi dimensioni necessarie per questi dispositivi PCI di fascia alta. A tale scopo, individuare l'impostazione del BIOS dell'host per "memory mapped I/O above 4 GB" e abilitarla.

MMIO.png


Sistema operativo guest 

Nota: queste impostazioni sono necessarie solo se la modalità di avvio del BIOS è impostata su UEFI; se è impostata su Legacy o BIOS, è possibile ignorare quanto segue.

Per accedere a questi mapping di memoria di grandi dimensioni, connettersi al sito VMware Guest OS must boot with EFI. Ovvero, è necessario abilitare EFI nella macchina virtuale ed eseguire quindi un'installazione EFI del sistema operativo guest.
 

Modifica della disponibilità dei dispositivi PCI sul server host

Un dispositivo hardware GPU compatibile con PCI installato viene inizialmente riconosciuto dall'hypervisor vSphere al momento dell'avvio del server senza che siano installati driver specifici nell'hypervisor.

vSphere riconosce tutti i dispositivi PCI in questo modo. È possibile visualizzare l'elenco dei dispositivi PCI disponibili nello strumento vSphere Client scegliendo il server host specifico su cui si sta lavorando e seguendo le opzioni del menu.

Configure" > "Hardware" > "PCI Devices" > "Edit" per visualizzare l'elenco, come mostrato nell'esempio riportato nella Figura 2 riportata di seguito.

Se lo specifico dispositivo GPU non è stato abilitato in precedenza per DirectPath I/O, è possibile impostare il dispositivo GPU in modalità Direct Path I/O (passthrough) facendo clic sulla casella di controllo nella voce relativa al dispositivo, come mostrato nell'esempio del dispositivo NVIDIA.

image.png


Abilitazione di dispositivi di fascia alta nel file della macchina virtuale

Se i requisiti di cui sopra vengono soddisfatti, è necessario aggiungere due voci al file VMX della macchina virtuale, modificando direttamente il file o utilizzando vSphere Client per aggiungere queste funzionalità. La prima voce è:

pciPassthru.use64bitMMIO="TRUE"

Per specificare la seconda voce, è sufficiente un semplice calcolo. Sommare le dimensioni della memoria GPU di tutti i dispositivi GPU(*) che si desidera passare alla macchina virtuale e quindi arrotondare fino alla successiva potenza di due. Ad esempio, per utilizzare il passthrough con 4 dispositivi A2 da 16 GB, il valore è: 32 + 32 = 64, arrotondato per eccesso alla successiva potenza di due per generare 128. Utilizzare questo valore nella seconda voce:

pciPassthru.64bitMMIOSizeGB="128"

Con queste due modifiche al file VMX, seguire le istruzioni vSphere standard contenute nell'articolo 1010789 della KB di VMware per abilitare i dispositivi passthrough a livello di host e per specificare quali dispositivi passare alla macchina virtuale. La macchina virtuale dovrebbe ora avviarsi correttamente con il dispositivo in modalità passthrough.
 

Abilitazione dei dispositivi di fascia alta nell'interfaccia utente

In vSphere Client, scegliere la macchina virtuale e utilizzare le opzioni.

Edit Settings > VM Options >Advanced > Configuration Parameters > Edit Configuration" per accedere all'elenco delle opzioni relative a PCI mostrato di seguito.

image.png


Calcoliamo il valore del parametro "64bitMMIOSizeGB" utilizzando un approccio semplice. Conteggiare il numero di dispositivi GPU PCI di fascia alta che si intende passare a questa macchina virtuale. Può trattarsi di una o più GPU. Moltiplicare tale numero per 16 e arrotondarlo fino alla successiva potenza di due.

Ad esempio, per utilizzare la modalità passthrough con due dispositivi GPU in una macchina virtuale, il valore è: 4 * 16 = 64, arrotondato per eccesso alla successiva potenza di due per generare 128.
 

Assegnazione di un dispositivo GPU a una macchina virtuale

Questa sezione descrive l'assegnazione del dispositivo GPU alla macchina virtuale. Spegnere la macchina virtuale prima di assegnarvi il dispositivo GPU.

Per abilitare l'accesso di una macchina virtuale a un dispositivo PCI, in vSphere Client selezionare la macchina virtuale, utilizzare l'opzione "Edit Settings" e scorrere verso il basso fino all'elenco di dispositivi PCI. Se il dispositivo non è già presente nell'elenco, utilizzare il pulsante "Add New Device" per aggiungerlo. Una volta aggiunti, le impostazioni della macchina virtuale dovrebbero essere simili a quelle mostrate nella Figura 7. In questo esempio, la voce pertinente è "PCI Device 0".

image.png


Prenotazione della memoria

Quando il dispositivo PCI è assegnato a una macchina virtuale, questa deve avere una prenotazione della memoria per la dimensione totale configurata per la macchina. Questa operazione viene eseguita in vSphere Client scegliendo la macchina virtuale, utilizzando "Edit Settings > Virtual Hardware > Memory" per accedere e modificare il valore nell'area Reservation.

Infine, accendere la macchina virtuale. Dopo aver acceso la macchina virtuale, accedere al sistema operativo guest e verificare che la scheda GPU sia presente.

  • Su una macchina virtuale Linux utilizzare il comando
"lspci | grep nvidia"

Oppure

  • Su un sistema operativo Windows utilizzare "Gestione dispositivi" dal Pannello di controllo per controllare i dispositivi GPU disponibili


La GPU è ora pronta per l'uso dell'applicazione in modalità passthrough.

Additional Information

Risoluzione dei problemi

Se si sono seguite le istruzioni riportate sopra e la macchina virtuale continua a non avviarsi correttamente con i dispositivi abilitati, il materiale in questa sezione potrebbe essere utile. Se i problemi persistono nonostante i suggerimenti riportati di seguito, è possibile contattarci per ricevere assistenza.
 

Problema di mapping:
Se viene visualizzato un errore simile al seguente nel file vmware.log della macchina virtuale:

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

Le impostazioni del BIOS non soddisfano i requisiti ESXi per abilitare questo tipo di dispositivo passthrough. Il passaggio da ESXi 6.0 p4 a ESXi 6.5 richiede che la memoria mappata per i dispositivi PCI sia inferiore a 16 TB. Potrebbe essere possibile risolvere questo problema se il BIOS supporta la possibilità di controllare l'altezza di mapping delle regioni della memoria PCI nello spazio di indirizzi di memoria dell'host. Alcuni produttori, come SuperMicro, dispongono di opzioni del BIOS per modificare la quantità di memoria mappata. Nei sistemi SuperMicro, il parametro MMIOHBase può essere modificato in un valore inferiore rispetto al valore predefinito di 56 TB. Anche i sistemi Sugon hanno un'impostazione del BIOS simile (nascosta). Rivolgersi al fornitore del sistema per sapere se il BIOS supporta questa funzione di remapping. Un'altra soluzione consiste nell'aggiornare ESXi alla versione 6.5 u1 o successiva, in cui è rimossa la limitazione di 16 TB.

Configurazione errata:
Errore nel file vmware.log riportato di seguito:

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

Indica che non sono stati abilitati i mapping "superiori a 4 GB" nel BIOS host, come descritto nella sezione "BIOS dell'host" precedente, o che non sono state specificate le voci VMX.

Impossibile utilizzare il dispositivo:
Se sono state seguite tutte le istruzioni riportate sopra e la macchina virtuale si è avviata correttamente, ma viene visualizzato un messaggio simile al seguente quando si esegue l'utilità nvidia-smi nel sistema operativo guest:

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

Si consiglia di contattare direttamente NVIDIA o di eseguire una ricerca web utilizzando questa stringa per trovare ulteriori informazioni utili.

Article Properties


Affected Product

Servers, PowerEdge

Last Published Date

15 Dec 2022

Version

4

Article Type

How To