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_DIRECT y 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ónPor defectoQué hace
--coresnúcleos lógicosUn hilo por núcleo, igual en todos los nodos
--cpu-listCPU permitidas al procesoEn qué CPU se fija cada hilo
--memory-limit75 % del mínimo entre la memoria física y el límite del cgroupMemoria total del nodo
--io-executorautouring o threads
--direct-ioautoon 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 root fuera 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 /metrics a Prometheus y /healthz a 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