Questo documento spiega come abilitare il Data Plane Development Kit (DPDK) su un'istanza di macchina virtuale (VM) per velocizzare l'elaborazione dei pacchetti di rete.
DPDK è un framework per applicazioni ad alta intensità di prestazioni che richiedono una rapida elaborazione dei pacchetti, bassa latenza e prestazioni costanti. DPDK fornisce un set di librerie del piano dati e un controller di interfaccia di rete (NIC) che bypassano la rete del kernel e vengono eseguiti direttamente nello spazio utente. Ad esempio, l'abilitazione di DPDK sulla VM è utile quando si esegue quanto segue:
Distribuzioni di virtualizzazione delle funzioni di rete (NFV)
Applicazioni di networking software-defined (SDN)
Applicazioni di streaming video o voice over IP
Puoi eseguire DPDK su una VM utilizzando uno dei seguenti tipi di NIC virtuali (vNIC):
Consigliato: gVNIC
Un'interfaccia di rete virtuale ad alte prestazioni, sicura e scalabile, progettata specificatamente per Compute Engine e che segue virtIO come vNIC di nuova generazione.
-
Un driver Ethernet open source che consente alle VM di accedere in modo efficiente all'hardware fisico, come gli adattatori di rete e l'archiviazione a blocchi.
Un problema relativo all'esecuzione di DPDK in un ambiente virtuale, anziché sull'hardware fisico, è che gli ambienti virtuali non supportano SR-IOV e I/O Memory Management Unit (IOMMU) per le applicazioni ad alte prestazioni. Per superare questa limitazione, devi eseguire DPDK sugli indirizzi fisici degli ospiti, anziché ospitare indirizzi virtuali, utilizzando uno dei seguenti driver:
Prima di iniziare
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione è il processo mediante il quale viene verificata l'identità per l'accesso ai servizi e alle API Google Cloud.
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti in Compute Engine nel seguente modo.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Installa Google Cloud CLI, quindi initialize eseguendo questo comando:
gcloud init
- Set a default region and zone.
Per evitare una mancanza di connettività di rete durante l'esecuzione delle applicazioni, utilizza due reti Virtual Private Cloud:
Una rete VPC per il piano di controllo
Una rete VPC per il piano dati
Le due reti VPC devono specificare quanto segue:
Una subnet con un intervallo di indirizzi IP univoco
La stessa regione per le subnet
Lo stesso tipo di VNIC, gVNIC o VirtIO-Net
Quando crei la VM:
Devi specificare la stessa regione delle subnet delle due reti VPC.
Devi specificare il tipo di vNIC che intendi utilizzare con DPDK.
Devi specificare una serie di macchine supportata per gVNIC o VirtIO-Net.
Puoi utilizzare solo subnet a stack singolo per le due reti VPC utilizzate nella VM.
Se utilizzi gVNIC come tipo vNIC per le due reti VPC, verifica quanto segue:
Devi utilizzare DPDK 22.11 o versioni successive.
Puoi utilizzare solo immagini disco supportate.
Se vuoi abilitare prestazioni di rete Tier_1 per VM per prestazioni di rete migliori durante la creazione della VM, devi specificare quanto segue:
gVNIC come tipo vNIC
Un tipo di macchina supportato con 30 o più vCPU
Crea una rete VPC per il piano dati:
Nella console Google Cloud, vai a Reti VPC.
Viene visualizzata la pagina Reti VPC.
Fai clic su
Crea rete VPC.Viene visualizzata la pagina Crea una rete VPC.
Nel campo Nome, inserisci un nome per la rete.
Nella sezione Nuova subnet, procedi nel seguente modo:
Nel campo Nome, inserisci un nome per la subnet.
Nel menu Regione, seleziona una regione per la tua subnet.
Seleziona IPv4 (stack singolo) (impostazione predefinita).
Nell'intervallo IPv4, inserisci un indirizzo di intervallo IPv4 valido nella notazione CIDR.
Fai clic su Fine.
Fai clic su Crea.
Viene visualizzata la pagina Reti VPC. La creazione della rete VPC può richiedere fino a un minuto.
Crea una rete VPC per il piano di controllo con una regola firewall per consentire le connessioni SSH nella VM:
Fai di nuovo clic su
Crea rete VPC.Viene visualizzata la pagina Crea una rete VPC.
Nel campo Nome, inserisci un nome per la rete.
Nella sezione Nuova subnet, procedi nel seguente modo:
Nel campo Nome, inserisci un nome per la subnet.
Nel menu Regione, seleziona la stessa regione specificata per la subnet della rete del piano dati.
Seleziona IPv4 (stack singolo) (impostazione predefinita).
Nell'intervallo IPv4, inserisci un indirizzo di intervallo IPv4 valido nella notazione CIDR.
Fai clic su Fine.
Nella scheda Regole firewall IPv4, seleziona la casella di controllo NETWORK_NAME-allow-ssh.
Dove NETWORK_NAME è il nome della rete specificato nei passaggi precedenti.
Fai clic su Crea.
Viene visualizzata la pagina Reti VPC. La creazione della rete VPC può richiedere fino a un minuto.
Per creare una rete VPC per il piano dati, segui questi passaggi:
Crea una rete VPC con una subnet creata manualmente utilizzando il comando
gcloud compute networks create
con il flag--subnet-mode
impostato sucustom
.gcloud compute networks create DATA_PLANE_NETWORK_NAME \ --bgp-routing-mode=regional \ --mtu=MTU \ --subnet-mode=custom
Sostituisci quanto segue:
DATA_PLANE_NETWORK_NAME
: nome della rete VPC del piano dati.MTU
: l'unità massima di trasmissione (MTU), ovvero la dimensione del pacchetto più grande della rete. Il valore deve essere compreso tra1300
e8896
. Il valore predefinito è1460
. Prima di impostare la MTU su un valore superiore a1460
, consulta Unità massima di trasmissione.
Crea una subnet per la rete del piano dati VPC appena creata utilizzando il comando
gcloud compute networks subnets create
.gcloud compute networks subnets create DATA_PLANE_SUBNET_NAME \ --network=DATA_PLANE_NETWORK_NAME \ --range=DATA_PRIMARY_RANGE \ --region=REGION
Sostituisci quanto segue:
DATA_PLANE_SUBNET_NAME
: il nome della subnet per la rete del piano dati.DATA_PLANE_NETWORK_NAME
: il nome della rete del piano dati specificato nei passaggi precedenti.DATA_PRIMARY_RANGE
: un intervallo IPv4 valido per la subnet in notazione CIDR.REGION
: la regione in cui creare la subnet.
Per creare una rete VPC per il piano di controllo con una regola firewall che consenta le connessioni SSH nella VM, segui questi passaggi:
Crea una rete VPC con una subnet creata manualmente utilizzando il comando
gcloud compute networks create
con il flag--subnet-mode
impostato sucustom
.gcloud compute networks create CONTROL_PLANE_NETWORK_NAME \ --bgp-routing-mode=regional \ --mtu=MTU \ --subnet-mode=custom
Sostituisci quanto segue:
CONTROL_PLANE_NETWORK_NAME
: nome della rete VPC del piano di controllo.MTU
: la MTU, ovvero la dimensione del pacchetto più grande della rete. Il valore deve essere compreso tra1300
e8896
. Il valore predefinito è1460
. Prima di impostare l'MTU su un valore superiore a1460
, consulta Unità massima di trasmissione.
Crea una subnet per la rete del piano di controllo VPC appena creata utilizzando il comando
gcloud compute networks subnets create
.gcloud compute networks subnets create CONTROL_PLANE_SUBNET_NAME \ --network=CONTROL_PLANE_NETWORK_NAME \ --range=CONTROL_PRIMARY_RANGE \ --region=REGION
Sostituisci quanto segue:
CONTROL_PLANE_SUBNET_NAME
: il nome della subnet per la rete del piano di controllo.CONTROL_PLANE_NETWORK_NAME
: il nome della rete del piano di controllo specificata nei passaggi precedenti.CONTROL_PRIMARY_RANGE
: un intervallo IPv4 valido per la subnet in notazione CIDR.REGION
: la regione in cui creare la subnet, che deve corrispondere alla regione specificata nella subnet della rete del piano dati.
Crea una regola firewall VPC che consenta a SSH di accedere alla rete del piano di controllo utilizzando il comando
gcloud compute firewall-rules create
con il flag--allow
impostato sutcp:22
.gcloud compute firewall-rules create FIREWALL_RULE_NAME \ --action=allow \ --network=CONTROL_PLANE_NETWORK_NAME \ --rules=tcp:22
Sostituisci quanto segue:
FIREWALL_RULE_NAME
: il nome della regola firewall.CONTROL_PLANE_NETWORK_NAME
: il nome della rete del piano di controllo creata nei passaggi precedenti.
Per creare una rete VPC per il piano dati, segui questi passaggi:
Crea una rete VPC con una subnet creata manualmente inviando una richiesta
POST
al metodonetworks.insert
con il campoautoCreateSubnetworks
impostato sufalse
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks { "autoCreateSubnetworks": false, "name": "DATA_PLANE_NETWORK_NAME", "mtu": MTU }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto attuale.DATA_PLANE_NETWORK_NAME
: il nome della rete per il piano dati.MTU
: l'unità massima di trasmissione (MTU), ovvero la dimensione del pacchetto più grande della rete. Il valore deve essere compreso tra1300
e8896
. Il valore predefinito è1460
. Prima di impostare la MTU su un valore superiore a1460
, consulta Unità massima di trasmissione.
Crea una subnet per la rete del piano dati VPC inviando una richiesta
POST
al metodosubnetworks.insert
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks { "ipCidrRange": "DATA_PRIMARY_RANGE", "name": "DATA_PLANE_SUBNET_NAME", "network": "projects/PROJECT_ID/global/networks/DATA_PLANE_NETWORK_NAME" }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto in cui si trova la rete del piano dati.REGION
: la regione in cui vuoi creare la subnet.DATA_PRIMARY_RANGE
: l'intervallo IPv4 principale per la nuova subnet in notazione CIDR.DATA_PLANE_SUBNET_NAME
: il nome della subnet per la rete del piano dati creata nel passaggio precedente.DATA_PLANE_NETWORK_NAME
: il nome della rete del piano dati creata nel passaggio precedente.
Per creare una rete VPC per il piano di controllo con una regola firewall che consenta l'accesso tramite SSH alla VM, segui questi passaggi:
Crea una rete VPC con una subnet creata manualmente inviando una richiesta
POST
al metodonetworks.insert
con il campoautoCreateSubnetworks
impostato sufalse
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks { "autoCreateSubnetworks": false, "name": "CONTROL_PLANE_NETWORK_NAME", "mtu": MTU }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto attuale.CONTROL_PLANE_NETWORK_NAME
: il nome della rete per il piano di controllo.MTU
: la MTU, ovvero la dimensione del pacchetto più grande della rete. Il valore deve essere compreso tra1300
e8896
. Il valore predefinito è1460
. Prima di impostare l'MTU su un valore superiore a1460
, consulta Unità massima di trasmissione.
Crea una subnet per la rete di controllo dati VPC inviando una richiesta
POST
al metodosubnetworks.insert
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks { "ipCidrRange": "CONTROL_PRIMARY_RANGE", "name": "CONTROL_PLANE_SUBNET_NAME", "network": "projects/PROJECT_ID/global/networks/CONTROL_PLANE_NETWORK_NAME" }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto in cui si trova la rete del piano di controllo.REGION
: la regione in cui vuoi creare la subnet.CONTROL_PRIMARY_RANGE
: l'intervallo IPv4 principale per la nuova subnet in notazione CIDR.CONTROL_PLANE_SUBNET_NAME
: il nome della subnet per la rete del piano di controllo creata nel passaggio precedente.CONTROL_PLANE_NETWORK_NAME
: il nome della rete del piano di controllo creata nel passaggio precedente.
Crea una regola firewall VPC che consenta l'accesso tramite SSH alla rete del piano di controllo effettuando una richiesta
POST
al metodofirewalls.insert
. Nella richiesta, imposta il campoIPProtocol
sutcp
e il campoports
su22
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls { "allowed": [ { "IPProtocol": "tcp", "ports": [ "22" ] } ], "network": "projects/PROJECT_ID/global/networks/CONTROL_PLANE_NETWORK_NAME" }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto in cui si trova la rete del piano di controllo.CONTROL_PLANE_NETWORK_NAME
: il nome della rete del piano di controllo creata nei passaggi precedenti.
Nella console Google Cloud, vai a Istanze VM.
Si apre la pagina Istanze VM.
Fai clic su
Crea istanza.Viene visualizzata la pagina Crea un'istanza.
Nel campo Nome, inserisci un nome per la VM.
Nel menu Regione, seleziona la stessa regione in cui hai creato le reti nei passaggi precedenti.
Nel menu Zona, seleziona una zona per la tua VM.
Nella sezione Configurazione macchina, segui questi passaggi:
Seleziona una delle seguenti opzioni:
Per i carichi di lavoro comuni, seleziona la scheda Uso generico (impostazione predefinita).
Per i carichi di lavoro che richiedono prestazioni elevate, seleziona la scheda Ottimizzata per il calcolo.
Per carichi di lavoro con un rapporto memoria-vCPU elevato, seleziona la scheda Ottimizzata per la memoria.
Per i carichi di lavoro che utilizzano GPU (Graphics Processing Unit), seleziona la scheda GPU.
Facoltativo. Se hai specificato GPU nel passaggio precedente e vuoi cambiare la GPU da collegare alla VM, esegui una o più delle seguenti operazioni:
Nel menu Tipo di GPU, seleziona un tipo di GPU.
Nel menu Numero di GPU, seleziona il numero di GPU.
Nel menu Serie, seleziona una serie di macchine.
Nel menu Tipo di macchina, seleziona un tipo di macchina.
(Facoltativo) Espandi Configurazioni avanzate e segui le istruzioni per personalizzare ulteriormente la macchina per questa VM.
(Facoltativo) Nella sezione Disco di avvio, fai clic su Cambia e segui le istruzioni per cambiare l'immagine disco.
Espandi la sezione Opzioni avanzate.
Espandi la sezione Networking.
Nella sezione Configurazione delle prestazioni di rete, procedi nel seguente modo:
Nel menu Scheda dell'interfaccia di rete, seleziona una delle seguenti opzioni:
Per utilizzare gVNIC, seleziona gVNIC.
Per utilizzare VirtIO-Net, seleziona VirtIO.
(Facoltativo) Per prestazioni di rete più elevate e latenza ridotta, seleziona la casella di controllo Abilita networking Tier_1.
Nella sezione Interfacce di rete, procedi nel seguente modo:
Nella riga default, fai clic su
Elimina l'elemento "predefinito".Fai clic su Aggiungi interfaccia di rete.
Viene visualizzata la sezione Nuova interfaccia di rete.
Nel menu Rete, seleziona la rete del piano di controllo che hai creato nei passaggi precedenti.
Fai clic su Fine.
Fai di nuovo clic su Aggiungi interfaccia di rete.
Viene visualizzata la sezione Nuova interfaccia di rete.
Nel menu Rete, seleziona la rete del piano dati creata nei passaggi precedenti.
Fai clic su Fine.
Fai clic su Crea.
Si apre la pagina Istanze VM. Può essere necessario fino a un minuto prima del completamento della creazione della VM.
VM_NAME
: il nome della VM.IMAGE_FAMILY
: famiglia di immagini del sistema operativo con cui verrà inizializzato il disco di avvio. In alternativa, puoi specificare il flag--image=IMAGE
e sostituireIMAGE
con una versione specifica di un'immagine. Scopri come visualizzare un elenco delle immagini disponibili nel progetto di immagini di Compute Engine.IMAGE_PROJECT
: il nome del progetto di immagini che contiene l'immagine disco.MACHINE_TYPE
: un tipo di macchina, predefinita o personalizzata, per la VM.VNIC_TYPE
: il tipo vNIC da utilizzare per le reti del piano di controllo e del piano dati. Il valore deve essere uno dei seguenti:Per utilizzare gVNIC, specifica
GVNIC
.Per utilizzare VirtIO-Net, specifica
VIRTIO_NET
.
CONTROL_PLANE_NETWORK_NAME
: il nome della rete del piano di controllo creata nei passaggi precedenti.CONTROL_PLANE_SUBNET_NAME
: il nome della subnet per la rete del piano di controllo creata nei passaggi precedenti.DATA_PLANE_NETWORK_NAME
: il nome della rete del piano dati creata nei passaggi precedenti.DATA_PLANE_SUBNET_NAME
: il nome della subnet per la rete del piano di controllo che hai creato automaticamente nei passaggi precedenti.ZONE
: la zona in cui creare la VM. Specifica una zona all'interno della stessa regione della subnet creata nei passaggi precedenti.PROJECT_ID
: l'ID del progetto in cui si trovano la rete VPC del piano di controllo e la rete VPC del piano dati.ZONE
: la zona in cui creare la VM.VM_NAME
: il nome della VM.MACHINE_TYPE
: un tipo di macchina, predefinita o personalizzata, per la VM.IMAGE_PROJECT
: il nome del progetto di immagini che contiene l'immagine disco.IMAGE_FAMILY
: famiglia di immagini del sistema operativo con cui verrà inizializzato il disco di avvio. In alternativa, puoi specificare una versione specifica di un'immagine. Scopri come visualizzare un elenco di immagini nel progetto di immagini di Compute Engine.CONTROL_PLANE_NETWORK_NAME
: il nome della rete del piano di controllo creata nei passaggi precedenti.REGION
: la regione in cui si trovano le subnet del piano di controllo e le reti del piano dati.CONTROL_PLANE_SUBNET_NAME
: il nome della subnet per la rete del piano di controllo creata nei passaggi precedenti.VNIC_TYPE
: il tipo vNIC da utilizzare per le reti del piano di controllo e del piano dati. Il valore deve essere uno dei seguenti:Per utilizzare gVNIC, specifica
GVNIC
.Per utilizzare VirtIO-Net, specifica
VIRTIO_NET
.
DATA_PLANE_NETWORK_NAME
: il nome della rete del piano dati creata nei passaggi precedenti.DATA_PLANE_SUBNET_NAME
: il nome della subnet per la rete del piano di controllo creata nei passaggi precedenti.Connettiti alla VM creata nella sezione precedente utilizzando SSH.
Configura le dipendenze per l'installazione di DPDK:
sudo apt-get update && sudo apt-get upgrade -yq sudo apt-get install -yq build-essential ninja-build python3-pip \ linux-headers-$(uname -r) pkg-config libnuma-dev sudo pip install pyelftools meson
Installa DPDK:
wget https://fast.dpdk.org/rel/dpdk-23.07.tar.xz tar xvf dpdk-23.07.tar.xz cd dpdk-23.07
Per creare DPDK con gli esempi:
meson setup -Dexamples=all build sudo ninja -C build install; sudo ldconfig
Controlla se VFIO è abilitato:
cat /boot/config-$(uname -r) | grep NOIOMMU
Se VFIO non è abilitato, segui i passaggi descritti in Installa UIO.
Abilita la modalità No-IOMMU in VFIO:
sudo bash -c 'echo 1 > /sys/module/vfio/parameters/enable_unsafe_noiommu_mode'
Clona il repository git
igb_uio
su un disco nella tua VM:git clone https://dpdk.org/git/dpdk-kmods
Dalla directory padre del repository Git clonato, crea il modulo e installa il driver UIO su DPDK:
pushd dpdk-kmods/linux/igb_uio sudo make sudo depmod && sudo insmod igb_uio.ko popd
Installa il pacchetto
dpdk-igb-uio-dkms
:sudo apt-get install -y dpdk-igb-uio-dkms
Installa il driver UIO su DPDK:
sudo modprobe igb_uio
Recupera il numero di slot PCI (Peripheral Componente Interconnect) per l'interfaccia di rete attuale:
sudo lspci | grep -e "gVNIC" -e "Virtio network device"
Ad esempio, se la VM utilizza
ens4
come interfaccia di rete, il numero di slot PCI è00:04.0
.Interrompi l'interfaccia di rete collegata all'adattatore di rete:
sudo ip link set NETWORK_INTERFACE_NAME down
Sostituisci
NETWORK_INTERFACE_NAME
con il nome dell'interfaccia di rete specificata nelle reti VPC. Per sapere quale interfaccia di rete è in uso nella VM, visualizza la configurazione dell'interfaccia di rete:sudo ifconfig
Associa DPDK al conducente:
sudo dpdk-devbind.py --bind=DRIVER PCI_SLOT_NUMBER
Sostituisci quanto segue:
DRIVER
: il driver a cui associare DPDK. Specifica uno dei seguenti valori:Driver UIO:
igb_uio
Driver VFIO senza IOMMU:
vfio-pci
PCI_SLOT_NUMBER
: il numero di slot PCI dell'interfaccia di rete corrente formattato come00:0NUMBER.0
.
Crea la directory
/mnt/huge
, quindi crea delle enormi pagine da utilizzare per DPDK per i buffer:sudo mkdir /mnt/huge sudo mount -t hugetlbfs -o pagesize=1G none /mnt/huge sudo bash -c 'echo 4 > /sys/kernel/mm/hugepages/hugepages-1048576kB/nr_hugepages' sudo bash -c 'echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages'
Verifica che DPDK possa utilizzare l'interfaccia di rete creata nei passaggi precedenti eseguendo l'applicazione di esempio
testpmd
inclusa nelle librerie DPDK:sudo ./build/app/dpdk-testpmd
Per ulteriori informazioni sul test di DPDK, consulta Opzioni della riga di comando di Testpmd.
Svincola DPDK dal driver:
sudo dpdk-devbind.py -u PCI_SLOT_NUMBER
Sostituisci
PCI_SLOT_NUMBER
con il numero di slot PCI specificato nei passaggi precedenti. Se vuoi verificare il numero di slot PCI per l'interfaccia di rete corrente:sudo lspci | grep -e "gVNIC" -e "Virtio network device"
Ad esempio, se la VM utilizza
ens4
come interfaccia di rete, il numero di slot PCI è00:04.0
.Ricarica il driver di rete Compute Engine:
sudo bash -c 'echo PCI_SLOT_NUMBER > /sys/bus/pci/drivers/VNIC_DIRECTORY/bind' sudo ip link set NETWORK_INTERFACE_NAME up
Sostituisci quanto segue:
PCI_SLOT_NUMBER
: il numero di slot PCI specificato nei passaggi precedenti.VNIC_DIRECTORY
: la directory di vNIC. A seconda del tipo di vNIC utilizzato, specifica uno dei seguenti valori:gVNIC:
gvnic
VirtIO-Net:
virtio-pci
NETWORK_INTERFACE_NAME
: il nome dell'interfaccia di rete specificato nella sezione precedente.
Esamina le tariffe di larghezza di banda della rete per il tipo di macchina.
Scopri di più sulla creazione e gestione delle reti VPC.
Scopri di più sulle impostazioni MTU più elevate con jumbo frame.
Scopri di più sull'ottimizzazione TCP per le prestazioni di rete.
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, devi utilizzare le credenziali che fornisci a gcloud CLI.
Installa Google Cloud CLI, quindi initialize eseguendo questo comando:
gcloud init
Per maggiori informazioni, consulta Autenticazione per REST nella documentazione sull'autenticazione di Google Cloud.
Requisiti
Quando crei una VM su cui eseguire DPDK, assicurati di quanto segue:
Limitazioni
L'esecuzione di DPDK su una VM presenta le seguenti restrizioni:
Configura una VM per eseguire DPDK
Questa sezione spiega come creare una VM su cui eseguire DPDK.
Crea le reti VPC
Crea due reti VPC, per il piano dati e il piano di controllo, utilizzando la console Google Cloud, Google Cloud CLI o l'API Compute Engine. Puoi specificare queste reti in un secondo momento durante la creazione della VM.
Console
gcloud
API
Per ulteriori opzioni di configurazione durante la creazione di una rete VPC, consulta Creazione e gestione delle reti VPC.
Crea una VM che utilizza le reti VPC per DPDK
Crea una VM che abilita gVNIC o virtIO-Net sulle due reti VPC create in precedenza utilizzando la console Google Cloud, gcloud CLI e l'API Compute Engine.
Opzione consigliata: specifica Ubuntu LTS o Ubuntu Pro come immagine del sistema operativo per via del supporto del gestore di pacchetti per i driver UIO e VFIO senza IOMMU. Se non vuoi specificare nessuno di questi sistemi operativi, ti consigliamo di specificare Debian 11 o versioni successive per un'elaborazione dei pacchetti più rapida.
Console
Crea una VM che utilizza le due subnet di rete VPC che hai creato nei passaggi precedenti seguendo questi passaggi:
gcloud
Crea una VM che utilizzi le due subnet di rete VPC che hai creato nei passaggi precedenti utilizzando il comando
gcloud compute instances create
con i seguenti flag:gcloud compute instances create VM_NAME \ --image-family=IMAGE_FAMILY \ --image-project=IMAGE_PROJECT \ --machine-type=MACHINE_TYPE \ --network-interface=network=CONTROL_PLANE_NETWORK_NAME,subnet=CONTROL_PLANE_SUBNET_NAME,nic-type=VNIC_TYPE \ --network-interface=network=DATA_PLANE_NETWORK_NAME,subnet=DATA_PLANE_SUBNET_NAME,nic-type=VNIC_TYPE \ --zone=ZONE
Sostituisci quanto segue:
Ad esempio, per creare una VM denominata
dpdk-vm
nella zonaus-central1-a
che specifica un disco permanente SSD da 512 GB, un tipo di macchina C2 predefinita con 60 vCPU, un networking Tier_1 e un piano dati e una rete del piano di controllo che utilizzano entrambi gVNIC, esegui questo comando:gcloud compute instances create dpdk-vm \ --boot-disk-size=512GB \ --boot-disk-type=pd-ssd \ --image-project=ubuntu-os-cloud \ --image-family=ubuntu-2004-lts \ --machine-type=c2-standard-60 \ --network-performance-configs=total-egress-bandwidth-tier=TIER_1 \ --network-interface=network=control,subnet=control,nic-type=GVNIC \ --network-interface=network=data,subnet=data,nic-type=GVNIC \ --zone=us-central1-a
API
Crea una VM che utilizzi le due subnet di rete VPC che hai creato nei passaggi precedenti effettuando una richiesta
POST
al metodoinstances.insert
con i seguenti campi:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name": "VM_NAME", "machineType": "MACHINE_TYPE", "disks": [ { "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE_FAMILY" } } ], "networkInterfaces": [ { "network": "global/networks/CONTROL_PLANE_NETWORK_NAME", "subnetwork": "regions/REGION/subnetworks/CONTROL_PLANE_SUBNET_NAME", "nicType": "VNIC_TYPE" }, { "network": "global/networks/DATAPLANE_NETWORK_NAME", "subnetwork": "regions/REGION/subnetworks/DATA_PLANE_SUBNET_NAME", "nicType": "VNIC_TYPE" } ] }
Sostituisci quanto segue:
Ad esempio, per creare una VM denominata
dpdk-vm
nella zonaus-central1-a
che specifica un disco permanente SSD da 512 GB, un tipo di macchina C2 predefinita con 60 vCPU, un networking Tier_1 e un piano dati e una rete del piano di controllo che utilizzano entrambi gVNIC, effettua la seguente richiestaPOST
:POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instances { "name": "dpdk-vm", "machineType": "c2-standard-60", "disks": [ { "initializeParams": { "diskSizeGb": "512GB", "diskType": "pd-ssd", "sourceImage": "projects/ubuntu-os-cloud/global/images/ubuntu-2004-lts" }, "boot": true } ], "networkInterfaces": [ { "network": "global/networks/control", "subnetwork": "regions/us-central1/subnetworks/control", "nicType": "GVNIC" }, { "network": "global/networks/data", "subnetwork": "regions/us-central1/subnetworks/data", "nicType": "GVNIC" } ], "networkPerformanceConfig": { "totalEgressBandwidthTier": "TIER_1" } }
Per ulteriori opzioni di configurazione durante la creazione di una VM, consulta Creare e avviare un'istanza VM.
Installa DPDK sulla VM
Per installare DPDK sulla tua VM:
Installa driver
Per preparare l'esecuzione di DPDK su un driver, installa il driver selezionando uno dei seguenti metodi:
Installa un VFIO senza IOMMU
Per installare il driver VFIO senza IOMMU:
Installa UIO
Per installare il driver UIO su DPDK, seleziona uno dei seguenti metodi:
Installa UIO utilizzando Git
Per installare il driver UIO su DPDK utilizzando
git
, segui questi passaggi:Installa UIO utilizzando pacchetti Linux
Per installare il driver UIO su DPDK utilizzando pacchetti Linux, segui questi passaggi:
Associa DPDK a un driver e testalo
Per associare DPDK al driver installato nella sezione precedente, segui questi passaggi:
Slega DPDK
Dopo aver utilizzato DPDK, puoi scollegarlo dal driver installato nella sezione precedente. Per svincolare DPDK, segui questi passaggi:
Passaggi successivi
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2024-05-31 UTC.
[{ "type": "thumb-down", "id": "hardToUnderstand", "label":"Hard to understand" },{ "type": "thumb-down", "id": "incorrectInformationOrSampleCode", "label":"Incorrect information or sample code" },{ "type": "thumb-down", "id": "missingTheInformationSamplesINeed", "label":"Missing the information/samples I need" },{ "type": "thumb-down", "id": "translationIssue", "label":"Problema di traduzione" },{ "type": "thumb-down", "id": "otherDown", "label":"Altra" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Facile da capire" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Il problema è stato risolto" },{ "type": "thumb-up", "id": "otherUp", "label":"Altra" }] -