Share via


Correggere un errore AllocationFailed o ZonalAllocationFailed quando si crea, riavvia o ridimensiona set di scalabilità di macchine virtuali in Azure

Avviso

Se il set di scalabilità di macchine virtuali di Microsoft Azure fa parte di un cluster di Azure Service Fabric, non seguire queste indicazioni per la risoluzione dei problemi. Queste indicazioni possono causare la perdita di dati e danni irreversibili al cluster in questo scenario. Per altre informazioni, vedere È possibile usare set di scalabilità di macchine virtuali di grandi dimensioni nel cluster di Service Fabric?

In questo articolo ottenere informazioni su:

  • Errori AllocationFailed o ZonalAllocationFailed in Microsoft Azure set di scalabilità di macchine virtuali.
  • Come evitare errori di allocazione.
  • Le cause degli errori di allocazione.
  • Come risolvere gli errori di allocazione quando si verificano.

Per risolvere gli errori di allocazione per le macchine virtuali standard, vedere Risolvere gli errori di allocazione durante la creazione, il riavvio o il ridimensionamento di macchine virtuali in Azure.

Sintomo

A causa della domanda elevata di servizi di Azure, potrebbe verificarsi un errore di allocazione se si tenta di creare o avviare istanze di macchina virtuale in determinate aree. Azure tenta di allocare risorse di calcolo alla sottoscrizione ogni volta che si:

  • Creare un set di scalabilità di macchine virtuali.
  • Riavviare un'istanza di macchina virtuale del set di scalabilità arrestata (deallocata).
  • Ridimensionare un set di scalabilità.

I dettagli dell'errore seguenti sono un esempio del messaggio di errore di allocazione.

Codice di errore: AllocationFailed o ZonalAllocationFailed

Messaggio di errore 1: Allocazione non riuscita. Non disponiamo di capacità sufficiente per le dimensioni della VM richieste in questa area geografica. Altre informazioni sul miglioramento della probabilità di successo dell'allocazione in https://aka.ms/allocation-guidance.

Messaggio di errore 2: Allocazione non riuscita. Le VM con i seguenti vincoli non possono essere allocate perché la condizione è troppo restrittiva. Rimuovere alcuni vincoli e riprovare. I vincoli applicati sono:

  • Area di disponibilità
  • Dimensioni della macchina virtuale

Messaggio di errore 3: Allocazione non riuscita. Se si sta tentando di aggiungere una nuova macchina virtuale a un set di scalabilità di macchine virtuali con un singolo gruppo di posizionamento o di aggiornare/ridimensionare una macchina virtuale esistente in un set di scalabilità di macchine virtuali con un singolo gruppo di posizionamento, tenere presente che tale allocazione è assegnata a un singolo cluster ed è possibile che la capacità del cluster non sia sufficiente. Per altre informazioni sul miglioramento della probabilità di esito positivo dell'allocazione, vedere https://aka.ms/allocation-guidance.

Come evitare errori di allocazione

Per evitare errori di allocazione, è possibile applicare alcune impostazioni di configurazione al set di scalabilità per ottimizzare le richieste di allocazione.

  • Overprovisioning. Con l'overprovisioning attivato, il set di scalabilità attiva effettivamente più istanze di macchine virtuali di quante ne sia stato richiesto. Elimina quindi le istanze di macchina virtuale aggiuntive dopo aver eseguito il provisioning del numero richiesto di istanze di macchina virtuale. Questa procedura migliora le percentuali di riuscita del provisioning e riduce i tempi di distribuzione. Le istanze di VM aggiuntive non vengono fatturate e non vengono conteggiate per i limiti di quota. Per abilitare l'overprovisioning:

    1. Nel portale di Azure cercare e selezionare Set di scalabilità di macchine virtuali.

    2. Selezionare il nome del set di scalabilità.

    3. Nel riquadro dei menu selezionare Configurazione.

    4. Nell'intestazione Overprovisioning impostare Abilita overprovisioningsu On.

    5. Selezionare Salva.

    Altre informazioni sull'overprovisioning.

  • Abilitare set di scalabilità di grandi dimensioni. I set di scalabilità di macchine virtuali di grandi dimensioni sono definiti come set di scalabilità che possono essere ridimensionati a più di 100 istanze di macchina virtuale. Questa funzionalità è impostata da una proprietà del set di scalabilità (singlePlacementGroup=false). Ciò che rende speciale un set di scalabilità di grandi dimensioni non è il numero di istanze di macchina virtuale, ma il numero di gruppi di posizionamento in esso contenuti. Un gruppo di posizionamento è simile a un set di disponibilità di Azure, con domini di errore e domini di aggiornamento personalizzati. Con singlePlacementGroup impostato su false, si hanno maggiori probabilità di esito positivo dell'allocazione, perché le distribuzioni possono essere distribuite tra più cluster quando vengono distribuite come gruppo multiplacement. Altre informazioni sull'uso di set di scalabilità di macchine virtuali di grandi dimensioni, in particolare su come convertire un set di scalabilità esistente in più gruppi di posizionamento.

    Nota

    È possibile modificare un set di scalabilità dal supporto di un singolo gruppo di posizionamento al supporto di più gruppi di posizionamento, ma non è possibile eseguire una conversione nell'altra direzione. Una volta singlePlacementGroup impostato su false, non è possibile modificarlo nuovamente.

