Che cosa è quorum in un pacemaker cluster (Understanding Quorum Operations)

Che cos’è il quorum?

Affinché un cluster funzioni come previsto, i nodi devono essere in accordo su determinati fatti, ad esempio quali macchine sono attualmente membri del cluster, dove sono in esecuzione i servizi e quali macchine utilizzano quali risorse.

Il metodo con cui questo viene implementato nell’Add-on Red Hat High Availability è l’uso di uno schema di voto a maggioranza. Ogni nodo cluster emette un voto se si unisce correttamente alla comunicazione di rete corosync ed è in grado di comunicare con gli altri nodi che già partecipano al cluster.

Il cluster è operativo se più della metà di tutti i voti possibili sono stati espressi con successo. Il numero minimo di voti necessari per raggiungere più della metà dei voti è chiamato quorum. Se viene raggiunto il quorum, il cluster viene considerato quorate. Un cluster perde il quorum se metà dei nodi o più non possono comunicare tra loro.

Quando un cluster viene avviato, tutti i nodi del cluster cercano di comunicare tra loro e mirano a raggiungere il quorum. Non appena si forma una maggioranza, c’è un cluster di quorate. Tutti gli altri nodi che non hanno aderito correttamente al cluster quorate vengono recintati da un nodo con quorum. Se un nodo che fa parte del cluster quorate non è più in grado di comunicare con il cluster, il nodo viene recintato.

Perché è richiesto il calcolo del quorum?

Il quorum è richiesto in situazioni in cui alcuni nodi di un cluster non possono comunicare con altri nodi. L’illustrazione seguente mostra un cluster a cinque nodi composto da nodi A, B, c, D ed E con un servizio che utilizza un file system ext4 su storage condiviso. Questo servizio è attualmente in esecuzione sul nodo A.

I nodi D e Eget dividere dalla principale rete privata e non possono comunicare con i nodi A, B, e c. Senza quorum, quei due nodi a decidere A, B, e C sono tutti falliti e devono essere recintato (in remoto spento) in modo che le loro risorse possono essere recuperate. In questo modo, il quorum funge da cancello importante prima della scherma.

Se il cluster fosse privo di un dispositivo di scherma, i nodi D ed E inizierebbero immediatamente a recuperare le risorse, con il risultato che lo stesso file system ext4 viene montato in due punti contemporaneamente, il che non è una situazione salutare. Questa situazione, in cui due metà di un cluster operano indipendentemente l’una dall’altra, viene definita un cervello diviso.

Lo split-brain è una preoccupazione particolare nei cluster a due nodi poiché se uno dei due nodi fallisce, l’altro nodo non è costituito dalla maggioranza dei nodi nel cluster. È necessario adottare misure speciali per consentire il funzionamento del cluster a due nodi ed evitare comunque lo split-brain.”

Supponendo che tutti i nodi in questo esempio abbiano un voto, questa situazione non può sorgere, poiché il nodo D e il nodo E hanno solo due voti insieme, che non sono più della metà dei voti totali (cinque). Ciò comporterebbe che il nodo D e il nodo E cessassero di funzionare fino a quando non fosse stato aggiunto almeno un altro voto. I nodi A, B e c, d’altra parte, rimangono attivi fornendo il servizio, poiché hanno tre voti combinati, che è più della metà dei voti totali.

Calcolo del quorum

Il quorum viene calcolato e gestito nell’Add-on Red Hat High Availability dal componente corosync votequorum. Il componente votequorum utilizza due valori per calcolare se il cluster è quorate:

  1. Voti previsti: il numero di voti previsti se tutti i nodi del cluster sono pienamente operativi e comunicano tra loro.
  2. Voti totali: Il numero di voti attualmente presenti. Questo può essere inferiore al numero di voti previsti se alcuni nodi non sono attivi o non comunicano con il cluster.

Il numero di voti necessari per raggiungere il quorum si basa sui voti previsti. La seguente formula mostra quanti voti sono necessari per il quorum. In questo calcolo, floor () significa arrotondare sempre.

Quorum = floor(expected votes + 2 + 1)

Esempio di calcolo del quorum

Nell’esempio seguente, si assume un cluster con tre nodi. Un cluster a tre nodi ha un conteggio dei voti previsto di tre.

Quorum= floor(expected votes + 2 + 1)Quorum = floor(3 + 2 + 1) Quorum = floor(1.5 + 1) Quorum = floor(2.5) Quorum = 2 

Nel cluster a tre nodi, ci deve essere un minimo di due nodi in esecuzione per raggiungere il quorum.

Nell’esempio seguente, si assume un cluster con quattro nodi. Un cluster a quattro nodi ha un conteggio dei voti previsto di quattro.

Quorum = floor(expected votes + 2 + 1} Quorum = floor(4 + 2 + 1) Quorum = floor(2 + 1} Quorum = floor(3) Quorum = 3

Nel cluster a quattro nodi, ci deve essere un minimo di tre nodi in esecuzione per raggiungere il quorum.

Visualizzazione dello stato del quorum

Il componente aggiuntivo Red Hat High Availability fornisce un’utilità completa per visualizzare lo stato corrente del quorum in un cluster: corosync-quorumtool. corosync-quorumtool fornisce una panoramica delle informazioni relative al quorum, come i voti totali e i voti attesi, e mostra se il cluster è quorate a colpo d’occhio.

  1. La voce Nodi fornisce il numero di nodi dei nodi che appartengono al cluster.
  2. La voce ID nodo mostra l’ID del nodo su cui è stato eseguito corosync-quorumtool.
  3. La voce Quorate mostra se il cluster è quorate.
  4. La voce Voti attesi mostra il numero di voti presenti se tutti i membri del cluster configurati sono attivi nel cluster.
  5. La voce più alta prevista mostra il maggior numero di voti attesi visti nel cluster.
  6. La voce Voti totali mostra il conteggio dei voti attualmente presenti nel cluster.
  7. La voce Quorum mostra quanti voti devono essere presenti al minimo in modo che il cluster rimanga quorate.
  8. La voce Flag mostra tutte le proprietà relative al quorum attualmente impostate nel cluster. Se il cluster è quorate, verrà visualizzata la proprietà Quorate. Ulteriori funzioni speciali verranno visualizzate anche in questo campo quando impostato, come LastManstanding o WaitForAll.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.