Este tutorial mostra como criar um grande número de instâncias de máquinas virtuais (VMs) de computação de alto desempenho (HPC) idênticas e independentes entre si. As instâncias usam tipos de máquinas otimizadas para HPC H4D e são executadas em blocos de capacidade reservados. Este tutorial também mostra como configurar as instâncias H4D para usar o RDMA na nuvem.
Este tutorial destina-se a engenheiros de HPC, administradores e operadores de plataformas, bem como a especialistas em dados e MPI interessados em criar um cluster de instâncias de HPC interligadas. As instâncias resultantes não usam um orquestrador para a gestão de instâncias ou o agendamento de tarefas.
Objetivos
- Reserve blocos de capacidade para a sua implementação.
- Opcional: crie uma política de posicionamento se não estiver a criar as VMs no mesmo bloco ou sub-bloco.
- Criar redes da nuvem privada virtual.
- Crie instâncias com RDMA em massa.
- Limpar.
Custos
Este tutorial usa componentes faturáveis do Google Cloud, incluindo:
Para gerar uma estimativa de custo com base na sua utilização projetada, use a calculadora de preços.
Antes de começar
- 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.
-
Install the Google Cloud CLI.
-
Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
-
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 theresourcemanager.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.
-
Verify that billing is enabled for your Google Cloud project.
-
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 theserviceusage.services.enable
permission. Learn how to grant roles.gcloud services enable compute.googleapis.com
-
Install the Google Cloud CLI.
-
Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
-
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 theresourcemanager.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.
-
Verify that billing is enabled for your Google Cloud project.
-
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 theserviceusage.services.enable
permission. Learn how to grant roles.gcloud services enable compute.googleapis.com
-
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.
- Para implementações não densas: modelos de aprovisionamento de instâncias do Compute Engine
- Para implementações densas: escolha uma opção de consumo e obtenha capacidade
Contacte a equipa da sua conta e faculte as seguintes informações para que a Google crie um pedido de reserva futuro em rascunho:
Número do projeto: o número do projeto onde a sua equipa da conta cria o pedido e o Compute Engine aprovisiona a capacidade. Para obter informações sobre como encontrar o número do projeto, consulte o artigo Encontre o nome, o número e o ID do projeto na documentação do Resource Manager.
Tipo de máquina: um dos tipos de máquinas otimizadas para HPC H4D
Total count: o número total de VMs a reservar. Só pode reservar múltiplos de duas VMs. Os tamanhos dos blocos e a quantidade de VMs por bloco variam com base no tipo de máquina e na disponibilidade. A equipa da conta pode fornecer mais detalhes sobre o seu pedido.
Zona: a zona onde quer reservar capacidade. Para rever as regiões e as zonas disponíveis para a série de máquinas H4D, consulte o artigo Regiões e zonas disponíveis e selecione
H4D
na lista Selecionar uma série de máquinas.Hora de início: a hora de início do período de reserva. Formate a hora de início como uma indicação de tempo RFC 3339:
YYYY-MM-DDTHH:MM:SSOFFSET
Substitua o seguinte:
YYYY-MM-DD
: uma data formatada como um ano de quatro dígitos, um mês de dois dígitos e um dia do mês de dois dígitos, separados por hífenes (-
).HH:MM:SS
: uma hora formatada como uma hora de dois dígitos com uma hora de 24 horas, minutos de dois dígitos e segundos de dois dígitos, separados por dois pontos (:
).OFFSET
: o fuso horário formatado como um desvio do Tempo Universal Coordenado (UTC). Por exemplo, para usar a Hora Padrão do Pacífico (PST), especifique-08:00
. Para não usar nenhum desvio, especifiqueZ
.
Hora de fim: a hora de fim do período de reserva. Formate-o como uma data/hora RFC 3339.
Tipo de partilha: se apenas o seu projeto pode usar a reserva criada automaticamente (
LOCAL
) ou se outros projetos podem usar a reserva (SPECIFIC_PROJECTS
).Para partilhar capacidade reservada com outros projetos na sua organização, faça o seguinte:
Se ainda não o fez, verifique se o projeto onde a Google cria o pedido tem autorização para criar reservas partilhadas.
Indique os números dos projetos com os quais quer partilhar a capacidade reservada. Pode especificar até 100 projetos na sua organização.
Nome da reserva: o nome da reserva que o Compute Engine cria automaticamente para fornecer a sua capacidade reservada. O Compute Engine só cria reservas especificamente segmentadas.
Nome do compromisso: se o período de reserva for de um ano ou mais, tem de comprar e anexar um compromisso baseado em recursos aos recursos reservados. Pode comprar um compromisso com um plano de 1 ano ou 3 anos. Se partilhar a capacidade reservada com outros projetos, esses projetos só recebem descontos se usarem a mesma conta de faturação do Google Cloud que o projeto onde reserva capacidade. Para ver detalhes, consulte o artigo Ative a partilha de CUDs para compromissos baseados em recursos.
A Google cria um pedido de reserva futuro de rascunho e a equipa da sua conta entra em contacto consigo.
Reveja o pedido de rascunho. Tenha em atenção o seguinte ao rever o pedido de reserva:
- Só pode começar a usar a capacidade reservada após a data e a hora de início especificadas.
Quando a hora de fim especificada é atingida, o Compute Engine faz o seguinte:
- Elimina a reserva criada automaticamente.
- Para ou elimina todas as VMs que usam a reserva. A ação realizada baseia-se na ação de rescisão que especifica quando cria as VMs.
Não pode alterar se a capacidade reservada é partilhada depois de enviar o pedido de reserva.
Para rever um pedido de reserva futuro em rascunho, selecione uma das seguintes opções:
Consola
Na Google Cloud consola, aceda à página Reservas.
Clique no separador Reservas futuras. A tabela Reservas futuras apresenta cada pedido de reserva futura no seu projeto e cada coluna da tabela descreve uma propriedade.
Na coluna Nome, clique no nome do pedido de rascunho que a Google criou para si. É aberta uma página com os detalhes do pedido de reserva futuro.
Na secção Informações básicas, verifique se os detalhes do pedido, como as Datas e o Tipo de partilha, estão corretos. Além disso, se solicitou um compromisso, verifique se este está especificado.
Se algum destes detalhes estiver incorreto, contacte a equipa da sua conta.
gcloud
Para ver uma lista de pedidos de reserva futuros no seu projeto, use o comando
gcloud beta compute future-reservations list
com a flag--filter
definida comoPROCUREMENT_STATUS=DRAFTING
:gcloud beta compute future-reservations list --filter=PROCUREMENT_STATUS=DRAFTING
Na saída do comando, procure o pedido de reserva que tem o nome que indicou à equipa da sua conta.
Para ver os detalhes do pedido de rascunho, use o comando
gcloud beta compute future-reservations describe
:gcloud beta compute future-reservations describe FUTURE_RESERVATION_NAME \ --zone=ZONE
Substitua o seguinte:
FUTURE_RESERVATION_NAME
: o nome do pedido de reserva futuro em rascunho.ZONE
: a zona onde a Google criou o pedido.
O resultado é semelhante ao seguinte:
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
Na saída do comando, verifique se os detalhes do pedido, como o período de reserva e o tipo de partilha, estão corretos. Além disso, se comprou um compromisso, verifique se este está especificado.
Se os detalhes estiverem incorretos, contacte a equipa da sua conta.
REST
Para ver uma lista de pedidos de reserva futuros no seu projeto, faça um pedido
GET
ao método betafutureReservations.list
. No URL do pedido, inclua o parâmetro de consultafilter
e defina-o comostatus.procurementStatus=DRAFTING
:GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations?filter=status.procurementStatus=DRAFTING
Substitua o seguinte:
PROJECT_ID
: o ID do projeto onde a Google criou o pedido de reserva futuro de rascunho.ZONE
: a zona onde o pedido existe.
No resultado do pedido, procure o pedido de reserva que tenha o nome que indicou à equipa da sua conta.
Para ver os detalhes do pedido de rascunho, faça um pedido
GET
ao método betafutureReservations.get
:GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations/FUTURE_RESERVATION_NAME
Substitua
FUTURE_RESERVATION_NAME
pelo nome do pedido de reserva futuro de rascunho.O resultado é semelhante ao seguinte:
{ "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" }
Na saída, verifique se os detalhes do pedido, como o período de reserva e o tipo de partilha, estão corretos. Além disso, se pediu um compromisso, verifique se este está especificado.
Se os detalhes estiverem incorretos, contacte a equipa da sua conta.
Se tudo estiver correto, envie o pedido de reserva. Tem de enviar o pedido antes da hora de início do pedido.
Para enviar um pedido de reserva futuro em rascunho, selecione uma das seguintes opções:
Consola
Na Google Cloud consola, aceda à página Reservas.
Clique no separador Reservas futuras.
Na coluna Nome, clique no nome do pedido de rascunho que a Google criou para si.
Clique em Enviar.
gcloud
Para enviar o pedido de rascunho para revisão, use o comando
gcloud beta compute future-reservations update
com a flag--planning-status
definida comoSUBMITTED
:gcloud beta compute future-reservations update FUTURE_RESERVATION_NAME \ --planning-status=SUBMITTED \ --zone=ZONE
REST
Para enviar o pedido de rascunho para revisão, faça um pedido ao método beta
futureReservations.update
.PATCH
No URL do pedido, inclua o parâmetro de consultaupdateMask
e defina-o comoplanningStatus
:PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations/FUTURE_RESERVATION_NAME?updateMask=planningStatus { "name": "FUTURE_RESERVATION_NAME", "planningStatus": "SUBMITTED" }
Google Cloud aprova imediatamente o pedido enviado.
O Compute Engine cria uma reserva vazia com os recursos pedidos.
Para ver a reserva, consulte o artigo Veja a capacidade reservada na documentação do hipercomputador de IA.
POLICY_NAME
: o nome da política de posicionamento compactaMAX_DISTANCE
: a configuração de distância máxima para as suas instâncias de VM. Especifique3
para colocar as VMs em blocos adjacentes e2
para colocar as VMs no mesmo bloco. O posicionamento da VM é feito com base no melhor esforço.REGION
: a região onde quer criar a política de posicionamento. Especifique uma região na qual o tipo de máquina que quer usar está disponível. Para informações sobre as regiões disponíveis, consulte o artigo Regiões e zonas disponíveis.PROJECT_ID
: o ID do seu projetoREGION
: a região onde quer criar a política de posicionamento. Especifique uma região na qual o tipo de máquina que quer usar está disponível. Para informações sobre as regiões disponíveis, consulte o artigo Regiões e zonas disponíveis.POLICY_NAME
: o nome da política de posicionamento compactaMAX_DISTANCE
: a configuração de distância máxima para as suas instâncias de VM. Especifique3
para colocar as VMs em blocos adjacentes e especifique2
para colocar as VMs no mesmo bloco. O posicionamento da VM é feito com base no melhor esforço.- Tipo de NIC
GVNIC
: usa o controladorgve
para TCP/IP e tráfego de Internet para a comunicação normal entre VMs e entre VMs e a Internet - Tipo de NIC
IRDMA
: usa controladores IDPF/iRDMA para comunicação de rede RDMA entre instâncias - Cada interface de rede tem de se ligar a uma rede de nuvem privada virtual diferente.
- Para configurar uma interface de rede IRDMA, primeiro tem de criar uma rede VPC com o perfil de rede Falcon RDMA na mesma região e zona que a instância.
- Para a interface de rede GVNIC, se não especificar uma rede ou uma sub-rede, o Compute Engine usa a rede VPC predefinida e a sub-rede automática que se encontra na mesma região que a instância.
- Se especificar uma sub-rede, mas não especificar uma rede, o Compute Engine infere a rede a partir da sub-rede especificada.
- Se especificar uma rede, tem de especificar uma sub-rede e esta tem de pertencer à mesma rede. Caso contrário, a criação da instância falha.
Para criar as redes anfitriãs para as interfaces de rede
GVNIC
, consulte o artigo Crie e faça a gestão de redes VPC.Se estiver a configurar apenas uma interface de rede
GVNIC
, pode usar a rede VPC predefinida e a sub-rede automática que se encontra na mesma região que a instância.Para criar uma rede para a interface de rede
IRDMA
, consulte o artigo Crie uma rede VPC com um perfil de rede RDMA. Use o valor predefinido para a unidade de transmissão máxima (MTU) para uma rede RDMA, que é8896
.Opcional: antes de executar o script, liste os perfis de rede da VPC do Falcon para verificar se existe um disponível. Os perfis de rede VPC do Falcon não estão disponíveis em todas as zonas.
gcloud beta compute network-profiles list --filter=falcon
Copie o seguinte código e execute-o numa janela de shell do Linux.
GVNIC_NAME_PREFIX
: o prefixo do nome a usar para a rede e a sub-rede da VPC padrão que usam um tipo de NIC GVNIC.REGION
: a região onde quer criar as redes. Isto tem de corresponder à zona especificada para a flag--network-profile
quando cria a VPC do Falcon. Por exemplo, se especificar a zona comoeurope-west4-b
, a sua região éeurope-west4
.IP_RANGE
: o intervalo de endereços IP fora da rede de VPC a usar para as regras de firewall SSH. Como prática recomendada, especifique os intervalos de endereços IP específicos a partir dos quais precisa de permitir o acesso, em vez de todas as origens IPv4 ou IPv6. Não use0.0.0.0/0
ou::/0
como um intervalo de origem, porque isto permite o tráfego de todas as origens IPv4 ou IPv6, incluindo origens fora deGoogle Cloud.RDMA_NAME_PREFIX
: o prefixo do nome a usar para a rede VPC e a sub-rede que usa o tipo de NIC IRDMA.ZONE
: a zona onde quer criar as redes e as instâncias de computação. Useus-central1-a
oueurope-west4-b
.- Não pode usar a migração em direto durante eventos de manutenção do anfitrião com instâncias que tenham uma interface de rede RDMA na nuvem. Tem de configurar a instância para terminar durante os eventos de manutenção.
- Só pode usar endereços IPv4 com interfaces de rede RDMA e redes VPC com um perfil de rede Falcon RDMA.
- Só pode usar a série de máquinas H4D para criar instâncias otimizadas para HPC com o RDMA na nuvem.
NAME_PATTERN
: o padrão de nome para as instâncias. Por exemplo, usarvm-#
para o padrão de nome gera instâncias com nomes comovm-1
evm-2
, até ao número especificado pela flag--count
.COUNT
: o número de instâncias a criar.MACHINE_TYPE
: o tipo de máquina a usar para as instâncias. Use um dos tipos de máquinas H4D, por exemplo,h4d-highmem-192-lssd
.IMAGE_FAMILY
: a família de imagens da imagem do SO que quer usar, por exemplo,rocky-linux-9-optimized-gcp
. Para ver uma lista de imagens de SO suportadas, consulte o artigo Sistema operativo suportado. Escolha uma versão de imagem do SO que suporte a interface IRDMA.IMAGE_PROJECT
: o ID do projeto da imagem do SO, por exemplo,rocky-linux-cloud
.RESERVATION
: para este valor, pode especificar uma das seguintes opções:- Se estiver a usar uma política de posicionamento ou se for possível posicionar as VMs em qualquer lugar no bloco de reserva, especifique o nome da reserva, por exemplo,
h4d-highmem-exfr-prod
. - Se quiser que as instâncias sejam colocadas num bloco específico e não estiver a usar uma política de posicionamento compacta, especifique um nome de bloco de reserva usando o formato
RESERVATION_NAME/reservationBlocks/
RESERVATION_BLOCK_NAME, for example,
h4d-highmem-exfr-prod/reservationBlocks/h4d-highmem-exfr-prod-block-1`.
Para ver o nome da reserva ou os blocos de reserva disponíveis, consulte Ver capacidade.
- Se estiver a usar uma política de posicionamento ou se for possível posicionar as VMs em qualquer lugar no bloco de reserva, especifique o nome da reserva, por exemplo,
REGION
: especifique uma região na qual o tipo de máquina que quer usar está disponível, por exemplo,europe-west1
. Para informações sobre as regiões disponíveis, consulte o artigo Regiões e zonas disponíveis.DISK_SIZE
: opcional: o tamanho do disco de arranque em GiB. O valor tem de ser um número inteiro.GVNIC_NAME_PREFIX
: o prefixo do nome que usou quando criou a rede VPC e a sub-rede para a interface GVNIC.Para a interface de rede GVNIC, pode omitir as flags
network
esubnet
para usar a rededefault
.STACK_TYPE
: Opcional: o tipo de pilha para a interface de rede GVNIC.STACK_TYPE
tem de ser um dos seguintes:IPV4_ONLY
ouIPV4_IPV6
. O valor predefinido éIPV4_ONLY
.EXTERNAL_IPV4_ADDRESS
: Opcional: um endereço IPv4 externo estático a usar com a interface de rede. Tem de ter reservado um endereço IPv4 externo anteriormente. Efetue um dos seguintes passos:- Especifique um endereço IPv4 válido da sub-rede.
- Use a flag
no-address
se não quiser que a interface de rede tenha um endereço IP externo. - Especifique
address=''
se quiser que a interface receba um endereço IP externo efémero.
Para especificar um endereço IPv6 externo, use a flag
--external-ipv6-address
em alternativa.RDMA_NAME_PREFIX
: o prefixo do nome que usou quando criou a rede VPC e a sub-rede para a interface IRDMA.- Inclua o objeto
networkInterfaces
com, pelo menos, duas configurações de rede, uma para a interface de rede gVNIC e outra para a interface de rede RDMA. - Se optou por usar uma política de posicionamento compacta, também deve adicionar o objeto
resourcePolicies
ao corpo do pedido. - Para usar os blocos de capacidade reservados quando criar as instâncias,
defina
provisioningModel
comoRESERVATION_BOUND
. - Pode personalizar as restantes propriedades da instância, conforme necessário.
Substitua o seguinte no corpo do pedido:
PROJECT_ID
: o ID do projeto onde quer criar as instâncias.ZONE
: especifique uma zona na qual o tipo de máquina que quer usar está disponível. Se estiver a usar uma política de posicionamento compacto, use uma zona na mesma região que a política de posicionamento compacto. Para obter informações sobre as regiões onde os tipos de máquinas H4D estão disponíveis, consulte o artigo Regiões e zonas disponíveis.NAME_PATTERN
: o padrão de nome para as instâncias. Por exemplo, usarvm-#
para o padrão de nome gera instâncias com nomes comovm-1
evm-2
, até ao número especificado pelo campocount
.COUNT
: o número de instâncias a criar.MACHINE_TYPE
: o tipo de máquina a usar para as instâncias. Use um dos tipos de máquinas H4D, por exemplo,h4d-highmem-192-lssd
.DISK_SIZE
: o tamanho do disco de arranque em GiB.IMAGE_PROJECT
: o ID do projeto da imagem do SO, por exemplo,debian-cloud
.IMAGE_FAMILY
: a família de imagens da imagem do SO que quer usar, por exemplo,rocky-linux-9-optimized-gcp
. Para ver uma lista de imagens de SO suportadas, consulte o artigo Sistema operativo suportado. Escolha uma versão de imagem do SO que suporte a interface IRDMA.GVNIC_NAME_PREFIX
: o prefixo do nome que usou quando criou a rede VPC e a sub-rede para a interface GVNICPara a interface de rede GVNIC, pode omitir os campos
network
esubnetwork
para usar a rededefault
.EXTERNAL_IPV4_ADDRESS
: Opcional: um endereço IPv4 externo estático a usar com a interface de rede. Tem de ter reservado um endereço IPv4 externo anteriormente.RDMA_NAME_PREFIX
: o prefixo do nome que usou quando criou a rede VPC e a sub-rede para a interface IRDMA.RESERVATION
: para este valor, pode especificar uma das seguintes opções:- Se estiver a usar uma política de posicionamento ou se for possível posicionar as VMs em qualquer lugar no bloco de reserva, especifique o nome da reserva, por exemplo,
h4d-highmem-exfr-prod
. - Se quiser que as instâncias sejam colocadas num bloco específico e não estiver a usar uma política de posicionamento compacta, especifique um nome de bloco de reserva como
RESERVATION_NAME/reservationBlocks/
RESERVATION_BLOCK_NAME, for example,
h4d-highmem-exfr-prod/reservationBlocks/h4d-highmem-exfr-prod-block-1`.
Para ver o nome da reserva ou os blocos de reserva disponíveis, consulte Ver capacidade.
- Se estiver a usar uma política de posicionamento ou se for possível posicionar as VMs em qualquer lugar no bloco de reserva, especifique o nome da reserva, por exemplo,
Opcional: se estiver a usar uma política de posicionamento compacta, substitua
...
no corpo do pedido pelo seguinte campo:"resourcePolicies": [ "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME" ],
Substitua o seguinte:
PROJECT_ID
: o ID do projeto da política de posicionamento compacto.REGION
: a região da política de posicionamento compacto.POLICY_NAME
: o nome da política de posicionamento compacta.
Envie o pedido.
Na Google Cloud consola, aceda à página Instâncias de VM.
Selecione as linhas que contêm as instâncias de VM que criou neste tutorial.
Clique em
Eliminar e, de seguida, clique em Eliminar para confirmar.Para eliminar a política de posicionamento, use o comando
gcloud compute resource-policies delete
.gcloud compute resource-policies delete POLICY_NAME \ --region=REGION
Substitua o seguinte:
POLICY_NAME
: o nome da política de posicionamentoREGION
: a região onde se encontra a política de posicionamento
Reserve blocos de capacidade para a sua implementação
Este documento explica como reservar blocos de capacidade pedindo à sua equipa da conta que crie um pedido de reserva futuro para si. Use este tipo de reserva para obter capacidade para uma implementação densa de instâncias de VM. Para uma vista geral de todas as opções de consumo, consulte:
Esta ação permite-lhe reservar blocos de capacidade durante uma duração definida, a partir de uma data e hora específicas à sua escolha. Com base no seu pedido, a Google cria um pedido de reserva futuro de rascunho. Depois de rever e enviar este pedido de rascunho, e de o Google Cloud aprovar, o Compute Engine cria automaticamente (cria automaticamente) uma reserva vazia. Em seguida, na hora de início escolhida, o Compute Engine aprovisiona a capacidade pedida na reserva criada automaticamente. Em seguida, pode usar a reserva para criar instâncias de máquinas virtuais (VM) até o período de reserva terminar.
Como parte do processo de solicitação de reserva futura, a Google gere a quota dos seus recursos reservados. Não precisa de pedir quota. Na hora de início da sua reserva futura aprovada, a Google aumenta a sua quota se não tiver quota suficiente para os recursos reservados.
Para reservar blocos de capacidade, conclua os seguintes passos:
Opcional: crie uma política de posicionamento
Use uma política de posicionamento se quiser que as suas VMs sejam posicionadas o mais perto possível umas das outras. No entanto, se quiser que as VMs estejam num bloco específico, ignore este passo e indique o nome do bloco necessário durante a criação em massa de VMs.
As instâncias que comunicam através do RDMA na nuvem têm de estar localizadas numa única zona e, mais rigorosamente, numa única estrutura de cluster. Pode criar uma política de posicionamento compacta e especificar um valor de distância máxima para definir a compacidade mínima numa zona. Existe um limite para o número de instâncias às quais pode atribuir a política de posicionamento compacto quando especifica um valor de distância máximo, e o limite varia consoante o valor que escolher.
Para criar uma política de posicionamento compacta, selecione uma das seguintes opções:
gcloud
Para criar uma política de posicionamento compacta, use o comando 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
Substitua o seguinte:
REST
Para criar uma política de posicionamento compacta, faça um pedido POST
ao método beta.resourcePolicies.insert
.
No corpo do pedido, inclua o campo collocation
definido como COLLOCATED
e o campo maxDistance
.
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/resourcePolicies
{
"name": "POLICY_NAME",
"groupPlacementPolicy": {
"collocation": "COLLOCATED",
"maxDistance": "MAX_DISTANCE"
}
}
Substitua o seguinte:
Crie redes de nuvem privada virtual
As instâncias com RDMA requerem, no mínimo, duas interfaces de rede (NICs):
As instâncias que usam o RDMA na nuvem só podem ter uma interface IRDMA
. Pode adicionar até oito interfaces de rede GVNIC
adicionais para um total de 10 NICs por instância.
Reveja as seguintes regras para configurar uma interface de rede para uma instância:
Para configurar as redes da nuvem virtual privada (VPC) do Falcon para usar com as suas instâncias, pode seguir as instruções documentadas ou usar o script fornecido.
Guias de instruções
Para criar as redes, pode usar as seguintes instruções:
Script
Pode criar até nove interfaces de rede GVNIC
e uma interface de rede IRDMA
por instância. Cada interface de rede tem de estar associada a uma rede
separada. Para criar as redes, pode usar o seguinte script, que cria duas redes para GVNIC
e uma rede para IRDMA
que usa o perfil de rede VPC Falcon.
#!/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
Substitua o seguinte:
Crie instâncias com RDMA em massa
Reveja as seguintes limitações antes de criar instâncias H4D com o RDMA na nuvem:
Os passos seguintes mostram como criar instâncias com RDMA em massa com as duas primeiras interfaces de rede configuradas como interfaces GVNIC e a terceira interface de rede configurada como uma interface de rede IRDMA:
gcloud
Use o comando gcloud compute instances create
com três flags --network-interface
, duas para interfaces GVNIC e uma para a interface IRDMA. Se optou por usar uma política de posicionamento compacta, adicione também a seguinte flag: --resource-policies=POLICY_NAME
.
Substitua POLICY_NAME
pelo nome da política de posicionamento
compacto. Pode personalizar as restantes opções da instância, conforme
necessário.
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
Substitua o seguinte:
REST
Para criar instâncias com RDMA em massa, faça um pedido ao método beta instances.bulkInsert
com as seguintes definições:POST
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
}
},
...
}
}
Conclua os seguintes passos:
Limpar
Para evitar incorrer em custos na sua conta do Google Cloud pelos recursos usados neste tutorial, elimine o projeto que contém os recursos ou mantenha o projeto e elimine os recursos individuais.
Elimine o projeto
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID