vSphere 6.5 e versioni successive supportano l'accesso diretto alla memoria remota (RDMA) tra macchine virtuali che dispongono di schede di rete paravirtualizzate RDMA (PVRDMA).
Panoramica di RDMA
RDMA consente l'accesso diretto dalla memoria di un computer alla memoria di un altro computer senza il coinvolgimento del sistema operativo o della CPU. Il trasferimento della memoria viene trasferito alle schede canale host HCA con supporto RDMA. Una scheda di rete PVRDMA fornisce l'accesso diretto alla memoria in un ambiente virtuale.
Utilizzo di RDMA in vSphere
In vSphere, una macchina virtuale può utilizzare una scheda di rete PVRDMA per comunicare con altre macchine virtuali che dispongono di dispositivi PVRDMA. Le macchine virtuali devono essere connesse allo stesso vSphere Distributed Switch.
Il dispositivo PVRDMA seleziona automaticamente il metodo di comunicazione tra le macchine virtuali. Per le macchine virtuali eseguite sullo stesso host ESXi con o senza un dispositivo RDMA fisico, il trasferimento dei dati è una memcpy tra le due macchine virtuali. L'hardware RDMA fisico non viene utilizzato in questo caso.
Per le macchine virtuali che risiedono su host ESXi diversi e che dispongono di una connessione RDMA fisica, i dispositivi RDMA fisici devono essere uplink nel commutatore distribuito. In questo caso, la comunicazione tra le macchine virtuali tramite PVRDMA utilizza i dispositivi RDMA fisici sottostanti.
Per due macchine virtuali in esecuzione su host ESXi diversi, quando almeno uno degli host non dispone di un dispositivo RDMA fisico, la comunicazione esegue il fallback su un canale basato su TCP e le prestazioni risultano ridotte.
Assegnazione di una scheda PVRDMA a una macchina virtuale
Per consentire a una macchina virtuale di scambiare dati utilizzando RDMA, è necessario associare la macchina virtuale a una scheda di rete PVRDMA.
Prerequisiti
- Verificare che l'host su cui è in esecuzione la macchina virtuale sia configurato per RDMA. Vedere Configurazione di un host ESXi per PVRDMA.
- Verificare che l'host sia connesso a un vSphere Distributed Switch.
- Verificare che la macchina virtuale utilizzi hardware virtuale versione 13 o successiva.
- Verificare che il sistema operativo guest sia una distribuzione Linux a 64 bit.
Procedura
Configurazione di una macchina virtuale per l'utilizzo di endpoint nativi PVRDMA
Gli endpoint nativi PVRDMA sono disponibili come configurazione avanzata delle macchine virtuali.
Gli endpoint nativi PVRDMA sono supportati nell'hardware di macchina virtuale versione 18 e successive a partire da vSphere 7.0 Update 1 e versioni successive. Per utilizzare endpoint nativi PVRDMA, è necessario abilitare gli spazi dei nomi di PVRDMA. Per informazioni su come abilitare gli spazi dei nomi di PVRDMA nell'hardware specifico dell'ambiente, fare riferimento alla documentazione del fornitore.
Per configurare endpoint nativi è possibile utilizzare vSphere Client o modificare il file VMX della macchina virtuale. Se si modifica direttamente il file VMX, aggiungere il parametro vrdmax.nativeEndpointSupport = "TRUE"
, dove x
è l'indice della scheda PVRDMA. La procedura seguente utilizza vSphere Client per configurare gli endpoint nativi.
Prerequisiti
Verificare che l'ambiente supporti PVRDMA. Vedere Supporto PVRDMA.
Procedura
Configurazione di una macchina virtuale per l'utilizzo della modalità asincrona PVRDMA
Informazioni su come configurare una macchina virtuale per l'utilizzo della modalità asincrona PVRDMA. È disponibile come configurazione di una macchina virtuale avanzata.
La modalità asincrona PVRDMA è disponibile nelle macchine virtuali in esecuzione in vSphere 8.0 e versioni successive. La modalità asincrona può migliorare la velocità effettiva e la latenza per i carichi di lavoro RDMA in esecuzione nella macchina virtuale. Quando la modalità asincrona è abilitata, è possibile che nell'host si verifichi un maggiore utilizzo della CPU. Quando la modalità asincrona è in uso, è consigliabile configurare la macchina virtuale per la sensibilità alla latenza elevata.
Prerequisiti
Verificare che l'ambiente supporti PVRDMA. Vedere Supporto PVRDMA.
Procedura
- Individuare la macchina virtuale dell'appliance in vSphere Client.
- Selezionare un host, un data center, una cartella, un cluster, un pool di risorse e fare clic sulla scheda Macchine virtuali.
- Fare clic su Macchine virtuali e fare clic sulla macchina virtuale nell'elenco.
- Fare clic con il pulsante destro del mouse sulla macchina virtuale e selezionare Modifica impostazioni.
- Fare clic su Opzioni macchina virtuale.
- Espandere Avanzate.
- In Parametri di configurazione, fare clic sul pulsante Modifica configurazione.
- Nella finestra di dialogo visualizzata, fare clic su Aggiungi riga per immettere un nuovo parametro e il relativo valore.
- Immettere il parametro vrdma.asyncMode e impostare il valore su TRUE.
Requisiti di rete per RDMA su Ethernet convergente
RDMA su Ethernet convergente garantisce bassa latenza, peso leggero e comunicazione RDMA ad alta velocità su una rete Ethernet. RoCE richiede una rete configurata per il traffico senza perdita di informazioni solo al livello 2 o sia al livello 2 che al livello 3.
RDMA su Converged Ethernet (RoCE) è un protocollo di rete che utilizza RDMA per fornire un trasferimento dei dati più rapido per le applicazioni che richiedono un uso intensivo della rete. RoCE consente il trasferimento diretto di memoria tra gli host senza coinvolgere le CPU degli host.
Esistono due versioni del protocollo RoCE. RoCE v1 funziona a livello di rete di collegamento (livello 2). RoCE v2 funziona a livello di rete Internet (livello 3). Sia RoCE v1 che RoCE v2 richiedono una configurazione di rete senza perdita di dati. RoCE v1 richiede una rete di livello 2 senza perdita di dati e RoCE v2 richiede che sia il livello 2 che il livello 3 siano configurati per il funzionamento senza perdita di dati.
Rete senza perdita di dati di livello 2
Per garantire un ambiente di livello 2 senza perdita di dati, è necessario essere in grado di controllare i flussi di traffico. Il controllo del flusso si ottiene abilitando la sospensione globale attraverso la rete o utilizzando il protocollo Priority Flow Control (PFC) definito dal gruppo di bridging del data center (DCB). PFC è un protocollo di livello 2 che utilizza il campo della classe di servizi del tag VLAN 802.1Q per impostare le singole priorità del traffico. Mette in pausa il trasferimento dei pacchetti verso un ricevitore in base alla singola classe di priorità del servizio. In questo modo, un singolo link supporta sia il traffico RoCE senza perdita sia altro traffico con perdita e massimo sforzo. Con la congestione del flusso del traffico, è possibile influire su un traffico con perdita importante. Per isolare flussi diversi tra loro, utilizzare RoCE in una VLAN abilitata per le priorità PFC.
Rete senza perdita di dati di livello 3
RoCE v2 richiede che il trasferimento di dati senza perdita venga conservato in dispositivi di routing di livello 3. Per consentire il trasferimento delle priorità senza perdita PFC di livello 2 tra i router di livello 3, configurare il router in modo che mappi l'impostazione della priorità ricevuta di un pacchetto all'impostazione QoS Differentiated Serviced Code Point (DSCP) corrispondente che funziona al livello 3. I pacchetti RDMA trasferiti vengono contrassegnati con DSCP di livello 3, punti di codice priorità di livello 2 (PCP) o con entrambi. Per estrarre le informazioni sulla priorità dai router dei pacchetti, utilizzare DSCP o PCP. Se viene utilizzato PCP, il pacchetto deve essere contrassegnato con VLAN e il router deve copiare i bit PCP del tag e inoltrarli alla rete successiva. Se il pacchetto è contrassegnato con DSCP, il router deve mantenere i bit DSCP invariati.
Come RoCE v1, RoCE v2 deve essere eseguito in una VLAN abilitata per le priorità PFC.
Per informazioni sulla configurazione specifiche del fornitore, fare riferimento alla documentazione ufficiale del rispettivo dispositivo o del fornitore del commutatore.