Panoramica dell'architettura di Cluster Resource ManagerCluster resource manager architecture overview

Il Cluster Resource Manager di Service Fabric è un servizio centrale in esecuzione nel cluster.The Service Fabric Cluster Resource Manager is a central service that runs in the cluster. Gestisce lo stato desiderato dei servizi del cluster, in particolare in relazione all'uso delle risorse e alle regole di selezione.It manages the desired state of the services in the cluster, particularly with respect to resource consumption and any placement rules.

Per gestire le risorse del cluster, Cluster Resource Manager di Service Fabric deve disporre di varie informazioni:To manage the resources in your cluster, the Service Fabric Cluster Resource Manager must have several pieces of information:

  • I servizi esistenti attualmenteWhich services currently exist
  • Ogni uso della risorsa della corrente del servizio (o per impostazione predefinito)Each service's current (or default) resource consumption
  • La capacità residua del clusterThe remaining cluster capacity
  • La capacità dei nodi del clusterThe capacity of the nodes in the cluster
  • La quantità di risorse usate in ogni nodoThe amount of resources consumed on each node

L'uso di risorse di un determinato servizio può cambiare nel tempo; i servizi sono in genere interessati da più di un tipo di risorse.The resource consumption of a given service can change over time, and services usually care about more than one type of resource. Potrebbero essere misurate risorse reali e fisiche tra diversi servizi.Across different services, there may be both real physical and physical resources being measured. I servizi possono tracciare metriche fisiche come il consumo di memoria e del disco.Services may track physical metrics like memory and disk consumption. Più comunemente, i servizi potrebbero occuparsi anche di metriche logiche, ad esempio "WorkQueueDepth" o "TotalRequests".More commonly, services may care about logical metrics - things like "WorkQueueDepth" or "TotalRequests". Nello stesso cluster, è possibile usare le metriche logiche e fisiche.Both logical and physical metrics can be used in the same cluster. Le metriche possono essere condivise tra molti servizi o essere specifiche per un determinato servizio.Metrics can be shared across many services or be specific to a particular service.

Altre considerazioniOther considerations

I proprietari e gli operatori del cluster possono essere diversi dagli autori del servizio e dell'applicazione, anche solo ufficialmente.The owners and operators of the cluster can be different from the service and application authors, or at a minimum are the same people wearing different hats. Quando si sviluppa l'applicazione si conoscono alcuni aspetti riguardanti cosa è necessario.When you develop your application you know a few things about what it requires. Si dispone di una stima delle risorse che verranno usate e come devono essere distribuiti servizi diversi.You have an estimate of the resources it will consume and how different services should be deployed. Ad esempio, il livello del web deve essere eseguito nei nodi esposti a Internet, mentre per i servizi di database non è necessario.For example, the web tier needs to run on nodes exposed to the Internet, while the database services should not. Come esempio aggiuntivo, i servizi web sono probabilmente limitati dalla CPU e dalla rete, mentre la cura di servizi del livello dei dati si occupa maggiormente del consumo della memoria e del disco.As another example, the web services are probably constrained by CPU and network, while the data tier services care more about memory and disk consumption. Tuttavia, la persona che gestisce un evento imprevisto in un sito per quel servizio in produzione, o che gestisce un aggiornamento del servizio, ha un lavoro diverso da fare e richiede strumenti diversi.However, the person handling a live-site incident for that service in production, or who is managing an upgrade to the service has a different job to do, and requires different tools.

I cluster e i servizi sono dinamici:Both the cluster and services are dynamic:

  • Il numero di nodi nel cluster può aumentare e diminuireThe number of nodes in the cluster can grow and shrink
  • Nodi di diversi tipi e dimensioni possono essere aggiunti o rimossiNodes of different sizes and types can come and go
  • I servizi possono essere creati e rimossi e le allocazioni delle risorse desiderate e le regole di selezione possono essere modificateServices can be created, removed, and change their desired resource allocations and placement rules
  • Gli aggiornamenti o altre operazioni di gestione possono passare tramite il cluster nell'applicazione sui livelli dell'infrastrutturaUpgrades or other management operations can roll through the cluster at the application on infrastructure levels
  • Gli errori possono verificarsi in qualsiasi momento.Failures can happen at any time.

