Risoluzione dei problemi relativi ad errori di allocazione quando si distribuiscono servizi Cloud in AzureTroubleshooting allocation failure when you deploy Cloud Services in Azure

RiepilogoSummary

Quando si distribuiscono istanze a un servizio Cloud o si aggiungono nuove istanze del ruolo di lavoro o web, Microsoft Azure alloca le risorse di calcolo.When you deploy instances to a Cloud Service or add new web or worker role instances, Microsoft Azure allocates compute resources. In alcuni casi possono verificarsi errori quando si eseguono queste operazioni anche prima di raggiungere i limiti della sottoscrizione di Azure.You may occasionally receive errors when performing these operations even before you reach the Azure subscription limits. Questo articolo illustra le cause di alcuni dei più comuni errori di allocazione e suggerisce una possibile correzione.This article explains the causes of some of the common allocation failures and suggests possible remediation. Queste informazioni potrebbero risultare utili anche quando si pianifica la distribuzione dei servizi.The information may also be useful when you plan the deployment of your services.

Se il problema riguardante Azure non è trattato in questo articolo, visitare i forum di Azure su MSDN e Stack Overflow.If your Azure issue is not addressed in this article, visit the Azure forums on MSDN and the Stack Overflow. È possibile pubblicare il problema in questi forum o in @AzureSupport su Twitter.You can post your issue in these forums, or post to @AzureSupport on Twitter. È anche possibile inviare una richiesta di supporto tecnico di Azure.You also can submit an Azure support request. Per inviare una richiesta di supporto tecnico, nella pagina Supporto tecnico di Azure selezionare Supporto.To submit a support request, on the Azure support page, select Get support.

Informazioni preliminari: come funziona l'allocazioneBackground – How allocation works

I server nei data center di Azure sono partizionati in cluster.The servers in Azure datacenters are partitioned into clusters. Una nuova richiesta di allocazione del servizio cloud viene eseguita in più cluster.A new cloud service allocation request is attempted in multiple clusters. Quando la prima istanza è distribuita in un servizio cloud (in gestione temporanea o produzione), il servizio cloud viene bloccato su un cluster.When the first instance is deployed to a cloud service(in either staging or production), that cloud service gets pinned to a cluster. Tutte le altre distribuzioni per il servizio cloud verranno eseguite nello stesso cluster.Any further deployments for the cloud service will happen in the same cluster. In questo articolo si farà riferimento a questa operazione con il termine "bloccata su un cluster".In this article, we'll refer to this as "pinned to a cluster". Il diagramma 1 seguente illustra un'allocazione normale eseguita in più cluster. Il diagramma 2 illustra un'allocazione bloccata sul Cluster 2, perché è quello che ospita il servizio cloud CS_1.Diagram 1 below illustrates the case of a normal allocation which is attempted in multiple clusters; Diagram 2 illustrates the case of an allocation that's pinned to Cluster 2 because that's where the existing Cloud Service CS_1 is hosted.

Diagramma di allocazione

Perché si verifica un errore di allocazioneWhy allocation failure happens

Quando una richiesta di allocazione è bloccata su un cluster, la probabilità di non riuscire a trovare risorse disponibili è più alta, perché il pool di risorse disponibili è limitato ad un cluster.When an allocation request is pinned to a cluster, there's a higher chance of failing to find free resources since the available resource pool is limited to a cluster. Inoltre, se la richiesta di allocazione è bloccata su un cluster, ma il tipo di risorsa richiesto non è supportato da quel cluster, la richiesta non riuscirà anche se nel cluster ci sono risorse disponibili.Furthermore, if your allocation request is pinned to a cluster but the type of resource you requested is not supported by that cluster, your request will fail even if the cluster has free resource. Il diagramma 3 seguente illustra un'allocazione bloccata non riuscita perché nel solo cluster candidato non ci sono risorse disponibili.Diagram 3 below illustrates the case where a pinned allocation fails because the only candidate cluster does not have free resources. Il diagramma 4 illustra un'allocazione bloccata non riuscita perché il solo cluster candidato non supporta le dimensioni della VM richieste, anche se nel cluster ci sono risorse disponibili.Diagram 4 illustrates the case where a pinned allocation fails because the only candidate cluster does not support the requested VM size, even though the cluster has free resources.

Errore di allocazione bloccata

Risoluzione di problemi di allocazione non riuscita per i servizi cloudTroubleshooting allocation failure for cloud services

Messaggio di erroreError Message

Se viene visualizzato il messaggio di errore seguente:You may see the following error message:

"Azure operation '{operation id}' failed with code Compute.ConstrainedAllocationFailed. Details: Allocation failed; unable to satisfy constraints in request. The requested new service deployment is bound to an Affinity Group, or it targets a Virtual Network, or there is an existing deployment under this hosted service. Any of these conditions constrains the new deployment to specific Azure resources. Please retry later or try reducing the VM size or number of role instances. Alternatively, if possible, remove the aforementioned constraints or try deploying to a different region."

Problemi comuniCommon Issues

