Condividi tramite


Considerazioni sulla pianificazione della capacità del cluster Service Fabric

La pianificazione della capacità del cluster è importante per ogni ambiente di produzione di Service Fabric. Ecco gli aspetti chiave da considerare:

  • Numero iniziale e proprietà dei tipi di nodo cluster

  • Livello di durabilità di ogni tipo di nodo, che determina i privilegi delle macchine virtuali di Service Fabric all'interno dell'infrastruttura di Azure

  • Livello di affidabilità del cluster, che determina la stabilità dei servizi di sistema di Service Fabric e della funzione complessiva del cluster

Questo articolo illustra i punti decisionali significativi per ognuna di queste aree.

Numero iniziale e proprietà dei tipi di nodo del cluster

Un tipo di nodo definisce le dimensioni, il numero e le proprietà di un set di nodi (macchine virtuali) nel cluster. Ogni tipo di nodo definito in un cluster di Service Fabric è mappato a un set di scalabilità di macchine virtuali.

Poiché ogni tipo di nodo rappresenta un set di scalabilità distinto, è possibile aumentare o ridurre le prestazioni in modo indipendente e avere diversi set di porte aperte e metriche per la capacità diverse. Per altre informazioni sulla relazione tra i tipi di nodo e i set di scalabilità di macchine virtuali, vedere Tipi di nodi del cluster di Service Fabric.

Ogni cluster richiede un tipo di nodo primario, che esegue servizi di sistema critici che forniscono funzionalità della piattaforma di Service Fabric. Per quanto sia possibile usare anche i tipi di nodo primari per eseguire le applicazioni, è consigliabile dedicarli esclusivamente ai servizi di sistema in esecuzione.

I tipi di nodi non primari possono essere usati per definire ruoli applicazione (ad esempio servizi front-end e back-end) e isolare fisicamente i servizi all'interno di un cluster. I cluster di Service Fabric possono avere zero o più tipi di nodo non primari.

Il tipo di nodo primario viene configurato usando l'attributo isPrimary nella definizione del tipo di nodo nel modello di distribuzione di Azure Resource Manager. Per l'elenco completo delle proprietà del tipo di nodo, vedere Oggetto NodeTypeDescription. Ad esempio, aprire qualsiasi file AzureDeploy.json in Esempi di cluster di Service Fabric e in Trova nella pagina cercare l'oggetto nodeTypes.

Considerazioni sulla pianificazione dei tipi di nodo