Ridurre il numero di istanze delle dimensioni della macchina virtuale richieste e quindi ripetere l'operazione di distribuzione. Per distribuzioni di dimensioni maggiori, è possibile valutare Azure set di scalabilità di macchine virtuali con più gruppi di posizionamento. Il numero di istanze di macchina virtuale può aumentare o diminuire automaticamente in risposta alla domanda o a una pianificazione definita.

Altri suggerimenti

Finché il tipo di macchina virtuale preferito non è disponibile nell'area preferita, i clienti che riscontrano problemi di distribuzione devono considerare le indicazioni riportate nelle sezioni seguenti come soluzione temporanea.

Identificare lo scenario più adatto al caso. Per aumentare la probabilità di esito positivo dell'allocazione, ripetere la richiesta di allocazione usando la soluzione suggerita corrispondente. In alternativa, è sempre possibile riprovare in un secondo momento. È possibile che siano state liberate risorse sufficienti nel cluster, nell'area o nella zona per soddisfare la richiesta in un altro momento.

Causa

L'area o la zona non dispone di capacità core sufficiente per lo SKU richiesto.

Causa 1: ridimensionare un set di scalabilità o aggiungere istanze di macchina virtuale a un set di scalabilità esistente

Se è presente una richiesta di ridimensionamento di un set di scalabilità o di aggiunta di un'istanza di macchina virtuale a un set di scalabilità esistente, è necessario provarlo nel cluster originale che ospita il set di scalabilità esistente. In alternativa, il cluster supporta le dimensioni della macchina virtuale richieste, ma potrebbe non avere attualmente una capacità sufficiente.

Soluzione per la causa 1

Provare una delle azioni seguenti:

  • Provare a spostare il set di scalabilità in un cluster diverso nella stessa area con capacità adeguata.

    Arrestare (deallocare) tutte le istanze di macchine virtuali nel set di scalabilità e quindi ridimensionare il set di scalabilità in base alle esigenze. Al termine del ridimensionamento, riavviare le istanze della macchina virtuale. Per arrestare le istanze della macchina virtuale:

    1. Nel portale di Azure cercare e selezionare Set di scalabilità di macchine virtuali.

    2. Selezionare il nome del set di scalabilità.

    3. Selezionare Arresta.

    Dopo aver interrotto tutte le istanze di macchina virtuale per eseguire il ridimensionamento e quindi avviato il set di scalabilità, il nuovo tentativo di allocazione può identificare un cluster con capacità sufficiente per ospitare l'intero set di scalabilità.

  • Configurare il set di scalabilità per la scalabilità in più di un gruppo di posizionamento.

    Vedere Creazione di un set di scalabilità di grandi dimensioni.

Causa 2: Riavviato una macchina virtuale parzialmente arrestata (deallocata)

La deallocazione parziale significa che è stata arrestata (deallocata) una o più istanze di VM in un set di scalabilità, ma non tutte. Quando si dealloca un'istanza di macchina virtuale, vengono rilasciate le risorse associate. Il riavvio delle istanze di VM in un set di disponibilità parzialmente deallocato equivale all'aggiunta di istanze di VM a un set di disponibilità esistente. È quindi necessario provare la richiesta di allocazione nel cluster originale che ospita il set di disponibilità esistente, che potrebbe avere capacità insufficiente.

Soluzione per la causa 2

Arrestare (deallocare) tutte le istanze di VM nel set di scalabilità e quindi riavviare ogni istanza di macchina virtuale. Per arrestare le istanze della macchina virtuale:

  1. Nel portale di Azure cercare e selezionare Set di scalabilità di macchine virtuali.

  2. Selezionare il nome del set di scalabilità.

  3. Nel riquadro dei menu selezionare Istanze.

  4. Selezionare tutte le istanze di macchina virtuale elencate.

  5. Selezionare Arresta.

Dopo l'arresto di tutte le macchine virtuali, selezionare la prima istanza di macchina virtuale e quindi selezionare Avvia. Azure esegue un nuovo tentativo di allocazione e seleziona un nuovo cluster con capacità sufficiente.

Causa 3: Istanze di macchina virtuale riavviate completamente arrestate

Deallocazione completa significa che sono state arrestate (deallocate) tutte le istanze di macchine virtuali in un set di disponibilità. La richiesta di allocazione per riavviare queste istanze di macchina virtuale sarà destinata a tutti i cluster che supportano le dimensioni necessarie all'interno dell'area o della zona.

Soluzione per la causa 3

