Qué es el quórum en un grupo de marcapasos (Comprender las operaciones de Quórum)

¿Qué es el quórum?

Para que un clúster funcione como se espera, los nodos deben estar de acuerdo con ciertos datos, como qué máquinas son actualmente miembros del clúster, dónde se ejecutan los servicios y qué máquinas utilizan qué recursos.

El método en el que esto se implementa en el Complemento de Alta Disponibilidad de Red Hat es mediante el uso de un esquema de votación por mayoría. Cada nodo de clúster emite un voto si se une correctamente a la comunicación de red corosync y puede comunicarse con los otros nodos que ya participan en el clúster.

El clúster está operativo si más de la mitad de todos los votos posibles se emiten con éxito. El número mínimo de votos necesario para lograr más de la mitad de los votos se denomina quórum. Si se alcanza el quórum, el grupo se considera quórum. Un clúster pierde quórum si la mitad de los nodos o más no pueden comunicarse entre sí.

Cuando se inicia un clúster, todos los nodos del clúster intentan comunicarse entre sí y tratar de alcanzar el quórum. Tan pronto como se forma una mayoría, hay un grupo de quóratos. Todos los demás nodos que no se han unido correctamente al clúster de quórum se vallan con un nodo que tiene quórum. Si un nodo que forma parte del clúster de quóratos ya no puede comunicarse con el clúster, el nodo queda vallado.

¿Por qué se requiere el cálculo del quórum?

Se requiere quórum en situaciones en las que algunos nodos de un clúster no pueden comunicarse con otros nodos determinados. La siguiente ilustración muestra un clúster de cinco nodos que consta de nodos A, B, c, D y E con un servicio que utiliza un sistema de archivos ext4 en almacenamiento compartido. Este servicio se está ejecutando actualmente en el nodo A.

Los nodos D y Eget se separaron de la red privada principal y no pueden comunicarse con los nodos A, B y c. Sin quórum, esos dos nodos decidirán que A, B y C han fallado y necesitan estar cercados (apagados remotamente) para que sus recursos puedan recuperarse. De esta manera, el quórum actúa como una puerta importante antes de la valla.

Fueron el clúster sin esgrima dispositivo, los nodos D y E inmediatamente comenzar la recuperación de recursos, lo que resulta en el mismo sistema de archivos ext4 está montado en dos lugares a la vez, que no es una situación saludable. Esta situación, en la que dos mitades de un cúmulo operan independientemente una de la otra, se conoce como un cerebro dividido.

El cerebro dividido es una preocupación particular en los clústeres de dos nodos, ya que si uno de ellos falla, el otro nodo no consiste en la mayoría de los nodos del clúster. Se deben tomar medidas especiales para permitir el funcionamiento del clúster de dos nodos y evitar el cerebro dividido.»

Suponiendo que todos los nodos de este ejemplo tienen un voto, esta situación no puede surgir, ya que el nodo D y el nodo E solo tienen dos votos juntos, lo que no es más de la mitad del total de votos (cinco). Esto daría lugar a que el nodo D y el nodo E dejaran de funcionar hasta que se agregara al menos otro voto. Los nodos A, B y c, por otro lado, permanecen activos proporcionando servicio, ya que tienen tres votos combinados, que es más de la mitad del total de votos.

Cálculo de quórum

El quórum se calcula y administra en el Complemento de alta disponibilidad de Red Hat mediante el componente corosync votequorum. El componente votequorum utiliza dos valores para calcular si el clúster es quórum:

  1. Votos esperados: El número de votos esperados si todos los nodos del clúster están en pleno funcionamiento y se comunican entre sí.
  2. Total de votos: El número de votos actualmente presentes. Esto puede ser menor que el número de votos esperados si algunos nodos no están activados o no se comunican con el clúster.

El número de votos necesarios para alcanzar el quórum se basa en los Votos esperados. La siguiente fórmula muestra cuántos votos se requieren para el quórum. En este cálculo, floor() significa redondear siempre hacia abajo.

Quorum = floor(expected votes + 2 + 1)

Ejemplo de cálculo de quórum

En el ejemplo siguiente, se asume un clúster con tres nodos. Un grupo de tres nodos tiene un recuento de votos esperado de tres.

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

En el clúster de tres nodos, debe haber un mínimo de dos nodos en ejecución para lograr quórum.

En el siguiente ejemplo, se asume un clúster con cuatro nodos. Un grupo de cuatro nodos tiene un recuento de votos esperado de cuatro.

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

En el clúster de cuatro nodos, debe haber un mínimo de tres nodos en ejecución para lograr quórum.

Mostrar el estado del quórum

El Complemento de alta disponibilidad de Red Hat proporciona una utilidad completa para mostrar el estado actual del quórum en un clúster: corosync-quorumtool. La herramienta corosync – quorum proporciona una visión general de la información relacionada con el quórum, como los Votos Totales y los Votos Esperados, y muestra si el clúster tiene quórum de un vistazo.

  1. La entrada Nodos proporciona el recuento de nodos de los nodos que pertenecen al clúster.
  2. La entrada Node ID muestra el ID del nodo en el que se ejecutó corosync-quorumtool.
  3. El Quórum de entrada de muestra si el clúster es alcanzar el quórum.
  4. La entrada Votos esperados muestra el número de votos presentes si todos los miembros del clúster configurados están activos en el clúster.
  5. La entrada esperada más alta muestra el recuento más grande de votos esperados vistos en el clúster.
  6. La entrada Total de votos muestra el recuento de votos actualmente presente en el clúster.
  7. La entrada de quórum muestra cuántos votos deben estar presentes como mínimo para que el clúster permanezca en quórum.
  8. La entrada Flags muestra cualquier propiedad relacionada con el quórum que esté establecida actualmente en el clúster. Si el clúster está quórum, entonces el Quórum de propiedad se muestran. También se mostrarán características especiales adicionales en este campo cuando se configure, como LastManstanding o WaitForAll.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.