Membuat instance yang menggunakan Cloud RDMA


Halaman ini membahas cara membuat instance HPC dengan antarmuka jaringan yang mendukung RDMA. Untuk mengetahui petunjuk pembuatan instance yang dioptimalkan untuk akselerator A4 atau A3 Ultra yang menggunakan RDMA, lihat Membuat instance yang dioptimalkan untuk AI dengan A4 atau A3 Ultra.

Untuk membuat instance komputasi yang menggunakan akses memori langsung jarak jauh (RDMA), Anda harus mengonfigurasi setidaknya dua antarmuka jaringan (NIC) saat membuat instance. Satu NIC harus berupa NIC IRDMA yang terhubung ke jaringan VPC dengan profil jaringan RDMA, dan NIC lainnya harus menggunakan GVNIC.

Gunakan tabel Perbandingan seri mesin untuk menentukan seri mesin mana yang mendukung antarmuka jaringan RDMA.

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:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Menginstal Google Cloud CLI. Setelah penginstalan, lakukan inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:

      gcloud init

      Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

    2. Set a default region and zone.

    REST

    Untuk 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 init

      Jika 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 .

Peran yang diperlukan

Untuk mendapatkan izin yang Anda perlukan untuk membuat instance yang mendukung komunikasi RDMA, minta administrator untuk memberi Anda peran IAM Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) di project. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Peran bawaan ini berisi izin yang diperlukan untuk membuat instance yang mendukung komunikasi RDMA. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk membuat instance yang mendukung komunikasi RDMA:

  • compute.instances.create di project
  • Untuk menggunakan image kustom guna membuat VM: compute.images.useReadOnly pada image
  • Untuk menggunakan snapshot guna membuat VM: compute.snapshots.useReadOnly pada snapshot
  • Untuk menggunakan template instance guna membuat VM: compute.instanceTemplates.useReadOnly pada template instance
  • Untuk menentukan subnet bagi VM Anda: compute.subnetworks.use di project atau di subnet yang dipilih
  • Untuk menentukan alamat IP statis untuk VM: compute.addresses.use pada project
  • Untuk menetapkan alamat IP eksternal ke VM saat menggunakan jaringan VPC: compute.subnetworks.useExternalIp di project atau di subnet yang dipilih
  • Untuk menetapkan metadata instance VM bagi VM: compute.instances.setMetadata di project
  • Untuk menyetel tag untuk VM: compute.instances.setTags di VM
  • Untuk menetapkan label bagi VM: compute.instances.setLabels di VM
  • Untuk menetapkan akun layanan yang akan digunakan VM: compute.instances.setServiceAccount di VM
  • Untuk membuat disk baru untuk VM: compute.disks.create pada project
  • Untuk memasang disk yang ada dalam mode hanya baca atau baca-tulis: compute.disks.use pada disk
  • Untuk memasang disk yang ada dalam mode hanya baca: compute.disks.useReadOnly pada disk

Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.

Persyaratan

Tinjau aturan berikut untuk mengonfigurasi antarmuka jaringan untuk instance:

  • Setiap antarmuka jaringan harus terhubung ke jaringan Virtual Private Cloud yang berbeda.
  • Untuk mengonfigurasi antarmuka jaringan IRDMA, Anda harus membuat jaringan VPC dengan profil jaringan Falcon RDMA terlebih dahulu di region dan zona yang sama dengan instance.
  • Jika Anda tidak menentukan jaringan atau subnet, Compute Engine akan menggunakan jaringan VPC default dan subnet otomatis yang berada di region yang sama dengan instance tersebut.
  • Jika Anda menentukan subnet, tetapi tidak menentukan jaringan, Compute Engine akan menyimpulkan jaringan dari subnet yang ditentukan.
  • Jika menentukan jaringan, Anda harus menentukan subnet dan subnet tersebut harus berasal dari jaringan yang sama. Jika tidak, pembuatan instance akan gagal.

Batasan

  • Jaringan Tingkat_1 untuk komunikasi IP internal hanya kompatibel dengan VM yang menjalankan driver jaringan virtual gVNIC.
  • Anda tidak dapat menggunakan Migrasi langsung dengan VM yang menggunakan RDMA. Anda harus mengonfigurasi instance agar dihentikan selama peristiwa pemeliharaan.
  • Anda tidak dapat menggunakan RDMA dengan grup instance terkelola (MIG) (terkelola atau tidak terkelola).
  • Anda hanya dapat menggunakan jenis stack jaringan IPv4_ONLY dengan instance yang mendukung RDMA.
  • Anda hanya dapat menggunakan seri mesin H4D untuk membuat instance yang menggunakan Cloud RDMA.

Membuat instance yang mendukung Cloud RDMA

Instance yang mendukung Cloud RDMA memerlukan minimal dua antarmuka jaringan (NIC):

  • Jenis NIC GVNIC: menggunakan driver gve untuk traffic TCP/IP dan Internet untuk komunikasi VM-VM dan VM-Internet normal
  • Jenis NIC IRDMA: menggunakan driver IDPF/iRDMA untuk komunikasi berbasis RDMA antar-instance

Instance hanya dapat memiliki satu antarmuka IRDMA. Setiap instance dapat memiliki satu hingga 10 antarmuka jaringan.

Untuk membuat instance yang menggunakan IRDMA, selesaikan langkah-langkah di bagian berikut:

  1. Buat kebijakan penempatan, jika kebijakan yang sesuai belum ada.

  2. Buat jaringan VPC baru, atau gunakan jaringan VPC yang sudah ada dan kompatibel dengan RDMA.

  3. Buat instance yang mendukung RDMA, yang memiliki antarmuka jaringan IRDMA, setidaknya satu antarmuka jaringan GVNIC, dan menggunakan kebijakan penempatan rapat.

Membuat kebijakan penempatan untuk instance RDMA

Instance yang berkomunikasi menggunakan RDMA harus berada dalam satu zona, dan lebih ketat lagi dalam satu fabric cluster. Anda dapat membuat kebijakan penempatan rapat dan menentukan nilai jarak maksimum untuk menetapkan kerapatan minimum dalam zona. Ada batasan jumlah instance yang dapat Anda tetapkan kebijakan penempatan rapatnya saat Anda menentukan nilai jarak maksimum, dan batasnya berubah bergantung pada nilai yang Anda pilih.

  • Untuk membuat kebijakan penempatan rapat yang akan digunakan dengan instance RDMA, ikuti langkah-langkah di Membuat kebijakan penempatan rapat dan tentukan nilai jarak maksimum 3 atau lebih rendah.

Membuat jaringan Virtual Private Cloud

Untuk menyiapkan jaringan, Anda dapat mengikuti petunjuk yang didokumentasikan atau menggunakan skrip yang disediakan.

Panduan petunjuk

Untuk membuat jaringan, Anda dapat menggunakan petunjuk berikut:

Skrip

Untuk membuat jaringan, Anda dapat menggunakan skrip berikut.

  1. Opsional: Sebelum menjalankan skrip, buat daftar profil jaringan RDMA untuk memverifikasi ketersediaannya.

    gcloud beta compute network-profiles list
    
  2. Salin kode berikut dan jalankan di jendela shell Linux.

#!/bin/bash

# Create standard VPC (network and subnet) for the GVNIC interface
  gcloud beta compute networks create GVNIC_NAME_PREFIX-net-0 \
    --subnet-mode=custom

  gcloud beta compute networks subnets create GVNIC_NAME_PREFIX-sub-0 \
    --network=GVNIC_NAME_PREFIX-net-0 \
    --region=REGION \
    --range=10.0.0.0/16

  gcloud beta compute firewall-rules create GVNIC_NAME_PREFIX-internal-0 \
    --network=GVNIC_NAME_PREFIX-net-0 \
    --action=ALLOW \
    --rules=tcp:0-65535,udp:0-65535,icmp \
    --source-ranges=10.0.0.0/8

# Create SSH firewall rules
gcloud beta compute firewall-rules create GVNIC_NAME_PREFIX-ssh \
  --network=GVNIC_NAME_PREFIX-net-0 \
  --action=ALLOW \
  --rules=tcp:22 \
  --source-ranges=IP_RANGE

# Optional: Create an external IP for only the GVNIC interface
gcloud beta compute firewall-rules create GVNIC_NAME_PREFIX-allow-ping-net-0 \
  --network=GVNIC_NAME_PREFIX-net-0 \
  --action=ALLOW \
  --rules=icmp \
  --source-ranges=IP_RANGE

# Create network for RDMA over Falcon transport
gcloud beta compute networks create RDMA_NAME_PREFIX-irdma \
  --network-profile=ZONE-vpc-falcon \
  --subnet-mode custom

# Create subnet for RDMA
gcloud beta compute networks subnets create RDMA_NAME_PREFIX-irdma-sub \
    --network=RDMA_NAME_PREFIX-irdma \
    --region=REGION \
    --range=10.1.0.0/16  # offset to avoid overlap with GVNIC network

Ganti kode berikut:

  • GVNIC_NAME_PREFIX: awalan nama yang akan digunakan untuk jaringan dan subnet Virtual Private Cloud standar yang menggunakan jenis NIC GVNIC.
  • RDMA_NAME_PREFIX: awalan nama yang akan digunakan untuk jaringan dan subnet Virtual Private Cloud yang menggunakan jenis NIC IRDMA.
  • ZONE: zona tempat Anda ingin membuat jaringan dan instance komputasi. Gunakan salah satu us-central1-a atau europe-west4-b.
  • REGION: region tempat Anda ingin membuat jaringan. Ini harus sesuai dengan zona yang ditentukan. Misalnya, jika zona Anda adalah europe-west4-b, maka region Anda adalah europe-west4.
  • IP_RANGE: rentang alamat IP di luar jaringan VPC yang akan digunakan untuk aturan firewall SSH. Sebagai praktik terbaik, tentukan rentang alamat IP tertentu yang Anda perlu izinkan aksesnya, bukan semua sumber IPv4 atau IPv6. Jangan gunakan 0.0.0.0/0 atau ::/0 sebagai rentang sumber karena hal ini memungkinkan traffic dari semua sumber IPv4 atau IPv6, termasuk sumber di luar Google Cloud.

Membuat instance yang mendukung RDMA

Langkah-langkah berikut menunjukkan cara membuat instance dengan antarmuka jaringan pertama yang dikonfigurasi sebagai antarmuka gVNIC, dan antarmuka jaringan kedua yang dikonfigurasi sebagai antarmuka jaringan IRDMA:

Konsol

  1. Di konsol Google Cloud , buka halaman Create an instance.

    Buka halaman Buat instance

    Jika diminta, pilih project Anda, lalu klik Lanjutkan.

    Halaman Create an instance akan muncul dan menampilkan panel Machine configuration.

  2. Di panel Machine configuration, lakukan hal berikut:

    1. Di kolom Name, tentukan nama untuk instance Anda. Untuk mengetahui informasi selengkapnya, lihat Konvensi penamaan resource.
    2. Opsional: Di kolom Zone, pilih zona untuk instance ini.

      Pilih zona yang Anda gunakan untuk menyiapkan profil jaringan RDMA.

    3. Pilih kelompok mesin Compute-optimized.

    4. Di kolom Series, pilih seri mesin H4D.

    5. Di bagian Machine type, pilih jenis mesin untuk instance Anda.

  3. Di menu navigasi sebelah kiri, klik OS dan Penyimpanan. Di panel Operating system and storage yang muncul, lakukan tindakan berikut:

    1. Di bagian bawah bagian Sistem operasi & Penyimpanan, klik Ubah.
    2. Dalam daftar Operating system dan Version, pilih jenis dan versi OS yang menawarkan dukungan RDMA.
    3. Pastikan Jenis boot disk disetel ke Hyperdisk Balanced.
    4. Klik Pilih di bagian bawah panel untuk menyimpan perubahan.
  4. Di menu navigasi sebelah kiri, klik Networking. Di panel Networking yang muncul, lakukan hal berikut:

    1. Buka bagian Network interfaces. Seharusnya sudah ada satu antarmuka jaringan, yang diberi label default.
    2. Klik Add a network interface. Di bagian New network interface yang muncul, lakukan hal berikut:
      1. Dalam daftar Network interface card, pilih IRDMA.
      2. Di kolom Network, pilih jaringan VPC dengan profil jaringan RDMA.
      3. Opsional: Di daftar Subnetwork, pilih subnet yang akan digunakan instance.
      4. Di kolom IP stack type, pastikan kolom tersebut disetel ke IPV4-only.
      5. Dalam daftar External IPv4 address, pilih None.
      6. Untuk mengonfirmasi detail antarmuka jaringan, klik Selesai.
  5. Opsional: Tentukan opsi konfigurasi lainnya untuk instance. Untuk mengetahui informasi selengkapnya, lihat Opsi konfigurasi selama pembuatan instance.

  6. Untuk membuat dan memulai instance, klik Create.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Gunakan perintah gcloud compute instances create dengan minimal dua flag --network-interface, satu untuk antarmuka GVNIC dan satu untuk antarmuka IRDMA. Anda dapat menyesuaikan opsi perintah lainnya sesuai kebutuhan.

    gcloud compute instances create INSTANCE_NAME \
        --zone=ZONE \
        --machine-type=MACHINE_TYPE \
        --create-disk=boot=yes, \
            image=projects/IMAGE_PROJECT/global/images/IMAGE, \
            size=SIZE \
        --maintenance-policy=TERMINATE \
        --network-interface \
            nic-type=GVNIC, \
            network=NETWORK_NAME,subnet=SUBNET_NAME, \
            stack-type=STACK_TYPE, \
            private-network-ip=INTERNAL_IPV4_ADDRESS, \
            address=EXTERNAL_IPV4_ADDRESS \
        --network-interface \
            nic-type=IRDMA, \
            network=RDMA_NETWORK_NAME,subnet=RDMA_SUBNET_NAME, \
            stack-type=IPV4_ONLY, \
            no-address \
    

    Ganti kode berikut:

    • INSTANCE_NAME: name instance komputasi
    • ZONE: zona tempat instance dibuat, seperti europe-west1-b. Region instance disimpulkan dari zona.
    • MACHINE_TYPE: Opsional: jenis mesin yang akan digunakan untuk instance.
    • IMAGE_PROJECT: Opsional: project gambar yang berisi gambar. Selama periode pratinjau, gunakan image kustom atau image VM HPC.
    • IMAGE: Opsional: tentukan salah satu dari berikut:
      • Versi tertentu dari image OS—misalnya, hpc-rocky-linux-8-v20250721.
      • Kelompok image, yang harus diformat sebagai family/IMAGE_FAMILY. Tindakan ini akan membuat instance dari image OS terbaru yang masih digunakan. Misalnya, jika Anda menentukan family/hpc-rocky-linux-8, Compute Engine akan membuat instance menggunakan versi terbaru OS image dalam kelompok image HPC Rocky Linux 8. Untuk mengetahui informasi selengkapnya tentang penggunaan kelompok image, lihat Praktik terbaik kelompok image.
    • SIZE: Opsional: ukuran disk baru. Nilai harus berupa bilangan bulat. Satuan ukuran defaultnya adalah GiB.
    • NETWORK_NAME: Opsional: nama jaringan tersebut
    • SUBNET_NAME: nama subnet yang akan digunakan untuk antarmuka jaringan. Untuk melihat daftar subnet di dalam jaringan, gunakan perintah gcloud compute networks subnets list.

      Untuk antarmuka jaringan GVNIC, Anda dapat menghilangkan tanda network dan subnet serta menggunakan jaringan default.

    • STACK_TYPE: Opsional: jenis stack untuk antarmuka jaringan GVNIC. STACK_TYPE harus berupa salah satu dari: IPV4_ONLY, IPV4_IPV6, atau IPV6_ONLY. Nilai defaultnya adalah IPV4_ONLY.

    • INTERNAL_IPV4_ADDRESS: Opsional: alamat IPv4 internal yang Anda inginkan untuk digunakan instance komputasi di subnet target. Hilangkan tanda ini jika Anda tidak memerlukan alamat IP tertentu.

      Untuk menentukan alamat IPv6 internal, gunakan flag --internal-ipv6-address sebagai gantinya.

    • EXTERNAL_IPV4_ADDRESS: Opsional: alamat IPv4 eksternal statis yang akan digunakan dengan antarmuka jaringan. Anda harus telah mencadangkan alamat IPv4 eksternal sebelumnya. Lakukan salah satu hal berikut:

      • Tentukan alamat IPv4 yang valid dari subnet.
      • Gunakan tanda no-address jika Anda tidak ingin antarmuka jaringan memiliki alamat IP eksternal.
      • Tentukan address='' jika Anda ingin antarmuka menerima alamat IP eksternal sementara.

      Untuk menentukan alamat IPv6 eksternal, gunakan flag --external-ipv6-address.

    • RDMA_NETWORK_NAME: Nama jaringan yang Anda buat dengan profil jaringan RDMA.

    • RDMA_SUBNET_NAME: Nama subnet di jaringan RDMA.