Modificare la richiesta di allocazione usando i suggerimenti in questo articolo. Ripetere quindi la richiesta per migliorare le probabilità di esito positivo dell'allocazione.

Se si usano dimensioni o serie di macchine virtuali precedenti, ad esempio Dv1, DSv1, Av1, D15v2 o DS15v2, provare a passare a versioni più recenti. Vedere queste raccomandazioni per dimensioni di macchine virtuali specifiche. Non è possibile usare una dimensione di macchina virtuale diversa? Provare quindi a distribuire in un'area diversa all'interno della stessa area geografica. Per altre informazioni sulle dimensioni delle macchine virtuali disponibili in ogni area, vedere https://aka.ms/azureregions.

Se si usano le zone di disponibilità, provare un'altra zona all'interno dell'area che potrebbe avere capacità disponibile per le dimensioni della macchina virtuale richieste.

Se la richiesta di allocazione è di grandi dimensioni (più di 500 core), vedere le sezioni seguenti per suddividere la richiesta in distribuzioni più piccole.

Provare a ridistribuirla, che alloca l'istanza di macchina virtuale a un nuovo cluster all'interno dell'area.

Errori di allocazione per le dimensioni delle macchine virtuali meno recenti

Alcune dimensioni di macchine virtuali di serie precedenti non vengono eseguite nell'infrastruttura di ultima generazione. I clienti possono occasionalmente riscontrare errori di allocazione per questi SKU legacy. È consigliabile che i clienti che usano macchine virtuali serie legacy considerino la migrazione alle macchine virtuali più recenti equivalenti. Le macchine virtuali più recenti sono ottimizzate per l'hardware più recente e consentono di sfruttare prezzi e prestazioni migliori.

Vedere i consigli seguenti:

Serie o dimensioni di macchine virtuali legacy Serie di macchine virtuali o dimensioni più recenti consigliate Collegamento al blog
Serie Av1 Serie Av2 Nuove dimensioni delle macchine virtuali A_v2-Series
Serie Dv1 o DSv1 (da D1 a D5) Serie Dv3 o DSv3 Introduzione alle nuove dimensioni delle macchine virtuali Dv3 ed Ev3
Serie Dv1 o DSv1 (da D11 a D14) Serie Ev3 o ESv3
D15v2 o DS15v2

Se si usa il modello di distribuzione Resource Manager per sfruttare le dimensioni maggiori delle macchine virtuali, provare a passare a D16v3/DS16v3 o D32v3/DS32v3. Queste dimensioni sono progettate per essere eseguite nell'hardware di ultima generazione.

Usare il modello di distribuzione Resource Manager per assicurarsi che l'istanza della macchina virtuale sia isolata per l'hardware dedicato a un singolo cliente? Valutare quindi la possibilità di passare alle nuove dimensioni di macchine virtuali isolate, E64i_v3 o E64is_v3, progettate per l'esecuzione nell'hardware di ultima generazione.

Sono ora disponibili nuove dimensioni di macchine virtuali isolate

Informazioni complementari

Funzionamento dell'allocazione

La piattaforma Azure tenta di partizionare i server del data center in cluster. In genere, tenta una richiesta di allocazione in più cluster. Alcuni vincoli della richiesta di allocazione possono tuttavia forzare la piattaforma Azure a tentare la richiesta in un solo cluster ("aggiunto a un cluster"). Il diagramma 1 seguente mostra un'allocazione normale tentata in più cluster (da Cluster 1 a Cluster n). Nel diagramma 2 un'allocazione viene aggiunta al cluster 2, perché tale cluster ospita il servizio cloud (CS_1) o il set di disponibilità esistente.

Diagramma 1: tentativo di allocazione della piattaforma Azure in più cluster. Diagramma 2: allocazione della piattaforma Azure aggiunta a un cluster.

Perché si verificano errori di allocazione

Se una richiesta di allocazione viene aggiunta a un cluster, è più probabile che non riescano a trovare risorse gratuite, perché il pool di risorse disponibile è più piccolo. Cosa succede se la richiesta di allocazione viene aggiunta a un cluster che non supporta il tipo di risorsa richiesta? La richiesta avrà esito negativo anche se il cluster dispone di risorse gratuite. Il diagramma 3 seguente mostra dove un'allocazione aggiunta ha esito negativo perché l'unico cluster candidato non dispone di risorse gratuite. Il diagramma 4 mostra dove l'allocazione aggiunta ha esito negativo, perché l'unico cluster candidato non supporta le dimensioni della macchina virtuale richieste, anche se il cluster dispone di risorse gratuite.

I diagrammi degli errori di allocazione sono cluster aggiunti. Il diagramma 3 mostra che non sono disponibili risorse gratuite. Il diagramma 4 mostra che le dimensioni non sono supportate.

Contattaci per ricevere assistenza

In caso di domande o bisogno di assistenza, creare una richiesta di supporto tecnico oppure formula una domanda nel Supporto della community di Azure. È possibile anche inviare un feedback sul prodotto al feedback della community di Azure.