Docs Menu
Docs Home
/

Implemente un clúster particionado autogestionado

Este tutorial implica la creación de un nuevo clúster fragmentado que consta de un mongos, el conjunto de réplicas del servidor de configuración y dos conjuntos de réplicas de fragmentos.

Cada miembro de un clúster fragmentado debe poder conectarse a todos los demás miembros del clúster. Esto incluye todos los fragmentos y servidores de configuración. Asegúrese de que los sistemas de red y seguridad, incluidas todas las interfaces y firewalls, permitan estas conexiones.

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.

Si utiliza localhost o su dirección IP como la parte del nombre de host de cualquier identificador de host,debe utilizar ese identificador como configuración de host para cualquier otro componente MongoDB en el clúster.

Por ejemplo, el método toma sh.addShard() el host parámetro para el nombre de host del fragmento de destino. Si host establece localhost en, debe usar localhost como host para todos los demás fragmentos del clúster.

Este tutorial no incluye los pasos necesarios para configurar la autenticación interna/de membresía autoadministrada o el control de acceso basado en roles en implementaciones autoadministradas.

En entornos de producción, los clústeres fragmentados deben emplear como mínimo x.509 de seguridad para la autenticación interna y el acceso del cliente.

Los siguientes pasos implementan un conjunto de réplicas del servidor de configuración.

Para una implementación de producción, implemente un conjunto de réplicas del servidor de configuración con al menos tres miembros. Para realizar pruebas, puede crear un conjunto de réplicas de un solo miembro.

Nota

El conjunto de réplicas del servidor de configuración no debe usar el mismo nombre que ninguno de los conjuntos de réplicas de fragmentos.

Para este tutorial, los miembros del conjunto de réplicas del servidor de configuración están asociados con los siguientes hosts:

Miembro del conjunto de réplicas del servidor de configuración
Nombre del host

Miembro 0

cfg1.example.net

Miembro 1

cfg2.example.net

Miembro 2

cfg3.example.net

1

Al iniciar cada,especifique la configuración ya sea mediante un mongod mongod archivo de configuración o la línea de comando.

Si utiliza un archivo de configuración, configure:

sharding:
clusterRole: configsvr
replication:
replSetName: <replica set name>
net:
bindIp: localhost,<hostname(s)|ip address(es)>
  • sharding.clusterRole a,configsvr

  • replication.replSetName al nombre deseado del conjunto de réplicas del servidor de configuración,

  • net.bindIp opción para el nombre de host/dirección IP o una lista delimitada por comas de nombres de host o direcciones IP que los clientes remotos (incluidos los otros miembros del conjunto de réplicas del servidor de configuración, así como otros miembros del clúster fragmentado) pueden usar para conectarse a la instancia.

    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.

  • Ajustes adicionales según corresponda a su implementación, como y. Para obtener más información sobre el archivo de configuración, consulte las storage.dbPath net.port opcionesde configuración.

Inicie con mongod la --config opción establecida en la ruta del archivo de configuración.

mongod --config <path-to-config-file>

Si usa las opciones de la línea de comandos, inicie mongod --configsvr--replSet--bind_ipcon,, y otras opciones según corresponda a su implementación. Por ejemplo:

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 --configsvr --replSet <replica set name> --dbpath <path> --bind_ip localhost,<hostname(s)|ip address(es)>

Para obtener más información sobre los parámetros de inicio, consulte la página de mongod referencia.

2

Conectar mongosh a uno de los miembros del servidor de configuración.

mongosh --host <hostname> --port <port>
3

Desde mongosh, ejecuta el método rs.initiate().

rs.initiate() puede tomar un documento de configuración de Set de réplicas opcional. En el documento de configuración del Set de réplicas, incluya:

  • El conjunto_idal nombre del conjunto de réplicas especificado en la opciónreplication.replSetNameo --replSet.

  • El campo establecido configsvr en true para el conjunto de réplicas del servidor de configuración.

  • El members arreglo con un documento por cada nodo del set de réplicas.

Importante

Ejecute rs.initiate() en una sola instancia para el conjunto de mongod réplicas.

rs.initiate(
{
_id: "myReplSet",
configsvr: true,
members: [
{ _id : 0, host : "cfg1.example.net:27019" },
{ _id : 1, host : "cfg2.example.net:27019" },
{ _id : 2, host : "cfg3.example.net:27019" }
]
}
)

Consulte Configuración del conjunto de réplicas autoadministradas para obtener más información sobre los documentos de configuración del conjunto de réplicas.

Una vez iniciado y en funcionamiento el set de réplicas del servidor de configuración (CSRS), procede a crear los sets de réplicas de las particiones.

Para una implementación de producción, utilice un conjunto de réplicas con al menos tres miembros. Para realizar pruebas, puede crear un conjunto de réplicas con un solo miembro.

Nota

Los conjuntos de réplicas de fragmentos no deben usar el mismo nombre que el conjunto de réplicas del servidor de configuración.

Para cada fragmento, utilice los siguientes pasos para crear el conjunto de réplicas de fragmentos:

1

Al iniciar cada,especifique la configuración ya sea mediante un mongod mongod archivo de configuración o la línea de comando.

Si utiliza un archivo de configuración, configure:

sharding:
clusterRole: shardsvr
replication:
replSetName: <replSetName>
net:
bindIp: localhost,<ip address>

Inicie con mongod la --config opción establecida en la ruta del archivo de configuración.

mongod --config <path-to-config-file>

Si usa la opción de línea de comandos, inicie con mongod las --replSet --shardsvr--bind_ip opciones,, y otras opciones según corresponda a su implementación. Por ejemplo:

mongod --shardsvr --replSet <replSetname> --dbpath <path> --bind_ip localhost,<hostname(s)|ip address(es)>

Para obtener más información sobre los parámetros de inicio, consulte la página de mongod referencia.

2

Conecte a uno de los miembros del conjunto de mongosh réplicas.

mongosh --host <hostname> --port <port>
3

Desde mongosh, ejecuta el método rs.initiate().

rs.initiate() puede tomar un documento de configuración de Set de réplicas opcional. En el documento de configuración del Set de réplicas, incluya:

  • El campo _id se establece en el nombre del Set de réplicas especificado en el replication.replSetName o en la opción --replSet.

  • El members arreglo con un documento por cada nodo del set de réplicas.

El siguiente ejemplo inicia un conjunto de réplicas de tres miembros.

Importante

Ejecute rs.initiate() en una sola instancia para el conjunto de mongod réplicas.

rs.initiate(
{
_id : "myReplSet",
members: [
{ _id : 0, host : "s1-mongo1.example.net:27018" },
{ _id : 1, host : "s1-mongo2.example.net:27018" },
{ _id : 2, host : "s1-mongo3.example.net:27018" }
]
}
)

Inicie un utilizando un archivo de configuración o un parámetro de línea de comando para especificar los servidores de mongos configuración.

Si utiliza un archivo de configuración, establezca sharding.configDB en el nombre del conjunto de réplicas del servidor de configuración y al menos un miembro del conjunto de réplicas en <replSetName>/<host:port> formato.

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.

sharding:
configDB: <configReplSetName>/cfg1.example.net:27019,cfg2.example.net:27019
net:
bindIp: localhost,<hostname(s)|ip address(es)>

Inicie mongos especificando --config la opción y la ruta al archivo de configuración.

mongos --config <path-to-config>

Para obtener más información sobre el archivo de configuración, consultar opciones del archivo de configuración.

Si utiliza parámetros de línea de comandos, inicie mongos --configdby--bind_ip especifique, y otras opciones según corresponda a su implementación. Por ejemplo:

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.

mongos --configdb <configReplSetName>/cfg1.example.net:27019,cfg2.example.net:27019,cfg3.example.net:27019 --bind_ip localhost,<hostname(s)|ip address(es)>

Incluya cualquier otra opción según sea apropiado para su implementación.

En este punto, su clúster fragmentado consta de los servidores y de configuración. Ahora puede conectarse al clúster mongos fragmentado mongosh mediante.

Conecta mongosh a la mongos. Especifica el host y el port en los que se ejecuta el mongos:

mongosh --host <hostname> --port <port>

Una vez que haya conectado a, continúe con el siguiente procedimiento para agregar fragmentos al mongosh mongosclúster.

En una sesión mongosh que esté conectada a,mongos sh.addShard() use el método para agregar cada fragmento al clúster.

La siguiente operación agrega un único conjunto de réplicas de fragmentos al clúster:

sh.addShard( "<replSetName>/s1-mongo1.example.net:27018,s1-mongo2.example.net:27018,s1-mongo3.example.net:27018")

Repita estos pasos hasta que el clúster incluya todos los fragmentos deseados.

Para fragmentar una colección, conecte mongosh a sh.shardCollection() mongos y use el método.

Nota

Fragmentación e índices

Si la colección ya contiene datos, debe crear un índice compatible con la clave de fragmentación antes de fragmentarla. Si la colección está vacía, MongoDB crea el índice como parte sh.shardCollection() de.

MongoDB ofrece dos estrategias para fragmentar colecciones:

  • La fragmentación hash utiliza un índice hash de un solo campo como clave de fragmentación para particionar los datos en todo el clúster fragmentado.

    sh.shardCollection("<database>.<collection>", { <shard key field> : "hashed" } )
  • La fragmentación basada en rango puede usar múltiples campos como clave de fragmento y divide los datos en rangos contiguos determinados por los valores de la clave de fragmento.

    sh.shardCollection("<database>.<collection>", { <shard key field> : 1, ... } )

La selección de la clave de fragmentación afecta la eficiencia de la fragmentación, así como su capacidad para aprovechar ciertas funciones, como las zonas. Para saber cómo elegir una clave de fragmentación eficaz, consulte Elegir una clave de fragmentación.

mongosh proporciona el método. Este método utiliza la misma función hash que el índice hash y permite determinar cuál sería el valor hash de una convertShardKeyToHashed() clave.

Tip

Volver

Aislamiento de cargas de trabajo

En esta página