Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

Adicionar um Árbitro a um Conjunto de Réplicas Autogerenciadas

Nesta página

  • Considerações
  • Conjuntos de réplicas Primary-Secondary-Arbiter
  • Adicionar um arbiter

Em algumas circunstâncias (como quando você tem um primário e um secundário, mas as restrições de custo proíbem a adição de outro secundário), você pode optar por adicionar uma instância do mongod a um conjunto de réplicas como um árbitro para votar nas eleições.

Os árbitros são instâncias mongod que fazem parte de um conjunto de réplicas, mas não armazenam dados (i.e. não oferecem redundância de dados). No entanto, eles podem participar de eleições.

Os árbitros têm requisitos mínimos de recursos e não exigem hardware dedicado. Você pode implantar um árbitro em um servidor de aplicativos ou em um host de monitoramento.

Importante

Não execute um árbitro em sistemas que também hospedem os membros principais ou secundários do conjunto de réplicas.

Aviso

Evite implementar mais de um arbiter em um conjunto de réplicas. Consulte Preocupações com vários arbiters.

Para adicionar um árbitro a um conjunto de réplicas existente:

  • Normalmente, se houver dois ou menos membros portadores de dados no conjunto de réplicas, talvez seja necessário definir primeiro a preocupação de gravação em todo o cluster para o conjunto de réplicas.

  • Consulte preocupação de gravação em todo o cluster para obter mais informações sobre por que você pode precisar definir a preocupação de gravação em todo o cluster.

Você não precisa alterar a questão de escrita em todo o cluster antes de começar um novo conjunto de réplicas com um arbiter.

Dica

Veja também:

Os árbitros não são compatíveis com as versões rápidas trimestrais. Se a sua implantação incluir árbitros, utilize somente versões do LTS.

Se você estiver usando uma arquitetura PSA (primária-secundária-arbiter) de três membros, considere o seguinte:

Um árbitro não armazena dados, mas até que o processo mongod do árbitro seja adicionado ao conjunto de réplicas, o árbitro agirá como qualquer outro processo mongod e iniciará com um conjunto de arquivos de dados e com um diáriode tamanho normal.

Aviso

Antes de vincular a um endereço IP não localhost (por exemplo, acessível publicamente), certifique-se de proteger seu cluster contra o acesso não autorizado. Para obter uma lista completa de recomendações de segurança, consulte a Lista de verificação de segurança para implementações autogerenciadas. No mínimo, procure habilitar a autenticação e fortalecer a infraestrutura de rede.

Os binários do MongoDB, mongod e mongos, são vinculados ao host local por padrão. Se a configuração do arquivo de configuração net.ipv6 ou a opção de linha de comando --ipv6 estiver definida para o binário, o binário também será vinculado ao endereço IPv6 do host local.

Por padrão, mongod e mongos vinculados ao localhost aceitam conexões apenas de clientes que estão sendo executados no mesmo computador. Esse comportamento de vinculação inclui mongosh e outros membros do seu conjunto de réplicas ou cluster fragmentado. Clientes remotos não podem se conectar a binários vinculados apenas ao localhost.

Para substituir a associação padrão e vincular a outros endereços IP, use a net.bindIp configuração do arquivo de configuração ou a --bind_ip opção de linha de comando para especificar uma lista de nomes de host ou endereços IP.

Aviso

A partir do MongDB 5.0, DNS de horizonte dividido nós que são configurados apenas com um endereço IP falham na validação de inicialização e relatam um erro. Consulte disableSplitHorizonIPCheck.

Por exemplo, a instância mongod a seguir é vinculada ao host local e ao nome de host My-Example-Associated-Hostname, que está associado ao endereço IP 198.51.100.1:

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

Para se conectar a esta instância, os clientes remotos devem especificar o nome do host ou seu endereço IP associado 198.51.100.1:

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

Importante

Para evitar atualizações de configuração devido a alterações de endereço IP, use nomes de host DNS em vez de endereços IP. É particularmente importante usar um nome de host DNS em vez de um endereço IP ao configurar membros de conjunto de réplicas ou membros de cluster fragmentado.

Use nomes de host em vez de endereços IP para configurar cluster em um horizonte de rede dividido. Começando no MongoDB 5.0, nós configurados apenas com um endereço IP falham na validação de inicialização e não são iniciados.

Aviso

Evite implementar mais de um arbiter em um conjunto de réplicas. Consulte Preocupações com vários arbiters.

Para adicionar um árbitro a um conjunto de réplicas existente:

  • Normalmente, se houver dois ou menos membros portadores de dados no conjunto de réplicas, talvez seja necessário definir primeiro a preocupação de gravação em todo o cluster para o conjunto de réplicas.

  • Consulte preocupação de gravação em todo o cluster para obter mais informações sobre por que você pode precisar definir a preocupação de gravação em todo o cluster.

Você não precisa alterar a questão de escrita em todo o cluster antes de começar um novo conjunto de réplicas com um arbiter.

Importante

Para evitar atualizações de configuração devido a alterações de endereço IP, use nomes de host DNS em vez de endereços IP. É particularmente importante usar um nome de host DNS em vez de um endereço IP ao configurar membros de conjunto de réplicas ou membros de cluster fragmentado.

Use nomes de host em vez de endereços IP para configurar cluster em um horizonte de rede dividido. Começando no MongoDB 5.0, nós configurados apenas com um endereço IP falham na validação de inicialização e não são iniciados.

  1. Criar um diretório de dados (por exemplo, storage.dbPath) para o arbiter. A instância do mongod utiliza o diretório para dados de configuração. O diretório não manterá o conjunto de dados. Por exemplo, crie o diretório /var/lib/mongodb/arb:

    mkdir /var/lib/mongodb/arb
  2. Inicie o arbiter especificando o diretório de dados e o nome do conjunto de réplicas para participar. O seguinte inicia um arbiter usando o /var/lib/mongodb/arb como dbPath e rs para o nome do conjunto de réplicas:

    Aviso

    Antes de vincular a um endereço IP não localhost (por exemplo, acessível publicamente), certifique-se de proteger seu cluster contra o acesso não autorizado. Para obter uma lista completa de recomendações de segurança, consulte a Lista de verificação de segurança para implementações autogerenciadas. No mínimo, procure habilitar a autenticação e fortalecer a infraestrutura de rede.

    mongod --port 27017 --dbpath /var/lib/mongodb/arb --replSet rs --bind_ip localhost,<hostname(s)|ip address(es)>
  3. Conecte-se ao primary e adicione o arbiter ao conjunto de réplicas. Use o método rs.addArb(), como no exemplo a seguir, que pressupõe que m1.example.net é o nome do host associado ao endereço IP especificado para o arbiter:

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

    Esta operação adiciona o árbitro em execução na porta 27017 no host do m1.example.net.

Voltar

Adicionar membros