Componenti di Cluster Resource Manager e flusso dei datiCluster resource manager components and data flow

Cluster Resource Manager deve monitorare i requisiti di ogni servizio e il consumo di risorse di ogni oggetto di servizio che li compone.The Cluster Resource Manager has to track the requirements of each service and the consumption of resources by each service object within those services. Cluster Resource Manager dispone di due componenti concettuali: agenti in esecuzione su ciascun nodo e un servizio a tolleranza d'errore.The Cluster Resource Manager has two conceptual parts: agents that run on each node and a fault-tolerant service. Gli agenti in ogni nodo monitorano i report di carico dai servizi, li aggregano e li presentano in modo periodico.The agents on each node track load reports from services, aggregate them, and periodically report them. Il servizio Cluster Resource Manager aggrega tutte le informazioni dagli agenti locali e agisce in base alla propria configurazione corrente.The Cluster Resource Manager service aggregates all the information from the local agents and reacts based on its current configuration.

Si veda il diagramma seguente:Let’s look at the following diagram:

Architettura di Resource Balancer
Resource Balancer Architecture

Durante il runtime possono essere apportate numerose modifiche.During runtime, there are many changes that could happen. Ad esempio, si supponga che la quantità di risorse consumate da determinati servizi venga modificata, che alcuni servizi abbiano esito negativo e che alcuni nodi si aggiungano o lascino il cluster.For example, let’s say the amount of resources some services consume changes, some services fail, and some nodes join and leave the cluster. Tutte le modifiche in un nodo vengono aggregate e inviate periodicamente al servizio Cluster Resource Manager (1,2) in cui vengono nuovamente aggregate, analizzate e archiviate.All the changes on a node are aggregated and periodically sent to the Cluster Resource Manager service (1,2) where they are aggregated again, analyzed, and stored. Il servizio esamina tutte le modifiche a intervalli di pochi secondi e determina eventuali azioni necessarie (3).Every few seconds that service looks at the changes and determines if any actions are necessary (3). Ad esempio potrebbe notare che sono stati aggiunti dei nodi vuoti al cluster.For example, it could notice that some empty nodes have been added to the cluster. Di conseguenza, decide di spostare alcuni servizi in tali nodi.As a result, it decides to move some services to those nodes. Cluster Resource Manager potrebbe anche notare che un determinato nodo è sovraccarico o che alcuni servizi presentano anomalie (o sono stati eliminati), liberando risorse altrove.The Cluster Resource Manager could also notice that a particular node is overloaded, or that certain services have failed or been deleted, freeing up resources elsewhere.

Verrà ora descritto il diagramma seguente.Let’s look at the following diagram and see what happens next. Si supponga che Cluster Resource Manager stabilisca che sono necessarie modifiche.Let’s say that the Cluster Resource Manager determines that changes are necessary. Interagisce con altri servizi di sistema (in particolare Gestione failover) per apportare le modifiche necessarie.It coordinates with other system services (in particular the Failover Manager) to make the necessary changes. I comandi necessari vengono quindi inviati ai nodi appropriati (4).Then the necessary commands are sent to the appropriate nodes (4). Ad esempio, si supponga che Resource Manager abbia notato che il nodo 5 è sovraccarico e che abbia pertanto deciso di spostare il servizio B da Node5 a Node4.For example, let's say the Resource Manager noticed that Node5 was overloaded, and so decided to move service B from Node5 to Node4. Alla fine della riconfigurazione (5), il cluster avrà l'aspetto seguente:At the end of the reconfiguration (5), the cluster looks like this:

Architettura di Resource Balancer
Resource Balancer Architecture

Passaggi successiviNext steps

  • Cluster Resource Manager dispone di varie opzioni per descrivere il cluster.The Cluster Resource Manager has many options for describing the cluster. Per altre informazioni a riguardo vedere l'articolo Descrivere un cluster di Service FabricTo find out more about them, check out this article on describing a Service Fabric cluster
  • I compiti primari di Cluster Resource Manager sono il ribilanciamento del cluster e l'applicazione delle regole di selezione.The Cluster Resource Manager's primary duties are rebalancing the cluster and enforcing placement rules. Per altre informazioni sulla configurazione di questi comportamenti, vedere bilanciamento del cluster di Service FabricFor more information on configuring these behaviors, see balancing your Service Fabric cluster