Il numero di tipi di nodi iniziali dipende dallo scopo del cluster e dalle applicazioni e dai servizi in esecuzione. Prendere in considerazione le domande seguenti:

  • L'applicazione ha più servizi, alcuni dei quali devono essere pubblici o per Internet?

    Le applicazioni tipiche contengono un servizio gateway front-end che riceve l'input da un client e uno o più servizi back-end che comunicano con i servizi front-end, con reti separate tra i servizi front-end e back-end. Questi casi richiedono in genere tre tipi di nodo: un tipo di nodo primario e due tipi di nodo non primario (uno per il servizio front-end e l'altro per il back-end).

  • I servizi (che costituiscono l'applicazione) hanno esigenze diverse per l'infrastruttura, ad esempio cicli di CPU più elevati o una quantità maggiore di RAM?

    Spesso, il servizio front-end può essere eseguito in macchine virtuali più piccole (ad esempio di dimensioni D2), con porte aperte a Internet. I servizi back-end a elevato utilizzo di calcolo potrebbero dover essere eseguiti in macchine virtuali di dimensioni maggiori (come D4, D6, D15) non connesse a Internet. La definizione di tipi di nodo diversi per questi servizi consente di rendere più efficiente e sicuro l'uso delle macchine virtuali di Service Fabric sottostanti e di ridimensionarle in modo indipendente. Per altre informazioni sulla stima della quantità di risorse necessarie, vedere Pianificazione della capacità per le applicazioni di Service Fabric

  • Uno dei servizi dell'applicazione deve aumentare il numero di istanze a oltre 100 nodi?

    Un tipo a nodo singolo non può essere ridimensionato in modo affidabile a un valore superiore a 100 nodi per ogni set di scalabilità di macchine virtuali per le applicazioni di Service Fabric. L'esecuzione di più di 100 nodi richiede set di scalabilità di macchine virtuali aggiuntivi (e quindi tipi di nodi aggiuntivi).

  • Il cluster si estenderà tra le zone di disponibilità?

    Service Fabric supporta cluster che si estendono su zone di disponibilità distribuendo tipi di nodo aggiunti a zone specifiche, garantendo così la disponibilità elevata delle applicazioni. Le zone di disponibilità richiedono requisiti minimi e di pianificazione aggiuntivi dei tipi di nodo. Per informazioni, vedere Topologia per lo spanning di un tipo di nodo primario tra le zone di disponibilità.

Quando si determinano il numero e le proprietà dei tipi di nodo per la creazione iniziale del cluster, tenere presente che è sempre possibile aggiungere, modificare o rimuovere i tipi di nodo (non primari) dopo la distribuzione del cluster. I tipi di nodo primario possono anche essere ridimensionati verso l'alto o verso il basso nei cluster in esecuzione, anche se a tale scopo è necessario creare un nuovo tipo di nodo, spostare il carico di lavoro e quindi rimuovere il tipo di nodo primario originale.

Un'ulteriore considerazione per le proprietà del tipo di nodo è il livello di durabilità, che determina i privilegi delle macchine virtuali di un tipo di nodo all'interno dell'infrastruttura di Azure. Usare le dimensioni delle macchine virtuali scelte per il cluster e il numero di istanze assegnato per i singoli tipi di nodo per determinare il livello di durabilità appropriato per ognuno dei tipi di nodo, come descritto di seguito.

Caratteristiche di durabilità del cluster

Il livello di durabilità designa i privilegi delle macchine virtuali di Service Fabric con l'infrastruttura di Azure sottostante. Questo privilegio consente a Service Fabric di sospendere qualsiasi richiesta di infrastruttura a livello di macchina virtuale, ad esempio il riavvio, la ricreazione dell'immagine o la migrazione, che influisce sui requisiti quorum per i servizi di sistema di Service Fabric e i servizi con stato.

Importante

Il livello di durabilità viene impostato per ogni tipo di nodo. Se non è specificato alcun valore, verrà usato il livello Bronze. I carichi di lavoro di produzione richiedono un livello di durabilità Silver o Gold per evitare la perdita di dati dalle richieste di infrastruttura a livello di macchina virtuale.

La tabella seguente elenca i livelli di durabilità di Service Fabric, i relativi requisiti e le offerte.

Livello di durabilità Numero minimo richiesto di macchine virtuali Dimensioni delle macchine virtuali supportate Aggiornamenti al set di scalabilità di macchine virtuali Aggiornamenti e manutenzione avviati da Azure
Oro 5 Dimensioni del nodo completo dedicate a un singolo cliente: dimensioni di macchina virtuale disponibili Può essere ritardato fino all'approvazione da parte del cluster di Service Fabric Può essere sospeso per 2 ore per ogni dominio di aggiornamento, per concedere più tempo per il ripristino delle repliche da errori precedenti
Argento 5 Macchine virtuali di un singolo core o superiore con almeno 50 GB di SSD locale Può essere ritardato fino all'approvazione da parte del cluster di Service Fabric Non può essere ritardato per un periodo di tempo significativo
Bronzo 1 Macchine virtuali con almeno 50 GB di SSD locale Non verrà ritardato dal cluster di Service Fabric Non può essere ritardato per un periodo di tempo significativo

Nota

Il numero minimo di macchine virtuali indicato in precedenza è un requisito necessario per ogni livello di durabilità. Sono disponibili convalide sul posto che impediranno la creazione o la modifica di set di scalabilità di macchine virtuali esistenti che non soddisfano questi requisiti.

Avviso

Con la durabilità Bronze, l'aggiornamento automatico dell'immagine del sistema operativo non è disponibile. Anche se l'applicazione di orchestrazione patch (destinata solo ai cluster non ospitati in Azure) non è consigliata per i livelli di durabilità Silver o superiori, è l'unica opzione per automatizzare gli aggiornamenti di Windows rispetto ai domini di aggiornamento di Service Fabric.

Importante

Indipendentemente dal livello di durabilità, l'esecuzione di un'operazione di Deallocazione in un set di scalabilità di macchine virtuali distruggerà il cluster.

Bronzo

I tipi di nodo in esecuzione con durabilità Bronze non ottengono privilegi. Ciò significa che i processi di infrastruttura che influiscono sui carichi di lavoro con stato non verranno interrotti o posticipati. Usare il livello di durabilità Bronze solo per i tipi di nodo che eseguono carichi di lavoro senza stato. Per i carichi di lavoro di produzione è consigliabile eseguire il livello Silver o superiore.

Silver e Gold

Usare la durabilità Silver o Gold per tutti i tipi di nodo che ospitano servizi con stato che si prevede verranno dimensionati di frequente e in cui si desidera che le operazioni di distribuzione vengano posticipate e la capacità vengano ridotte a favore della semplificazione del processo. Gli scenari scale-out non devono influire sulla scelta del livello di durabilità.

Vantaggi

  • Riducono il numero dei passaggi necessari in un'operazione di riduzione del numero di istanze. La disattivazione del nodo e Remove-ServiceFabricNodeState vengono chiamati automaticamente.
  • Riduce il rischio di perdita di dati a causa delle operazioni di modifica delle dimensioni delle macchine virtuali sul posto e delle operazioni dell'infrastruttura di Azure.

Svantaggi

  • Le distribuzioni nel set di scalabilità di macchine virtuali e in altre risorse di Azure correlate possono subire ritardi o timeout oppure essere interamente bloccate da problemi nel cluster o a livello di infrastruttura.
  • Le disattivazioni automatizzate dei nodi durante le operazioni sull'infrastruttura di Azure aumentano il numero di eventi del ciclo di vita della replica, ad esempio di scambi di nodi primari.
  • Accetta nodi fuori servizio per determinati periodi di tempo durante le attività di manutenzione dell'hardware o gli aggiornamenti del software della piattaforma Azure. Quando queste attività sono in corso, possono essere visibili nodi con stato Disabilitazione in corso o Disabilitato. Ciò riduce temporaneamente la capacità del cluster, ma non dovrebbe influire sulla disponibilità del cluster o delle applicazioni.

Procedure consigliate per i tipi di nodo Silver e Gold

Seguire queste indicazioni per la gestione dei tipi di nodo con durabilità Silver o Gold:

  • Mantenere sempre integri il cluster e le applicazioni e verificare che le applicazioni rispondano in modo tempestivo a tutti gli eventi del ciclo di vita della replica del servizio, ad esempio al blocco della replica in compilazione.
  • Adottare modi più sicuri per eseguire una modifica delle dimensioni dell'SKU di macchine virtuali (aumento/riduzione delle prestazioni). La modifica delle dimensioni della macchina virtuale di un set di scalabilità di macchine virtuali richiede un'attenta pianificazione e molta cautela. Per informazioni, vedere Aumentare le prestazioni di un tipo di nodo di Service Fabric
  • Mantenere un numero minimo di cinque nodi per tutti i set di scalabilità di macchine virtuali con livello di durabilità Gold o Silver abilitato. Se si supera questa soglia, il cluster entra nello stato di errore e sarà necessario pulire manualmente lo stato (Remove-ServiceFabricNodeState) per i nodi rimossi.
  • Ogni set di scalabilità di macchine virtuali con livello di durabilità Silver o Gold deve essere mappato al proprio tipo di nodo del cluster di Service Fabric. Il mapping di più set di scalabilità di macchine virtuali a un singolo tipo di nodo impedirà il corretto funzionamento del coordinamento tra il cluster di Service Fabric e l'infrastruttura di Azure.
  • Non eliminare istanze di VM casuali. Usare sempre la funzionalità di riduzione delle prestazioni del set di scalabilità di macchine virtuali. L'eliminazione di istanze di VM causali può creare squilibri nella distribuzione delle istanze di VM tra domini di aggiornamento e domini di errore. Tale squilibrio potrebbe influire negativamente sulla capacità del sistema di bilanciare correttamente il carico tra istanze dei servizi e repliche dei servizi.
  • Se si usa la scalabilità automatica, impostare le regole in modo che le operazioni di riduzione del numero di istanze (ossia la rimozione di istanze di VM) vengano eseguite su un solo nodo alla volta. Il ridimensionamento in più istanze alla volta non è sicuro.
  • In caso di eliminazione o deallocazione delle macchine virtuali nel tipo di nodo primario, non ridurre mai il conteggio delle macchine virtuali allocate al di sotto del numero richiesto dal livello di affidabilità. Queste operazioni verranno bloccate indefinitamente in un set di scalabilità con un livello di durabilità di Silver o Gold.

Modifica dei livelli di durabilità

All'interno di determinati vincoli, è possibile modificare il livello di durabilità dei tipi di nodo:

  • Non è possibile effettuare il downgrade al livello Bronze dei tipi di nodo con i livelli di durabilità Silver o Gold.
  • Il downgrade dei tipi di nodo con livello di durabilità Gold a Silver non è supportato.
  • L'aggiornamento dal livello Bronze al livello Silver o Gold può richiedere alcune ore.
  • Quando si modifica il livello di durabilità, assicurarsi di aggiornarlo sia nella configurazione dell'estensione di Service Fabric nella risorsa del set di scalabilità di macchine virtuali che nella definizione del tipo di nodo nella risorsa cluster di Service Fabric. Questi valori devono corrispondere.

Un'altra considerazione per la pianificazione della capacità è il livello di affidabilità per il cluster, che determina la stabilità dei servizi di sistema e del cluster complessivo, come descritto nella sezione successiva.

Caratteristiche di affidabilità del cluster

Il livello di affidabilità del cluster determina il numero di repliche dei servizi di sistema in esecuzione nel tipo di nodo primario del cluster. Più repliche sono presenti, più affidabili sono i servizi di sistema (e quindi il cluster nel suo complesso).

Importante

Il livello di affidabilità viene impostato a livello di cluster e determina il numero minimo di nodi del tipo di nodo primario. I carichi di lavoro di produzione richiedono un livello di affidabilità Silver (maggiore o uguale a cinque nodi) o superiore.

Il livello di affidabilità può avere i valori seguenti:

  • Platinum: i servizi di sistema vengono eseguiti con un numero di set di repliche di destinazione pari a nove
  • Gold: i servizi di sistema vengono eseguiti con un numero di set di repliche di destinazione pari a sette
  • Silver: i servizi di sistema vengono eseguiti con un numero di set di repliche di destinazione pari a cinque
  • Bronze: i servizi di sistema vengono eseguiti con un numero di set di repliche di destinazione pari a tre

Ecco la raccomandazione per la scelta del livello di affidabilità. Il numero di nodi di inizializzazione viene anche impostato sul numero minimo di nodi per un livello di affidabilità.

Numero di nodi Livello di affidabilità
1 Non specificare il parametro reliabilityLevel: verrà calcolato dal sistema.
3 Bronzo
5 o 6 Argento
7 o 8 Oro
Da 9 in su Platino

Quando si aumentano o riducono le dimensioni del cluster (la somma delle istanze di VM in tutti i tipi di nodi), è consigliabile aggiornare l'affidabilità del cluster da un livello a un altro. Così facendo si attivano gli aggiornamenti del cluster necessari per modificare il totale di set di repliche dei servizi di sistema. Attendere che l'aggiornamento in corso venga completato prima di apportare altre modifiche al cluster, come l'aggiunta di nodi. È possibile monitorare lo stato di avanzamento dell'aggiornamento in Service Fabric Explorer oppure eseguendo Get-ServiceFabricClusterUpgrade.

Pianificazione della capacità per l'affidabilità

Le esigenze di capacità del cluster saranno determinate dai requisiti specifici di carico di lavoro e affidabilità. Questa sezione fornisce indicazioni generali per iniziare a pianificare la capacità.

Dimensionamento delle macchine virtuali

Per i carichi di lavoro di produzione, è consigliabile usare le dimensioni della macchina virtuale (SKU) con quanto segue:

  • Almeno 2 core.
  • Un minimo di 50 GB di unità SSD locale. Tuttavia, alcuni carichi di lavoro, ad esempio quelli che eseguono contenitori Windows, richiedono dischi di dimensioni maggiori.

Per impostazione predefinita, l'unità SSD locale è configurata su 64 GB. Le dimensioni possono essere configurate nell'impostazione MaxDiskQuotaInMB della sezione Diagnostica delle impostazioni del cluster.

Per istruzioni su come modificare le impostazioni di un cluster ospitato in Azure, vedere Aggiornare la configurazione di un cluster in Azure

Per istruzioni su come modificare le impostazioni di un cluster autonomo ospitato in Windows, vedere Aggiornare la configurazione di un cluster autonomo

Quando si scelgono altre dimensioni di macchine virtuali per i carichi di lavoro di produzione, tenere presente i vincoli seguenti:

  • Le dimensioni parziali/singole delle macchine virtuali come Standard A0 non sono supportate.
  • Le dimensioni delle macchine virtuali serie A non sono supportate per motivi di prestazioni.
  • Le macchine virtuali con priorità bassa non sono supportate.
  • Gli SKU con possibilità di burst serie B non sono supportati.

Tipo di nodo primario

I carichi di lavoro di produzione in Azure richiedono almeno cinque nodi primari (istanze di macchine virtuali) e un livello di affidabilità Silver. Si consiglia di dedicare i cluster di tipo di nodo primario a servizi di sistema e utilizzare i vincoli di posizionamento per distribuire l'applicazione ai tipi di nodo secondario.

I carichi di lavoro di test in Azure possono eseguire almeno uno o tre nodi primari. Per configurare un cluster a un nodo, assicurarsi che l'impostazione reliabilityLevel venga omessa nel modello di Resource Manager (non è sufficiente specificare un valore stringa vuoto per reliabilityLevel). Se si configura il cluster a un nodo configurato con il portale di Azure, questa configurazione viene eseguita automaticamente.

Avviso

I cluster a un nodo vengono eseguiti con una configurazione speciale senza affidabilità e in cui la scalabilità orizzontale non è supportata.

tipi di nodi non primari

Il numero minimo di nodi per un tipo di nodo non primario dipende dal livello di durabilità specifico del tipo di nodo. È consigliabile pianificare il numero di nodi (e il livello di durabilità) in base al numero di repliche di applicazioni o servizi da eseguire per il tipo di nodo e a seconda che il carico di lavoro sia con stato o senza stato. Tenere presente che è possibile aumentare o ridurre il numero di macchine virtuali in un tipo di nodo in qualsiasi momento dopo aver distribuito il cluster.

Carichi di lavoro con stato

Per i carichi di lavoro di produzione con stato che usano raccolte affidabili o Reliable Actors di Service Fabric, è consigliabile usare almeno cinque repliche di destinazione. Nello stato stabile viene quindi creata una replica (da un set di repliche) in ogni dominio di errore e in ogni dominio di aggiornamento. In generale, usare il livello di affidabilità impostato per i servizi di sistema come guida per il numero di repliche usato per i servizi con stato.

Carichi di lavoro senza stato

Per i carichi di lavoro di produzione senza stato, la dimensione minima supportata del tipo di nodo non primario è tre per mantenere il quorum, tuttavia è consigliabile usare una dimensione del tipo di nodo pari a cinque.

Passaggi successivi

Prima di configurare il cluster, esaminare Not Allowed (tra i criteri di aggiornamento del cluster) per attenuare la necessità di ricreare il cluster in un secondo momento a causa di impostazioni di configurazione del sistema altrimenti immutabili.

Per altre informazioni sulla pianificazione del cluster, vedere: