Partilhar via


Fix an AllocationFailed or ZonalAllocationFailed error when you create, restart, or resize Virtual Machine Scale Sets in Azure

Aviso

Se o Conjunto de Dimensionamento de Máquinas Virtuais do Microsoft Azure fizer parte de um cluster do Azure Service Fabric, não siga estas diretrizes de solução de problemas. Essas diretrizes podem causar perda de dados e danos irreversíveis ao cluster nesse cenário. Para obter mais informações, consulte Posso usar grandes conjuntos de dimensionamento de máquinas virtuais no meu cluster do Service Fabric?

Neste artigo, obtenha informações sobre:

  • Erros AllocationFailed ou ZonalAllocationFailed em Conjuntos de Dimensionamento de Máquinas Virtuais do Microsoft Azure.
  • Como evitar falhas de alocação.
  • As causas das falhas de alocação.
  • Como solucionar problemas de falhas de alocação quando elas surgirem.

Para solucionar problemas de falhas de alocação para VMs (máquinas virtuais) padrão, consulte Solucionar problemas de falhas de alocação ao criar, reiniciar ou redimensionar VMs no Azure.

Sintoma

Devido à alta demanda por serviços do Azure, uma falha de alocação pode ocorrer se você tentar criar ou iniciar instâncias de VM em determinadas regiões. O Azure tenta alocar recursos de computação para sua assinatura sempre que você:

  • Crie um conjunto de dimensionamento de máquinas virtuais.
  • Reinicie uma instância de VM do conjunto de dimensionamento interrompida (desalocada).
  • Redimensionar um conjunto de dimensionamento.

Os detalhes de erro a seguir são um exemplo da mensagem de falha de alocação.

Código de erro: AllocationFailed ou ZonalAllocationFailed

Mensagem de erro 1: Falha na alocação. Não temos capacidade suficiente para o tamanho de VM solicitado nesta região. Leia mais sobre como melhorar a probabilidade de sucesso da alocação em https://aka.ms/allocation-guidance.

Mensagem de erro 2: Falha na alocação. VM(s) com as seguintes restrições não podem ser alocadas porque a condição é muito restritiva. Remova algumas restrições e tente novamente. As restrições aplicadas são:

  • Zona de disponibilidade
  • Tamanho da VM

Mensagem de erro 3: Falha na alocação. Se você estiver tentando adicionar uma nova VM a um conjunto de dimensionamento de máquinas virtuais com um único grupo de posicionamento ou atualizar/redimensionar uma VM existente em um conjunto de dimensionamento de máquinas virtuais com um único grupo de posicionamento, observe que essa alocação tem como escopo um único cluster, e é possível que o cluster esteja sem capacidade. Leia mais sobre como melhorar a probabilidade de sucesso da alocação em https://aka.ms/allocation-guidance.

Como evitar falhas de alocação

Para evitar falhas de alocação, você pode aplicar algumas definições de configuração ao conjunto de dimensionamento para otimizar as solicitações de alocação.

  • Provisionamento excessivo. Com o superprovisionamento ativado, o conjunto de dimensionamento realmente gera mais instâncias de VM do que você solicitou. Em seguida, ele exclui as instâncias de VM extras assim que o número solicitado de instâncias de VM for provisionado com êxito. Essa prática melhora as taxas de sucesso do provisionamento e reduz o tempo de implantação. Você não é cobrado pelas instâncias extras de VM e elas não contam para seus limites de cota. Para habilitar o superprovisionamento:

    1. No portal do Azure, pesquise e selecione Conjuntos de dimensionamento de máquinas virtuais.

    2. Selecione o nome do seu conjunto de dimensionamento.

    3. No painel de menus, selecione Configuração.

    4. No título Superprovisionamento, defina Habilitar superprovisionamento como Ativado.

    5. Selecione Salvar.

    Saiba mais sobre o superprovisionamento.

  • Habilite conjuntos de grande escala. Grandes Conjuntos de Dimensionamento de Máquinas Virtuais são definidos como conjuntos de dimensionamento que podem ser dimensionados para mais de 100 instâncias de VM. Essa funcionalidade é definida por uma propriedade de conjunto de dimensionamento (singlePlacementGroup=false). O que torna um conjunto de dimensionamento grande especial não é o número de instâncias de VM, mas o número de grupos de posicionamento que ele contém. Um grupo de posicionamento é semelhante a um conjunto de disponibilidade do Azure, com seus próprios domínios de falha e domínios de atualização. Com singlePlacementGroup set to false, você tem uma chance maior de sucesso na alocação, pois as implantações podem ser distribuídas em vários clusters quando implantadas como um grupo de vários posicionamentos. Saiba mais sobre como trabalhar com grandes conjuntos de dimensionamento de máquinas virtuais, especificamente como converter um conjunto de dimensionamento existente para abranger vários grupos de posicionamento.

    Observação

    Você pode alterar um conjunto de dimensionamento de suporte a um único grupo de posicionamento para suporte a vários grupos de posicionamento, mas não pode executar uma conversão na outra direção. Uma vez singlePlacementGroup definido como false, você não pode alterá-lo novamente.

