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.
Se o seu problema do Azure não for resolvido neste artigo, visite os fóruns do Azure em Microsoft Q & A e Stack Overflow. Você pode postar seu problema nesses fóruns ou postar para @AzureSupport no Twitter. Você também pode enviar uma solicitação de suporte do Azure. Para enviar uma solicitação de suporte, na página de suporte do Azure, selecione Obter suporte.
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.
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.
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 do FabricInternalServerError |
ServiceAllocationFailure | 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 |
LocationNotFoundForRoleSize | A operação '' falhou: 'A camada de{Operation ID} VM solicitada não está disponível atualmente na Região ({Region ID} ) para esta assinatura. Tente outra camada ou implante em um local diferente.' |
Solucionar problemas LocationNotFoundForRoleSize |
ConstrainedAllocationFailed | A operação do Azure '{Operation ID} ' falhou com o código Compute.ConstrainedAllocationFailed. Detalhes: Falha na alocação; incapaz de satisfazer os constrangimentos solicitados. 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 |
OverconstrainedAllocationRequest | 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 de rede virtual, implantar em um serviço hospedado sem outra implantação e em um grupo de afinidade diferente ou sem grupo de afinidade, ou tente implantar em 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 Compute.ConstrainedAllocationFailed. Detalhes: Falha na alocação; incapaz de satisfazer os constrangimentos solicitados. 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 preparo - Se um serviço de nuvem tiver uma implantação em qualquer slot, todo o serviço de nuvem será fixado 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 cloud existente tem de realizar a alocação no mesmo cluster. Regra geral, é 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 usar 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 nesse tipo de rede virtual ocorrem no cluster fixo. Se o cluster estiver próximo da capacidade, o pedido pode falhar.
Soluções
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
- Atualizar o registro CNAME ou A para apontar o tráfego para o novo serviço de nuvem
- Uma vez que o tráfego zero está indo para o site antigo, você pode excluir o serviço de nuvem antigo. Esta solução não terá período de inatividade.
Excluir slots de produção e de preparo - Esta solução preserva o nome DNS (Sistema de Nomes de Domínio) existente, mas causa tempo de inatividade para seu aplicativo.
- 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 da região. Verifique se o serviço de nuvem não está vinculado a um grupo de afinidade.
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, certificando-se de especificar o novo ReservedIP no CSCFG do serviço.
Remover grupo de afinidade para novas implantações - Grupos de afinidade não são mais recomendados. Siga as etapas para #1 para implantar um novo serviço de nuvem. Verifique se o serviço de nuvem não está em um grupo de afinidade.
Converter em uma Rede Virtual Regional - Veja Como migrar de Grupos de Afinidade para uma Rede Virtual Regional (rede virtual).