Sobre a flexibilidade de instâncias para VMs criadas em massa

Este documento descreve a flexibilidade de instâncias ao criar VMs em massa usando o Compute Engine.

Ao criar máquinas virtuais (VMs) em massa em uma região, se o aplicativo não estiver restrito a um único tipo de máquina, é possível aumentar a taxa de sucesso do provisionamento do número necessário de VMs configurando a flexibilidade de instâncias. Com a flexibilidade de instâncias, é possível especificar um ou mais tipos de máquinas adequados para sua carga de trabalho. Em seguida, o Compute Engine provisiona VMs usando qualquer um desses tipos de máquina, com base na capacidade e na disponibilidade de cota.

Usar a flexibilidade da instância

Para configurar a flexibilidade da instância, liste os tipos de máquina adequados definindo uma ou mais seleções de instância na solicitação de inserção em massa regional. Por exemplo, em uma solicitação REST, você inclui o objeto instanceFlexibilityPolicy, em que define um ou mais objetos instanceSelections, cada um contendo uma lista de tipos de máquina.

Quando o Compute Engine recebe a solicitação, ele primeiro valida os tipos de máquinas e a compatibilidade deles com as zonas, excluindo entradas inválidas. Se houver pelo menos uma configuração válida, a operação vai continuar.

Em seguida, o Compute Engine tenta provisionar VMs com base no hardware, na cota e nas reservas disponíveis. Se você configurar classificações para as seleções de instâncias, as seleções com uma classificação mais baixa serão priorizadas. Em cada classificação, o Compute Engine considera as reservas não utilizadas e as orientações VM spot para selecionar tipos de máquinas com menor probabilidade de preempção.

Seleção de zona quando uma forma de distribuição de destino é definida

Ao usar a flexibilidade de instâncias com uma solicitação regional bulkInsert, é possível especificar um formato de distribuição de destino para controlar como as VMs são distribuídas entre as zonas da região. O Compute Engine seleciona zonas para provisionar VMs com base neste formato, da seguinte maneira:

  • ANY_SINGLE_ZONE: o Compute Engine seleciona uma única zona com a maior capacidade para tipos de máquina com uma preferência maior.
  • BALANCED: o Compute Engine distribui as VMs da maneira mais uniforme possível em zonas com recursos disponíveis. Em cada zona, o Compute Engine prioriza os tipos de máquinas com uma preferência maior.
  • ANY: o Compute Engine seleciona zonas com recursos disponíveis. Se os níveis forem configurados, o Compute Engine vai priorizar as zonas para provisionar VMs com tipos de máquina de preferência mais alta.

Para mais informações, consulte Criar VMs em massa em uma região.

Provisionamento mínimo de VM e flexibilidade de instância

Se você definir um valor para o número mínimo necessário de VMs (minCount) na solicitação bulkInsert, a API tentará criar pelo menos essa quantidade de VMs. Se o Compute Engine não puder provisionar o número mínimo necessário de VMs (minCount), toda a operação vai falhar, e o Compute Engine não vai criar nenhuma VM. Quando você usa minCount com flexibilidade de instância, o Compute Engine prioriza o provisionamento de VMs com base na capacidade de obtenção em vez de classificação, da seguinte maneira:

  • O Compute Engine prioriza o provisionamento do número máximo de VMs até count, mesmo que isso signifique usar máquinas de preferência menor. Por exemplo, se sua solicitação especificar um mínimo de uma VM obrigatória (minCount=1) e um máximo de 10 VMs (count=10), e se o Compute Engine tiver capacidade para provisionar uma VM de preferência mais alta ou seis VMs de preferência mais baixa, o Compute Engine vai provisionar as seis VMs de preferência mais baixa.
  • Se o Compute Engine puder provisionar o mesmo número máximo de VMs até count usando diferentes seleções de instâncias, ele vai priorizar a seleção com maior preferência. Por exemplo, se a solicitação especificar um mínimo de uma VM obrigatória (minCount=1) e um máximo de 10 VMs (count=10), e se o Compute Engine puder provisionar seis VMs usando uma seleção de instância de preferência maior ou menor, o Compute Engine vai provisionar as seis VMs da seleção de preferência maior.

Para mais informações, consulte a propriedade minCount em bulkInsert.

Validação de inserção em massa e cenários de erro

O Compute Engine realiza uma validação inicial dos tipos de máquinas e da compatibilidade deles com as zonas, excluindo entradas inválidas. Se pelo menos uma configuração válida permanecer após essa verificação inicial, o Compute Engine vai criar a VM.

No entanto, algumas validações da sua configuração só podem ocorrer depois que o Compute Engine seleciona as zonas e os tipos de máquinas a serem usados para o provisionamento, com base na política de flexibilidade da instância e na capacidade disponível. Se, durante essa etapa de validação posterior, a combinação específica de tipo de máquina e zona escolhida para provisionamento for considerada inválida, toda a solicitação de inserção em massa vai falhar com erros de validação. Essa falha pode acontecer mesmo que outras configurações no instanceFlexibilityPolicy tenham sido válidas inicialmente.

Limitações

As limitações a seguir se aplicam quando você usa a flexibilidade de instância para a criação em massa de VMs:

  • É possível especificar a flexibilidade de instância apenas para solicitações regionais de bulkInsert. Não é possível usar com solicitações zonais.
  • A flexibilidade de instâncias não oferece suporte aos recursos do Hipercomputador de IA, incluindo reservas futuras, o modelo de provisionamento de início flexível e GPUs A3 Ultra, A4 e mais recentes.
  • Não é possível especificar tipos de máquina personalizados com flexibilidade de instância.
  • É possível especificar no máximo 10 tipos de máquinas diferentes em até 10 seleções de instâncias diferentes.

A seguir