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

Este documento descreve a flexibilidade da instância 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, você poderá aumentar a taxa de sucesso do provisionamento do número necessário de VMs configurando a flexibilidade da instância. A flexibilidade da instância permite especificar um ou mais tipos de máquina 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 sua solicitação de inserção em massa regional. Por exemplo, em uma solicitação REST, inclua o objeto instanceFlexibilityPolicy, em que você 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áquina e a compatibilidade zonal, excluindo todas as entradas inválidas. Se pelo menos uma configuração válida existir, 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ância, ele vai priorizar as seleções com uma classificação mais baixa. Em cada classificação, o Compute Engine considera reservas não utilizadas e orientações de VM spot para selecionar tipos de máquina com menor probabilidade de preempção.

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

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

  • ANY_SINGLE_ZONE: o Compute Engine seleciona uma única zona que tem 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 entre as zonas com recursos disponíveis. Em cada zona, o Compute Engine prioriza tipos de máquina com uma preferência maior.
  • ANY: o Compute Engine seleciona zonas com recursos disponíveis. Se as classificações estiverem configuradas, o Compute Engine vai priorizar as zonas para provisionar VMs com tipos de máquina com uma preferência maior.

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

Provisionamento mínimo de VMs e flexibilidade da instância

Se você definir um valor para o número mínimo necessário de VMs (minCount) na solicitação bulkInsert, a API vai tentar criar pelo menos esse número 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. Ao usar minCount com a flexibilidade da instância, o Compute Engine prioriza o provisionamento de VMs com base na capacidade de obtenção em vez da 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 mais baixa. Por exemplo, se a solicitação especificar um mínimo de uma VM necessá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 seleções de instâncias diferentes, ele vai priorizar a seleção com maior preferência. Por exemplo, se a solicitação especificar um mínimo de uma VM necessá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 mais alta ou mais baixa, o Compute Engine vai provisionar as seis VMs da seleção de preferência mais alta.

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áquina e da compatibilidade zonal, excluindo todas as entradas inválidas da consideração. Se pelo menos uma configuração válida permanecer após essa verificação inicial, o Compute Engine vai continuar com a criação da VM.

No entanto, algumas validações da configuração só podem ocorrer depois que o Compute Engine seleciona as zonas e os tipos de máquina a serem usados para provisionamento, com base na política de flexibilidade da instância e na capacidade disponível. Se, durante essa fase 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 ocorrer mesmo que outras configurações na instanceFlexibilityPolicy fossem inicialmente válidas.

Limitações

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

  • É possível especificar a flexibilidade da instância apenas para solicitações bulkInsert regionais. Não é possível usá-la com solicitações zonais.
  • A flexibilidade da instância não oferece suporte a 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.
  • É possível especificar um máximo de 10 tipos de máquina diferentes em um máximo de 10 seleções de instâncias diferentes.

A seguir