Membuat instance yang dioptimalkan untuk HPC secara massal yang menggunakan RDMA


Tutorial ini menunjukkan cara membuat sejumlah besar instance virtual machine (VM) komputasi berperforma tinggi (HPC) yang identik dan independen satu sama lain. Instance menggunakan jenis mesin yang dioptimalkan untuk HPC H4D dan berjalan di blok kapasitas yang dicadangkan. Tutorial ini juga menunjukkan cara mengonfigurasi instance H4D untuk menggunakan Cloud RDMA.

Tutorial ini ditujukan bagi engineer HPC, administrator dan operator platform, serta spesialis data dan MPI yang tertarik untuk membuat cluster instance HPC yang saling terhubung. Instance yang dihasilkan tidak menggunakan pengelola untuk pengelolaan instance atau penjadwalan tugas.

Tujuan

  1. Cadangkan blok kapasitas untuk deployment Anda.
  2. Opsional: Buat kebijakan penempatan jika Anda tidak membuat VM di blok atau sub-blok yang sama.
  3. Buat jaringan Virtual Private Cloud.
  4. Buat instance yang mendukung RDMA secara massal.
  5. Jalankan pembersihan.

Biaya

Tutorial ini menggunakan komponen Google Cloudyang dapat ditagih, termasuk:

Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda, gunakan Kalkulator Harga.

