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.
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érmino | Alcance | Rol en el modelo |
|---|---|---|
| Workspace | Lado del cliente | Nombra los managers usados para llegar al clúster |
| Servidor | Una máquina | Ejecuta y posee procesos de nodo |
| Clúster | Un grupo de nodos | Forma y ejecuta un almacén; elige un líder |
| Nodo | Un proceso | Un miembro del clúster; contiene particiones |
| Almacén | Lógico | Los datos que el clúster presenta a los clientes |
| Partición | Una porción del keyspace | Una unidad que el clúster asigna a los nodos |
| Réplica | Una copia de una partición | Redundancia que el clúster mantiene entre nodos |