Dokumen ini menjelaskan cara mengaktifkan Data Plane Development Kit (DPDK) pada instance virtual machine (VM) untuk pemrosesan paket jaringan yang lebih cepat.
DPDK adalah framework untuk aplikasi yang membutuhkan performa tinggi dan memerlukan pemrosesan paket yang cepat, latensi rendah, dan performa yang konsisten. DPDK menyediakan serangkaian library bidang data dan pengontrol antarmuka jaringan (NIC) yang mengabaikan jaringan kernel dan berjalan langsung di ruang pengguna. Misalnya, mengaktifkan DPDK di VM berguna saat menjalankan perintah berikut:
- Deployment virtualisasi fungsi jaringan (NFV) 
- Aplikasi software-defined networking (SDN) 
- Streaming video atau aplikasi voice-over IP 
Anda dapat menjalankan DPDK di VM yang menggunakan salah satu jenis NIC virtual (vNIC) berikut:
- Direkomendasikan: gVNIC - Antarmuka jaringan virtual berperforma tinggi, aman, dan skalabel yang dirancang khusus untuk Compute Engine yang berhasil menerapkan virtIO sebagai vNIC generasi berikutnya. 
- 
Driver ethernet open source yang memungkinkan VM mengakses hardware fisik secara efisien, seperti block storage dan adaptor jaringan. 
Salah satu masalah saat menjalankan DPDK di lingkungan virtual, bukan di hardware fisik, adalah bahwa lingkungan virtual tidak memiliki dukungan untuk SR-IOV dan I/O Memory Management Unit (IOMMU) untuk aplikasi berperforma tinggi. Untuk mengatasi batasan ini, Anda harus menjalankan DPDK pada alamat fisik tamu, bukan alamat virtual host menggunakan salah satu driver berikut:
- Virtual Function I/O (VFIO) tanpa IOMMU 
Sebelum memulai
- 
  
  Jika Anda belum melakukannya, siapkan autentikasi.
  Autentikasi memverifikasi identitas Anda untuk mengakses Google Cloud layanan dan API. Untuk menjalankan
  kode atau sampel dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke
  Compute Engine dengan memilih salah satu opsi berikut:
  
   
   
     
   
  
   
   
     
   
  
   
   
     
   
  
 
 
 
  
    
      Select the tab for how you plan to use the samples on this page: ConsoleWhen you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication. gcloud- 
 
 
  
  
   
   
  
   
   
  
   
   
     
   
  
  
   
   
  
   
   
  
   
   
  
 
 
   
   
      Menginstal Google Cloud CLI. Setelah penginstalan, lakukan inisialisasi Google Cloud CLI dengan menjalankan perintah berikut: gcloud initJika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu. 
- Set a default region and zone.
 RESTUntuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, Anda menggunakan kredensial yang Anda berikan ke gcloud CLI. Menginstal Google Cloud CLI. Setelah penginstalan, lakukan inisialisasi Google Cloud CLI dengan menjalankan perintah berikut: gcloud initJika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu. Untuk mengetahui informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud . PersyaratanSaat membuat VM untuk menjalankan DPDK, pastikan hal-hal berikut: - Untuk menghindari kurangnya konektivitas jaringan saat menjalankan aplikasi Anda, gunakan dua jaringan Virtual Private Cloud: - Jaringan VPC untuk bidang kontrol 
- Jaringan VPC untuk bidang data 
 
- Kedua jaringan VPC tersebut harus menentukan hal berikut: - Subnet dengan rentang alamat IP unik 
- Region yang sama untuk subnetnya 
- Jenis VNIC yang sama—gVNIC atau VirtIO-Net 
 
- Saat membuat VM: - Anda harus menentukan region yang sama dengan subnet kedua jaringan VPC. 
- Anda harus menentukan jenis vNIC yang akan Anda gunakan dengan DPDK. 
- Anda harus menentukan rangkaian mesin yang didukung untuk gVNIC atau VirtIO-Net. 
 
 PembatasanMenjalankan DPDK pada VM memiliki batasan berikut: - Anda hanya dapat menggunakan subnet stack tunggal untuk dua jaringan VPC yang digunakan di VM. 
- Jika Anda menggunakan gVNIC sebagai jenis vNIC untuk kedua jaringan VPC, pastikan hal berikut: - Anda harus menggunakan DPDK versi 22.11 atau yang lebih baru. 
- Anda hanya dapat menggunakan disk image yang didukung. 
 
