Solução de problemas de falha de alocação ao implantar Serviços de Nuvem (clássicos) no Azure

Importante

Os Serviços na Nuvem (clássicos) foram preteridos para todos os clientes a partir de 1º de setembro de 2024. Todas as implantações em execução existentes serão interrompidas e encerradas pela Microsoft e os dados serão perdidos permanentemente a partir de outubro de 2024. Novas implantações devem usar o novo modelo de implantação baseado no Azure Resource Manager Serviços de Nuvem do Azure (suporte estendido).

Resumo

Quando implementa instâncias num Serviço Cloud ou adiciona novas instâncias de funções Web ou de trabalho, o Microsoft Azure aloca recursos de computação. Ocasionalmente, poderá receber erros quando realizar estas operações mesmo antes de atingir os limites de subscrição do Azure. Este artigo explica as causas de algumas das falhas comuns de alocação e sugere uma possível correção. As informações também podem ser úteis quando você planeja a implantação de seus serviços.

Antecedentes – Como funciona a atribuição

Os servidores nos datacenters do Azure são divididos em partições em clusters. Uma nova solicitação de alocação de serviço de nuvem é tentada em vários clusters. Quando a primeira instância é implantada em um serviço de nuvem (em preparação ou produção), esse serviço de nuvem é fixado em um cluster. Quaisquer outras implantações para o serviço de nuvem acontecem no mesmo cluster. Neste artigo, nos referimos a esse estado como "fixado a um cluster". O diagrama a seguir ilustra o caso de uma alocação normal, que é tentada em vários clusters. O segundo diagrama ilustra o caso de uma alocação fixada ao Cluster 2 porque é onde o CS_1 de Serviço de Nuvem existente está hospedado.

Diagrama de Alocação

Por que a falha de alocação acontece

Quando um pedido de alocação é afixado a um cluster, há mais probabilidade de não conseguir encontrar recursos livres, pois o conjunto de recursos disponível está limitado a um cluster. Além disso, se a sua solicitação de alocação estiver fixada a um cluster, mas o cluster não suportar o tipo de recurso solicitado, sua solicitação falhará mesmo se o cluster tiver recurso livre. O diagrama seguinte ilustra o caso em que uma alocação fixada falha porque o único cluster candidato não tem recursos livres. O diagrama 4 ilustra o caso em que uma alocação fixada falha porque o único cluster candidato não suporta o tamanho da máquina virtual (VM) solicitada, mesmo que o cluster tenha recursos livres.

Falha de Alocação Fixa

Solução de problemas de falha de alocação para serviços em nuvem

Mensagem de erro

No portal do Azure, navegue até o serviço de nuvem e, na barra lateral, selecione Logs de operação (clássico) para exibir os logs.

Veja estas outras soluções para as exceções:

Tipo de Exceção Mensagem de erro Solução
FabricInternalServerError A operação falhou com o código de erro 'InternalError' e errorMessage 'O servidor encontrou um erro interno. Por favor, tente novamente o pedido.' Solucionar problemas com o FabricInternalServerError
Falha na Alocação de Serviço A operação falhou com o código de erro 'InternalError' e errorMessage 'O servidor encontrou um erro interno. Por favor, tente novamente o pedido.' Solucionar problemas de ServiceAllocationFailure
LocalizaçãoNãoEncontradaParaTamanhoDeFunção A operação {Operation ID} falhou: A camada de {Operation ID} VM solicitada não está disponível atualmente na Região () para esta assinatura. Tente outra camada ou implante em um local diferente.' Solucionar problemas LocationNotFoundForRoleSize
Falha na Alocação Restrita A operação '{Operation ID}' do Azure falhou com o código Compute.ConstrainedAllocationFailed. Detalhes: Falha na alocação; incapaz de satisfazer os constrangimentos do pedido. A implantação de novo serviço solicitada está vinculada a um Grupo de Afinidade, ou tem como alvo uma Rede Virtual, ou há uma implantação existente sob esse serviço hospedado. Qualquer uma dessas condições restringe a nova implantação a recursos específicos do Azure. Tente novamente mais tarde ou tente reduzir o tamanho da VM ou o número de instâncias de função. Como alternativa, se possível, remova as restrições ou tente implantar em uma região diferente. Solucionar problemas de ConstrainedAllocationFailed
Pedido de Alocação Sobrerrestrito O tamanho da VM (ou a combinação de tamanhos de VM) exigido por essa implantação não pode ser provisionado devido a restrições de solicitação de implantação. Se possível, tente relaxar as restrições, como ligações a redes virtuais, deslocar para um serviço hospedado que não contenha outra implantação, ou para um grupo de afinidade diferente ou sem grupo de afinidade, ou tente deslocar para uma região diferente. Solucionar problemas de OverconstrainedAllocationRequest

