O que é quórum em um cluster pacemaker (compreender as operações de quórum))

o que é quórum?

para que um cluster funcione como esperado, os nós devem estar de acordo em certos fatos, tais como quais máquinas são atualmente membros do cluster, onde os serviços estão funcionando, e quais máquinas estão usando os recursos.

o método em que isto é implementado no “Red Hat High Availability Add-on” é pelo uso de um sistema de votação por maioria. Cada nó de cluster lança um voto se ele se junta com sucesso à comunicação da rede corosync e é capaz de se comunicar com os outros nós que já estão participando do cluster.

o cluster está operacional se mais de metade de todos os votos possíveis são expressos com sucesso. O número mínimo de votos necessários para alcançar mais de metade dos votos é chamado de quórum. Se o quórum for alcançado, o conjunto é considerado quórum. Um conjunto perde quórum se metade dos nós ou mais não conseguem se comunicar uns com os outros.

quando um cluster começa, todos os nós clusters tentam se comunicar uns com os outros e objetivam alcançar quórum. Assim que uma maioria é formada, há um aglomerado de quadra. Todos os outros nós que não se juntaram com sucesso ao aglomerado de quadra são cercados por um nó que tem quórum. Se um nó que é parte do aglomerado de quadra não é capaz de se comunicar mais com o aglomerado, o nó fica vedado.

por que é necessário o cálculo do quórum?

quórum é necessário em situações em que alguns nós em um conjunto não podem se comunicar com certos outros nós. A seguinte ilustração mostra um conjunto de cinco nós consistindo de nós A, B, c, D E E com um serviço que usa um sistema de arquivos ext4 em armazenamento compartilhado. Este serviço está actualmente em execução no nó a.

Os nós D e Eget separou-se da principal rede privada e não pode se comunicar com os nós A, B, e c. Sem quórum, os dois nós de decidir que A, B, e C têm todas as falhas e precisa ser vedado (remotamente desligado), para que seus recursos possam ser recuperados. Desta forma, o quórum funciona como uma porta importante antes da esgrima.

Foram o cluster seja, sem cercas dispositivo, nós D e e começaria imediatamente a recuperação de recursos, resultando no mesmo sistema de arquivos ext4 está sendo montado em dois lugares ao mesmo tempo, que não é uma boa situação. Esta situação, onde duas metades de um aglomerado operam independentemente uma da outra, é referida como um split-brain.

Split-brain is a particular concern in two-node clusters since if either node fails, the other node does not consist of a majority of the nodes in the cluster. Devem ser tomadas medidas especiais para permitir a operação de cluster de dois nós e ainda evitar o split-brain.”

supondo que todos os nós neste exemplo têm um voto, esta situação não pode surgir, uma vez que o nó D e o nó E têm apenas dois votos juntos, o que não é mais de metade do total de votos (cinco). Isso resultaria no nó D e nó e cessando de funcionar até que pelo menos um outro voto foi adicionado. Nós A, B, E c, por outro lado, permanecem ativos prestando serviço, uma vez que têm três votos combinados, que é mais de metade do total de votos.

cálculo do quórum

o quórum é calculado e gerido no chapéu vermelho pela adição de alta disponibilidade pela componente de corosync votequorum. O componente votequorum utiliza dois valores para calcular se o aglomerado for quadrado:

  1. votos esperados: o número de votos esperado se todos os nós de grupo estiverem totalmente operacionais e se comunicarem entre si.
  2. votos totais: o número de votos actualmente presentes. Isto pode ser menor do que o número de votos esperados se alguns nós não estão em alta ou não se comunicar com o conjunto.

o número de votos necessários para alcançar o quórum é baseado em votos esperados. A seguinte fórmula indica o número de votos necessários para o quórum. Neste cálculo, floor() significa sempre arredondar para baixo.

Quorum = floor(expected votes + 2 + 1)

exemplo de cálculo de quórum

no exemplo seguinte, um conjunto com três nós é assumido. Um grupo de três nós tem uma contagem de votos esperada de três.

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

no conjunto de três nós, deve haver um mínimo de dois nós rodando para alcançar quorum.

no exemplo a seguir, um aglomerado com quatro nós é assumido. Um grupo de quatro nós tem uma contagem de votos esperada de quatro.

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

no conjunto de quatro nós, deve haver um mínimo de três nós executando para alcançar quórum.

Exibindo o status de quórum

o “Red Hat High Availability Add-on” fornece um utilitário abrangente para exibir o atual estado de quórum em um conjunto: corosync-quorumtool. O corosync-quorumtool fornece uma visão geral das informações relacionadas ao quórum, tais como votos totais e votos esperados, e mostra se o conjunto é quadrado em um relance.

  1. a entrada de nós fornece a contagem de nós dos nós que pertencem ao aglomerado.
  2. o item de ID do nó mostra o ID do nó no qual corosync-quorumtool foi executado.
  3. a entrada do Forato mostra se o aglomerado é forjado.
  4. a entrada de votos esperada mostra o número de votos que estão presentes se todos os membros configurados do cluster estiverem ativos no cluster.
  5. a entrada mais alta esperada mostra a maior contagem de votos esperados no aglomerado.
  6. a entrada total de votos mostra a contagem de votos atualmente presentes no grupo.
  7. a entrada no Quórum mostra quantos votos precisam estar presentes no mínimo para que o conjunto permaneça quorado.
  8. a entrada das Bandeiras mostra quaisquer propriedades relacionadas com o quórum que estão atualmente definidas no conjunto. Se o aglomerado for decorado, então a propriedade decorada irá aparecer. Recursos especiais adicionais também serão exibidos neste campo quando definido, como o LastManstanding ou WaitForAll.

Deixe uma resposta

O seu endereço de email não será publicado.