Membuat MIG dengan jenis mesin H4D dan flex-start

Tutorial ini menunjukkan cara membuat grup instance terkelola (MIG) yang menggunakan jenis mesin H4D. MIG menggunakan model penggunaan mulai fleksibel Dynamic Workload Scheduler untuk mendapatkan resource komputasi hingga tujuh hari.

Dengan membuat MIG, Anda dapat mengelola beberapa virtual machine (VM) sebagai satu entitas. Setiap VM dalam MIG didasarkan pada template instance. Dengan mengelola VM dalam grup secara otomatis, MIG menawarkan ketersediaan tinggi dan skalabilitas. Untuk mempelajari MIG lebih lanjut, lihat Grup instance terkelola.

Untuk mempelajari opsi pembuatan VM HPC dan cluster HPC, lihat Ringkasan pembuatan cluster HPC.

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

Opsional: Meminta kuota yang dapat di-preempt

Instance VM yang ditambahkan ke MIG menggunakan kuota regional. Kapasitas instance VM, grup instance, CPU, dan disk dapat digunakan oleh instance VM mana pun di region, di mana pun zonanya.

Kuota dapat berupa kuota standar atau kuota preemptible saat menggunakan Mulai fleksibel.

  • Kuota standar: Jika project Anda tidak memiliki kuota preemptible, dan Anda tidak pernah meminta kuota preemptible, resource instance akan menggunakan kuota standar.
  • Kuota preemptible: Meminta kuota preemptible dapat membantu Anda meningkatkan ketersediaan kuota dengan menyediakan kuota terpisah untuk resource sementara. Namun, setelah Compute Engine memberi Anda kuota preemptible di suatu region, semua resource yang berlaku hanya menggunakan kuota preemptible. Jika kuota ini habis, Anda harus meminta kuota preemptible tambahan untuk resource VM.

Anda dapat meminta kuota yang dapat di-preempt dengan mengikuti langkah-langkah yang didokumentasikan dalam Meminta penyesuaian kuota.

Jenis kuota yang diperlukan

Untuk menggunakan grup instance, Anda harus memiliki kuota yang tersedia untuk semua resource yang digunakan grup (misalnya, kuota CPU) dan kuota yang tersedia untuk resource grup itu sendiri. Untuk instance H4D, jenis kuota berikut dapat digunakan, bergantung pada jenis mesin yang digunakan oleh instance:

Resource Kuota standar Kuota preemptible
CPU CPUS_PER_VM_FAMILY Preemptible CPUs
SSD lokal Local SSD per machine family (GB) Preemptible Local SSDs (GB)

Untuk membuat resource dalam tutorial ini, kuota regional tambahan berikut mungkin diperlukan:

  • Grup instance terkelola zona (zona tunggal): Instance group managers dan Instance groups
  • Google Cloud Hyperdisk:

    • Hyperdisk Balanced Capacity (GB)
    • Hyperdisk Balanced Throughput (MB/s)
    • Hyperdisk Balanced IOPS

Opsional: Buat jaringan VPC

Kecuali jika Anda memilih untuk menonaktifkannya, setiap project memiliki jaringan default, yang dapat digunakan untuk menyediakan konektivitas jaringan bagi instance Anda. Saat membuat VM, Anda dapat menentukan jaringan dan subnet VPC. Jika Anda menghapus konfigurasi ini, jaringan dan subnet default akan digunakan.

Instance H4D dapat dikonfigurasi untuk menggunakan Cloud RDMA. Cloud RDMA memungkinkan kemampuan pengiriman pesan yang andal dengan latensi rendah menggunakan driver jaringan IRDMA yang mendukung Remote Direct Memory Access (RDMA) antara instance Compute Engine.

Untuk tutorial ini:

  • Jika Anda ingin mengonfigurasi instance H4D untuk menggunakan Cloud RDMA, selesaikan langkah-langkah di bagian ini.
  • Jika tidak ingin menggunakan Cloud RDMA, Anda dapat melewati bagian ini dan menggunakan jaringan default.

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 jaringan Cloud 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.

Untuk menyiapkan jaringan VPC Falcon untuk 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 terpasang ke jaringan yang terpisah. Untuk membuat jaringan, Anda dapat menggunakan skrip berikut, yang membuat dua jaringan untuk GVNIC dan satu jaringan untuk IRDMA.

  1. Opsional: Sebelum menjalankan skrip, buat daftar profil jaringan RDMA untuk memverifikasi bahwa ada profil yang tersedia.
      gcloud beta compute network-profiles list
      
  2. Salin kode berikut dan jalankan di jendela shell Linux.

      #!/bin/bash
      # Set the number of GVNIC interfaces to create. You can create up to 9.
      NUM_GVNIC=NUMBER_OF_GVNIC
    
      # Create standard VPC (networks and subnets) for the GVNIC interfaces
        for N in $(seq 0 $(($NUM_GVNIC - 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=REGION \
              --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:

    • NUMBER_OF_GVNIC: jumlah antarmuka GVNIC yang akan dibuat. Tentukan angka dari 1 hingga 9.
    • 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 jaringan RDMA. 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 perlukan untuk mengizinkan akses dari, 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 dari us-central1-a atau europe-west4-b.
  3. Opsional: Untuk memverifikasi bahwa resource jaringan VPC berhasil dibuat, periksa setelan jaringan di konsol Google Cloud :

    1. Di Google Cloud konsol, buka halaman VPC networks.

      Buka jaringan VPC

    2. Telusuri daftar untuk menemukan jaringan yang Anda buat di langkah sebelumnya.
    3. Untuk melihat subnet, aturan firewall, dan setelan jaringan lainnya, klik nama jaringan.

Membuat template instance

Untuk menggunakan opsi konsumsi Mulai fleksibel, Anda membuat MIG kosong, lalu membuat permintaan pengubahan ukuran untuk MIG. Saat kapasitas yang Anda minta tersedia, Compute Engine akan menyediakannya dan membuat instance di MIG. Anda mendapatkan sumber daya hingga tujuh hari.

Untuk menentukan properti instance dan konsumsi untuk setiap instance di MIG, buat template instance menggunakan salah satu metode berikut:

gcloud

Untuk membuat template instance regional, gunakan gcloud beta compute instance-templates create command.

gcloud beta compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --instance-template-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 \
    
    --reservation-affinity=none \
    --instance-termination-action=DELETE \
    --max-run-duration=RUN_DURATION \
    --maintenance-policy=TERMINATE \
    --provisioning-model=FLEX_START

Ganti kode berikut:

  • INSTANCE_TEMPLATE_NAME: nama template instance.
  • MACHINE_TYPE: jenis mesin H4D yang akan digunakan untuk instance.
  • IMAGE_FAMILY: kelompok image dari image OS yang ingin Anda gunakan. Untuk daftar sistem operasi yang didukung, lihat Sistem operasi yang didukung.
  • IMAGE_PROJECT: project ID image OS.
  • REGION: region tempat Anda ingin membuat template instance. Tentukan region tempat jenis mesin yang ingin Anda gunakan tersedia.
  • DISK_SIZE: ukuran boot disk dalam GiB.
  • GVNIC_NAME_PREFIX: awalan nama yang Anda gunakan saat membuat jaringan dan subnet VPC standar untuk antarmuka gVNIC.

    Jika Anda menggunakan jaringan default, sertakan hanya satu kolom --network-interface dengan kolom nic-type yang ditetapkan ke GVNIC. Selain itu, hapus setelan network dan subnetwork untuk antarmuka jaringan ini.

  • STACK_TYPE: Opsional: jenis stack yang akan digunakan untuk antarmuka gVNIC. Tentukan IPV4_ONLY atau IPV4_IPV6. Jika Anda tidak menentukan nilai, IPV4_ONLY akan digunakan secara default.
  • EXTERNAL_IPV4_ADDRESS: Opsional: alamat IPv4 eksternal statis yang akan digunakan dengan antarmuka jaringan gVNIC. Anda harus sudah 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 jaringan menerima alamat IP eksternal sementara.

    Untuk menentukan alamat IPv6 eksternal untuk antarmuka jaringan GVNIC, gunakan flag --external-ipv6-address.

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

    Jika Anda tidak menggunakan Cloud RDMA dengan instance H4D, hapus kolom --network-interface untuk antarmuka IRDMA.

  • RUN_DURATION: durasi yang Anda inginkan untuk menjalankan instance yang diminta. Anda harus memformat nilai sebagai jumlah hari, jam, menit, atau detik yang diikuti dengan d, h, m, dan s masing-masing. Misalnya, tentukan 30m selama 30 menit atau 1d2h3m4s untuk satu hari, dua jam, tiga menit, dan empat detik. Nilai harus antara 10 menit dan tujuh hari.

REST

Untuk membuat template instance regional, buat permintaan POST ke beta regionInstanceTemplates.insert metode.

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceTemplates
{
  "name":"INSTANCE_TEMPLATE_NAME",
  "properties":{
    "disks":[
      {
        "boot":true,
        "initializeParams":{
          "diskSizeGb":"DISK_SIZE",
          "diskType":"hyperdisk-balanced",
          "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        },
        "mode":"READ_WRITE",
        "type":"PERSISTENT"
      }
    ],
    "machineType":"MACHINE_TYPE",
    
        "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": "NO_RESERVATION"
      },
    "scheduling": {
        "instanceTerminationAction": "DELETE",
        "maxRunDuration": {
          "seconds": RUN_DURATION
        },
        "onHostMaintenance": "TERMINATE",
        "provisioningModel": "FLEX_START"
      }

  }
}

Ganti kode berikut:

  • INSTANCE_TEMPLATE_NAME: nama template instance.
  • MACHINE_TYPE: jenis mesin yang akan digunakan untuk instance. Tentukan jenis mesin H4D. Untuk mengetahui informasi selengkapnya, lihat Jenis mesin H4D.
  • IMAGE_FAMILY: kelompok image dari image OS yang ingin Anda gunakan. Untuk daftar sistem operasi yang didukung, lihat Sistem operasi yang didukung.
  • IMAGE_PROJECT: project ID image OS.
  • REGION: region tempat Anda ingin membuat template instance. Tentukan region tempat jenis mesin yang ingin Anda gunakan tersedia. Untuk mengetahui informasi tentang region, lihat Region dan zona.
  • DISK_SIZE: ukuran boot disk dalam GiB.
  • GVNIC_NAME_PREFIX: awalan nama yang Anda gunakan saat membuat jaringan dan subnet VPC standar untuk antarmuka gVNIC.

    Jika Anda menggunakan jaringan default, sertakan hanya satu kolom --network-interface dengan kolom nic-type yang ditetapkan ke GVNIC. Selain itu, hapus setelan network dan subnetwork untuk antarmuka jaringan ini.

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

    Untuk menentukan alamat IPv6 eksternal untuk antarmuka jaringan GVNIC, gunakan flag --external-ipv6-address.

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

    Jika Anda tidak menggunakan Cloud RDMA dengan instance H4D, hapus kolom --network-interface untuk antarmuka IRDMA.

  • RUN_DURATION: durasi, dalam detik, yang Anda inginkan untuk instance yang diminta agar dapat berjalan. Nilai harus antara 600, yaitu 600 detik (10 menit), dan 604800, yaitu 604.800 detik (tujuh hari).

Setelah membuat template instance, Anda dapat melihat template untuk melihat ID-nya dan meninjau properti instance-nya.

Membuat MIG dengan permintaan pengubahan ukuran

Untuk membuat semua instance Mulai fleksibel yang diminta secara bersamaan, buat MIG, lalu buat permintaan pengubahan ukuran di MIG seperti yang dijelaskan di bagian ini.

Buat MIG

Untuk membuat MIG, pilih salah satu opsi berikut:

gcloud

Buat MIG zona atau regional sebagai berikut:

  • Untuk membuat MIG zona, gunakan perintah instance-groups managed create seperti berikut.

        gcloud compute instance-groups managed create MIG_NAME \
            --template=INSTANCE_TEMPLATE_URL \
            --size=0 \
            --default-action-on-vm-failure=do-nothing \
            --zone=ZONE
        
  • Untuk membuat MIG regional, gunakan perintah instance-groups managed create seperti berikut.

        gcloud compute instance-groups managed create MIG_NAME \
            --template=INSTANCE_TEMPLATE_URL \
            --size=0 \
            --default-action-on-vm-failure=do-nothing \
            --zones=ZONE \
            --target-distribution-shape=any-single-zone \
            --instance-redistribution-type=none
        

REST

Buat MIG zona atau regional sebagai berikut:

  • Untuk membuat MIG zona, buat permintaan POST ke metode instanceGroupManagers.insert seperti berikut.
          POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
          {
            "versions": [
            {
              "instanceTemplate": "INSTANCE_TEMPLATE_URL"
            }
            ],
            "name": "MIG_NAME",
            "targetSize": 0,
            "instanceLifecyclePolicy": {
                "defaultActionOnFailure": "DO_NOTHING"
            }
          }
         
  • Untuk membuat MIG regional, buat permintaan POST ke metode regionInstanceGroupManagers.insert seperti berikut.
          POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers
          {
            "versions": [
              {
                "instanceTemplate": "INSTANCE_TEMPLATE_URL"
              }
            ],
            "name": "MIG_NAME",
            "targetSize": 0,
            "distributionPolicy": {
              "targetShape": "ANY_SINGLE_ZONE",
              "zones": [
                {
                "zone": "projects/PROJECT_ID/zones/ZONE"
                }
              ]
            },
            "updatePolicy": {
              "instanceRedistributionType": "NONE"
            },
            "instanceLifecyclePolicy": {
              "defaultActionOnFailure": "DO_NOTHING"
            }
          }
         

Buat permintaan pengubahan ukuran

Untuk membuat permintaan pengubahan ukuran di MIG, pilih salah satu opsi berikut:

gcloud

Buat permintaan pengubahan ukuran sebagai berikut:

  • Untuk membuat permintaan pengubahan ukuran di MIG zona, gunakan perintah instance-groups managed resize-requests create sebagai berikut:

        gcloud compute instance-groups managed resize-requests create MIG_NAME \
            --resize-request=RESIZE_REQUEST_NAME \
            POPULATION_METHOD \
            --zone=ZONE
        
  • Untuk membuat permintaan pengubahan ukuran di MIG regional, gunakan perintah beta instance-groups managed resize-requests create sebagai berikut:

          gcloud beta compute instance-groups managed resize-requests create MIG_NAME \
              --resize-request=RESIZE_REQUEST_NAME \
              POPULATION_METHOD \
              --region=REGION
          

REST

Buat permintaan pengubahan ukuran di MIG tingkat zona atau regional sebagai berikut:

  • Untuk membuat permintaan pengubahan ukuran di MIG zona, buat permintaan POST ke metode instanceGroupManagerResizeRequests.insert seperti berikut:
          POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME/resizeRequests
          {
            "name": "RESIZE_REQUEST_NAME",
            POPULATION_METHOD
          }
          
  • Untuk membuat permintaan pengubahan ukuran di MIG regional, buat permintaan POST ke metode beta.regionInstanceGroupManagerResizeRequests.insert seperti berikut:
          POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME/resizeRequests
          {
            "name": "RESIZE_REQUEST_NAME",
            POPULATION_METHOD
          }