Considerazioni sulla pianificazione della capacità del cluster Service Fabric

La pianificazione della capacità del cluster è importante per ogni ambiente di produzione di Service Fabric. Le considerazioni principali includono:

  • Numero iniziale e proprietà dei tipi di nodi del 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 generale del cluster

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

Numero iniziale e proprietà dei tipi di nodi del cluster

Un tipo di nodo definisce le dimensioni, il numero e le proprietà per 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 è un set di scalabilità distinto, può essere ridimensionato o inattivo in modo indipendente, avere diversi set di porte aperte e avere metriche di capacità diverse. Per altre informazioni sulla relazione tra i tipi di nodi 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 Service Fabric. Anche se è possibile usare anche i tipi di nodi primari per eseguire le applicazioni, è consigliabile dedicarli esclusivamente all'esecuzione dei servizi di sistema.

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

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 l'oggetto NodeTypeDescription . Ad esempio, aprire qualsiasi file AzureDeploy.json in esempi di cluster di Service Fabric e Trovare 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 nonprimario (uno per il servizio front-end e back-end).

  • I servizi che costituiscono l'applicazione hanno esigenze di infrastruttura diverse, ad esempio una ram maggiore o un ciclo di CPU superiore?

    Spesso, il servizio front-end può essere eseguito su macchine virtuali più piccole (dimensioni della macchina virtuale come D2) che dispongono di porte aperte a Internet. I servizi back-end con utilizzo intensivo di calcolo potrebbero dover essere eseguiti in macchine virtuali più grandi (con dimensioni di macchine virtuali come D4, D6, D15) che non sono con connessione Internet. La definizione di diversi tipi di nodo per questi servizi consente di rendere più efficiente e sicuro l'uso delle macchine virtuali di Service Fabric sottostanti e consente loro di ridimensionarli 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 la scalabilità superiore a 100 nodi?

    Un singolo tipo di nodo non può ridimensionare in modo affidabile oltre 100 nodi per ogni set di scalabilità di macchine virtuali per 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 estende tra zone di disponibilità?

    Service Fabric supporta i cluster che si estendono su zone di disponibilità distribuendo i tipi di nodo aggiunti a zone specifiche, garantendo la disponibilità elevata delle applicazioni. zone di disponibilità richiedono requisiti aggiuntivi per la pianificazione del tipo di nodo e i requisiti minimi. Per informazioni dettagliate, vedere Topologia per l'estensione di un tipo di nodo primario tra 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 (nonprimario) dopo la distribuzione del cluster. I tipi di nodi primari possono anche essere ridimensionati o inattivi nei cluster in esecuzione, anche se a tale scopo è necessario creare un nuovo tipo di nodo, spostare il carico di lavoro su e quindi rimuovere il tipo di nodo primario originale.

Un'ulteriore considerazione per le proprietà dei tipi di nodo è il livello di durabilità, che determina i privilegi delle macchine virtuali del tipo di nodo presenti nell'infrastruttura di Azure. Usare le dimensioni delle macchine virtuali scelte per il cluster e il conteggio delle istanze assegnato per 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 reimage 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à è impostato per ogni tipo di nodo. Se non è specificato alcun valore, verrà usato il livello Bronzo . I carichi di lavoro di produzione richiedono un livello di durabilità di Silver o Gold per evitare la perdita di dati da 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 full-node dedicate a un singolo cliente - Dimensioni delle macchine virtuali 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 consentire un tempo aggiuntivo per le 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 è possibile ritardare per qualsiasi periodo di tempo significativo
Bronzo 1 Macchine virtuali con almeno 50 GB di SSD locale Non verrà ritardato dal cluster di Service Fabric Non è possibile ritardare per qualsiasi periodo di tempo significativo

Nota

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

Avviso

Con durabilità bronzo, l'aggiornamento automatico dell'immagine del sistema operativo non è disponibile. Anche se l'applicazione di orchestrazione patch (destinata solo ai cluster ospitati in Azure) non è consigliata per i livelli di durabilità silver o maggiore, è 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 Deallocation in un set di scalabilità di macchine virtuali eliminerà il cluster.

Bronzo

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

Argento e Oro

Usare la durabilità Silver o Gold per tutti i tipi di nodo che ospitano servizi con stato che si prevede di ridimensionare frequentemente e dove si desidera che le operazioni di distribuzione vengano ritardate e la capacità vengano ridotte a favore della semplificazione del processo. Gli scenari di scalabilità orizzontale non devono influire sulla scelta del livello di durabilità.

Vantaggi

  • Riduce il numero di passaggi necessari per le operazioni con scalabilità orizzontale (la disattivazione del nodo e la Remove-ServiceFabricNodeState vengono chiamate automaticamente).
  • Riduce il rischio di perdita di dati a causa delle operazioni di modifica delle dimensioni delle macchine virtuali sul posto e delle operazioni di infrastruttura di Azure.

Svantaggi

  • Le distribuzioni nei set di scalabilità di macchine virtuali e altre risorse di Azure correlate possono essere posticipate o bloccate interamente 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 deve influire sulla disponibilità del cluster o delle applicazioni.

Procedure consigliate per i tipi di nodi di durabilità Silver e Gold

