Edge for Private Cloud v4.18.05
Los conjuntos de ZooKeeper están diseñados para seguir funcionando, sin pérdida de datos, a pesar de la pérdida de uno o más nodos de ZooKeeper. Esta resiliencia puede usarse de manera eficaz para realizar mantenimiento en Nodos de ZooKeeper sin tiempo de inactividad del sistema.
Información acerca de ZooKeeper y Edge
En Edge, los nodos de ZooKeeper contienen datos de configuración acerca de la ubicación y los distintos componentes de Edge y les notifica sobre los cambios de configuración. Todo las topologías de Edge compatibles para un sistema de producción especifican que se usan al menos tres ZooKeeper nodos.
Usa las propiedades ZK_HOSTS
y ZK_CLIENT_HOSTS
en el
Archivo de configuración perimetral para especificar los nodos de ZooKeeper. Para el examen
ZK_HOSTS="$IP1 $IP2 $IP3" ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3"
Aquí:
ZK_HOSTS
especifica las direcciones IP de los nodos de ZooKeeper. Las direcciones IP deben aparecer en el mismo orden en todos los nodos de ZooKeeper.En un entorno de varios centros de datos, enumera todos los nodos de ZooKeeper de todos los centros de datos.
ZK_CLIENT_HOSTS
especifica las direcciones IP de los nodos de ZooKeeper que usa esto. Centro de datos únicamente. Las direcciones IP deben estar enumeradas en el mismo orden en todos los nodos de ZooKeeper en el centro de datos.En una única instalación de centro de datos, estos son los mismos nodos especificados por ZK_HOSTS. En una multicentro de datos, el archivo de configuración perimetral de cada centro de datos debe enumerar solo los de ZooKeeper para ese centro de datos.
De forma predeterminada, todos los nodos de ZooKeeper se designan como nodos voter. Eso significa que los nodos
participan en la elección del líder de ZooKeeper. Puedes incluir el
El modificador :observer
con ZK_HOSTS
indica que
la nota es un nodo observador y no un votante. Un nodo observador no participa en
la elección del líder.
Por lo general, debes especificar el modificador :observer
cuando creas varios datos perimetrales
o cuando un único centro de datos tiene una gran cantidad de nodos de ZooKeeper. Por ejemplo, en una
La instalación perimetral de 12 hosts con dos centros de datos, ZooKeeper en el nodo 9 del centro de datos 2 es
observador:
A continuación, debes usar los siguientes parámetros de configuración en el archivo de configuración del Centro de datos 1:
ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer" ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3"
Y para centros de datos
ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer" ZK_CLIENT_HOSTS="$IP7 $IP8 $IP9"
Acerca de los líderes, los seguidores votantes y observadores
En una instalación de ZooKeeper de varios nodos, uno de los nodos se designa como líder. Todos los demás nodos de ZooKeeper se designan como seguidores. Si bien las lecturas pueden ocurrir desde cualquier En el nodo de ZooKeeper, todas las solicitudes de escritura se reenvían al líder. Por ejemplo, si se agrega un mensaje Se agregó el procesador a Edge. Esa información se escribe al líder de ZooKeeper. Todos los seguidores y, luego, replicar los datos.
En el momento de la instalación de Edge, debes designar cada nodo de ZooKeeper como observador o votante. El todos los nodos de ZooKeeper votantes eligen el líder. El único requisito para la elección de un es que debe haber un quórum disponible de nodos votantes de ZooKeeper en funcionamiento. R quórum significa que más de la mitad de todos los nodos de ZooKeeper que votan, en todos los centros de datos, se y cómo funcionan.
Si no hay un quórum de nodos votantes disponible, no se puede elegir un líder. En este caso, Zookeeper no puede entregar solicitudes. Eso significa que no puedes realizar una solicitud a la administración perimetral Servidor, procesa las solicitudes a la API de Management o accede a la IU de Edge hasta que se restablezca el quórum.
Por ejemplo, en una sola instalación de centro de datos, sucede lo siguiente:
- Instalaste tres nodos de ZooKeeper
- Todos los nodos de ZooKeeper son votantes
- El quórum consta de dos nodos votantes en funcionamiento
- Si solo hay un nodo votante disponible, el ensamble de ZooKeeper no podrá funcionar.
En una instalación con dos centros de datos:
- Instalaste tres nodos de ZooKeeper por centro de datos, lo que da un total de seis nodos.
- El centro de datos 1 tiene tres nodos votantes
- El centro de datos 2 tiene dos nodos votantes y un nodo observador
- El quórum se basa en los cinco votantes de ambos centros de datos y, por lo tanto, tres nodos votantes en funcionamiento
- Si solo hay dos nodos votantes disponibles, entonces el ensamble de ZooKeeper no puede función
Agregar nodos como votantes o observadores
Es posible que los requisitos del sistema requieran que se agreguen nodos de ZooKeeper adicionales a Edge. instalación. Documentación sobre cómo agregar nodos de ZooKeeper se describe cómo agregar nodos adicionales de ZooKeeper a Edge. Al agregar nodos de ZooKeeper, debes debe tener en cuenta el tipo de nodos que se agregarán: observador o votante.
Debe asegurarse de tener suficientes nodos votantes. Así, si uno o más nodos votantes están inactivos, que el conjunto ZooKeeper puede seguir funcionando, lo que significa que sigue existiendo un quórum de nodos votantes. disponibles. Si agregas nodos votantes, aumentas el tamaño del quórum y, por lo tanto, puedes tolerar que más nodos votantes dejen de funcionar.
Sin embargo, agregar nodos votantes adicionales puede afectar negativamente el rendimiento de escritura debido a que las operaciones requieren que el quórum llegue a un acuerdo con respecto al líder. El tiempo que lleva determinar la líder se basa en la cantidad de nodos votantes, que aumenta a medida que se agregan más nodos votantes. Por lo tanto, no es conveniente que todos los nodos sean votantes.
En lugar de agregar nodos votantes, puedes agregar nodos observadores. Agregar nodos observadores aumenta el rendimiento general de la lectura del sistema sin aumentar la sobrecarga de elegir a un líder porque observadores no votan y no afectan el tamaño del quórum. Por lo tanto, si un nodo observador no afecta la capacidad del conjunto para elegir a un líder. Sin embargo, perder observador pueden provocar una degradación en el rendimiento de lectura del ensamble ZooKeeper porque menos nodos disponibles para atender las solicitudes de datos.
En un único centro de datos, Apigee recomienda que no haya más de cinco votantes, independientemente de de la cantidad de nodos observadores. En dos centros de datos, Apigee recomienda que no haya más de nueve votantes (cinco en un centro de datos y cuatro en el otro). Luego, puedes agregar tantas observador, según sea necesario para los requisitos del sistema.
Consideraciones de mantenimiento
El mantenimiento de ZooKeeper puede realizarse en un ensamble completamente funcional sin tiempo de inactividad si se se realiza en un solo nodo a la vez. Asegúrate de que solo un nodo de ZooKeeper esté inactivo en en cualquier momento, puede asegurarse de que siempre haya un quórum de nodos votantes disponible para elegir un de la empresa.
Mantenimiento durante varios centros de datos
Cuando trabaje con varios centros de datos, recuerde que el ensamble de ZooKeeper no para distinguir los centros de datos. Los ensamblados de ZooKeeper visualizan todos los nodos de ZooKeeper en todos los centros de datos como un ensamble.
La ubicación de los nodos votantes en un centro de datos determinado no es un factor cuando ZooKeeper realiza para los cálculos de quórum. Los nodos individuales pueden pasar por los centros de datos, pero siempre que haya preservado en todo el ensamble, ZooKeeper seguirá funcionando.
Implicaciones del mantenimiento
En varias ocasiones, tendrás que eliminar un nodo de ZooKeeper por mantenimiento, ya sea un votante o un nodo observador. Por ejemplo, es posible que debas actualizar la versión de Edge en el nodo es posible que la máquina que aloja ZooKeeper falle o que el nodo deje de estar disponible para algún otro por ejemplo, un error de red.
Si el nodo que se cae es un nodo observador, es posible que haya una leve degradación en el rendimiento del ensamble de ZooKeeper hasta que se restablezca el nodo. Si el nodo es un votante nodo, puede afectar la viabilidad del ensamble de ZooKeeper debido a la pérdida de un nodo que participa en el proceso de elección de líder. Independientemente del motivo por el que pasa el nodo votante es importante mantener un quórum de nodos votantes disponibles.
Procedimiento de mantenimiento
Debes considerar realizar cualquier procedimiento de mantenimiento solo después de asegurarte de que un ZooKeeper el ensamble sea funcional. Esto supone que los nodos observadores son funcionales y que hay suficientes nodos votantes disponibles durante el mantenimiento para retener un quórum.
Cuando se cumplen estas condiciones, un ensamble de ZooKeeper de tamaño arbitrario puede tolerar la de un nodo en cualquier momento sin pérdida de datos ni un impacto significativo en el rendimiento. Esta significa que tienes la libertad de realizar el mantenimiento de cualquier nodo del ensamble, siempre y cuando esté en uno por nodo a la vez.
Como parte del mantenimiento, usa el siguiente procedimiento para determinar el tipo de Nodo de ZooKeeper (líder, observador o votante):
- Si no está instalado en el nodo de ZooKeeper, instala nc:
sudo yum install nc
- Ejecuta el siguiente comando nc en el nodo:
echo stat | nc localhost 2181
Donde 2181 es el puerto de ZooKeeper. Deberías ver un resultado en el formulario:
Zookeeper version: 3.4.5-1392090, built on 09/30/2012 17:52 GMT Clients: /a.b.c.d:xxxx[0](queued=0,recved=1,sent=0) Latency min/avg/max: 0/0/0 Received: 1 Sent: 0 Connections: 1 Outstanding: 0 Zxid: 0xc00000044 Mode: follower Node count: 653
En la línea
Mode
del resultado de los nodos, deberías verobserver
,leader
ofollower
(significa un votante que no es el líder) según la configuración de nodos. - Repite los pasos 1 y 2 en cada nodo de ZooKeeper.
Resumen
La mejor manera de realizar el mantenimiento en un ensamble de ZooKeeper es hacerlo un nodo por nodo tiempo. Recordatorio:
- Debes mantener un quórum de nodos votantes durante el mantenimiento para garantizar que ZooKeeper que el ensamble sea funcional.
- Eliminar un nodo observador no afecta el quórum ni la capacidad de elegir un líder.
- El quórum se calcula en todos los nodos de ZooKeeper en todos los centros de datos
- Continúa con el mantenimiento del siguiente servidor después de que el servidor anterior esté en funcionamiento
- Usa el comando
nc
para inspeccionar el nodo de ZooKeeper