- Jika ingin mengaktifkan performa jaringan per VM Tier_1 untuk performa jaringan yang lebih tinggi saat membuat VM, Anda harus menentukan hal berikut: - gVNIC sebagai jenis vNIC 
- Jenis mesin yang didukung dengan 30 vCPU atau lebih 
 
 Ringkasan fitur dan versi DPDKGoogle merekomendasikan penggunaan driver DPDK versi terbaru untuk mendapatkan manfaat dari fitur terbaru dan perbaikan bug. Daftar berikut memberikan ringkasan tentang apa yang tersedia di setiap versi driver DPDK: - 24.07
- Ubah dukungan ukuran ring (untuk semua jenis mesin yang didukung).
- Dukungan proses sekunder.
 
- 24,03
- Dukungan RSS (untuk semua jenis mesin yang didukung).
- 23.11
- Dukungan ukuran buffer RX (untuk semua jenis mesin yang didukung).
- Dukungan frame jumbo (9K) untuk jenis mesin generasi ketiga dan yang lebih baru.
 
- 23.07
- Menambahkan dukungan untuk jenis mesin generasi ketiga dan yang lebih baru.
- Dukungan frame jumbo (9K) untuk jenis mesin generasi pertama dan kedua.
 
- 23.03
- Dukungan untuk statistik pelaporan: - Statistik software untuk semua jenis mesin yang didukung.
- Statistik hardware untuk jenis mesin generasi pertama dan kedua.
 
- 22.11
- Rilis driver awal dengan dukungan untuk jenis mesin generasi pertama dan kedua.
 Mengonfigurasi VM untuk menjalankan DPDKBagian ini menjelaskan cara membuat VM untuk menjalankan DPDK. Membuat jaringan VPCBuat dua jaringan VPC, untuk bidang data dan bidang kontrol, menggunakan konsol Google Cloud , Google Cloud CLI, atau Compute Engine API. Kemudian, Anda dapat menentukan jaringan ini saat membuat VM. Konsol- Buat jaringan VPC untuk bidang data: - Di Google Cloud konsol, buka VPC networks. - Halaman VPC networks akan terbuka. 
- Klik Create VPC network. - Halaman Create a VPC network akan terbuka. 
- Di kolom Name, masukkan nama jaringan Anda. 
- Di bagian New Subnet, lakukan hal berikut: - Di kolom Name, masukkan nama subnet Anda. 
- Di menu Region, pilih region untuk subnet Anda. 
- Pilih IPv4 (single-stack) (default). 
- Di Rentang IPv4, masukkan alamat rentang IPv4 yang valid dalam notasi CIDR. 
- Klik Done. 
 
- Klik Create. - Halaman VPC networks akan terbuka. Diperlukan waktu hingga satu menit sebelum pembuatan jaringan VPC selesai. 
 
- Buat jaringan VPC untuk bidang kontrol dengan aturan firewall guna mengizinkan koneksi SSH ke VM: - Klik Create VPC network lagi. - Halaman Create a VPC network akan terbuka. 
- Di kolom Name, masukkan nama jaringan Anda. 
- Di bagian New Subnet, lakukan hal berikut: - Di kolom Name, masukkan nama subnet. 
- Di menu Region, pilih region yang sama dengan yang Anda tentukan untuk subnet jaringan bidang data. 
- Pilih IPv4 (single-stack) (default). 
- Di Rentang IPv4, masukkan alamat rentang IPv4 yang valid dalam notasi CIDR. 
- Klik Done. 
 
- Di tab Aturan firewall IPv4, pilih kotak centang NETWORK_NAME-allow-ssh. - Dengan NETWORK_NAME adalah nama jaringan yang Anda tentukan pada langkah sebelumnya. 
- Klik Create. - Halaman VPC networks akan terbuka. Diperlukan waktu hingga satu menit sebelum pembuatan jaringan VPC selesai. 
 
 gcloud- Guna membuat jaringan VPC untuk bidang data tersebut, ikuti langkah-langkah berikut: - Buat jaringan VPC dengan subnet yang dibuat secara manual menggunakan perintah - gcloud compute networks createdengan flag- --subnet-modeyang ditetapkan ke- custom.- gcloud compute networks create DATA_PLANE_NETWORK_NAME \ --bgp-routing-mode=regional \ --mtu=MTU \ --subnet-mode=custom- Ganti kode berikut: - DATA_PLANE_NETWORK_NAME: nama jaringan VPC untuk bidang data.
- MTU: unit transmisi maksimum (MTU), yang merupakan ukuran paket terbesar di jaringan. Nilainya harus di antara- 1300dan- 8896. Nilai defaultnya adalah- 1460. Sebelum menetapkan MTU ke nilai yang lebih tinggi dari- 1460, lihat Unit transmisi maksimum.
 
- Buat subnet untuk jaringan bidang data VPC yang baru saja Anda buat menggunakan perintah - 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- Ganti kode berikut: - DATA_PLANE_SUBNET_NAME: nama subnet untuk jaringan bidang data.
- DATA_PLANE_NETWORK_NAME: nama jaringan dataplane yang Anda tentukan di langkah sebelumnya.
- DATA_PRIMARY_RANGE: rentang IPv4 yang valid untuk subnet dalam notasi CIDR.
- REGION: region tempat membuat subnet.
 
 
- Guna membuat jaringan VPC untuk bidang kontrol dengan aturan firewall guna mengizinkan koneksi SSH ke VM, ikuti langkah-langkah berikut: - Buat jaringan VPC dengan subnet yang dibuat secara manual menggunakan perintah - gcloud compute networks createdengan flag- --subnet-modeyang ditetapkan ke- custom.- gcloud compute networks create CONTROL_PLANE_NETWORK_NAME \ --bgp-routing-mode=regional \ --mtu=MTU \ --subnet-mode=custom- Ganti kode berikut: - CONTROL_PLANE_NETWORK_NAME: nama jaringan VPC untuk bidang kontrol.
- MTU: MTU, yang merupakan ukuran paket terbesar jaringan. Nilainya harus di antara- 1300dan- 8896. Nilai defaultnya adalah- 1460. Sebelum menetapkan MTU ke nilai yang lebih tinggi dari- 1460, lihat Unit transmisi maksimum.
 
- Buat subnet untuk jaringan bidang kontrol VPC yang baru saja Anda buat menggunakan perintah - 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- Ganti kode berikut: - CONTROL_PLANE_SUBNET_NAME: nama subnet untuk jaringan bidang kontrol.
- CONTROL_PLANE_NETWORK_NAME: nama jaringan bidang kontrol yang Anda tentukan pada langkah sebelumnya.
- CONTROL_PRIMARY_RANGE: rentang IPv4 yang valid untuk subnet dalam notasi CIDR.
- REGION: region tempat membuat subnet, yang harus sesuai dengan region yang Anda tentukan di subnet jaringan bidang data.
 
- Buat aturan firewall VPC yang mengizinkan koneksi SSH ke jaringan bidang kontrol menggunakan perintah - gcloud compute firewall-rules createdengan flag- --allowyang ditetapkan ke- tcp:22.- gcloud compute firewall-rules create FIREWALL_RULE_NAME \ --action=allow \ --network=CONTROL_PLANE_NETWORK_NAME \ --rules=tcp:22- Ganti kode berikut: - FIREWALL_RULE_NAME: nama aturan firewall.
- CONTROL_PLANE_NETWORK_NAME: nama jaringan bidang kontrol yang Anda buat di langkah sebelumnya.
 
 
 API- Guna membuat jaringan VPC untuk bidang data tersebut, ikuti langkah-langkah berikut: - Buat jaringan VPC dengan subnet yang dibuat secara manual dengan membuat permintaan - POSTke metode- networks.insertdengan kolom- autoCreateSubnetworksditetapkan ke- false.- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks { "autoCreateSubnetworks": false, "name": "DATA_PLANE_NETWORK_NAME", "mtu": MTU }- Ganti kode berikut: - PROJECT_ID: project ID dari project saat ini.
- DATA_PLANE_NETWORK_NAME: nama jaringan untuk bidang data.
- MTU: unit transmisi maksimum (MTU), yang merupakan ukuran paket terbesar di jaringan. Nilainya harus di antara- 1300dan- 8896. Nilai defaultnya adalah- 1460. Sebelum menetapkan MTU ke nilai yang lebih tinggi dari- 1460, lihat Unit transmisi maksimum.
 
- Buat subnet untuk jaringan bidang data VPC dengan membuat permintaan - POSTke metode- subnetworks.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" }- Ganti kode berikut: - PROJECT_ID: project ID project tempat jaringan bidang data berada.
- REGION: region tempat Anda ingin membuat subnet.
- DATA_PRIMARY_RANGE: rentang IPv4 utama untuk subnet baru dalam notasi CIDR.
- DATA_PLANE_SUBNET_NAME: nama subnet untuk jaringan bidang data yang Anda buat di langkah sebelumnya.
- DATA_PLANE_NETWORK_NAME: nama jaringan bidang data yang Anda buat di langkah sebelumnya.
 
 
- Guna membuat jaringan VPC untuk bidang kontrol dengan aturan firewall guna mengizinkan koneksi SSH ke VM, ikuti langkah-langkah berikut: - Buat jaringan VPC dengan subnet yang dibuat secara manual dengan membuat permintaan - POSTke metode- networks.insertdengan kolom- autoCreateSubnetworksditetapkan ke- false.- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks { "autoCreateSubnetworks": false, "name": "CONTROL_PLANE_NETWORK_NAME", "mtu": MTU }- Ganti kode berikut: - PROJECT_ID: project ID dari project saat ini.
- CONTROL_PLANE_NETWORK_NAME: nama jaringan untuk bidang kontrol.
- MTU: MTU, yang merupakan ukuran paket terbesar jaringan. Nilainya harus di antara- 1300dan- 8896. Nilai defaultnya adalah- 1460. Sebelum menetapkan MTU ke nilai yang lebih tinggi dari- 1460, lihat Unit transmisi maksimum.
 
- Buat subnet untuk jaringan kontrol data VPC dengan membuat permintaan - POSTke metode- subnetworks.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" }- Ganti kode berikut: - PROJECT_ID: project ID project tempat jaringan bidang kontrol berada.
- REGION: region tempat Anda ingin membuat subnet.
- CONTROL_PRIMARY_RANGE: rentang IPv4 utama untuk subnet baru dalam notasi CIDR.
- CONTROL_PLANE_SUBNET_NAME: nama subnet untuk jaringan bidang kontrol yang Anda buat di langkah sebelumnya.
- CONTROL_PLANE_NETWORK_NAME: nama jaringan bidang kontrol yang Anda buat di langkah sebelumnya.
 
- Buat aturan firewall VPC yang mengizinkan koneksi SSH ke jaringan bidang kontrol dengan membuat permintaan - POSTke metode- firewalls.insert. Dalam permintaan, tetapkan kolom- IPProtocolke- tcpdan kolom- portske- 22.- 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" }- Ganti kode berikut: - PROJECT_ID: project ID project tempat jaringan bidang kontrol berada.
- CONTROL_PLANE_NETWORK_NAME: nama jaringan bidang kontrol yang Anda buat di langkah sebelumnya.
 
 
 Untuk mengetahui opsi konfigurasi lainnya saat membuat jaringan VPC, lihat Membuat dan mengelola jaringan VPC. Membuat VM yang menggunakan jaringan VPC untuk DPDKBuat VM yang mengaktifkan gVNIC atau virtIO-Net di dua jaringan VPC yang Anda buat sebelumnya menggunakan Google Cloud konsol, gcloud CLI, dan Compute Engine API. Direkomendasikan: Tentukan Ubuntu LTS atau Ubuntu Pro sebagai image sistem operasi karena dukungan pengelola paketnya untuk VFIO tanpa UIO dan IOMMU {i>driver<i}. Jika Anda tidak ingin menentukan salah satu sistem operasi ini, sebaiknya tetapkan Debian 11 atau yang lebih baru untuk pemrosesan paket yang lebih cepat. KonsolBuat VM yang menggunakan dua subnet jaringan VPC yang Anda buat pada langkah sebelumnya dengan melakukan hal berikut: - Di Google Cloud konsol, buka VM instances. - Halaman VM instances akan terbuka. 
- Klik Create instance. - Halaman Create an instance akan terbuka. 
- Di kolom Name, masukkan nama untuk VM Anda. 
- Di menu Region, pilih region yang sama tempat Anda membuat jaringan pada langkah sebelumnya. 
- Di menu Zone, pilih zona untuk VM Anda. 
- Di bagian Machine configuration, lakukan hal berikut: - Pilih salah satu opsi berikut: - Untuk workload umum, pilih tab General destination (default). 
- Untuk workload berperforma intensif, pilih tab ComputeOptimized. 
- Untuk workload rasio memori-ke-vCPU tinggi, pilih tab MemoryOptimized. 
- Untuk beban kerja yang menggunakan Graphics processing unit (GPU), pilih tab GPUs. 
 
- Opsional. Jika Anda menentukan GPU di langkah sebelumnya dan ingin mengubah GPU agar terpasang ke VM, lakukan satu atau beberapa tindakan berikut: - Di menu GPU type, pilih salah satu jenis GPU. 
- Di menu Number of GPU, pilih jumlah GPU. 
 
- Di menu Series, pilih deret mesin. 
- Pada menu Machine type, pilih jenis mesin. 
- Opsional: Luaskan Advanced configurations, dan ikuti petunjuk untuk menyesuaikan mesin untuk VM ini lebih lanjut. 
 
- Opsional: Di bagian Boot disk, klik Change, lalu ikuti petunjuk untuk mengubah disk image. 
- Luaskan bagian Advanced options. 
- Luaskan bagian Networking. 
- Di bagian Network performance configuration, lakukan hal berikut: - Pada menu Network interface card, pilih salah satu opsi berikut: - Untuk menggunakan gVNIC, pilih gVNIC. 
- Untuk menggunakan VirtIO-Net, pilih VirtIO. 
 
- Opsional: Untuk mendapatkan performa jaringan yang lebih tinggi dan latensi yang lebih rendah, centang kotak Enable Tier_1 networking. 
 
- Di bagian Network interfaces, lakukan hal berikut: - Di baris default, klik Delete item "default". 
- Klik Add network interface. - Bagian New network interface akan muncul. 
- Di menu Network, pilih jaringan bidang kontrol yang Anda buat pada langkah sebelumnya. 
- Klik Done. 
- Klik Add network interface lagi. - Bagian New network interface akan muncul. 
- Di menu Network, pilih jaringan bidang data yang Anda buat di langkah sebelumnya. 
- Klik Done. 
 
- Klik Create. - Halaman VM instances akan terbuka. Diperlukan waktu hingga satu menit sebelum pembuatan VM selesai. 
 gcloudBuat VM yang menggunakan dua subnet jaringan VPC yang Anda buat pada langkah sebelumnya menggunakan perintah gcloud compute instances createdengan flag berikut: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=ZONEGanti kode berikut: - VM_NAME: nama VM.
- IMAGE_FAMILY: kelompok image untuk sistem operasi yang akan diinisialisasi dengan boot disk. Atau, Anda dapat menentukan flag- --image=IMAGEdan mengganti- IMAGEdengan versi gambar tertentu. Pelajari cara melihat daftar gambar yang tersedia di project image Compute Engine.
- IMAGE_PROJECT: nama project gambar yang berisi disk image.
- MACHINE_TYPE: jenis mesin, telah ditentukan atau kustom, untuk VM.
- VNIC_TYPE: jenis vNIC yang digunakan untuk jaringan bidang kontrol dan jaringan bidang data. Nilainya harus berupa salah satu dari berikut:- Untuk menggunakan gVNIC, tentukan - GVNIC.
- Untuk menggunakan VirtIO-Net, tentukan - VIRTIO_NET.
 
- CONTROL_PLANE_NETWORK_NAME: nama jaringan bidang kontrol yang Anda buat di langkah sebelumnya.
- CONTROL_PLANE_SUBNET_NAME: nama subnet untuk jaringan bidang kontrol yang Anda buat di langkah sebelumnya.
- DATA_PLANE_NETWORK_NAME: nama jaringan bidang data yang Anda buat di langkah sebelumnya.
- DATA_PLANE_SUBNET_NAME: nama subnet untuk jaringan bidang kontrol yang Anda buat secara otomatis pada langkah sebelumnya.
- ZONE: zona tempat membuat VM. Tentukan zona dalam region yang sama dengan subnet yang Anda buat di langkah sebelumnya.
 Misalnya, untuk membuat VM bernama dpdk-vmdi zonaus-central1-ayang menentukan persistent disk SSD sebesar 512 GB, jenis mesin C2 yang telah ditetapkan dengan 60 vCPU, jaringan Tier_1, dan data pesawat dan jaringan bidang kontrol yang menggunakan gVNIC, jalankan perintah berikut: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-aAPIBuat VM yang menggunakan dua subnet jaringan VPC yang Anda buat pada langkah sebelumnya dengan membuat permintaan POSTke metodeinstances.insertdengan hal berikut kolom: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" } ] }Ganti kode berikut: - PROJECT_ID: project ID project tempat jaringan VPC bidang kontrol dan jaringan VPC bidang data berada.
- ZONE: zona tempat membuat VM.
- VM_NAME: nama VM.
- MACHINE_TYPE: jenis mesin, telah ditentukan atau kustom, untuk VM.
- IMAGE_PROJECT: nama project gambar yang berisi disk image.
- IMAGE_FAMILY: kelompok image untuk sistem operasi yang akan diinisialisasi dengan boot disk. Atau, Anda dapat menentukan versi image tertentu. Pelajari cara melihat daftar gambar dalam project gambar Compute Engine.
- CONTROL_PLANE_NETWORK_NAME: nama jaringan bidang kontrol yang Anda buat di langkah sebelumnya.
- REGION: region tempat ada subnet bidang kontrol dan jaringan bidang data.
- CONTROL_PLANE_SUBNET_NAME: nama subnet untuk jaringan bidang kontrol yang Anda buat di langkah sebelumnya.
- VNIC_TYPE: jenis vNIC yang digunakan untuk jaringan bidang kontrol dan jaringan bidang data. Nilainya harus berupa salah satu dari berikut:- Untuk menggunakan gVNIC, tentukan - GVNIC.
- Untuk menggunakan VirtIO-Net, tentukan - VIRTIO_NET.
 
- DATA_PLANE_NETWORK_NAME: nama jaringan bidang data yang Anda buat di langkah sebelumnya.
- DATA_PLANE_SUBNET_NAME: nama subnet untuk jaringan bidang kontrol yang Anda buat di langkah sebelumnya.
 Misalnya, untuk membuat VM bernama dpdk-vmdi zonaus-central1-ayang menentukan persistent disk SSD sebesar 512 GB, jenis mesin C2 yang telah ditetapkan dengan 60 vCPU, jaringan Tier_1, dan data pesawat dan jaringan bidang kontrol yang menggunakan gVNIC, buat permintaanPOSTberikut: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" } }Untuk opsi konfigurasi lainnya saat membuat VM, baca Membuat dan memulai instance VM. Menginstal DPDK di VM AndaUntuk menginstal DPDK di VM, ikuti langkah-langkah berikut: - Hubungkan ke VM yang Anda buat di bagian sebelumnya dengan menggunakan SSH. 
- Konfigurasikan dependensi untuk penginstalan 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
- Instal DPDK: - wget https://fast.dpdk.org/rel/dpdk-23.07.tar.xz tar xvf dpdk-23.07.tar.xz cd dpdk-23.07
- Untuk membuat DPDK dengan contoh: - meson setup -Dexamples=all build sudo ninja -C build install; sudo ldconfig
 Instal driverUntuk menyiapkan DPDK agar berjalan pada driver, instal driver dengan memilih salah satu metode berikut: Menginstal VFIO tanpa IOMMUUntuk menginstal driver VFIO tanpa IOMMU, ikuti langkah-langkah berikut: - Periksa apakah VFIO diaktifkan: - cat /boot/config-$(uname -r) | grep NOIOMMU- Jika VFIO tidak diaktifkan, ikuti langkah-langkah di Menginstal UIO. 
- Aktifkan mode No-IOMMU di VFIO: - sudo bash -c 'echo 1 > /sys/module/vfio/parameters/enable_unsafe_noiommu_mode'
 Instal UIOUntuk menginstal driver UIO di DPDK, pilih salah satu metode berikut: Menginstal UIO menggunakan gitUntuk menginstal driver UIO di DPDK menggunakan git, ikuti langkah-langkah berikut:- Clone - igb_uiorepositori git ke disk di VM Anda:- git clone https://dpdk.org/git/dpdk-kmods