Seguire queste raccomandazioni 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 apportare una modifica delle dimensioni della macchina virtuale (aumentare/ridurre). La modifica delle dimensioni della macchina virtuale di un set di scalabilità di macchine virtuali richiede un'attenta pianificazione e cautela. Per informazioni dettagliate, vedere Aumentare il 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. Il cluster immetterà lo stato di errore se si esegue la scalabilità inferiore a questa soglia 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 macchine virtuali casuali, usare sempre la scalabilità del set di scalabilità di macchine virtuali nella funzionalità. L'eliminazione di istanze di macchine virtuali casuali ha un potenziale di creazione di squilibri nell'istanza della macchina virtuale distribuita tra domini di aggiornamento e domini di errore. Questo squilibrio potrebbe influire negativamente sulla capacità dei sistemi di bilanciare correttamente il carico tra le repliche del servizio/servizio.
  • Se si usa scalabilità automatica, impostare le regole in modo che le operazioni di scalabilità in (rimozione di istanze di macchine virtuali) vengano eseguite solo un nodo alla volta. Il ridimensionamento in più di un'istanza alla volta non è sicuro.
  • Se l'eliminazione o la deallocazione di macchine virtuali nel tipo di nodo primario non riducono mai il numero di macchine virtuali allocate al di sotto del livello di affidabilità richiesto. 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 regolare il livello di durabilità del tipo di nodo:

  • I tipi di nodo con livelli di durabilità di Silver o Gold non possono essere declassati a Bronzo.
  • I tipi di nodi di downgrade con livello di durabilità di Gold to Silver non sono supportati.
  • L'aggiornamento dal livello Bronze al livello Silver o Gold può richiedere alcune ore.
  • Quando si modifica il livello di durabilità, assicurarsi di aggiornarlo nella configurazione dell'estensione di Service Fabric nella risorsa del set di scalabilità di macchine virtuali e nella definizione del tipo di nodo nella risorsa del 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 di servizi di sistema in esecuzione nel tipo di nodo primario del cluster. Più repliche, più affidabili sono i servizi di sistema (e quindi il cluster nel suo complesso).

Importante

Il livello di affidabilità è 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à di Silver (maggiore o uguale a cinque nodi) o superiore.

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

  • Platinum - Servizi di sistema eseguiti con numero di set di repliche di destinazione di nove
  • Gold - I servizi di sistema vengono eseguiti con il numero di set di repliche di destinazione di sette
  • Silver : i servizi di sistema vengono eseguiti con il numero di set di repliche di destinazione di cinque
  • Bronzo : i servizi di sistema vengono eseguiti con il numero di set di repliche di destinazione di tre

Ecco la raccomandazione sulla 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 reliabilityLevel parametro: il sistema lo calcola.
3 Bronzo
5 o 6 Argento
7 o 8 Oro
Da 9 in su Platinum

Quando si aumentano o riducono le dimensioni del cluster (la somma delle istanze di vm in tutti i tipi di nodo), è 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, le dimensioni della macchina virtuale consigliate (SKU) sono standard D2_V2 (o equivalenti) con un minimo di 50 GB di SSD locale, 2 core e 4 GiB di memoria. È consigliabile un minimo di 50 GB di SSD locale, tuttavia alcuni carichi di lavoro (ad esempio quelli che eseguono contenitori Windows) richiederanno dischi più grandi.

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 del cluster di un cluster ospitato in Azure, vedere Aggiornare la configurazione di un cluster in Azure

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

Quando si scelgono altre dimensioni della macchina virtuale per i carichi di lavoro di produzione, tenere presente i vincoli seguenti:

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

Tipo di nodo primario

I carichi di lavoro di produzione in Azure richiedono un minimo di cinque nodi primari (istanze di vm) e un livello di affidabilità di Silver. È consigliabile dedicare il tipo di nodo primario del cluster ai servizi di sistema e usare i vincoli di posizionamento per distribuire l'applicazione nei tipi di nodo secondari.

I carichi di lavoro di test in Azure possono eseguire almeno uno o tre nodi primari. Per configurare un cluster di un nodo, assicurarsi che l'impostazione reliabilityLevel venga omessa nel modello di Resource Manager (specificando il valore stringa vuoto per reliabilityLevel non è sufficiente). Se si configura il cluster di un nodo configurato con 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 nonprimari

Il numero minimo di nodi per un tipo di nodo nonprimario dipende dal livello di durabilità specifico del tipo di nodo. È consigliabile pianificare il numero di nodi (e livello di durabilità) in base al numero di repliche di applicazioni o servizi che si desidera 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 usando raccolte affidabili di Service Fabric o reliable Actors, è consigliabile un numero minimo e di repliche di destinazione di cinque. Con questo, in stato costante si finisce con una replica (da un set di repliche) in ogni dominio di errore e si aggiorna il dominio. In generale, usare il livello di affidabilità impostato per i servizi di sistema come guida per il conteggio delle repliche usato per i servizi con stato.

Carichi di lavoro senza stato

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

Passaggi successivi

Prima di configurare il cluster, esaminare i Not Allowedcriteri di aggiornamento del cluster per attenuare la necessità di ricreare il cluster in un secondo momento a causa di impostazioni di configurazione del sistema non modificabili.

Per altre informazioni sulla pianificazione del cluster, vedere: