Saltar al contenido principal

Clúster

Un clúster es el conjunto de nodos que, juntos, forman y ejecutan un almacén. Los nodos intercambian información de pertenencia a través de su puerto de clúster, eligen un líder y se presentan a los clientes como un único almacén.

Qué es un clúster​

Un clúster es el grupo de nodos en ejecución que respalda un almacén. Cada nodo es un proceso; el clúster es el todo que forman en conjunto. Los nodos comparten los datos y el estado de coordinación del almacén, se coordinan entre sí y se comportan como una única unidad lógica — los clientes se conectan a cualquier nodo y el clúster enruta la solicitud al propietario correcto.

Como un almacén es una unidad lógica y un clúster es el conjunto concreto de procesos que lo materializa, los dos se corresponden uno a uno: un almacén está respaldado por un clúster de nodos. Lo que cambia entre un almacén pequeño y uno grande es el número de nodos en su clúster, no cómo lo direccionas.

Pertenencia y el líder​

Los nodos de un clúster se mantienen al tanto unos de otros. Intercambian información de pertenencia — qué nodos existen y si están sanos — mediante gossip a través de su puerto de clúster (desde 7811 en adelante), el mismo canal peer-to-peer que usan para la replicación. Esto está separado del puerto de cliente al que se conectan las aplicaciones.

De entre los miembros vivos y sanos, el clúster elige un líder. El líder es el nodo responsable de generar el mapa de particiones autoritativo — la asignación de particiones a nodos primarios y réplicas — y de difundirlo al resto. Solo los miembros vivos y autoritativos aparecen en ese mapa; los nodos sospechosos, muertos o inalcanzables se excluyen, y los estados transitorios como un failover en curso se rastrean por separado en lugar de codificarse en el mapa.

Cómo se forma y cambia un clúster​

Un clúster se forma cuando se crea un almacén y sus nodos arrancan y se descubren entre sí. A medida que cambia la pertenencia, el clúster se reconfigura: el número total de particiones se recalcula en cada cambio de pertenencia como particiones por nodo × nodos vivos, de modo que sigue la forma del clúster en lugar de quedar congelado en el momento de la creación. Cuando un nodo se une, las particiones se rebalancean hacia él; cuando se pierde el nodo de un primario, su réplica es promovida y el clúster reconstruye una réplica nueva para restaurar el factor de replicación.

nota

En modo supervisor, haces crecer el clúster añadiendo un servidor completo con Add-ZrServer, no añadiendo nodos individuales. El servidor levanta su parte de procesos de nodo, y el mapa de particiones del clúster se expande para incluirlos.

El clúster frente a los términos que los lectores confunden con él​

El clúster es la pertenencia en ejecución; los términos vecinos son, o bien la vista del cliente sobre él, o bien las piezas que contiene.

  • Un clúster no es un workspace. Un workspace es un nombre del lado del cliente para saber cómo llegar a los managers; el clúster es el conjunto real de nodos.
  • Un clúster no es un servidor. Un servidor es una máquina; un clúster abarca los nodos repartidos por uno o varios servidores.
  • Un clúster no es un almacén. El almacén es la unidad lógica de datos que lees y escribes; el clúster es el grupo de nodos que lo ejecuta.
TérminoAlcanceRol en el modelo
WorkspaceLado del clienteNombra los managers usados para llegar al clúster
ServidorUna máquinaEjecuta y posee procesos de nodo
ClústerUn grupo de nodosForma y ejecuta un almacén; elige un líder
NodoUn procesoUn miembro del clúster; contiene particiones
AlmacénLógicoLos datos que el clúster presenta a los clientes
ParticiónUna porción del keyspaceUna unidad que el clúster asigna a los nodos
RéplicaUna copia de una particiónRedundancia que el clúster mantiene entre nodos

Próximos pasos​