Membuat instance Compute Engine ULL

Halaman ini menjelaskan cara membuat instance Compute Engine Ultra Low Latency (ULL) menggunakan jenis mesin U4P atau U4C dari kelompok mesin U4.

Untuk mengetahui ringkasan proses konfigurasi infrastruktur ULL, lihat Ringkasan konfigurasi untuk Solusi ULL.

Sebelum memulai

Sebelum membuat instance komputasi ULL, lihat bagian berikut.

Membuat jaringan VPC

Jika belum melakukannya, buat jaringan VPC untuk setiap antarmuka jaringan instance Anda seperti yang dijelaskan dalam Ringkasan konfigurasi untuk Solusi ULL.

Membuat kebijakan penempatan

Anda dapat secara opsional menerapkan kebijakan penempatan tersebar ke instance ULL untuk meningkatkan ketahanan. Untuk mengetahui informasi selengkapnya, lihat Membuat dan menerapkan kebijakan penempatan spread di dokumentasi Compute Engine.

Menetapkan project Anda

Tetapkan gcloud CLI untuk menggunakan project Anda. Atau, Anda dapat menyertakan flag --project=PROJECT_ID untuk setiap perintah dalam prosedur berikut.

gcloud config set project PROJECT_ID

Ganti PROJECT_ID dengan ID project Anda.

Mengaktifkan API

Jika belum, aktifkan API berikut.

Konsol

Aktifkan Compute Engine API.

Peran yang diperlukan untuk mengaktifkan API

Untuk mengaktifkan API, Anda memerlukan izin serviceusage.services.enable. Jika Anda membuat project, kemungkinan Anda sudah memiliki izin ini melalui peran Pemilik (roles/owner). Jika tidak, Anda bisa mendapatkan izin ini melalui peran Admin Service Usage (roles/serviceusage.serviceUsageAdmin). Pelajari cara memberikan peran.

Mengaktifkan API

gcloud

Aktifkan Compute Engine API:

Peran yang diperlukan untuk mengaktifkan API

Untuk mengaktifkan API, Anda memerlukan izin serviceusage.services.enable. Jika Anda membuat project, kemungkinan Anda sudah memiliki izin ini melalui peran Pemilik (roles/owner). Jika tidak, Anda bisa mendapatkan izin ini melalui peran Admin Penggunaan Layanan (roles/serviceusage.serviceUsageAdmin). Pelajari cara memberikan peran.

gcloud services enable compute.googleapis.com

Peran yang diperlukan

Guna mendapatkan izin yang Anda perlukan untuk membuat instance Compute Engine, minta administrator Anda untuk memberi Anda peran IAM berikut:

  • Untuk membuat dan mengelola instance komputasi: Compute Instance Admin (compute.instanceAdmin) di project Anda

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Ringkasan konfigurasi instance ULL

Untuk membuat instance komputasi ULL dan mengonfigurasi instance untuk mengirim atau menerima traffic unicast dan multicast ULL, lakukan hal berikut:

Langkah Deskripsi
Membuat instance ULL Buat instance menggunakan jenis mesin U4P atau U4C dan hubungkan antarmuka jaringannya ke jaringan VPC serbaguna dan jaringan VPC ULL. Jika Anda berencana menggunakan instance sebagai konsumen multicast, tetapkan flag igmp-query ke IGMP_QUERY_V2.
Mengonfigurasi perutean untuk antarmuka non-nic0 untuk traffic unicast ULL Konfigurasikan perutean kebijakan berbasis sumber di OS tamu untuk memastikan paket keluar keluar melalui antarmuka yang benar dan mencegah perutean asimetris.
Mengonfigurasi instance agar menjadi konsumen multicast ULL Selesaikan setiap langkah berikut untuk menerima traffic multicast di antarmuka jaringan ULL:
Untuk lebih mengoptimalkan performa, sebaiknya ikuti juga prosedur di Menggunakan Onload atau Menggunakan DPDK.

Selain itu, Anda dapat menggunakan contoh perintah di halaman ini untuk menguji konektivitas multicast.

Membuat instance ULL

Bagian ini menjelaskan cara membuat instance baru untuk digunakan untuk unicast dan multicast ULL.

Untuk mengetahui informasi umum tentang cara membuat instance komputasi, termasuk opsi konfigurasi tambahan, lihat Membuat dan memulai instance Compute Engine.

gcloud

Untuk membuat instance ULL, gunakan compute instances create perintah.

Jenis antarmuka jaringan yang didukung untuk instance ULL adalah GVNIC. Anda harus menyertakan kolom queue-count dan menentukan nilai 32 untuk dukungan XDP.

Untuk antarmuka jaringan yang terpasang ke jaringan VPC ULL, no-address harus ditentukan.

Selain itu, perintah berikut menyertakan flag igmp-query untuk memungkinkan instance menjadi konsumen multicast. Flag ini tidak diperlukan jika instance hanya merupakan produsen multicast, atau jika instance hanya mengirim dan menerima unicast.

gcloud compute instances create INSTANCE_NAME \
    --zone=ZONE \
    --machine-type=MACHINE_TYPE \
    --image-project=IMAGE_PROJECT \
    --image-family=IMAGE_FAMILY \
    --maintenance-policy=TERMINATE \
    --network-interface=nic-type=GVNIC,queue-count=32,network=GENERAL_PURPOSE_VPC_NETWORK,subnet=GENERAL_PURPOSE_SUBNET \
    --network-interface=nic-type=GVNIC,queue-count=32,network=ULL_VPC_NETWORK,subnet=ULL_SUBNET_1,no-address,igmp-query=IGMP_QUERY_V2 \
    --network-interface=nic-type=GVNIC,queue-count=32,network=ULL_VPC_NETWORK,subnet=ULL_SUBNET_2,no-address,igmp-query=IGMP_QUERY_V2

Ganti nilai berikut:

  • ZONE: zona tempat instance akan dibuat
  • INSTANCE_NAME: nama untuk instance
  • MACHINE_TYPE: jenis mesin U4P atau U4C instance
  • IMAGE_PROJECT: project image , seperti rhel-cloud. Lihat Dukungan sistem operasi untuk jenis mesin U4.
  • IMAGE_FAMILY: kelompok image, seperti rhel-10-2-eus-gvnic-baremetal. Lihat Dukungan sistem operasi untuk jenis mesin U4.

    Menentukan kelompok image akan membuat instance dari versi image OS terbaru, yang masih digunakan dalam kelompok image. Atau, Anda dapat menggunakan flag --image dan menentukan versi image.

  • GENERAL_PURPOSE_VPC_NETWORK, GENERAL_PURPOSE_SUBNET: jaringan VPC dan subnet untuk melampirkan antarmuka nic0 instance

  • ULL_VPC_NETWORK: jaringan VPC ULL untuk melampirkan antarmuka non-nic0

    • ULL_SUBNET_1: subnet di jaringan VPC ULL untuk melampirkan antarmuka nic1

    • ULL_SUBNET_2: subnet di jaringan VPC ULL untuk melampirkan antarmuka nic2

Mengonfigurasi perutean untuk antarmuka non-nic0 untuk traffic unicast ULL

Secara default, instance menggunakan rute default yang terkait dengan antarmuka nic0 untuk mengirim traffic ke tujuan mana pun di luar subnet yang terhubung langsung. Untuk mengetahui informasi selengkapnya, lihat ringkasan beberapa antarmuka jaringan.

Agar antarmuka nic1 dan nic2 instance Anda berhasil mengirim dan menerima traffic unicast ULL, Anda harus mengonfigurasi perutean kebijakan berbasis sumber di OS tamu. Konfigurasi ini memastikan paket keluar keluar melalui antarmuka yang benar dan mencegah perutean asimetris, yang menyebabkan traffic masuk ke satu antarmuka, tetapi mencoba keluar melalui nic0.

Untuk mengetahui contoh cara mengonfigurasi perutean kebijakan, lihat Mengonfigurasi perutean kebijakan dalam tutorial Mengonfigurasi perutean untuk antarmuka jaringan tambahan.

Mengonfigurasi instance agar menjadi konsumen multicast ULL

Bagian ini menjelaskan cara mengonfigurasi instance ULL yang ada agar menjadi konsumen multicast.

Mengaktifkan kueri IGMP di instance ULL yang ada

Jika Anda tidak mengaktifkan IGMP saat membuat instance, Anda dapat mengaktifkannya di instance yang ada seperti yang dijelaskan di bagian ini.

gcloud

Untuk mengaktifkan kueri IGMP di instance ULL yang ada, gunakan compute instances network-interfaces update perintah.

Ulangi perintah berikut untuk setiap antarmuka jaringan yang ingin Anda gunakan untuk menerima traffic multicast.

gcloud compute instances network-interfaces update INSTANCE_NAME \
    --zone=ZONE \
    --network-interface=NETWORK_INTERFACE_NAME \
    --igmp-query=IGMP_QUERY_V2

Ganti nilai berikut:

  • INSTANCE_NAME: nama instance
  • ZONE: zona instance
  • NETWORK_INTERFACE_NAME: nama antarmuka jaringan tempat kueri IGMP akan diaktifkan. Dalam Google Cloud, formatnya adalah nicNUMBER, seperti nic0, nic1, atau nic2.

Menetapkan IGMPv2 di OS tamu

Untuk menetapkan IGMPv2 di OS tamu instance Anda, lakukan hal berikut:

  1. Hubungkan ke instance menggunakan SSH.

  2. Jalankan perintah berikut dan identifikasi nama perangkat antarmuka jaringan yang ingin Anda gunakan untuk menerima traffic multicast.

    sudo ifconfig
    
  3. Untuk setiap antarmuka jaringan yang berlaku, jalankan perintah berikut untuk memaksa IGMPv2.

    sudo -i
    echo "2" > /proc/sys/net/ipv4/conf/NETWORK_INTERFACE_DEVICE_NAME/force_igmp_version
    

    Ganti NETWORK_INTERFACE_DEVICE_NAME dengan nama perangkat antarmuka jaringan, seperti eth0, eth1, atau eth2.

