Risoluzione dei problemi relativi a errori di allocazione quando si distribuiscono servizi cloud (versione classica) in Azure
Importante
Servizi cloud (versione classica) è ora deprecato per tutti i clienti a partire dal 1° settembre 2024. Eventuali distribuzioni esistenti in esecuzione saranno arrestate e chiuse da Microsoft e i dati andranno persi in modo permanente a partire da ottobre 2024. Le nuove distribuzioni devono usare il nuovo modello di distribuzione basato su Azure Resource Manager Servizi cloud di Azure (supporto "Extended").
Riepilogo
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. In alcuni casi possono verificarsi errori quando si eseguono queste operazioni anche prima di raggiungere i limiti della sottoscrizione di Azure. Questo articolo illustra le cause di alcuni dei più comuni errori di allocazione e suggerisce una possibile correzione. Queste informazioni possono risultare utili anche quando si pianifica la distribuzione dei servizi.
Se il problema relativo ad Azure non è trattato in questo articolo, visitare i forum di Azure su Microsoft Q&A e Stack Overflow. È possibile pubblicare il problema in questi forum o in @AzureSupport su Twitter. È anche possibile inviare una richiesta di supporto tecnico di Azure. Per inviare una richiesta di supporto, selezionare Supporto tecnico nella pagina del supporto di Azure.
Informazioni preliminari: come funziona l'allocazione
I server nei data center di Azure sono partizionati in cluster. Una nuova richiesta di allocazione del servizio cloud viene eseguita in più cluster. Quando la prima istanza è distribuita in un servizio cloud (in gestione temporanea o produzione), il servizio cloud viene bloccato su un cluster. Tutte le altre distribuzioni per il servizio cloud vengono eseguite nello stesso cluster. In questo articolo, si fa riferimento a questo stato con l'espressione "aggiunta a un cluster". Il diagramma seguente illustra il caso di una normale allocazione che viene tentata in più cluster. Il secondo diagramma illustra il caso di un'allocazione aggiunta al cluster 2 perché è la posizione in cui è ospitato il servizio cloud esistente CS_1.
Perché si verifica un errore di allocazione
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. Inoltre, se la richiesta di allocazione viene aggiunta a un cluster, ma tale cluster non supporta il tipo di risorsa richiesto, la richiesta ha esito negativo anche se il cluster dispone di risorse libere. Il diagramma seguente illustra un'allocazione bloccata non riuscita perché nel solo cluster candidato non ci sono risorse disponibili. Il diagramma 4 illustra un'allocazione bloccata non riuscita perché il solo cluster candidato non supporta le dimensioni della macchina virtuale richieste, anche se nel cluster ci sono risorse disponibili.
Risoluzione di problemi di allocazione non riuscita per i servizi cloud
Messaggio di errore
Nel portale di Azure passare al servizio cloud e nella barra laterale selezionare Log operazioni (versione classica) per visualizzare i log.
Vedere queste altre soluzioni per le eccezioni:
Tipo di eccezione | Messaggio di errore | Soluzione |
---|---|---|
FabricInternalServerError | Operazione non riuscita con codice di errore 'InternalError' e messaggio di errore 'Si è verificato un errore interno del server. Ripetere la richiesta. | Troubleshoot FabricInternalServerError |
ServiceAllocationFailure | Operazione non riuscita con codice di errore 'InternalError' e messaggio di errore 'Si è verificato un errore interno del server. Ripetere la richiesta. | Troubleshoot ServiceAllocationFailure |
LocationNotFoundForRoleSize | Operazione '{Operation ID} ' non riuscita: 'Il livello di macchina virtuale richiesto non è attualmente disponibile nell'area ({Region ID} ) per questa sottoscrizione. Provare un altro livello o eseguire la distribuzione in una posizione diversa. |
Troubleshoot LocationNotFoundForRoleSize |
ConstrainedAllocationFailed | Operazione di Azure '{Operation ID} ' non riuscita con codice Compute.ConstrainedAllocationFailed. Dettagli: Allocazione non riuscita; impossibile soddisfare i vincoli nella richiesta. La nuova distribuzione richiesta del servizio è legata a un gruppo di affinità o ha come destinazione una rete virtuale, oppure è presente una distribuzione esistente in questo servizio ospitato. Una di queste condizioni vincola la nuova distribuzione a risorse Azure specifiche. Riprovare più tardi o provare a ridurre le dimensioni della macchina virtuale o il numero di istanze del ruolo. In alternativa, se possibile, rimuovere i vincoli o provare a distribuire in un'area diversa. |
Troubleshoot ConstrainedAllocationFailed |
OverconstrainedAllocationRequest | Non è possibile eseguire il provisioning delle dimensioni della macchina virtuale (o della combinazione di dimensioni delle macchine virtuali) richieste dalla distribuzione, a causa di vincoli della richiesta di distribuzione. Se possibile, provare a rilasciare vincoli quali associazioni a reti virtuali, distribuzione a un servizio ospitato che non include alcun'altra distribuzione e a un gruppo di affinità diverso o senza alcun gruppo di affinità oppure provare a distribuire in un'area diversa. | Troubleshoot OverconstrainedAllocationRequest |
Messaggio di errore di esempio:
Operazione di Azure '{operation id}' non riuscita con codice Compute.ConstrainedAllocationFailed. Dettagli: Allocazione non riuscita; impossibile soddisfare i vincoli nella richiesta. La nuova distribuzione richiesta del servizio è legata a un gruppo di affinità o ha come destinazione una rete virtuale, oppure è presente una distribuzione esistente in questo servizio ospitato. Una di queste condizioni vincola la nuova distribuzione a risorse Azure specifiche. Riprovare più tardi o provare a ridurre le dimensioni della macchina virtuale o il numero di istanze del ruolo. In alternativa, è possibile rimuovere i vincoli sopra indicati o tentare di distribuire in un'area diversa".
Problemi comuni
Ecco gli scenari di allocazione comuni che causano una richiesta di allocazione bloccata a un solo 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. 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. Se la capacità del cluster è quasi stata raggiunta, la richiesta potrebbe avere esito negativo.
- Ridimensionamento. In caso di aggiunta di nuove istanze a un servizio cloud esistente, l'allocazione deve essere eseguita nello stesso cluster. Le piccole richieste di ridimensionamento in genere possono essere allocate, ma non è sempre possibile. Se la capacità del cluster è quasi stata raggiunta, la richiesta potrebbe avere esito negativo.
- Gruppo di affinità: l’infrastruttura di qualsiasi cluster in tale area può allocare una nuova distribuzione in un servizio cloud vuoto a meno che tale servizio cloud non sia stato aggiunto a un gruppo di affinità. Le distribuzioni tentano di usare lo stesso gruppo di affinità nello stesso cluster. Se la capacità del cluster è quasi stata raggiunta, la richiesta potrebbe avere esito negativo.
- Rete virtuale di un gruppo di affinità: le reti virtuali meno recenti erano legate a gruppi di affinità anziché ad aree e i servizi cloud in tali reti virtuali venivano aggiunti al cluster del gruppo di affinità. I tentativi di distribuzione in questo tipo di rete virtuale vengono eseguite nel cluster bloccato. Se la capacità del cluster è quasi stata raggiunta, la richiesta potrebbe avere esito negativo.
Soluzioni
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.
- Distribuire il carico di lavoro in un nuovo servizio cloud
- Aggiornare il CNAME o un record per puntare il traffico al nuovo servizio cloud
- Quando nel sito precedente non c’è nessun traffico, è possibile eliminare il precedente servizio cloud. Questa soluzione non deve causare tempi di inattività.
Eliminazione degli slot di produzione e di staging: questa soluzione mantiene il nome DNS (Domain Name System) esistente, ma causa tempi di inattività per l'applicazione.
- Eliminare slot di produzione e di gestione temporanea di un servizio cloud esistente in modo che il servizio cloud sia vuoto, quindi
- creare una nuova distribuzione nel servizio cloud esistente. Questa soluzione tenta di eseguire di nuovo l’allocazione in tutti i cluster nell'area. Assicurarsi che il servizio cloud non sia associato a un gruppo di affinità.
IP riservato: questa soluzione mantiene l'indirizzo IP esistente, ma causa tempi di inattività per l'applicazione.
Creare un ReservedIP per la distribuzione esistente utilizzando PowerShell
New-AzureReservedIP -ReservedIPName {new reserved IP name} -Location {location} -ServiceName {existing service name}
Seguire il passaggio 2, assicurandosi di specificare il nuovo ReservedIP nel CSCFG del servizio.
Rimuovere il gruppo di affinità per le nuove distribuzioni: i gruppi di affinità non sono più consigliati. Attenersi alla procedura 1 per distribuire un nuovo servizio cloud. Assicurarsi che il servizio cloud non si trovi in un gruppo di affinità.
Eseguire la conversione a una rete virtuale regionale: vedere Come eseguire la migrazione da gruppi di affinità a una rete virtuale (VNet) regionale.