Reduza o número de instâncias do tamanho de VM solicitado e repita a operação de implantação. Para implantações maiores, talvez você queira avaliar os Conjuntos de Dimensionamento de Máquinas Virtuais do Azure com vários grupos de posicionamento. O número de instâncias de VM pode aumentar ou diminuir automaticamente em resposta à demanda ou a um agendamento definido.

Outras dicas

Até que seu tipo de VM preferencial esteja disponível em sua região preferencial, os clientes que tiverem problemas de implantação devem considerar as diretrizes nas seções a seguir como uma solução temporária.

Identifique o cenário que melhor corresponde ao seu caso. Para aumentar a probabilidade de sucesso da alocação, repita a solicitação de alocação usando a solução sugerida correspondente. Ou você sempre pode tentar novamente mais tarde. Recursos suficientes podem ter sido liberados no cluster, região ou zona para acomodar sua solicitação em outro momento.

Motivo

A região ou zona não tem capacidade de núcleo suficiente para o SKU solicitado.

Causa 1: redimensionado um conjunto de dimensionamento ou adicionou instâncias de VM a um conjunto de dimensionamento existente

Se houver uma solicitação para redimensionar um conjunto de dimensionamento ou adicionar uma instância de VM a um conjunto de dimensionamento existente, ela deverá ser tentada no cluster original que hospeda o conjunto de dimensionamento existente. Ou o cluster dá suporte ao tamanho da VM solicitado, mas pode não ter capacidade suficiente no momento.

Solução para a causa 1

Tente uma das seguintes ações:

  • Tente mover o conjunto de dimensionamento para um cluster diferente na mesma região com capacidade adequada.

    Pare (desaloque) todas as instâncias de VM no conjunto de dimensionamento e redimensione o conjunto de dimensionamento conforme necessário. Após a conclusão do redimensionamento, reinicie as instâncias de VM. Para interromper as instâncias de VM:

    1. No portal do Azure, pesquise e selecione Conjuntos de dimensionamento de máquinas virtuais.

    2. Selecione o nome do seu conjunto de dimensionamento.

    3. Selecione Interromper.

    Depois de interromper todas as instâncias de VM para executar o redimensionamento e, em seguida, iniciar o conjunto de dimensionamento, a nova tentativa de alocação pode identificar um cluster com capacidade suficiente para hospedar todo o conjunto de dimensionamento.

  • Configure seu conjunto de dimensionamento para dimensionar em mais de um grupo de posicionamento.

    Consulte Criando um conjunto de grande escala.

Causa 2: reiniciou uma VM parcialmente interrompida (desalocada)

A desalocação parcial significa que você interrompeu (desalocou) uma ou mais, mas não todas, instâncias de VM em um conjunto de dimensionamento. Quando você desaloca uma instância de VM, os recursos associados são liberados. Reiniciar instâncias de VM em um conjunto de disponibilidade parcialmente desalocado é o mesmo que adicionar instâncias de VM a um conjunto de disponibilidade existente. Portanto, você deve tentar a solicitação de alocação no cluster original que hospeda o conjunto de disponibilidade existente, que pode ter capacidade insuficiente.

Solução para a Causa 2

Pare (desaloque) todas as instâncias de VM no conjunto de dimensionamento e reinicie cada instância de VM. Para interromper as instâncias de VM:

  1. No portal do Azure, pesquise e selecione Conjuntos de dimensionamento de máquinas virtuais.

  2. Selecione o nome do seu conjunto de dimensionamento.

  3. No painel de menus, selecione Instâncias.

  4. Selecione todas as instâncias de máquina virtual listadas.

  5. Selecione Interromper.

Depois que todas as VMs pararem, selecione a primeira instância de VM e, em seguida, selecione Iniciar. O Azure faz uma nova tentativa de alocação e seleciona um novo cluster que tenha capacidade suficiente.

Causa 3: instâncias de VM reiniciadas que foram totalmente interrompidas

A desalocação total significa que você interrompeu (desalocou) todas as instâncias de VM em um conjunto de disponibilidade. A solicitação de alocação para reiniciar essas instâncias de VM terá como destino todos os clusters que dão suporte ao tamanho necessário na região ou zona.

