Lista para producción
Lo que revisar antes de llevar un clúster de TeselaDB a producción.
Repasa estos puntos antes de que tus aplicaciones usen el clúster en producción, desde las máquinas hasta las copias de seguridad.
Requisitos
- Linux en x86_64 o aarch64. macOS sirve para desarrollar, sin garantías de latencia.
- Discos NVMe. TeselaDB escribe con
O_DIRECTy usa io_uring; si el kernel no lo tiene, usa hilos de E/S y lo dice en el log. - Al menos tres nodos, en máquinas distintas, para que cada rango siga respondiendo si cae uno.
- Relojes sincronizados con NTP. Un nodo cuyo reloj se aleja más de 125 ms de la mediana del clúster cede sus liderazgos y no acepta ninguno hasta volver al margen.
Recursos
| Opción | Por defecto | Qué hace |
|---|---|---|
--cores | núcleos lógicos | Un hilo por núcleo, igual en todos los nodos |
--cpu-list | CPU permitidas al proceso | En qué CPU se fija cada hilo |
--memory-limit | 75 % del mínimo entre la memoria física y el límite del cgroup | Memoria total del nodo |
--io-executor | auto | uring o threads |
--direct-io | auto | on u off |
Red
Abre entre los nodos el puerto 27100, a tus aplicaciones el 27017 y, si la usas, la API REST en el 27080. El puerto de administración 27200 solo debe verlo tu equipo de operación y tu sistema de métricas; Puertos dice qué credenciales pide cada uno.
Seguridad
- No uses
--insecure. - Crea un usuario por aplicación con sus roles y guarda la contraseña de
rootfuera del servidor. - Activa el cifrado en reposo si tus discos no lo hacen ya, como explica Cifrado en reposo.
Operación
- Programa copias con
teseladb admin backup, siguiendo Copias y restauración. - Lleva
/metricsa Prometheus y/healthza tu balanceador, como cuenta Monitorización. - Antes de retirar una máquina, drena su nodo con los pasos de Nodos.
Comprobar
teseladb admin nodes lista todos los nodos como activos. /healthz contesta 200 en cada uno de ellos. Si tu balanceador
consulta /healthz, deja de mandar tráfico a un nodo en cuanto deja de responder.
Problemas frecuentes
- Si un nodo cede todos sus liderazgos y no acepta ninguno, su reloj se ha alejado más de 125 ms de la mediana del clúster. Revisa NTP en esa máquina; el nodo vuelve a aceptarlos cuando el reloj regresa al margen.
- Si un nodo arranca con hilos de E/S y no con io_uring, su kernel no tiene io_uring. Lo dice el log del arranque.
Ver también
- Puertos, con lo que pide cada puerto.
- Desplegar con systemd, para montar los tres nodos.