Mengonfigurasi pemfilteran jalur terbalik (rp_filter)

Dalam beberapa kasus, seperti pada instance multi-NIC, validasi sumber yang ketat oleh pemfilteran jalur terbalik (rp-filter) dapat menyebabkan paket multicast yang sah dihilangkan. Untuk mencegah hal ini terjadi, Anda dapat mengonfigurasi pemfilteran jalur terbalik untuk melonggarkan atau menonaktifkan validasi sumber pada antarmuka jaringan non-nic0 yang menerima traffic multicast. Misalnya, perintah berikut mengonfigurasi pemfilteran jalur terbalik untuk menonaktifkan validasi sumber pada eth1 dan eth2 dengan menetapkan rp_filter ke 0.

sudo sysctl -w net.ipv4.conf.all.rp_filter=0
sudo sysctl -w net.ipv4.conf.eth1.rp_filter=0
sudo sysctl -w net.ipv4.conf.eth2.rp_filter=0

Untuk mengetahui informasi selengkapnya tentang rp_filter, lihat IP Sysctl dalam dokumentasi kernel Linux.

Meningkatkan ukuran ring buffer driver jaringan

Bagian ini menjelaskan cara meningkatkan ukuran buffer ring driver jaringan di instance Anda.

Untuk konsumen multicast yang menerima traffic tingkat tinggi, tingkatkan ukuran buffer ring driver jaringan ke nilai 2048 untuk membantu menghindari kehilangan paket. Lakukan hal ini untuk setiap antarmuka jaringan yang menerima traffic multicast.

Lihat contoh perintah berikut, yang mengonfigurasi nic1 dan nic2:

sudo ethtool -G eth1 rx 2048 tx 2048
sudo ethtool -G eth2 rx 2048 tx 2048

Contoh perintah untuk menguji konektivitas multicast ULL

Bagian ini memberikan contoh perintah untuk menguji traffic multicast tanpa memulai workload aplikasi menggunakan iperf alat. Langkah-langkah di bagian ini mengharuskan konfigurasi multicast yang dijelaskan dalam Ringkasan konfigurasi untuk Solusi ULL selesai.

Mengirim traffic multicast ULL dari produsen multicast

  1. Hubungkan ke instance menggunakan SSH.

  2. Instal iperf jika Anda belum melakukannya. iperf3 tidak mendukung multicast. Perintah berikut menggunakan iperf, yang menginstal iperf2.

    sudo yum install iperf
    
  3. Untuk mengirim traffic multicast ke alamat IP grup multicast, jalankan perintah berikut:

    iperf -c MULTICAST_GROUP_ADDRESS%NIC -p 1234 -l 512 -i 1 -u -b 1000pps -t 999999 -B NIC_IP_ADDRESS
    

    Ganti nilai berikut:

    • MULTICAST_GROUP_ADDRESS: alamat IP grup multicast
    • NIC nama perangkat antarmuka jaringan, seperti eth1 atau eth2
    • NIC_IP_ADDRESS alamat IP yang ditetapkan ke NIC yang Anda tentukan

Bergabung ke grup dan menerima traffic multicast ULL dari konsumen multicast

  1. Hubungkan ke instance menggunakan SSH.

  2. Instal iperf jika Anda belum melakukannya.

    sudo yum install iperf
    
  3. Untuk bergabung ke grup multicast dan mencatat traffic yang Anda terima, jalankan perintah berikut:

    iperf -s -p 1234 -B MULTICAST_GROUP_ADDRESS%NIC -l 512 -u -i 1
    

    Ganti nilai berikut:

    • MULTICAST_GROUP_ADDRESS alamat IP grup multicast
    • NIC nama perangkat antarmuka jaringan, seperti eth1 atau eth2

    Misalnya, perintah berikut bergabung ke grup dengan alamat IP 224.1.0.176 untuk menerima paket hingga 512 byte dan mencatat traffic yang diterima:

    iperf -s -p 1234 -B 224.1.0.176%eth1 -l 512 -u -i 1
    

Di antarmuka jaringan ULL instance Anda, ethtool menampilkan status link port fisik yang sebenarnya (up/down) dan kecepatan link fisik.

Untuk memeriksa status dan kecepatan link fisik antarmuka jaringan ULL, jalankan perintah berikut:

sudo ethtool NIC

Ganti NIC dengan nama antarmuka jaringan yang ditetapkan oleh OS tamu, seperti ens8f0 atau ens48f0.

Langkah berikutnya

  • Untuk mengetahui informasi umum tentang cara memecahkan masalah performa jaringan untuk instance bare metal, lihat memecahkan masalah performa jaringan di dokumentasi Compute Engine. Misalnya, Anda dapat menonaktifkan status tidur CPU untuk mencapai performa bandwidth jaringan penuh.
  • Untuk mengonfigurasi Onload atau DPDK guna mengoptimalkan performa, lihat Menggunakan Onload dan Menggunakan DPDK.
  • Untuk menyinkronkan jam sistem instance Anda dengan jam NIC fisik server host-nya, lihat Mengonfigurasi waktu yang akurat.