Domanda

sto esplorando varie architetture in cluster di calcolo. Alcuni dei più popolari sono:

  1. Master-Slave.
  2. RPC
  3. ...

In master-slave, il modo normale è di impostare una macchina come master e un gruppo di macchine come slave controllati da master. Un particolare algo qui mi ha interessato. Si chiama Leader-Election Algo che ha una certa casualità nella selezione quale delle macchine diventeranno master.

La mia domanda è - Perché qualcuno dovrebbe voler eleggere un macchina master in questo modo? Quali sono i vantaggi di questo approccio hanno paragonato a selezionare manualmente una macchina come master?

È stato utile?

Soluzione

Ci sono alcuni vantaggi con questo algoritmi:

  1. Selezione del nodo di leader sarà fatto dinamicamente così per esempio si può selezionare il nodo con la massima prestazioni, e l'arrivo di nuovi nodi possono essere marche scelta migliore.
  2. Un altro approccio buono per dinamicamente leader di selezione è, se uno di un nodi hanno errore grave (ad esempio PC si sta spegnendo) si dispone di altri scelte e non v'è alcuna necessità di modificare manualmente il leader.

  3. se si seleziona manualmente nodo dovrebbe configurare manualmente tutti gli altri nodi Per utilizzare questo nodo, e anche impostare il loro ora manualmente, ma questo ... Algoritmi vi aiuterà a gestire problemi di temporizzazione.

  4. per esempio (non molto rilevante) perché nella maggior parte dei casi tramite DHCP? troppi configurazioni saranno handeled da questo algoritmi.

Altri suggerimenti

L'idea principale di utilizzare tali algoritmi è quello di sbarazzarsi di configurazioni aggiuntive, aggiungere qualche tipo di flessibilità e la stabilità di tutto il sistema. Ma solitamente (in applicazioni HPC / MPI) nodo master viene selezionata manualmente.

Si supponga che gli algoritmi di selezione master è abbastanza facile - ottenere l'elenco dei sistemi disponibili e selezionare quello con l'indirizzo IP più alto. In questo caso si può facilmente avviare un nuovo processo su uno dei nodi e troverà automaticamente il nodo master.

Un bel esempio di tali idee è il protocollo WCCP "designato proxy" algoritmo di selezione dove il numero di deleghe potrebbe essere flessibile e nodo principale è selezionato nella fase di esecuzione.

Considerando una rete di nodi, dove è fondamentale avere un nodo capo a tutti i tempi. Se gli stampi attuale leader, allora la rete in qualche modo deve scegliere un altro leader. Dato questo scenario ed esigenza ci sono due possibili modi per farlo.

  1. L'approccio sistema centrale, dove v'è un nodo centrale decidere chi sarà il leader. Se gli attuali leader di stampi, allora questo nodo centrale deciderà su chi dovrebbe assumere il ruolo leader. Ma questo è single point of failure, cioè il nodo centrale che è la responsabilità di decidere il leader, scende poi non c'è nessuno lì per selezionare i capi in caso di decesso attuale leader.

  2. Dove, come nello stesso scenario che possiamo utilizzare la selezione capo distribuito, come in tutti i nodi arrivano a un consenso che il leader dovrebbe essere. Quindi non abbiamo bisogno di avere un nodo centrale che decide chi è il leader dovrebbe essere, quindi, eliminando il singolo punto di errore. Quando gli stampi nodo leader, allora ci sarà un modo per rilevare errore del nodo, e quindi ogni nodo avvierà un algoritmo di selezione capo distribuiti, e reciprocamente giungere ad un consenso di eleggere un leader.

Così, in breve, quando si dispone di un sistema che non ha alcun controllo centrale, probabilmente perché il sistema è pensato per essere scalabile, senza dover single point of failure, in quei sistemi di prendere scegliere qualche nodo, vengono utilizzati algoritmi di elezione del leader.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top