Solução para a Causa 3

Altere sua solicitação de alocação usando as sugestões deste artigo. Em seguida, repita a solicitação para melhorar a chance de sucesso da alocação.

Se você usar séries ou tamanhos de VM mais antigos (como Dv1, DSv1, Av1, D15v2 ou DS15v2), considere mudar para versões mais recentes. Consulte essas recomendações para tamanhos específicos de VM. Você não tem permissão para usar um tamanho de VM diferente? Em seguida, tente implantar em uma região diferente dentro da mesma geografia. Para obter mais informações sobre tamanhos de VM disponíveis em cada região em https://aka.ms/azureregions.

Se você usar zonas de disponibilidade, tente outra zona dentro da região que possa ter capacidade disponível para o tamanho da VM solicitado.

Se sua solicitação de alocação for grande (mais de 500 núcleos), consulte as seções a seguir para dividir a solicitação em implantações menores.

Tente reimplantar a instância de VM, que aloca a instância de VM para um novo cluster dentro da região.

Falhas de alocação para tamanhos de VM mais antigos

Alguns tamanhos de VM de séries mais antigas não são executados em nossa infraestrutura de última geração. Ocasionalmente, os clientes podem enfrentar falhas de alocação para esses SKUs herdados. Incentivamos os clientes que estão usando máquinas virtuais de série herdadas a considerar a migração para as VMs mais recentes equivalentes. As VMs mais recentes são otimizadas para o hardware mais recente e permitem que você aproveite os melhores preços e desempenho.

Veja as seguintes recomendações:

Série ou tamanho da VM herdada Série ou tamanho de VM mais recente recomendado Link do blog
Série Av1 Série Av2 Novos tamanhos de VM da série A_v2
Série Dv1 ou DSv1 (D1 a D5) Série Dv3 ou DSv3 Apresentando os novos tamanhos de VM Dv3 e Ev3
Série Dv1 ou DSv1 (D11 a D14) Série Ev3 ou ESv3
D15v2 ou DS15v2

Se você usar o modelo de implantação do Resource Manager para aproveitar os tamanhos de VM maiores, considere mudar para D16v3/DS16v3 ou D32v3/DS32v3. Esses tamanhos são projetados para rodar em hardware de última geração.

Você usa o modelo de implantação do Resource Manager para garantir que sua instância de VM seja isolada no hardware dedicado a um único cliente? Em seguida, considere mudar para os novos tamanhos de VM isolados, E64i_v3 ou E64is_v3, que são projetados para serem executados no hardware de última geração.

Novos tamanhos de VM isolada agora disponíveis

Informações básicas

Como funciona a alocação

A plataforma do Azure tenta particionar servidores de datacenter em clusters. Normalmente, ele tenta uma solicitação de alocação em vários clusters. Mas certas restrições da solicitação de alocação podem forçar a plataforma do Azure a tentar a solicitação em apenas um cluster ("fixado em um cluster"). O diagrama 1 abaixo mostra uma alocação normal que é tentada em vários clusters (Cluster 1 a Cluster n). No Diagrama 2, uma alocação é fixada no Cluster 2, pois esse cluster hospeda o Serviço de Nuvem (CS_1) ou o conjunto de disponibilidade existente.

Diagrama 1: uma alocação de plataforma do Azure tentada em vários clusters. Diagrama 2: uma alocação de plataforma do Azure fixada em um cluster.

Motivos das falhas de alocação

Se uma solicitação de alocação for fixada em um cluster, haverá uma chance maior de não encontrar recursos gratuitos, pois o pool de recursos disponível é menor. E se sua solicitação de alocação estiver fixada em um cluster que não dá suporte ao tipo de recurso solicitado? Em seguida, sua solicitação falhará mesmo se o cluster tiver recursos gratuitos. O diagrama 3 abaixo mostra onde uma alocação fixada falha porque o único cluster candidato não tem recursos livres. O Diagrama 4 mostra onde uma alocação fixada falha, porque o único cluster candidato não dá suporte ao tamanho da VM solicitada, mesmo que o cluster tenha recursos livres.

Diagramas de falhas de alocação são clusters fixados. O diagrama 3 mostra que não há recursos gratuitos disponíveis. O diagrama 4 mostra que o tamanho não é compatível.

Entre em contato conosco para obter ajuda

Se você tiver dúvidas ou precisar de ajuda, crie uma solicitação de suporte ou peça ajuda à comunidade de suporte do Azure. Você também pode enviar comentários sobre o produto para a comunidade de comentários do Azure.