DBAtlas · Atlas de operaciones de bases de datos

Instalación de un sharded cluster de MongoDB (config server + shards + mongos)

MongoDBNivel: AvanzadoDuración: 2–3 horas

Sharded cluster para cuando los datos o la carga de escritura superan un único replica set: config server replica set de tres miembros, dos o tres shards replica set y dos routers mongos; autenticación interna con keyfile, autorización, sh.addShard, elección de la shard key, sharding de la colección, balancer y verificación de la distribución. El resultado es un cluster que crece horizontalmente y al que las aplicaciones se conectan solo a través de los mongos. Si los datos caben en un único servidor, la instalación de un replica set es más sencilla y suficiente.

Topología: 3 config servers + 2×3 miembros de shard + 2 mongos (al menos 11 servidores; menos para pruebas)

Antes de empezar

  • Todos los servidores usan el mismo sistema operativo, actualizado; la hora está sincronizada con NTP (chrony). La diferencia de hora entre miembros provoca problemas de sesión y de oplog.
  • La RAM y la CPU coinciden con los valores del formulario (la caché de WiredTiger se calcula según este valor). Hay swap configurada, pero pequeña.
  • El directorio de datos (…) está en un disco/LV independiente, formateado con XFS, montado con noatime y persistente en fstab. ext4 con WiredTiger puede causar problemas de rendimiento.
  • Cada nombre de servidor se resuelve desde todos los servidores y desde los servidores de aplicación (DNS o /etc/hosts). La configuración del replica set usa nombres, no IP.
  • Los puertos …, … y … están abiertos entre los servidores; la red de aplicación llega a estos puertos. Ningún otro servicio usa estos puertos.
  • Los servidores pueden salir por HTTPS a repo.mongodb.org y pgp.mongodb.com, o hay un mirror interno configurado.
  • No existe el paquete mongodb propio del sistema operativo ni una instalación antigua de MongoDB.
  • Desde el primer servidor se puede hacer scp a los demás como root (o con un usuario con sudo) para copiar el keyfile. Si no, traslade el archivo manualmente por un medio seguro.
  • Ha iniciado sesión con privilegios de root o sudo; la ventana de mantenimiento y el plan de snapshot del servidor (vuelta atrás) están listos.
  • La shard key se ha decidido junto con el equipo de la aplicación: campo de filtro de las consultas más frecuentes, cardinalidad alta, distribución equilibrada de los valores. La shard key puede cambiarse después con reshardCollection, pero es costoso.

Fases de la guía

  • Preparación del sistema operativo (todos los servidores) — Hostname: … · Hostname: … · Hostname: … · Hostname: … · Hostname: … · Actualización del sistema y herramientas necesarias …
  • Instalación del software de MongoDB — Añadir el repositorio de MongoDB … · Añadir el repositorio de MongoDB … · Instalar el software de servidor de MongoDB (config servers y shards) · Instalar mongos y mongosh (routers) · Preparar el directorio de datos · Política, etiquetas y puertos de SELinux …
  • Keyfile (autenticación interna del cluster) — Crear el keyfile · Copiar el keyfile a todos los servidores · Permisos del keyfile
  • Config server replica set — mongod.conf (config server): … · Iniciar mongod · rs.initiate (config server)
  • Shard A (replica set shardA) — mongod.conf (shard A): … · Iniciar mongod · rs.initiate (shard A) · Usuario administrador shard-local (shard A)
  • Shard B (replica set shardB) — mongod.conf (shard B): … · Iniciar mongod · rs.initiate (shard B) · Usuario administrador shard-local (shard B)
  • Shard C (replica set shardC) — mongod.conf (shard C): … · Iniciar mongod · rs.initiate (shard C) · Usuario administrador shard-local (shard C)
  • mongos (router) — mongos.conf: … · Servicio systemd de mongos · Iniciar mongos · Crear el administrador del cluster · Añadir los shards (sh.addShard) · Crear el usuario de aplicación
  • Shard key y sharding de la colección — Elección de la shard key (paso de decisión) · Aplicar sharding a la colección · Estado del balancer · Ventana horaria del balancer
  • Verificación — Estado del cluster · Prueba de distribución · Estado del config server replica set · Cadena de conexión de la aplicación
  • Después de la instalación — Rotación de logs · Estrategia de copia de seguridad · Supervisión
Abrir el plan paso a paso para su entorno →