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
danInstance 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 drivergve
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:
Untuk membuat jaringan host bagi antarmuka jaringan
GVNIC
, lihat Membuat dan mengelola jaringan VPC.Jika hanya mengonfigurasi satu antarmuka jaringan
GVNIC
, Anda dapat menggunakan jaringan VPC default dan subnet otomatis yang berada di region yang sama dengan instance.Untuk membuat jaringan untuk antarmuka jaringan
IRDMA
, lihat Membuat jaringan VPC dengan profil jaringan RDMA. Gunakan nilai default untuk unit transmisi maksimum (MTU) untuk jaringan RDMA, yaitu8896
.
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
.
- Opsional: Sebelum menjalankan skrip, buat daftar profil jaringan RDMA untuk
memverifikasi bahwa ada profil yang tersedia.
gcloud beta compute network-profiles list
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 sebagaieurope-west4-b
, maka region Anda adalaheurope-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 gunakan0.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 darius-central1-a
ataueurope-west4-b
.
Opsional: Untuk memverifikasi bahwa resource jaringan VPC berhasil dibuat, periksa setelan jaringan di konsol Google Cloud :
- Di Google Cloud konsol, buka halaman VPC networks.
- Telusuri daftar untuk menemukan jaringan yang Anda buat di langkah sebelumnya.
- 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 kolomnic-type
yang ditetapkan keGVNIC
. Selain itu, hapus setelannetwork
dansubnetwork
untuk antarmuka jaringan ini.STACK_TYPE
: Opsional: jenis stack yang akan digunakan untuk antarmuka gVNIC. TentukanIPV4_ONLY
atauIPV4_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 dengand
,h
,m
, dans
masing-masing. Misalnya, tentukan30m
selama 30 menit atau1d2h3m4s
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 kolomnic-type
yang ditetapkan keGVNIC
. Selain itu, hapus setelannetwork
dansubnetwork
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 antara600
, yaitu 600 detik (10 menit), dan604800
, 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 metodeinstanceGroupManagers.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 metoderegionInstanceGroupManagers.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 metodeinstanceGroupManagerResizeRequests.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 metodebeta.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 }