REST

Untuk membuat instance yang dikonfigurasi untuk menggunakan RDMA, buat permintaan POST ke metode instances.insert. Sertakan objek networkInterfaces dengan minimal dua konfigurasi jaringan, satu untuk antarmuka gVNIC dan satu untuk antarmuka IRDMA. Anda dapat menyesuaikan properti instance lainnya sesuai kebutuhan.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: ID project tempat instance akan dibuat
  • ZONE: zona untuk membuat instance
  • MACHINE_TYPE: jenis mesin yang akan digunakan, misalnya, h4d-highmem-192-lssd
  • INSTANCE_NAME: nama untuk instance baru
  • IMAGE_PROJECT: Opsional: project gambar yang berisi gambar
  • IMAGE: Opsional: tentukan salah satu dari berikut:

    • Versi spesifik dari image OS—misalnya, debian-12-bookworm-v20250415
    • Kelompok image, yang harus diformat sebagai family/IMAGE_FAMILY. Tindakan ini akan membuat instance dari image OS terbaru yang masih digunakan. Misalnya, jika Anda menentukan family/debian-12, Compute Engine akan membuat instance menggunakan versi image OS terbaru dalam kelompok image Debian 12. Untuk mengetahui informasi selengkapnya tentang cara menggunakan kelompok image, lihat Praktik terbaik kelompok image.
  • NETWORK_NAME: Opsional: nama jaringan yang akan digunakan dengan antarmuka jaringan gVNIC
  • SUBNET_NAME: nama subnet yang akan digunakan dengan antarmuka jaringan gVNIC

    Untuk antarmuka jaringan GVNIC, Anda dapat menghilangkan properti network dan subnet serta menggunakan jaringan default.

  • INTERNAL_IPV4_ADDRESS: Opsional: alamat IPv4 internal yang Anda inginkan untuk digunakan instance compute di subnet target. Hilangkan tanda ini jika Anda tidak memerlukan alamat IP tertentu.
  • EXTERNAL_IPV4_ADDRESS: Opsional: alamat IPv4 eksternal statis yang akan digunakan dengan antarmuka jaringan. Anda harus sebelumnya mencadangkan alamat IPv4 eksternal.
  • RDMA_NETWORK_NAME: nama jaringan yang Anda buat dengan profil jaringan RDMA
  • RDMA_SUBNET_NAME: nama subnet di jaringan RDMA

Metode HTTP dan URL:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

Meminta isi JSON:

{
    "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
    "name": "INSTANCE_NAME",
    "disks": [
      {
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        },
        "boot": true
      }
    ],
    "networkInterfaces": [
      {
        "network": "NETWORK_NAME",
        "subnetwork": "SUBNET_NAME",
        "networkIP": "INTERNAL_IPV4_ADDRESS",
        "accessConfigs": [
          {
            "type": "ONE_TO_ONE_NAT",
            "name": "External IP",
            "natIP": "EXTERNAL_IPV4_ADDRESS"
          }
        ],
        "stackType": "IPV4_ONLY",
        "nicType": "GVNIC",
      },
      {
        "network": "RDMA_NETWORK_NAME",
        "subnetwork": "RDMA_SUBNET_NAME",
        "stackType": "IPV4_ONLY",
        "nicType": "IRDMA",
      }
    ]
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

{
  "kind": "compute#operation",
  "id": "9216044482154695709",
  "name": "operation-1739207409646-62dccc7d7bc58-d1350b42-64fdb7f7",
  "zone": "https://www.googleapis.com/compute/v1/projects/`PROJECT_ID`/zones/`ZONE`",
  "operationType": "insert",
  "targetLink": "https://www.googleapis.com/compute/v1/projects/`PROJECT_ID`/zones/`ZONE`/instances/`INSTANCE_NAME`",
  "targetId": "2679381553616227357",
  "status": "RUNNING",
  "user": "USER_ID",
  "progress": 0,
  "insertTime": "2025-02-10T09:10:10.551-08:00",
  "startTime": "2025-02-10T09:10:10.551-08:00",
  "selfLink": "https://www.googleapis.com/compute/v1/projects/`PROJECT_ID`/zones/`ZONE`/operations/operation-1565289606387-58f9f62f5989c-e582f586-6d22f38"
 "kind": "compute#operation"
}

Apa langkah selanjutnya?