- Dari direktori induk repositori git yang di-clone, buat modul dan instal driver UIO di DPDK: - pushd dpdk-kmods/linux/igb_uio sudo make sudo depmod && sudo insmod igb_uio.ko popd
 Menginstal UIO menggunakan paket LinuxUntuk menginstal driver UIO di DPDK menggunakan paket Linux, ikuti langkah-langkah berikut: - Menginstal - dpdk-igb-uio-dkmspaket:- sudo apt-get install -y dpdk-igb-uio-dkms
- Instal driver UIO di DPDK: - sudo modprobe igb_uio
 Ikat DPDK ke driver, lalu ujiUntuk mengikat DPDK ke driver yang Anda instal di bagian sebelumnya, ikuti langkah-langkah berikut: - Dapatkan nomor slot Peripheral Component Interconnect (PCI) untuk antarmuka jaringan saat ini: - sudo lspci | grep -e "gVNIC" -e "Virtio network device"- Misalnya, jika VM menggunakan - ens4sebagai antarmuka jaringan, nomor slot PCI adalah- 00:04.0.
- Hentikan antarmuka jaringan yang terhubung ke adaptor jaringan: - sudo ip link set NETWORK_INTERFACE_NAME down- Ganti - NETWORK_INTERFACE_NAMEdengan nama antarmuka jaringan yang ditentukan dalam jaringan VPC. Untuk mengetahui antarmuka jaringan yang digunakan VM, lihat konfigurasi antarmuka jaringan:- sudo ifconfig
- Ikat DPDK ke driver: - sudo dpdk-devbind.py --bind=DRIVER PCI_SLOT_NUMBER- Ganti kode berikut: - DRIVER: driver untuk mengikat DPDK. Tentukan salah satu nilai berikut:- Driver UIO: - igb_uio
- Driver VFIO tanpa IOMMU: - vfio-pci
 
- PCI_SLOT_NUMBER: nomor slot PCI antarmuka jaringan saat ini dengan format- 00:0NUMBER.0.
 
- Buat direktori - /mnt/huge, lalu buat beberapa halaman besar untuk digunakan DPDK untuk buffering:- 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'
- Uji apakah DPDK dapat menggunakan antarmuka jaringan yang Anda buat pada langkah sebelumnya dengan menjalankan aplikasi contoh - testpmdyang disertakan dengan library DPDK:- sudo ./build/app/dpdk-testpmd- Untuk informasi selengkapnya tentang menguji DPDK, lihat Opsi Command Line Testpmd. 
 Lepaskan DPDKSetelah menggunakan DPDK, Anda dapat melepaskannya dari driver yang telah Anda instal di bagian sebelumnya. Untuk melepaskan DPDK, ikuti langkah-langkah berikut: - Lepaskan DPDK dari driver: - sudo dpdk-devbind.py -u PCI_SLOT_NUMBER- Ganti - PCI_SLOT_NUMBERdengan nomor slot PCI yang Anda tentukan pada langkah sebelumnya. Jika Anda ingin memverifikasi nomor slot PCI untuk antarmuka jaringan saat ini:- sudo lspci | grep -e "gVNIC" -e "Virtio network device"- Misalnya, jika VM menggunakan - ens4sebagai antarmuka jaringan, nomor slot PCI adalah- 00:04.0.
- Muat ulang driver jaringan Compute Engine: - sudo bash -c 'echo PCI_SLOT_NUMBER > /sys/bus/pci/drivers/VNIC_DIRECTORY/bind' sudo ip link set NETWORK_INTERFACE_NAME up- Ganti kode berikut: - PCI_SLOT_NUMBER: nomor slot PCI yang Anda tentukan pada langkah sebelumnya.
- VNIC_DIRECTORY: direktori vNIC. Bergantung pada jenis vNIC yang Anda gunakan, tentukan salah satu nilai berikut:- gVNIC: - gvnic
- VirtIO-Net: - virtio-pci
 
- NETWORK_INTERFACE_NAME: nama antarmuka jaringan yang Anda tentukan di bagian sebelumnya.
 
 Langkah berikutnya- Tinjau kecepatan bandwidth jaringan untuk jenis mesin Anda. 
- Pelajari lebih lanjut cara membuat dan mengelola jaringan VPC. 
- Pelajari lebih lanjut setelan MTU yang lebih tinggi dengan frame jumbo. 
- Pelajari lebih lanjut pengoptimalan TCP untuk performa jaringan. 
 Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya. Terakhir diperbarui pada 2025-10-19 UTC. -