Sebelum memulai

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Install the Google Cloud CLI.

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

  4. Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:

    gcloud init
  5. Create or select a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the required API:

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable compute.googleapis.com
  8. Install the Google Cloud CLI.

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

  10. Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:

    gcloud init
  11. Create or select a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  12. Verify that billing is enabled for your Google Cloud project.

  13. Enable the required API:

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable compute.googleapis.com
  14. Grant roles to your user account. Run the following command once for each of the following IAM roles: roles/compute.instanceAdmin.v1,roles/compute.networkAdmin

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    Replace the following:

    • PROJECT_ID: your project ID.
    • USER_IDENTIFIER: the identifier for your user account—for example, myemail@example.com.
    • ROLE: the IAM role that you grant to your user account.
  15. Mencadangkan blok kapasitas untuk deployment Anda

    Dokumen ini menjelaskan cara memesan blok kapasitas dengan meminta tim akun Anda membuat permintaan pemesanan untuk masa mendatang bagi Anda. Gunakan jenis reservasi ini untuk mendapatkan kapasitas untuk deployment padat instance VM. Untuk ringkasan semua opsi konsumsi, lihat:

    Tindakan ini memungkinkan Anda memesan blok kapasitas untuk durasi yang ditentukan, dimulai pada tanggal dan waktu tertentu yang Anda pilih. Berdasarkan permintaan Anda, Google akan membuat draf permintaan pemesanan untuk masa mendatang. Setelah Anda meninjau dan mengirimkan permintaan draf ini, dan Google Cloud menyetujuinya, Compute Engine akan otomatis membuat (membuat secara otomatis) pemesanan kosong. Kemudian, pada waktu mulai yang Anda pilih, Compute Engine akan menyediakan kapasitas yang Anda minta ke dalam pemesanan yang dibuat otomatis. Selanjutnya, Anda dapat menggunakan reservasi untuk membuat instance virtual machine (VM) hingga periode reservasi berakhir.

    Sebagai bagian dari proses permintaan pemesanan untuk masa mendatang, Google mengelola kuota untuk resource yang dipesan. Anda tidak perlu meminta kuota. Pada waktu mulai pemesanan untuk masa mendatang yang disetujui, Google akan meningkatkan kuota Anda jika Anda tidak memilikinya untuk resource yang dipesan.

    Untuk memesan blok kapasitas, selesaikan langkah-langkah berikut:

    1. Hubungi tim akun Anda dan berikan informasi berikut kepada Google untuk membuat draf permintaan pemesanan untuk masa mendatang:

      • Nomor project: nomor project tempat tim akun Anda membuat permintaan dan Compute Engine menyediakan kapasitas. Untuk mengetahui informasi tentang cara menemukan nomor project, lihat Menemukan nama, nomor, dan ID project dalam dokumentasi Resource Manager.

      • Jenis mesin: salah satu jenis mesin yang dioptimalkan untuk HPC H4D

      • Jumlah total: jumlah total VM yang akan dipesan. Anda hanya dapat mencadangkan kelipatan dua VM. Ukuran blok dan jumlah VM per blok bervariasi berdasarkan jenis mesin dan ketersediaan. Tim akun Anda dapat memberikan detail selengkapnya untuk permintaan Anda.

      • Zone: zona tempat Anda ingin memesan kapasitas. Untuk meninjau region dan zona yang tersedia untuk seri mesin H4D, lihat Region dan zona yang tersedia dan pilih H4D dalam daftar Pilih seri mesin.

      • Waktu mulai: waktu mulai periode pemesanan. Format waktu mulai sebagai stempel waktu RFC 3339:

        YYYY-MM-DDTHH:MM:SSOFFSET
        

        Ganti kode berikut:

        • YYYY-MM-DD: tanggal yang diformat sebagai tahun empat digit, bulan dua digit, dan hari dua digit dalam sebulan, yang dipisahkan oleh tanda hubung (-).

        • HH:MM:SS: waktu yang diformat sebagai jam dua digit dengan menggunakan waktu 24 jam, menit dua digit, dan detik dua digit, yang dipisahkan oleh titik dua (:).

        • OFFSET: zona waktu yang diformat sebagai offset Waktu Universal Terkoordinasi (UTC). Misalnya, untuk menggunakan Waktu Standar Pasifik (PST), tentukan -08:00. Jika tidak ingin menggunakan offset, tentukan Z.

      • Waktu berakhir: waktu berakhir periode pemesanan. Format sebagai stempel waktu RFC 3339.

      • Jenis berbagi: apakah hanya project Anda yang dapat menggunakan reservasi yang dibuat otomatis (LOCAL), atau project lain dapat menggunakan reservasi tersebut (SPECIFIC_PROJECTS).

        Untuk membagikan kapasitas yang dipesan dengan project lain di organisasi Anda, lakukan hal berikut:

        1. Jika belum melakukannya, verifikasi bahwa project tempat Google membuat permintaan diizinkan untuk membuat pemesanan bersama.

        2. Berikan nomor project yang akan menggunakan bersama kapasitas yang dicadangkan. Anda dapat menentukan hingga 100 project di organisasi Anda.

      • Nama pemesanan: nama pemesanan yang dibuat secara otomatis oleh Compute Engine untuk menyediakan kapasitas yang dipesan. Compute Engine hanya membuat pemesanan yang ditargetkan secara khusus.

      • Nama komitmen: jika periode reservasi Anda satu tahun atau lebih, Anda harus membeli dan melampirkan komitmen berbasis resource ke resource yang dipesan. Anda dapat membeli komitmen dengan paket 1 tahun atau 3 tahun. Jika Anda membagikan kapasitas yang dipesan ke project lain, project tersebut hanya akan mendapatkan diskon jika menggunakan akun Penagihan Cloud yang sama dengan project tempat Anda memesan kapasitas. Untuk mengetahui detailnya, lihat Mengaktifkan berbagi CUD untuk komitmen berbasis resource.

    2. Google akan membuat draf permintaan pemesanan untuk masa mendatang dan tim akun Anda akan menghubungi Anda.

    3. Tinjau permintaan draf. Perhatikan hal-hal berikut saat meninjau permintaan reservasi:

      • Anda dapat mulai menggunakan kapasitas yang dicadangkan hanya setelah tanggal dan waktu mulai yang ditentukan.
      • Saat waktu berakhir yang ditentukan tercapai, Compute Engine akan melakukan hal berikut:

        • Menghapus pemesanan yang dibuat otomatis.
        • Menghentikan atau menghapus VM yang menggunakan reservasi. Tindakan yang dilakukan didasarkan pada tindakan penghentian yang Anda tentukan saat membuat VM.
      • Anda tidak dapat mengubah apakah kapasitas yang dipesan dibagikan setelah Anda mengirimkan permintaan pemesanan.

      Untuk meninjau draf permintaan pemesanan untuk masa mendatang, pilih salah satu opsi berikut:

      Konsol

      1. Di konsol Google Cloud , buka halaman Reservations.

        Buka Pemesanan

      2. Klik tab Future reservations. Tabel Future Reservations mencantumkan setiap permintaan pemesanan untuk masa mendatang di project Anda, dan setiap kolom tabel menjelaskan properti.

      3. Di kolom Name, klik nama permintaan draf yang dibuat Google untuk Anda. Halaman yang memberikan detail permintaan pemesanan untuk masa mendatang akan terbuka.

      4. Di bagian Informasi dasar, pastikan detail permintaan, seperti Tanggal dan Jenis berbagi, sudah benar. Selain itu, jika Anda meminta komitmen, pastikan komitmen tersebut ditentukan.

      5. Jika ada detail yang salah, hubungi tim akun Anda.

      gcloud

      1. Untuk melihat daftar permintaan pemesanan untuk masa mendatang di project Anda, gunakan perintah gcloud beta compute future-reservations list dengan flag --filter ditetapkan ke PROCUREMENT_STATUS=DRAFTING:

        gcloud beta compute future-reservations list --filter=PROCUREMENT_STATUS=DRAFTING
        
      2. Di output perintah, cari permintaan reservasi yang memiliki nama yang Anda berikan kepada tim akun Anda.

      3. Untuk melihat detail permintaan draf, gunakan perintah gcloud beta compute future-reservations describe:

        gcloud beta compute future-reservations describe FUTURE_RESERVATION_NAME \
            --zone=ZONE
        

        Ganti kode berikut:

        • FUTURE_RESERVATION_NAME: nama draf permintaan pemesanan untuk masa mendatang.
        • ZONE: zona tempat Google membuat permintaan.

        Outputnya mirip dengan hal berikut ini:

        autoCreatedReservationsDeleteTime: '2026-02-10T19:20:00Z'
        creationTimestamp: '2025-11-27T11:14:58.305-08:00'
        deploymentType: DENSE
        id: '7979651787097007552'
        kind: compute#futureReservation
        name: example-draft-request
        planningStatus: DRAFT
        reservationName: example-reservation
        schedulingType: INDEPENDENT
        selfLink: https://www.googleapis.com/compute/beta/projects/example-project/zones/europe-west4-b/futureReservations/example-draft-request
        selfLinkWithId: https://www.googleapis.com/compute/beta/projects/example-project/zones/europe-west4-b/futureReservations/7979651787097007552
        specificReservationRequired: true
        specificSkuProperties:
          instanceProperties:
            localSsds:
            - diskSizeGb: '375'
              interface: NVME
            ...
          machineType: h4d-highmem-192-lssd
        totalCount: '2'
        status:
          autoCreatedReservations:
          - https://www.googleapis.com/compute/beta/projects/example-project/zones/europe-west4-b/reservations/example-reservation
          fulfilledCount: '2'
          lockTime: '2026-01-27T19:15:00Z'
          procurementStatus: DRAFTING
        timeWindow:
          endTime: '2026-02-10T19:20:00Z'
          startTime: '2026-01-27T19:20:00Z'
        zone: https://www.googleapis.com/compute/beta/projects/example-project/zones/europe-west4-b
        
      4. Di output perintah, pastikan detail permintaan, seperti periode reservasi dan jenis berbagi, sudah benar. Selain itu, jika Anda membeli komitmen, verifikasi bahwa komitmen tersebut telah ditentukan.

      5. Jika detailnya salah, hubungi tim akun Anda.

      REST

      1. Untuk melihat daftar permintaan pemesanan untuk masa mendatang dalam project Anda, buat permintaan GET ke metode futureReservations.list beta. Di URL permintaan, sertakan parameter kueri filter dan tetapkan ke status.procurementStatus=DRAFTING:

        GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations?filter=status.procurementStatus=DRAFTING
        

        Ganti kode berikut:

        • PROJECT_ID: ID project tempat Google membuat draf permintaan pemesanan untuk masa mendatang.
        • ZONE: zona tempat permintaan berada.
      2. Dalam output permintaan, cari permintaan reservasi yang memiliki nama yang Anda berikan kepada tim akun Anda.

      3. Untuk melihat detail draf permintaan, buat permintaan GET ke metode futureReservations.get beta :

        GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations/FUTURE_RESERVATION_NAME
        

        Ganti FUTURE_RESERVATION_NAME dengan nama permintaan pemesanan untuk masa mendatang versi draf.

        Outputnya mirip dengan hal berikut ini:

        {
          "specificSkuProperties": {
            "instanceProperties": {
              "machineType": "h4d-highmem-192-lssd",
              "localSsds": [
                {
                  "diskSizeGb": "375",
                  "interface": "NVME"
                },
                ...
              ]
            },
            "totalCount": "2"
          },
          "kind": "compute#futureReservation",
          "id": "7979651787097007552",
          "creationTimestamp": "2025-11-27T11:14:58.305-08:00",
          "selfLink": "https://www.googleapis.com/compute/beta/projects/example-project/zones/europe-west4-b/futureReservations/example-draft-request",
          "selfLinkWithId": "https://www.googleapis.com/compute/beta/projects/example-project/zones/europe-west4-b/futureReservations/7979651787097007552",
          "zone": "https://www.googleapis.com/compute/beta/projects/example-project/zones/europe-west4-b",
          "name": "example-draft-request",
          "timeWindow": {
            "startTime": "2026-01-27T19:20:00Z",
            "endTime": "2026-02-10T19:20:00Z"
          },
          "status": {
            "procurementStatus": "DRAFTING",
            "lockTime": "2026-01-27T19:15:00Z"
          },
          "planningStatus": "DRAFT",
          "specificReservationRequired": true,
          "reservationName": "example-reservation",
          "deploymentType": "DENSE",
          "schedulingType": "INDEPENDENT",
          "autoCreatedReservationsDeleteTime": "2026-02-10T19:20:00Z"
        }
        
      4. Dalam output, pastikan detail permintaan, seperti periode reservasi dan jenis berbagi, sudah benar. Selain itu, jika Anda meminta komitmen, pastikan komitmen tersebut ditentukan.

      5. Jika detailnya salah, hubungi tim akun Anda.

    4. Jika semuanya sudah benar, kirim permintaan reservasi. Anda harus mengirimkan permintaan sebelum waktu mulai permintaan.

      Untuk mengirimkan draf permintaan pemesanan untuk masa mendatang, pilih salah satu opsi berikut:

      Konsol

      1. Di konsol Google Cloud , buka halaman Reservations.

        Buka Pemesanan

      2. Klik tab Future reservations.

      3. Di kolom Name, klik nama permintaan draf yang dibuat Google untuk Anda.

      4. Klik Kirim.

      gcloud

      Untuk mengirimkan draf permintaan untuk ditinjau, gunakan perintah gcloud beta compute future-reservations update dengan flag --planning-status ditetapkan ke SUBMITTED:

      gcloud beta compute future-reservations update FUTURE_RESERVATION_NAME \
          --planning-status=SUBMITTED \
          --zone=ZONE
      

      REST

      Untuk mengirimkan draf permintaan untuk ditinjau, buat permintaan PATCH ke metode beta futureReservations.update. Di URL permintaan, sertakan parameter kueri updateMask dan tetapkan ke planningStatus:

      PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations/FUTURE_RESERVATION_NAME?updateMask=planningStatus
      
      {
        "name": "FUTURE_RESERVATION_NAME",
        "planningStatus": "SUBMITTED"
      }
      
    5. Google Cloud segera menyetujui permintaan yang Anda kirimkan.

    6. Compute Engine membuat pemesanan kosong dengan resource yang Anda minta.

    7. Untuk melihat reservasi, lihat Melihat kapasitas yang dicadangkan dalam dokumentasi AI Hypercomputer.

    Opsional: Buat kebijakan penempatan

    Gunakan kebijakan penempatan jika Anda ingin VM ditempatkan sedekat mungkin satu sama lain. Namun, jika Anda ingin VM berada di blok tertentu, lewati langkah ini dan berikan nama blok yang diperlukan selama pembuatan VM massal.

    Instance yang berkomunikasi menggunakan Cloud 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, pilih salah satu opsi berikut:

    gcloud

    Untuk membuat kebijakan penempatan yang ringkas, gunakan perintah gcloud beta compute resource-policies create group-placement.

    gcloud beta compute resource-policies create group-placement POLICY_NAME \
    --collocation=collocated \
    --max-distance=MAX_DISTANCE \
    --region=REGION
    

    Ganti kode berikut:

    • POLICY_NAME: nama kebijakan penempatan ringkas
    • MAX_DISTANCE: konfigurasi jarak maksimum untuk instance VM Anda. Tentukan 3 untuk menempatkan VM di blok yang berdekatan, dan 2 untuk menempatkan VM di blok yang sama. Penempatan VM dilakukan berdasarkan upaya terbaik.
    • REGION: region tempat Anda ingin membuat kebijakan penempatan. Tentukan region tempat jenis mesin yang ingin Anda gunakan tersedia. Untuk mengetahui informasi tentang region yang tersedia, lihat Region dan zona yang tersedia.

    REST

    Untuk membuat kebijakan penempatan ringkas, buat permintaan POST ke metode beta.resourcePolicies.insert. Dalam isi permintaan, sertakan kolom collocation yang ditetapkan ke COLLOCATED, dan kolom maxDistance.

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/resourcePolicies
    {
        "name": "POLICY_NAME",
        "groupPlacementPolicy": {
            "collocation": "COLLOCATED",
            "maxDistance": "MAX_DISTANCE"
        }
    }
    

    Ganti kode berikut:

    • PROJECT_ID: project ID Anda
    • REGION: region tempat Anda ingin membuat kebijakan penempatan. Tentukan region tempat jenis mesin yang ingin Anda gunakan tersedia. Untuk mengetahui informasi tentang region yang tersedia, lihat Region dan zona yang tersedia.
    • POLICY_NAME: nama kebijakan penempatan ringkas
    • MAX_DISTANCE: konfigurasi jarak maksimum untuk instance VM Anda. Tentukan 3 untuk menempatkan VM di blok yang berdekatan, dan tentukan 2 untuk menempatkan VM di blok yang sama. Penempatan VM dilakukan berdasarkan upaya terbaik.

    Membuat jaringan Virtual Private Cloud

    Instance yang mendukung 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 jaringan RDMA antar-instance

    Instance yang menggunakan Cloud RDMA hanya dapat memiliki satu antarmuka IRDMA. Anda dapat menambahkan hingga delapan antarmuka jaringan GVNIC tambahan dengan total 10 NIC per instance.

    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 di region dan zona yang sama dengan instance.
    • Untuk antarmuka jaringan GVNIC, jika Anda tidak menentukan jaringan atau subnet, Compute Engine akan menggunakan jaringan VPC default dan subnet otomatis yang berada di dalam 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.

    Untuk menyiapkan jaringan Virtual Private Cloud (VPC) Falcon yang akan digunakan dengan instance Anda, Anda dapat mengikuti petunjuk yang didokumentasikan atau menggunakan skrip yang disediakan.

    Panduan petunjuk

    Untuk membuat jaringan, Anda dapat menggunakan petunjuk berikut:

    Skrip

    Anda dapat membuat hingga sembilan antarmuka jaringan GVNIC dan satu antarmuka jaringan IRDMA per instance. Setiap antarmuka jaringan harus terhubung ke jaringan yang terpisah. Untuk membuat jaringan, Anda dapat menggunakan skrip berikut, yang membuat dua jaringan untuk GVNIC dan satu jaringan untuk IRDMA yang menggunakan profil jaringan VPC Falcon.

    1. Opsional: Sebelum menjalankan skrip, buat daftar profil jaringan VPC Falcon untuk memverifikasi apakah ada profil yang tersedia. Profil jaringan VPC Falcon tidak tersedia di semua zona.

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

    #!/bin/bash
    
    # Create standard VPC (networks and subnets) for the two GVNIC interfaces
      for N in $(seq 0 1); do
        gcloud compute networks create GVNIC_NAME_PREFIX-net-$N \
            --subnet-mode=custom
    
        gcloud compute networks subnets create GVNIC_NAME_PREFIX-sub-$N \
            --network=GVNIC_NAME_PREFIX-net-$N \
            --region=<var>REGION</var> \
            --range=10.$N.0.0/16
    
        gcloud compute firewall-rules create GVNIC_NAME_PREFIX-internal-$N \
            --network=GVNIC_NAME_PREFIX-net-$N \
            --action=ALLOW \
            --rules=tcp:0-65535,udp:0-65535,icmp \
            --source-ranges=10.0.0.0/8
    done
    
    # Create SSH firewall rules
    gcloud 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 a firewall rule for the external IP address for the
    #  first GVNIC network interface
    gcloud 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 a network for the RDMA over Falcon network interface
    gcloud beta compute networks create RDMA_NAME_PREFIX-irdma \
      --network-profile=ZONE-vpc-falcon \
      --subnet-mode custom
    
    # Create a subnet for the RDMA network
    gcloud beta compute networks subnets create RDMA_NAME_PREFIX-irdma-sub \
        --network=RDMA_NAME_PREFIX-irdma \
        --region=REGION \
        --range=10.2.0.0/16
    # offset to avoid overlap with GVNIC subnet ranges
    

    Ganti kode berikut:

    • GVNIC_NAME_PREFIX: awalan nama yang akan digunakan untuk jaringan dan subnet VPC standar yang menggunakan jenis NIC GVNIC.
    • REGION: region tempat Anda ingin membuat jaringan. Ini harus sesuai dengan zona yang ditentukan untuk flag --network-profile, saat membuat VPC Falcon. Misalnya, jika Anda menentukan zona sebagai 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.
    • RDMA_NAME_PREFIX: awalan nama yang akan digunakan untuk jaringan VPC dan subnet 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.

    Membuat instance yang mendukung RDMA secara massal

    Tinjau batasan berikut sebelum membuat instance H4D dengan Cloud RDMA:

    • Anda tidak dapat menggunakan Migrasi langsung selama peristiwa pemeliharaan host dengan instance yang memiliki antarmuka jaringan Cloud RDMA. Anda harus mengonfigurasi instance agar dihentikan selama peristiwa pemeliharaan.
    • Anda hanya dapat menggunakan alamat IPv4 dengan antarmuka jaringan RDMA dan jaringan VPC dengan profil jaringan Falcon RDMA.
    • Anda hanya dapat menggunakan seri mesin H4D untuk membuat instance yang dioptimalkan untuk HPC dengan Cloud RDMA.

    Langkah-langkah berikut menunjukkan cara membuat instance yang mendukung RDMA secara massal dengan dua antarmuka jaringan pertama dikonfigurasi sebagai antarmuka GVNIC, dan antarmuka jaringan ketiga dikonfigurasi sebagai antarmuka jaringan IRDMA:

    gcloud

    Gunakan perintah gcloud compute instances create dengan tiga flag --network-interface, dua untuk antarmuka GVNIC dan satu untuk antarmuka IRDMA. Jika Anda memilih untuk menggunakan kebijakan penempatan rapat, tambahkan juga flag berikut: --resource-policies=POLICY_NAME. Ganti POLICY_NAME dengan nama kebijakan penempatan padat. Anda dapat menyesuaikan opsi instance lainnya sesuai kebutuhan.

    gcloud compute instances bulk create \
        --name-pattern=NAME_PATTERN \
        --count=COUNT \
        --machine-type=MACHINE_TYPE \
        --image-family=IMAGE_FAMILY \
        --image=project= IMAGE_PROJECT \
        --reservation-affinity=specific \
        --reservation=RESERVATION \
        --provisioning-model=RESERVATION_BOUND \
        --instance-termination=action=DELETE \
        --maintenance-policy=TERMINATE \
        --region=REGION \
        --boot-disk-type=hyperdisk-balanced \
        --boot-disk-size=DISK_SIZE \
        --scopes=cloud-platform \
        --network-interface=nic-type=GVNIC, \
            network=GVNIC_NAME_PREFIX-net-0, \
            subnet=GVNIC_NAME_PREFIX-sub-0, \
            stack-type=STACK_TYPE, \
            address=EXTERNAL_IPV4_ADDRESS \
        --network-interface=nic-type=GVNIC, \
            network=GVNIC_NAME_PREFIX-net-1, \
            subnet=GVNIC_NAME_PREFIX-sub-1, no-address \
        --network-interface=nic-type=IRDMA, \
            network=RDMA_NAME_PREFIX-irdma, \
            subnet=RDMA_NAME_PREFIX-irdma-sub, \
            stack-type=IPV4_ONLY, no-address
    

    Ganti kode berikut:

    • NAME_PATTERN: pola nama untuk instance. Misalnya, menggunakan vm-# untuk pola nama akan menghasilkan instance dengan nama seperti vm-1 dan vm-2, hingga jumlah yang ditentukan oleh tanda --count.
    • COUNT: jumlah instance yang akan dibuat.
    • MACHINE_TYPE: jenis mesin yang akan digunakan untuk instance. Gunakan salah satu jenis mesin H4D, misalnya h4d-highmem-192-lssd.
    • IMAGE_FAMILY: kelompok image dari image OS yang ingin Anda gunakan, misalnya rocky-linux-9-optimized-gcp. Untuk mengetahui daftar image OS yang didukung, lihat Sistem operasi yang didukung. Pilih versi image OS yang mendukung antarmuka IRDMA.
    • IMAGE_PROJECT: project ID untuk image OS, misalnya, rocky-linux-cloud.
    • RESERVATION: untuk nilai ini, Anda dapat menentukan salah satu opsi berikut:

      • Jika Anda menggunakan kebijakan penempatan atau jika VM dapat ditempatkan di mana saja dalam blok reservasi, tentukan nama reservasi, misalnya, h4d-highmem-exfr-prod.
      • Jika Anda ingin instance ditempatkan dalam blok tertentu dan Anda tidak menggunakan kebijakan penempatan yang ringkas, tentukan nama blok reservasi menggunakan format RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME, for example,h4d-highmem-exfr-prod/reservationBlocks/h4d-highmem-exfr-prod-block-1`.

      Untuk melihat nama reservasi atau blok reservasi yang tersedia, lihat Melihat kapasitas.

    • REGION: tentukan region tempat jenis mesin yang ingin Anda gunakan tersedia, misalnya europe-west1. Untuk mengetahui informasi tentang region yang tersedia, lihat Region dan zona yang tersedia.

    • DISK_SIZE: Opsional: ukuran boot disk dalam GiB. Nilai harus berupa bilangan bulat.

    • GVNIC_NAME_PREFIX: awalan nama yang Anda gunakan saat membuat jaringan VPC dan subnet untuk antarmuka GVNIC.

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

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

    • 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_NAME_PREFIX: awalan nama yang Anda gunakan saat membuat jaringan dan subnet VPC untuk antarmuka IRDMA.

    REST

    Untuk membuat instance yang mendukung RDMA secara massal, buat permintaan POST ke metode beta instances.bulkInsert dengan setelan berikut:

    • Sertakan objek networkInterfaces dengan minimal dua konfigurasi jaringan, satu untuk antarmuka jaringan gVNIC dan satu untuk antarmuka jaringan RDMA.
    • Jika Anda memilih untuk menggunakan kebijakan penempatan rapat, tambahkan juga objek resourcePolicies ke isi permintaan.
    • Untuk menggunakan blok kapasitas yang dicadangkan saat membuat instance, tetapkan provisioningModel ke RESERVATION_BOUND.
    • Anda dapat menyesuaikan properti instance lainnya sesuai kebutuhan.
    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert
    {
      "namePattern":"NAME_PATTERN",
      "count":"COUNT",
      "instanceProperties":{
        "machineType":"MACHINE_TYPE",
        "disks":[
          {
            "boot":true,
            "initializeParams":{
              "diskSizeGb":"DISK_SIZE",
              "diskType":"hyperdisk-balanced",
              "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
            },
            "mode":"READ_WRITE",
            "type":"PERSISTENT"
          }
        ],
        "networkInterfaces": [
          {
              "network": "GVNIC_NAME_PREFIX-net-0",
              "subnetwork": "GVNIC_NAME_PREFIX-sub-0",
              "accessConfigs": [
                {
                    "type": "ONE_TO_ONE_NAT",
                    "name": "External IP",
                    "natIP": "EXTERNAL_IPV4_ADDRESS"
                }
              ],
              "stackType": "IPV4_ONLY",
              "nicType": "GVNIC",
          },
          {
              "network": "GVNIC_NAME_PREFIX-net-1",
              "subnetwork": "GVNIC_NAME_PREFIX-sub-1",
              "stackType": "IPV4_ONLY",
              "nicType": "GVNIC",
          },
          {
              "network": "RDMA_NAME_PREFIX-irdma",
              "subnetwork": "RDMA_NAME_PREFIX-irdma-sub",
              "stackType": "IPV4_ONLY",
              "nicType": "IRDMA",
          }
        ],
        "reservationAffinity":{
            "consumeReservationType":"SPECIFIC_RESERVATION",
            "key":"compute.googleapis.com/reservation-name",
            "values":[
                "RESERVATION"
            ],
            "scheduling":{
                "provisioningModel":"RESERVATION_BOUND",
                "instanceTerminationAction":"DELETE",
                "onHostMaintenance": "TERMINATE",
                "automaticRestart":true
            }
        },
        ...
      }
    }
    

    Selesaikan langkah-langkah berikut:

    1. Ganti baris berikut dalam isi permintaan:

      • PROJECT_ID: project ID dari project tempat Anda ingin membuat instance.
      • ZONE: tentukan zona tempat jenis mesin yang ingin Anda gunakan tersedia. Jika Anda menggunakan kebijakan penempatan rapat, gunakan zona di region yang sama dengan kebijakan penempatan rapat. Untuk mengetahui informasi tentang region tempat jenis mesin H4D tersedia, lihat Region dan zona yang tersedia.
      • NAME_PATTERN: pola nama untuk instance. Misalnya, menggunakan vm-# untuk pola nama akan menghasilkan instance dengan nama seperti vm-1 dan vm-2, hingga jumlah yang ditentukan oleh kolom count.
      • COUNT: jumlah instance yang akan dibuat.
      • MACHINE_TYPE: jenis mesin yang akan digunakan untuk instance. Gunakan salah satu jenis mesin H4D, misalnya h4d-highmem-192-lssd.
      • DISK_SIZE: ukuran boot disk dalam GiB.
      • IMAGE_PROJECT: project ID untuk image OS, misalnya, debian-cloud.
      • IMAGE_FAMILY: kelompok image dari image OS yang ingin Anda gunakan, misalnya rocky-linux-9-optimized-gcp. Untuk mengetahui daftar image OS yang didukung, lihat Sistem operasi yang didukung. Pilih versi image OS yang mendukung antarmuka IRDMA.
      • GVNIC_NAME_PREFIX: awalan nama yang Anda gunakan saat membuat jaringan VPC dan subnet untuk antarmuka GVNIC

        Untuk antarmuka jaringan GVNIC, Anda dapat menghilangkan kolom network dan subnetwork untuk menggunakan jaringan default.

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

      • RDMA_NAME_PREFIX: awalan nama yang Anda gunakan saat membuat jaringan dan subnet VPC untuk antarmuka IRDMA.

      • RESERVATION: untuk nilai ini, Anda dapat menentukan salah satu opsi berikut:

        • Jika Anda menggunakan kebijakan penempatan atau jika VM dapat ditempatkan di mana saja dalam blok reservasi, tentukan nama reservasi, misalnya, h4d-highmem-exfr-prod.
        • Jika Anda ingin instance ditempatkan dalam blok tertentu dan Anda tidak menggunakan kebijakan penempatan rapat, tentukan nama blok pemesanan sebagai RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME, for example,h4d-highmem-exfr-prod/reservationBlocks/h4d-highmem-exfr-prod-block-1`.

        Untuk melihat nama reservasi atau blok reservasi yang tersedia, lihat Melihat kapasitas.

    2. Opsional: Jika Anda menggunakan kebijakan penempatan rapat, ganti ... di isi permintaan dengan kolom berikut:

      "resourcePolicies": [
          "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
      ],
      

      Ganti kode berikut:

      • PROJECT_ID: project ID kebijakan penempatan ringkas.
      • REGION: region kebijakan penempatan yang ringkas.
      • POLICY_NAME: nama kebijakan penempatan yang ringkas.
    3. Kirim permintaan.

    Pembersihan

    Agar tidak perlu membayar biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini, hapus project yang berisi resource tersebut, atau simpan project dan hapus setiap resource.

    Menghapus project Anda

    Delete a Google Cloud project:

    gcloud projects delete PROJECT_ID

    Menghapus resource

    1. Di konsol Google Cloud , buka halaman VM instances.

      Buka instance VM

    2. Pilih baris yang berisi instance VM yang Anda buat dalam tutorial ini.

    3. Klik Hapus, lalu klik Hapus untuk mengonfirmasi.

    4. Untuk menghapus kebijakan penempatan, gunakan perintah gcloud compute resource-policies delete.

      gcloud compute resource-policies delete POLICY_NAME \
          --region=REGION
      

      Ganti kode berikut:

      • POLICY_NAME: nama kebijakan penempatan
      • REGION: region tempat kebijakan penempatan berada

    Langkah berikutnya