Ecco gli scenari di allocazione comuni che causano una richiesta di allocazione bloccata a un solo cluster.Here are the common allocation scenarios that cause an allocation request to be pinned to a single cluster.

  • La distribuzione in uno slot di gestione temporanea: se un servizio cloud dispone di una distribuzione in uno slot, l’intero servizio cloud è bloccato a un cluster specifico.Deploying to Staging Slot - If a cloud service has a deployment in either slot, then the entire cloud service is pinned to a specific cluster. Ciò significa che se una distribuzione già esiste nello slot di produzione, una nuova distribuzione di gestione temporanea può essere allocata solo nello stesso cluster come slot di produzione.This means that if a deployment already exists in the production slot, then a new staging deployment can only be allocated in the same cluster as the production slot. Se la capacità del cluster è quasi stata raggiunta, la richiesta potrebbe avere esito negativo.If the cluster is nearing capacity, the request may fail.
  • Scalabilità: l’aggiunta di nuove istanze a un servizio cloud esistente deve allocare nello stesso cluster.Scaling - Adding new instances to an existing cloud service must allocate in the same cluster. Le piccole richieste di ridimensionamento in genere possono essere allocate, ma non è sempre possibile.Small scaling requests can usually be allocated, but not always. Se la capacità del cluster è quasi stata raggiunta, la richiesta potrebbe avere esito negativo.If the cluster is nearing capacity, the request may fail.
  • Gruppo di affinità: una nuova distribuzione in un servizio cloud vuoto può essere allocata dall'infrastruttura in qualsiasi cluster in tale area, a meno che il servizio cloud sia bloccato a un gruppo di affinità.Affinity Group - A new deployment to an empty cloud service can be allocated by the fabric in any cluster in that region, unless the cloud service is pinned to an affinity group. Le distribuzioni allo stesso gruppo di affinità verranno eseguite nello stesso cluster.Deployments to the same affinity group will be attempted on the same cluster. Se la capacità del cluster è quasi stata raggiunta, la richiesta potrebbe avere esito negativo.If the cluster is nearing capacity, the request may fail.
  • Gruppo di affinità tra reti: le reti virtuali meno recenti vengono legate a gruppi di affinità anziché ad aree e i servizi cloud in tali reti virtuali verrebbero bloccati al cluster del gruppo di affinità.Affinity Group vNet - Older Virtual Networks were tied to affinity groups instead of regions, and cloud services in these Virtual Networks would be pinned to the affinity group cluster. Le distribuzioni a questo tipo di rete virtuale verranno eseguite nel cluster bloccato.Deployments to this type of virtual network will be attempted on the pinned cluster. Se la capacità del cluster è quasi stata raggiunta, la richiesta potrebbe avere esito negativo.If the cluster is nearing capacity, the request may fail.

SoluzioniSolutions

  1. Ridistribuzione in un nuovo servizio cloud. Questa soluzione potrebbe essere la più efficace in quanto consente alla piattaforma di scegliere tra tutti i cluster in tale area.Redeploy to a new cloud service - This solution is likely to be most successful as it allows the platform to choose from all clusters in that region.

    • Distribuire il carico di lavoro in un nuovo servizio cloudDeploy the workload to a new cloud service
    • Aggiornare il CNAME o un record per puntare il traffico al nuovo servizio cloudUpdate the CNAME or A record to point traffic to the new cloud service
    • Quando nel sito precedente non c’è nessun traffico, è possibile eliminare il precedente servizio cloud.Once zero traffic is going to the old site, you can delete the old cloud service. Questa soluzione non deve causare tempi di inattività.This solution should incur zero downtime.
  2. Eliminazione di slot di produzione e di gestione temporanea: questa soluzione conserverà il nome DNS esistente, ma determinerà tempi di inattività dell'applicazione.Delete both production and staging slots - This solution will preserve your existing DNS name, but will cause downtime to your application.

    • Eliminare slot di produzione e di gestione temporanea di un servizio cloud esistente in modo che il servizio cloud sia vuoto, quindiDelete the production and staging slots of an existing cloud service so that the cloud service is empty, and then
    • creare una nuova distribuzione nel servizio cloud esistente.Create a new deployment in the existing cloud service. Questo tenterà nuovamente di eseguire l'allocazione in tutti i cluster nell'area.This will re-attempt to allocation on all clusters in the region. Assicurarsi che il servizio cloud non sia associato a un gruppo di affinità.Ensure the cloud service is not tied to an affinity group.
  3. IP riservato: questa soluzione consente di mantenere l'indirizzo IP esistente, ma determinerà tempi di inattività dell'applicazione.Reserved IP - This solution will preserve your existing IP address, but will cause downtime to your application.

    • Creare un ReservedIP per la distribuzione esistente utilizzando PowershellCreate a ReservedIP for your existing deployment using Powershell

      New-AzureReservedIP -ReservedIPName {new reserved IP name} -Location {location} -ServiceName {existing service name}
      
    • Seguire #2 dall'alto, assicurandosi di specificare il nuovo ReservedIP nel CSCFG del servizio.Follow #2 from above, making sure to specify the new ReservedIP in the service's CSCFG.
  4. Rimuovere il gruppo di affinità per le nuove distribuzioni: i gruppi di affinità non sono più consigliati.Remove affinity group for new deployments - Affinity Groups are no longer recommended. Attenersi alla procedura #1 indicata in precedenza per distribuire un nuovo servizio cloud.Follow steps for #1 above to deploy a new cloud service. Assicurarsi che il servizio cloud non sia in un gruppo di affinità.Ensure cloud service is not in an affinity group.
  5. Eseguire la conversione a una rete virtuale regionale: vedere Come eseguire la migrazione da gruppi di affinità a una rete virtuale (VNet) regionale.Convert to a Regional Virtual Network - See How to migrate from Affinity Groups to a Regional Virtual Network (VNet).