Docs Menu
Docs Home
/ /

Agrega un árbitro a un set de réplicas autogestionado

En algunas circunstancias (por ejemplo, si tiene un sistema principal y uno secundario, pero las limitaciones de costo le impiden agregar otro secundario), puede optar por agregar uno mongodinstancia a un conjunto de réplicas como árbitro para votar en las elecciones.

Los árbitros son instancias que forman mongod parte de un conjunto de réplicas, pero no almacenan datos (es decir, no proporcionan redundancia de datos). Sin embargo, pueden participar en las elecciones.

Los árbitros requieren recursos mínimos y no requieren hardware dedicado. Se puede implementar un árbitro en un servidor de aplicaciones o en un host de monitorización.

Importante

No ejecutar un árbitro en sistemas que también sean los hosts de los miembros primarios o secundarios del set de réplicas.

Advertencia

Evita implementar más de un árbitro en un set de réplicas. Consulta Preocupaciones con múltiples árbitros.

Agregar un árbitro a un set de réplicas existente:

No necesitas cambiar el nivel de confirmación de escritura a nivel de clúster antes de iniciar un nuevo set de réplicas con un árbitro.

Tip

Los árbitros no son compatibles con las versiones rápidas trimestrales. Si su implementación incluye árbitros, utilice únicamente Lanzamientos LTS.

Si está utilizando una arquitectura de tres nodos de primario-secundario-árbitro (PSA), considere lo siguiente:

  • El nivel de confirmación de escritura "majority" puede causar problemas de rendimiento si un secundario no está disponible o está retrasado. Para obtener consejos sobre cómo mitigar estos problemas, consulta Mitigar problemas de rendimiento con un set de réplicas de PSA autogestionado.

  • Si estás utilizando un "majority" global por defecto y el nivel de confirmación de escritura es menor que el tamaño de la mayoría, tus consultas pueden devolver datos obsoletos (no completamente replicados).

Un árbitro no almacena datos, pero hasta que el proceso mongod del árbitro se añada al set de réplicas, el árbitro actuará como cualquier otro proceso de mongod y se iniciará con un conjunto de archivos de datos y con un journalde tamaño completo.

Advertencia

Antes de vincular la instancia a una dirección IP de acceso público, se debe asegurar el clúster contra accesos no autorizados. Para obtener una lista completa de recomendaciones de seguridad, se debe consultar Checklist de seguridad para implementaciones autogestionadas. Como mínimo, se debe considerar habilitar la autenticación y reforzar la infraestructura de red.

Los binarios de MongoDB, mongod y mongos, se enlazan a localhost por defecto. Si se establece el ajuste del archivo de configuración net.ipv6 o la opción de línea de comandos --ipv6 para el binario, el binario se vincula además a la dirección IPv6 de localhost.

De forma predeterminada,mongod y, que están vinculados a localhost, solo aceptan conexiones de clientes que se ejecutan en el mismo equipo. Este comportamiento de vinculación incluye mongos mongosh y otros miembros de su conjunto de réplicas o clúster fragmentado. Los clientes remotos no pueden conectarse a archivos binarios vinculados únicamente al host local.

Para anular la vinculación por defecto y enlazar a otras direcciones IP, utiliza la configuración del archivo de configuración net.bindIp o la opción de línea de comandos --bind_ip para especificar una lista de nombres de host o direcciones IP.

Advertencia

A partir de MongDB 5.0, los nodos DNS de horizonte dividido que solo están configurados con una dirección IP fallan en la validación de inicio y reportan un error. Consulta disableSplitHorizonIPCheck.

Por ejemplo, la siguiente instancia de mongod se vincula tanto al localhost como al nombre de host My-Example-Associated-Hostname, que está asociado con la dirección IP 198.51.100.1:

mongod --bind_ip localhost,My-Example-Associated-Hostname

Para conectarse a esta instancia, los clientes remotos deben especificar el nombre de host o su dirección IP asociada 198.51.100.1:

mongosh --host My-Example-Associated-Hostname
mongosh --host 198.51.100.1

Importante

Para evitar actualizaciones de configuración debido a cambios en las direcciones IP, utilice nombres de host DNS en lugar de direcciones IP. Es particularmente importante usar un nombre de host DNS en lugar de una dirección IP al configurar miembros de set de réplicas o miembros de clústeres particionados.

Utiliza nombres de host en lugar de direcciones IP para configurar clústeres en un horizonte de red dividido. A partir de MongoDB 5.0, los nodos que solo están configurados con una dirección IP no pasan la validación de inicio y no se inician.

Advertencia

Evita implementar más de un árbitro en un set de réplicas. Consulta Preocupaciones con múltiples árbitros.

Agregar un árbitro a un set de réplicas existente:

No necesitas cambiar el nivel de confirmación de escritura a nivel de clúster antes de iniciar un nuevo set de réplicas con un árbitro.

Importante

Para evitar actualizaciones de configuración debido a cambios en las direcciones IP, utilice nombres de host DNS en lugar de direcciones IP. Es particularmente importante usar un nombre de host DNS en lugar de una dirección IP al configurar miembros de set de réplicas o miembros de clústeres particionados.

Utiliza nombres de host en lugar de direcciones IP para configurar clústeres en un horizonte de red dividido. A partir de MongoDB 5.0, los nodos que solo están configurados con una dirección IP no pasan la validación de inicio y no se inician.

  1. Crea un directorio de datos (por ejemplo, storage.dbPath) para el árbitro. La instancia mongod utiliza el directorio para los datos de configuración. El directorio no contendrá el conjunto de datos. Por ejemplo, crea el directorio /var/lib/mongodb/arb:

    mkdir /var/lib/mongodb/arb
  2. Inicie el árbitro, especificando el directorio de datos y el nombre del conjunto de réplicas al que se unirá. A continuación, se inicia un árbitro usando como /var/lib/mongodb/arb y dbPath como nombre rs del conjunto de réplicas:

    Advertencia

    Antes de vincular la instancia a una dirección IP de acceso público, se debe asegurar el clúster contra accesos no autorizados. Para obtener una lista completa de recomendaciones de seguridad, se debe consultar Checklist de seguridad para implementaciones autogestionadas. Como mínimo, se debe considerar habilitar la autenticación y reforzar la infraestructura de red.

    mongod --port 27017 --dbpath /var/lib/mongodb/arb --replSet rs --bind_ip localhost,<hostname(s)|ip address(es)>
  3. Conéctese al servidor principal y agregue el árbitro al conjunto de réplicas. Utilice el método, como en el siguiente ejemplo, que asume rs.addArb() que m1.example.net es el nombre de host asociado a la dirección IP especificada para el árbitro:

    rs.addArb("m1.example.net:27017")

    Esta operación agrega el árbitro que se ejecuta en el puerto 27017 en el host m1.example.net.

Volver

Implementar un set de réplicas con redundancia geográfica

En esta página