Exemplo de mensagem de erro:

A operação do Azure '{operation id}' falhou com o código de erro Compute.ConstrainedAllocationFailed. Detalhes: Falha na alocação; incapaz de satisfazer os constrangimentos do pedido. A implementação do novo serviço solicitada está vinculada a um Grupo de Afinidade, tem como destino uma Rede Virtual ou há uma implementação existente neste serviço alojado. Qualquer uma dessas condições restringe a nova implantação a recursos específicos do Azure. Tente novamente mais tarde ou tente reduzir o tamanho da VM ou o número de instâncias de função. Alternativamente, se possível, remova as restrições acima mencionadas ou tente implantar em uma região diferente."

Problemas comuns

Aqui estão os cenários de alocação comuns que fazem com que uma solicitação de alocação seja fixada em um único cluster.

  • Implantando no slot de preparação - Se um serviço de cloud tiver uma implantação em qualquer um dos slots, todo o serviço de cloud será vinculado a um cluster específico. Isto significa que, se já existir uma implementação no bloco de produção, só será possível alocar uma implementação de teste nova no mesmo cluster que o bloco de produção. Se o cluster estiver próximo da capacidade, o pedido pode falhar.
  • Dimensionamento - A adição de novas instâncias a um serviço na cloud existente deve ser alocada no mesmo cluster. Normalmente, é possível alocar pequenos pedidos de dimensionamento, mas nem sempre. Se o cluster estiver próximo da capacidade, o pedido pode falhar.
  • Grupo de afinidade - A malha em qualquer cluster nessa região pode alocar uma nova implantação para um serviço de nuvem vazio, a menos que o serviço de nuvem esteja fixado a um grupo de afinidade. As implantações tentam utilizar o mesmo grupo de afinidade no mesmo cluster. Se o cluster estiver próximo da capacidade, o pedido pode falhar.
  • Rede virtual do Grupo de Afinidade - As Redes Virtuais mais antigas estavam vinculadas a grupos de afinidade em vez de regiões, e os serviços de nuvem nessas Redes Virtuais seriam fixados ao cluster do grupo de afinidade. Tentativas de implantação neste tipo de rede virtual ocorrem no cluster atribuído. Se o cluster estiver próximo da capacidade, o pedido pode falhar.

Soluções

  1. Reimplantar em um novo serviço de nuvem - Esta solução provavelmente será mais bem-sucedida, pois permite que a plataforma escolha entre todos os clusters nessa região.

    • Implantar a carga de trabalho em um novo serviço de nuvem
    • Atualize o registo CNAME ou A para apontar o tráfego para o novo serviço de nuvem
    • Assim que não houver tráfego indo para o site antigo, pode excluir o serviço de nuvem antigo. Esta solução não terá período de inatividade.
  2. Excluir slots de produção e de preparação - Esta solução preserva o nome DNS (Sistema de Nomes de Domínio) existente, mas causa tempo de inatividade na sua aplicação.

    • Exclua os slots de produção e preparo de um serviço de nuvem existente para que o serviço de nuvem fique vazio e, em seguida,
    • Crie uma nova implantação no serviço de nuvem existente. Esta solução tenta novamente a alocação em todos os clusters regionais. Verifique se o serviço de nuvem não está vinculado a um grupo de afinidade.
  3. IP reservado - Esta solução preserva o seu endereço IP existente, mas causa tempo de inatividade para a sua aplicação.

    • Criar um IP reservado para sua implantação existente usando o PowerShell

      New-AzureReservedIP -ReservedIPName {new reserved IP name} -Location {location} -ServiceName {existing service name}
      
    • Siga #2, assegurando-se de especificar o novo endereço IP reservado no CSCFG do serviço.

  4. Remover grupo de afinidade para novas implantações - Grupos de afinidade não são mais recomendados. Siga as etapas do #1 para implantar um novo serviço na nuvem. Verifique se o serviço de nuvem não está em um grupo de afinidade.

  5. Converter em uma Rede Virtual Regional - Veja Como migrar de Grupos de Afinidade para uma Rede Virtual Regional (rede virtual).