Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
I set di scalabilità di macchine virtuali consentono di creare e gestire un gruppo di istanze di macchine virtuali (VM). Il numero di istanze di macchine virtuali può aumentare o diminuire automaticamente in risposta alla domanda o a una pianificazione definita. Abilitano la disponibilità elevata e la resilienza delle applicazioni distribuendo le macchine virtuali tra più zone di disponibilità e domini di errore.
Quando si usa Azure, l'affidabilità è una responsabilità condivisa. Microsoft offre una gamma di funzionalità per supportare la resilienza e il ripristino. L'utente è responsabile della comprensione del funzionamento di tali funzionalità all'interno di tutti i servizi usati e della selezione delle funzionalità necessarie per soddisfare gli obiettivi aziendali e gli obiettivi di tempo di attività.
Questo articolo descrive come rendere resilienti i set di scalabilità di macchine virtuali a un'ampia gamma di potenziali interruzioni e problemi, tra cui errori temporanei, interruzioni della zona di disponibilità, interruzioni dell'area, riconfigurazione delle macchine virtuali e manutenzione del servizio. Descrive anche come usare i backup per eseguire il ripristino da altri tipi di problemi ed evidenzia alcune informazioni chiave sul contratto di servizio dei set di scalabilità di macchine virtuali.
Importante
Quando si considera l'affidabilità di un set di scalabilità e delle relative macchine virtuali, è necessario considerare anche l'affidabilità dei dischi, dell'infrastruttura di rete e delle applicazioni in esecuzione nelle macchine virtuali. Il miglioramento della resilienza delle macchine virtuali può avere un impatto limitato se gli altri componenti non sono ugualmente resilienti. A seconda dei requisiti di resilienza, potrebbe essere necessario apportare modifiche alla configurazione in più aree.
Raccomandazioni per la distribuzione di produzione
Azure Well-Architected Framework offre raccomandazioni su affidabilità, prestazioni, sicurezza, costi e operazioni. Per comprendere in che modo queste aree influiscono tra loro e contribuiscono a una soluzione affidabile dei set di scalabilità di macchine virtuali, vedere Procedure consigliate per l'architettura per macchine virtuali e set di scalabilità in Azure Well-Architected Framework.
Panoramica dell'architettura di affidabilità
Un set di scalabilità raggruppa più istanze di macchine virtuali e applica la configurazione centralizzata, le regole di scalabilità automatica e gli aggiornamenti in sequenza.
I set di scalabilità supportano due modalità di orchestrazione distinte:
- I set di scalabilità flessibili (consigliati) offrono maggiore flessibilità per la distribuzione e la gestione di singole istanze di macchine virtuali.
- I set di scalabilità uniformi distribuiscono le macchine virtuali con una configurazione identica e le si gestiscono come gruppo.
Distribuzione del dominio di errore
I domini di errore sono gruppi di isolamento degli errori all'interno di un data center. Ogni dominio di errore è simile a un rack server, ovvero una raccolta di nodi hardware che condividono la stessa potenza, rete, raffreddamento e pianificazione della manutenzione della piattaforma. Poiché le istanze di macchina virtuale di ogni set di scalabilità vengono distribuite in più domini di errore, un'interruzione pianificata o non pianificata che si verifica in un dominio di errore non influisce probabilmente sulle istanze di macchine virtuali in altri domini di errore.
Quando si distribuisce un set di scalabilità, è possibile controllare il numero di domini di errore distribuiti tra le macchine virtuali. Per la maggior parte delle situazioni, è consigliabile usare il comportamento massimo di distribuzione , che usa il maggior numero possibile di domini di errore. Per altre informazioni, vedere Scelta del numero esatto di domini di errore per i set di scalabilità di macchine virtuali.
Nelle aree con zone di disponibilità ogni zona ha un set distinto di domini di errore. Quando si crea un set di scalabilità con estensione della zona, le istanze vengono distribuite tra domini di errore in ogni zona usata dal set di scalabilità.
Bilanciamento del carico
I set di scalabilità possono essere integrati con i servizi di bilanciamento del carico di Azure, tra cui Azure Load Balancer e Azure Application Gateway. Quando il set di scalabilità aggiunge o rimuove istanze, l'integrazione del bilanciatore di carico integrato aggiorna automaticamente la configurazione del bilanciatore di carico. Per altre informazioni, vedere Rete per i set di scalabilità di macchine virtuali.
I set di scalabilità includono molti altri controlli e funzionalità che influiscono sulla modalità di distribuzione, scalabilità, distribuzione e aggiornamento delle istanze. Per altre informazioni, vedere Che cosa sono i set di scalabilità di macchine virtuali?.
Resilienza a errori temporanei
Gli errori temporanei sono errori brevi e intermittenti nei componenti. Si verificano spesso in un ambiente distribuito come il cloud e fanno parte delle normali operazioni. Gli errori temporanei si correggono dopo un breve periodo di tempo. È importante che le applicazioni possano gestire gli errori temporanei, in genere ritentando le richieste interessate.
Tutte le applicazioni ospitate nel cloud devono seguire le indicazioni sulla gestione degli errori temporanei di Azure quando comunicano con qualsiasi API, database e altri componenti ospitati nel cloud. Per altre informazioni, vedere Raccomandazioni per la gestione degli errori temporanei.
Le applicazioni eseguite nelle macchine virtuali devono implementare strategie di gestione degli errori appropriate per garantire che eventuali interruzioni temporanee nel servizio non influiscano sul carico di lavoro.
Resilienza ai problemi di istanza
Quando un set di scalabilità avvia un'operazione di creazione o eliminazione di un'istanza di macchina virtuale, è possibile che l'operazione abbia esito negativo. Per ritentare automaticamente le operazioni di creazione o eliminazione dell'istanza di macchina virtuale non riuscite, provare a usare la creazione e l'eliminazione resiliente per i set di scalabilità di macchine virtuali (anteprima).
Mentre le istanze sono in esecuzione, possono verificarsi problemi. Ad esempio, un'istanza potrebbe non rispondere a causa di arresti anomali dell'applicazione o esaurimento delle risorse. Con il ripristino automatico dell'istanza, la piattaforma monitora l'integrità dell'applicazione ed esegue automaticamente le azioni di ripristino, ad esempio il riavvio, la reinimazione o la sostituzione di un'istanza di macchina virtuale quando necessario.
Resilienza ai guasti delle zone di disponibilità
Le zone di disponibilità sono gruppi di data center separati fisicamente all'interno di un'area di Azure. In caso di guasto in una zona, i servizi possono passare a una delle zone restanti.
I set di scalabilità delle macchine virtuali supportano le zone di disponibilità sia in configurazioni interzona che zonali.
Estensione della zona: Un set di scalabilità su più zone distribuisce le istanze tra più zone di disponibilità selezionate.
La distribuzione di istanze di vm tra zone di disponibilità offre il contratto di servizio più elevato ed è consigliata per la maggior parte dei carichi di lavoro basati su macchine virtuali in Azure.
In un set di scalabilità con estensione della zona, ogni istanza della macchina virtuale e i relativi dischi sono associati a una zona di disponibilità specifica. Quando tutte le zone sono integre, le istanze possono comunicare tra zone usando una rete a bassa latenza e a prestazioni elevate. Se una zona riscontra un problema di interruzione o connettività, le istanze nelle altre zone rimangono invariate.
Per impostazione predefinita, il set di scalabilità esegue un approccio ottimale per distribuire uniformemente le istanze tra le zone selezionate. Tuttavia, se è necessario un bilanciamento rigoroso, è possibile scegliere di modificare la configurazione del bilanciamento della zona.
Il diagramma seguente mostra un set di scalabilità a livello di zona diffuso su tre zone, con un'istanza in ciascuna zona.
L'estensione della zona è simile alla ridondanza della zona in altri servizi di Azure, ma con alcune differenze. Ad esempio, i set di scalabilità non forniscono la replica automatica dei dati attraverso le zone o il failover quando le zone sono inattive. Esistono anche situazioni in cui un set di scalabilità con estensione di zona potrebbe avere tutte le istanze distribuite in una singola zona, ad esempio se si sceglie di collegare singole macchine virtuali a un set di scalabilità flessibile con estensione della zona.
Annotazioni
Se si usa la modalità di orchestrazione flessibile e si collegano, scollegano o si rimuovono singole macchine virtuali, assicurarsi che le macchine virtuali vengano distribuite in più zone. Se le macchine virtuali si trovano tutte in una singola zona, il set di scalabilità potrebbe non essere resiliente a un'interruzione in tale zona.
Zonale: Un set di scalabilità di zona, detto anche allineato alla zona, inserisce tutte le relative istanze in una singola zona di disponibilità specificata. Ogni macchina virtuale e i relativi dischi sono di zona, quindi vengono aggiunti a tale zona specifica.
Importante
Si consiglia di limitarsi a una singola zona di disponibilità solo quando la latenza inter-zona è troppo elevata per le proprie esigenze e dopo aver verificato che la latenza effettivamente non soddisfi i requisiti. Di per sé, una risorsa di zona non fornisce resilienza a un'interruzione della zona di disponibilità. Per migliorare la resilienza di una risorsa di zona, è necessario distribuire in modo esplicito risorse separate in più zone di disponibilità e configurare il routing e il failover del traffico. Per altre informazioni, vedere Risorse di zona e resilienza della zona.
Il diagramma seguente mostra un set di scalabilità zonale in una singola zona, con tre istanze in tale zona.
Se non si specificano zone di disponibilità per il set di scalabilità, viene considerato non zonale o regionale. In questo caso, le istanze potrebbero essere posizionate in qualsiasi zona all'interno dell'area e non vi è alcuna garanzia che vengano distribuite in modo uniforme o che si trovino nella stessa zona. Quando si utilizza un set di scalabilità non zonale, la collocazione dei dischi nella stessa zona è garantita per i dischi Ultra e Premium v2. La colocazione viene fornita su base migliore sforzo per i dischi Premium V1 e non è garantita per i dischi SKU Standard (SSD o HDD). Se una qualsiasi zona nella regione fallisce, il set di scalabilità potrebbe subire un'interruzione del servizio.
Requisiti
Supporto regionale: Gli scale set a copertura di zona e quelli zonali possono essere implementati in qualsiasi area che supporta le zone di disponibilità.
Tuttavia, alcuni tipi di vm e dimensioni sono disponibili solo in aree specifiche o in zone specifiche all'interno di un'area. Per verificare quali aree e zone supportano i tipi di macchina virtuale necessari, usare le risorse seguenti:
Per controllare i tipi di macchina virtuale disponibili in ogni area, vedere Prodotti disponibili in base all'area.
Per controllare i tipi e le dimensioni di macchina virtuale supportati all'interno di ogni zona di un'area specifica, vedere Controllare la disponibilità dello SKU della macchina virtuale.
Se uno SKU di macchina virtuale specifico non è disponibile in una delle zone selezionate per il set di scalabilità, il set di scalabilità potrebbe non essere in grado di scalare per soddisfare i requisiti di capacità.
Host dedicati: Le distribuzioni di host dedicati di Azure non supportano gruppi di scalabilità zonali o interzonali.
Tipi: Il supporto della zona di disponibilità è disponibile con tutti i tipi di set di scalabilità, inclusi i set di scalabilità flessibili e uniformi.
Considerazioni
Distribuzione del dominio di errore: Quando il set di scalabilità usa le zone di disponibilità, è necessario selezionare uno specifico approccio di distribuzione del dominio di errore. È consigliabile usare la distribuzione massima per la maggior parte dei carichi di lavoro, che usa il maggior numero possibile di domini di errore. Per altre informazioni, vedere Scelta del numero esatto di domini di errore per i set di scalabilità di macchine virtuali.
Bilanciamento della zona:il bilanciamento della zona determina se le istanze di macchine virtuali in un set di scalabilità vengono distribuite uniformemente tra le zone selezionate. Un set di scalabilità viene considerato bilanciato se ogni zona ha lo stesso numero di macchine virtuali, ±1 VM. È possibile impostare la modalità di bilanciamento della zona su un impegno ottimale o rigoroso. Questa impostazione controlla se il set di scalabilità automatica può eseguire lo scaling in modo non uniforme, inclusi gli scenari di interruzione di zona.
Gruppi di posizionamento: Per i set di scalabilità uniformi, se si configurano più gruppi di posizionamento, Azure distribuisce più gruppi di posizionamento in ogni zona usata dal set di scalabilità.
Costo
Non esiste alcuna differenza di costo tra un set di scalabilità di zone, di zona e non di zona con lo stesso numero e tipo di istanze di macchina virtuale.
Configurare il supporto delle zone di disponibilità
Questa sezione illustra come configurare il supporto della zona di disponibilità per il sistema di scalabilità.
Creare un set di scala a livello di più zone o zonale. È possibile configurare le zone di disponibilità quando si crea un nuovo set di scalabilità. Per istruzioni dettagliate, vedere Creare un set di scalabilità di macchine virtuali che usa le zone di disponibilità.
Annotazioni
Quando si selezionano le zone di disponibilità da usare, si seleziona effettivamente la zona di disponibilità logica. Se si distribuiscono altri componenti del carico di lavoro in una sottoscrizione di Azure diversa, è possibile usare un numero di zona di disponibilità logico diverso per accedere alla stessa zona di disponibilità fisica. Per altre informazioni, vedere Zone di disponibilità fisiche e logiche.
Convertire i set di scalabilità esistenti per usare le zone di disponibilità. È possibile convertire un set di scalabilità non a livello di area esistente per usare le zone di disponibilità. Per istruzioni dettagliate, vedere Aggiornare il set di scalabilità per aggiungere zone di disponibilità.
Modificare la configurazione della zona di disponibilità di un set di scalabilità esistente. È possibile aggiungere zone a un set di scalabilità esistente, ma non è possibile rimuovere le zone. Per istruzioni dettagliate, vedere Aggiornare il set di scalabilità per aggiungere zone di disponibilità.
Importante
Quando si espande il set di scalabilità in zone aggiuntive, le istanze originali della macchina virtuale non vengono immediatamente migrate o modificate. Quando si effettua uno scaling orizzontale, le nuove istanze vengono create e distribuite uniformemente tra le zone di disponibilità selezionate. Se sono necessari dati dalle istanze originali, è necessario eseguire la migrazione dei dati alle istanze nelle nuove zone. Quando si esegue il ridimensionamento nel set di scalabilità, tutte le istanze a livello di area vengono classificate in ordine di priorità per la rimozione. Successivamente, le istanze verranno rimosse in base ai criteri di scalabilità orizzontale.
Pianificazione e gestione della capacità
Per prepararsi a un malfunzionamento della zona di disponibilità, prendere in considerazione il sovraprovisionamento del numero di istanze di macchine virtuali nel set di scalabilità. Questo approccio consente alla soluzione di tollerare alcune perdite di capacità e continuare a funzionare senza prestazioni ridotte, assicurando che le zone rimanenti abbiano capacità sufficiente per gestire il carico di produzione completo. Per altre informazioni, vedere Gestire la capacità usando l'over-provisioning.
Comportamento quando tutte le zone sono integre
Questa sezione descrive cosa aspettarsi quando i set di scalabilità sono configurati con il supporto della zona di disponibilità e tutte le zone di disponibilità sono operative.
Routing del traffico tra zone. L'utente è responsabile del routing del traffico tra le macchine virtuali nel set di scalabilità, incluse quelle che si trovano in zone di disponibilità differenti. Gli approcci comuni includono Azure Load Balancer e Azure Application Gateway, che offrono un'integrazione predefinita con i set di scalabilità automatica. Per altre informazioni, vedere Rete per i set di scalabilità di macchine virtuali.
Replica dei dati tra zone. L'utente è responsabile di qualsiasi replica dei dati che deve verificarsi tra le macchine virtuali, incluse le macchine virtuali in zone di disponibilità diverse. I database e altre applicazioni con stato simili eseguite nelle macchine virtuali offrono spesso funzionalità per replicare i dati.
Comportamento durante un errore di zona
Questa sezione descrive cosa aspettarsi quando i set di scalabilità sono configurati con supporto per le zone di disponibilità e si verifica un'interruzione nelle loro zone di disponibilità.
Rilevamento e risposta. L'utente è responsabile del rilevamento della perdita di una zona di disponibilità e della decisione su come rispondere.
Per i set di scalabilità che coprono più zone, qualsiasi istanza di macchina virtuale nella zona interessata potrebbe non essere disponibile. Le istanze nelle zone sicure rimangono operative.
Per i set di scalabilità di zona distribuiti nella zona interessata, tutte le istanze della macchina virtuale potrebbero non essere disponibili. È necessario pianificare la risposta a un errore di zona. Ad esempio, è possibile reindirizzare il traffico a un altro set di scalabilità in una zona o un'area diversa.
- Notifica: Microsoft non invia automaticamente una notifica quando una zona è inattiva. È tuttavia possibile usare Integrità risorse di Azure per monitorare l'integrità di una singola risorsa ed è possibile configurare gli avvisi di Integrità risorse per notificare i problemi. È anche possibile usare Integrità dei servizi di Azure per comprendere l'integrità complessiva del servizio, inclusi eventuali errori di zona, ed è possibile configurare gli avvisi di integrità dei servizi per notificare i problemi.
Richieste attive. È probabile che tutte le richieste attive o altre operazioni che si verificano nelle macchine virtuali nella zona di disponibilità interessata vengano terminate.
Perdita di dati prevista. I dischi delle macchine virtuali di zona potrebbero non essere disponibili durante un errore di zona.
Se si usano dischi ZRS e un'interruzione colpisce la macchina virtuale, è possibile forzare lo scollegamento dei dischi ZRS dalla macchina virtuale che ha avuto un guasto. Questo approccio consente di collegare i dischi ZRS (con archiviazione con ridondanza della zona) a un'altra macchina virtuale.
Tempo di inattività previsto. Qualsiasi macchina virtuale nella zona colpita rimane inattiva fino a quando la zona di disponibilità non viene ripristinata. Quando si usano set di scalabilità a estensione di zona, le macchine virtuali che si trovano in zone funzionanti continuano a funzionare.
Reindirizzamento del traffico. Si è responsabili del reindirizzamento del traffico ad altre macchine virtuali in zone funzionanti.
Se si configura un servizio di bilanciamento del carico resiliente alla zona ed esegue controlli di integrità, il servizio di bilanciamento del carico rileva in genere le macchine virtuali non riuscite e può instradare il traffico ad altre istanze di macchine virtuali in zone integre.
Sostituzione dell'istanza. I set di scalabilità di macchine virtuali non garantiscono l'aggiunta di nuove istanze automaticamente in zone sane.
Se si dispone di un set di scalabilità che attraversa le zone, è possibile aumentare il numero di istanze. Se il guasto della zona riguarda solo set specifici di server all'interno della stessa, l'operazione di espansione potrebbe aggiungere istanze funzionanti nella stessa zona oppure distribuirle in altre zone. Tuttavia, se il set di scalabilità usa un bilanciamento rigoroso della zona, il set di scalabilità blocca le operazioni di espansione se queste causano uno squilibrio.
Suggerimento
È consigliabile configurare le regole di scalabilità automatica in base all'utilizzo della CPU o della memoria. Le regole di scalabilità automatica possono permettere al set di scalabilità di rispondere a una perdita delle istanze di macchine virtuali in una zona aumentando il numero di istanze nelle zone operative rimanenti.
Ripristino della zona
Quando la zona è funzionante correttamente, le macchine virtuali nella zona vengono riavviate. L'utente è responsabile delle procedure di ripristino della zona e della sincronizzazione dei dati richiesta dai carichi di lavoro.
Se si aggiungono istanze temporanee al set di scalabilità durante un errore di zona, quando la zona viene ripristinata, potrebbe essere necessario ridurre il set di scalabilità alla capacità originale.
Verifica dei guasti di zona
È possibile usare Azure Chaos Studio per simulare la perdita di macchine virtuali in una o più zone di disponibilità come parte di un esperimento. Chaos Studio offre anomalie predefinite per i set di scalabilità, con la possibilità di arrestare le macchine virtuali in zone specifiche. È possibile usare queste funzionalità per simulare gli errori a livello di zona e testare i processi di failover.
Resilienza agli errori a livello di area
I set di scalabilità sono risorse a singola area. Se la regione non è disponibile, anche i set di scalabilità in quella regione non sono disponibili.
Soluzioni personalizzate in più aree per la resilienza
È possibile distribuire più set di scalabilità in aree diverse, ma è necessario implementare processi di replica, bilanciamento del carico e failover. Ad esempio, è possibile distribuire set di scalabilità identici in più aree e usare Azure Front Door o Azure Traffic Manager con sonde di integrità per instradare il traffico. L'utente è responsabile della replica dello stato usando meccanismi dell'applicazione o servizi dati gestiti.
Backup e ripristino
Backup di Azure offre il supporto per il backup nativo per le macchine virtuali. Backup di Azure crea e gestisce i backup e fornisce una protezione coerente con l'applicazione per l'intera macchina virtuale, inclusi tutti i dischi collegati. Una soluzione di backup di macchine virtuali con Backup di Azure è ideale quando è necessario eseguire il backup coordinato di più dischi o backup in grado di supportare le applicazioni. Tuttavia, per i carichi di lavoro del database, prendere in considerazione soluzioni di backup specifiche dell'applicazione che forniscono una protezione coerente con le transazioni e opzioni di ripristino più veloci.
Con Backup di Azure per le macchine virtuali, è possibile personalizzare la frequenza di backup, la durata di conservazione e la configurazione dell'archiviazione in base alle proprie esigenze. Per altre informazioni, vedere Backup di Azure per le macchine virtuali.
Il backup supporta anche i dischi collegati alle macchine virtuali. Per altre informazioni, vedere Panoramica di Backup su disco di Azure.
Per la maggior parte delle soluzioni, non è consigliabile basarsi esclusivamente sui backup. Usare invece le altre funzionalità descritte in questa guida per supportare i requisiti di resilienza. Tuttavia, i backup proteggono da alcuni rischi che altri approcci non comportano. Per altre informazioni, vedere Che cosa sono ridondanza, replica e backup?.
Resilienza alla riconfigurazione della macchina virtuale
I set di scalabilità consentono di controllare come applicare le modifiche di configurazione alle macchine virtuali, inclusa la modifica dello SKU della macchina virtuale, la modifica dell'immagine usata da ogni macchina virtuale e l'aggiunta o la rimozione di estensioni di macchina virtuale. È possibile controllare la modalità dei criteri di aggiornamento, che determina come vengono applicati gli aggiornamenti. Per altre informazioni, vedere Modalità dei criteri di aggiornamento per i set di scalabilità di macchine virtuali.
Alcuni tipi di aggiornamento possono richiedere la reinstallazione o la ridistribuzione di un'istanza. Se sono presenti istanze specifiche che devono essere escluse dagli aggiornamenti automatici, ad esempio le istanze che contengono lo stato che è necessario mantenere o configurare non è possibile replicare in altre istanze, è consigliabile usare la protezione delle istanze.
Resilienza alla manutenzione del servizio
Azure esegue periodicamente aggiornamenti per migliorare l'affidabilità, le prestazioni e la sicurezza dell'infrastruttura host per le macchine virtuali. I set di scalabilità offrono diversi modi per comprendere e controllare la manutenzione pianificata:
Le notifiche di manutenzione pianificata indicano quando è prevista la manutenzione e consente di controllare quando viene eseguita la manutenzione.
Le configurazioni di manutenzione consentono di pianificare una finestra di manutenzione alla volta adatta alle esigenze aziendali.
Gli eventi pianificati per le macchine virtuali Linux e per le macchine virtuali Windows offrono all'applicazione il tempo necessario per prepararsi alla manutenzione delle macchine virtuali. Fornisce informazioni sugli eventi di manutenzione imminenti (ad esempio, il riavvio) in modo che l'applicazione possa prepararsi e limitare l'interruzione.
Contratto di servizio
Il contratto di servizio per i servizi di Azure descrive la disponibilità prevista di ogni servizio e le condizioni che la soluzione deve soddisfare per raggiungere tale aspettativa di disponibilità. Per altre informazioni, vedere Contratti di servizio per Servizi online.
I set di scalabilità delle macchine virtuali condividono lo SLA di disponibilità per le macchine virtuali. È possibile ottenere una percentuale di tempo di attività superiore per le macchine virtuali usando un set di scalabilità che soddisfi entrambi i criteri seguenti:
- Contiene due o più istanze.
- Distribuire tali istanze tra due o più zone di disponibilità.