Como configurar o modo de cluster distribuído em um controlador Linux
Conteúdo
Configurando um Controller existente para o modo de cluster distribuído via web
Configurando o modo de cluster distribuído para um Controller recém-instalado através de comandos
Como configurar a adoção de dispositivos Cross-NAT com IP público único
Alta disponibilidade do modo de cluster distribuído
Como ajustar o IP dos nós do cluster
Como adicionar ou excluir um nó
Como atualizar o Controller no modo Cluster.
Como solucionar problemas se o modo de cluster distribuído não estiver funcionando?
Como solucionar problemas se o status do nó estiver desconectado
Objetivo
Este artigo apresenta o conceito de nós distribuídos do Controller. Ele detalha dois métodos de implantação. Um é a implantação de nós distribuídos via interface Web usando um Controller existente, enquanto o outro é através de comandos de Terminal ao instalar um novo Controller.
Requisitos
- Omada Software Controller
- Dispositivos Omada na Lista de Produtos com Suporte a Cluster Omada
- Ubuntu 22.04
- JAVA17
- Mongodb v7.0
Introdução
O modo de cluster distribuído do Omada Software Controller pode atender aos requisitos dos clientes quanto à alta disponibilidade da rede. Neste modo, múltiplos nós colaboram para gerenciar dispositivos Omada. Essa abordagem colaborativa não apenas aumenta significativamente o limite superior do número de dispositivos que o Controller pode gerenciar, mas também, através da operação coordenada de múltiplos nós, garante a alta disponibilidade de toda a rede. Se ocorrer uma falha em um nó, o balanceamento de carga automático será acionado, e os serviços do nó com falha serão assumidos por outros nós. Durante o período de failover, os dispositivos sob o site gerenciado pelo nó com falha ficarão brevemente offline e, em seguida, reconectarão automaticamente a outros nós. Assim que os dispositivos retomarem o estado "Conectado", todos os serviços operarão normalmente.
Como mostrado na figura abaixo, esta é uma topologia de implantação de cluster distribuído típica, onde múltiplos nós (três ou mais) podem gerenciar dispositivos Omada conjuntamente.

Pré-requisitos e Precauções
Antes de configurar e implantar formalmente os nós distribuídos, as seguintes sugestões e assuntos requerem atenção.
- O modo de cluster distribuído requer pelo menos três nós. Prepare-se para implantar pelo menos três Controllers antes de configurá-lo.
- A instalação do modo de cluster distribuído requer Java 17. Use sudo apt install openjdk-17-jre-headless para instalar o Java 17.
- Modificar a contagem de handles do sistema é um pré-requisito para usar o modo de cluster distribuído do Controller. Edite “/etc/security/limits.conf”, adicione os seguintes parâmetros, salve o arquivo, faça logout e faça login novamente para que as alterações entrem em vigor.
* soft nofile 65535
* hard nofile 65535
Observe que os métodos para modificar o número de handles podem variar de acordo com a versão do Linux. Modifique o número de handles de acordo com a sua versão do Linux.
- Certifique-se de que o horário do sistema de cada nó seja consistente, com uma diferença de tempo inferior a 20 segundos.
- Certifique-se de que as versões do JDK e do MongoDB sejam consistentes em todos os nós.
- Os IPs dos nós suportam apenas IPs estáticos. Se você precisar modificar o IP/porta, precisará reiniciar a inicialização. Consulte "Como ajustar o IP dos nós do cluster".
- Um nó que já entrou em um cluster deve se desconectar da conexão original e ser removido do cluster original antes de entrar em um novo cluster.
- Recomenda-se implantar todos os nós no mesmo segmento de rede.
Configuração
Configurando um Controller existente para o modo de cluster distribuído via web
Passo 1. Vá para Visão Global > Configurações > Cluster na Visão Global e habilite o Cluster. Em seguida, selecione o modo como Cluster Distribuído (Distributed Cluster).

Passo 2. Clique em Adicionar Nó (Add Node) para adicionar pelo menos três nós. Insira o NOME e o HOSTNAME/IP DE GERENCIAMENTO DO NÓ desses nós. Aqui, IPs e hostnames devem corresponder a servidores diferentes. Especifique o endereço IP do dispositivo de gerenciamento em HOSTNAME/IP DE GERENCIAMENTO DE DISPOSITIVO. Este endereço IP será usado para estabelecer uma conexão e comunicar-se com o dispositivo. Se não for especificado, o HOSTNAME/IP DE GERENCIAMENTO DO NÓ será usado por padrão. Em seguida, clique em Aplicar. Antes de clicar em Aplicar, certifique-se de que todos os nós do Controller configurados estejam em estado de execução. Isso permite que o arquivo de propriedades seja copiado automaticamente para os outros nós, tornando o Passo 3 desnecessário.

Depois disso, o Controller exibirá uma janela de prompt e o arquivo de propriedades de inicialização (init properties file). Faça o download do arquivo de propriedades de inicialização. Você precisará reiniciar o Controller para que as configurações entrem em vigor. Reinicie-o o mais rápido possível para evitar a desconexão do dispositivo ou outros problemas. Nós adicionados offline serão considerados nós em estado inativo, o que afetará a capacidade de recuperação de desastres. Inicie-os o mais rápido possível.


Se o seguinte pop-up aparecer, indica que o arquivo de propriedades foi copiado automaticamente para todos os outros nós. O Passo 4 pode ser executado diretamente conforme solicitado pela mensagem.
Passo 3. Substitua o arquivo properties (baixado no Passo 2) em cada nó, respectivamente. O caminho para o arquivo properties é: /opt/tplink/EAPController/data/cluster/omada_distributed_internal_mongo_cluster.properties
Passo 4. Execute o comando de inicialização em cada nó, respectivamente. Ao inicializar os nós, defina a conta e a senha para todos os nós. Ao inicializar os nós, inicialize primeiro o nó primário (aquele que exportou as propriedades de inicialização). Caso contrário, a inicialização poderá falhar.
sudo omadacluster -config
/opt/tplink/EAPController/data/cluster/omada_distributed_internal_mongo_cluster.properties -nodeName init

- Exemplo da impressão do terminal durante a inicialização do nó primário.

- Exemplo da impressão do terminal durante a inicialização de nós não primários

Passo 5. Após a implantação ser bem-sucedida, vá para a página de Cluster para confirmar. E quando o modo de cluster distribuído estiver funcionando corretamente, você poderá acessar o Controller através de qualquer nó.

Configurando um modo de cluster distribuído para um Controller recém-instalado através de comandos
Passo 1. Selecione a instalação no modo de cluster (não inicia automaticamente após a instalação).
- Instalar usando deb
echo "omadac omadac/init-cluster-mode boolean true" | sudo debconf-set-selections
sudo dpkg -i /path/to/controller_installation_package

- Instalar usando tar.gz
Após a descompactação, implante o modo de cluster através do script de instalação shell. Digite ./install.sh init - cluster – mode, o sistema não iniciará automaticamente após a instalação, e as informações de prompt relevantes para configurar o cluster serão impressas.

Passo 2. Inicie a instalação do Controller e edite o arquivo de propriedades conforme solicitado.

Modifique o arquivo de propriedades de cada nó /opt/tplink/EAPController/data/cluster/omada_distributed_internal_mongo_cluster.properties

Passo 3 Execute o comando de inicialização em cada nó, respectivamente.
sudo omadacluster -config /opt/tplink/EAPController/data/cluster/omada_distributed_internal_mongo_cluster.properties -node <nodeName> init
- Exemplo da impressão do terminal durante a inicialização do nó primário

Exemplo da impressão do terminal durante a inicialização de nós não primários

Passo 4 Após a implantação ser bem-sucedida, faça login no Controller e defina o nome de usuário e a senha; os outros nós sincronizarão o nome de usuário e a senha.
Em seguida, vá para a página de Cluster para confirmar. E quando o modo de cluster distribuído estiver funcionando corretamente, você poderá acessar o Controller através de qualquer nó.

Como configurar a adoção de dispositivos Cross-NAT com IP público único
O recurso de IP Público Único Cross-NAT é usado no Modo Distribuído Linux para adotar dispositivos em redes Layer 3. Múltiplos nós compartilham o mesmo endereço IP público na interface WAN do gateway. Diferentes portas são mapeadas através de NAT para cada nó correspondente, permitindo que todos os nós usem um IP público do lado WAN.
Passos de Configuração
Passo 1. Após concluir a configuração do cluster distribuído, configure o Hostname/IP de Gerenciamento do Dispositivo, Porta de Gerenciamento do Dispositivo, Porta de Descoberta do Dispositivo e Porta de Monitoramento do Dispositivo de cada nó na interface.
Certifique-se de que o Hostname/IP de Gerenciamento do Dispositivo seja idêntico em todos os nós (todos devem usar o IP público do lado WAN do gateway). As portas configuradas não devem entrar em conflito ou sobrepor-se a portas já em uso.
Clique em Aplicar quando terminar.
Nota: As portas usadas por outras funções do controlador também precisam ser configuradas no arquivo /opt/tplink/EAPController/properties/omada.properties em cada nó de acordo com os requisitos acima. Algumas portas, como a porta de atualização, podem ser configuradas na interface web de cada nó.


Passo 2. Quando a mensagem pop-up aparecer, selecione Confirmar.

Passo 3. Todos os nós exibirão "NEED TO REBOOT" (PRECISA REINICIAR). Use o comando tpeap restart para reiniciar todos os nós simultaneamente.

Passo 4. Após a reinicialização, todos os nós exibirão CONNECTED, indicando que a configuração do lado do Controller está completa.

Passo 5. Na página NAT do Gateway, configure os mapeamentos NAT do IP do lado WAN mais a porta para o IP do lado LAN mais a porta. Use a ferramenta infoUrl para entregar o Hostname/IP de Gerenciamento do Dispositivo especificado e a Porta de Descoberta do Dispositivo aos dispositivos localizados na rede pública para que possam ser adotados e gerenciados pelo cluster. Certifique-se de que todos os mapeamentos NAT estejam completos e corretos, caso contrário, pacotes inalcançáveis podem impedir a adoção e o gerenciamento do dispositivo.
Alta Disponibilidade do Modo de Cluster Distribuído
As características de alta disponibilidade do modo de cluster distribuído são mostradas na descrição a seguir. Quando o número total de nós mistos é de 3 a 4, é permitido que 1 membro misto seja desconectado; quando o número total de nós mistos é de 5 a 6, é permitido que 2 membros mistos sejam desconectados; quando o número total de nós mistos é 7, é permitido que 3 membros mistos sejam desconectados. Ou seja, o número de nós mistos tolerantes a falhas é menor que a metade do número máximo de nós mistos.
|
Número de Nós Mistos |
Número de Nós Mistos Desconectados Permitidos |
|
3 |
1 |
|
4 |
1 |
|
5 |
2 |
|
6 |
2 |
Se o número de nós desconectados exceder o limite permitido, todo o cluster funcionará mal. Para restaurar o cluster, você precisa colocar os nós desconectados online novamente, de modo que o número de nós tolerantes a falhas seja menor que a metade do número máximo de nós mistos.
Se for necessário reiniciar o cluster, certifique-se de que, após todos os nós terem sido parados, mais da metade do número total de nós seja iniciada ao mesmo tempo.
FAQ
Como ajustar o IP dos nós do cluster
Quando o modo de cluster distribuído do controller está em execução, se você quiser modificar o IP de um nó, precisa seguir estes passos:
(1) Se o status do nó a ser modificado estiver conectado:
a. Modifique o IP da placa de rede do nó especificado para que ele vincule os IPs antigo e novo simultaneamente.
b. Na interface de Cluster de qualquer nó, altere o IP do nó especificado para o novo IP.
c. No nó especificado, execute o comando sudo tpeap stop para desligar o nó e, em seguida, modifique a placa de rede para vincular apenas o novo IP.
d. Execute sudo tpeap start para iniciar o nó.
(2) Se o status do nó a ser modificado estiver desconectado:
a. Modifique o IP da placa de rede do nó especificado para que ele vincule os IPs antigo e novo.
b. Na interface de Cluster de qualquer nó online, altere o IP do nó especificado para o novo IP e exporte o novo arquivo de propriedades.
c. Transfira o arquivo de propriedades para o nó a ser modificado.
d. No nó especificado, use este arquivo de propriedades para executar o comando de inicialização sudo omadacluster -config <propertiesPath> -node <nodeName> init para inicialização.
Como adicionar ou excluir um nó
(1) Adicionar nó
Passo 1. Ajuste o número de handles no novo nó e instale o Controller da mesma versão.
Passo 2. Configure o novo nó no nó existente. Vá para a interface Visão Global > Configurações > Cluster, clique em Adicionar Nó. Insira o Nome e o IP/Hostname do novo nó e clique em Aplicar.

Clique em Confirmar.

Passo 3. Clique em Exportar propriedades de inicialização (Export init properties), baixe o arquivo e copie-o para o caminho /opt/tplink/EAPController/data/cluster do Controller no nó recém-adicionado.

Passo 4. Abra o terminal no novo nó e execute o comando de inicialização.
sudo omadacluster -config
/opt/tplink/EAPController/data/cluster/omada_distributed_internal_mongo_cluster.properties -nodeName init

Passo 5. Após adicionar um nó com sucesso, vá para a página de Cluster para confirmar. E quando o modo de cluster distribuído estiver funcionando corretamente, você poderá acessar o Controller através de qualquer nó.

(2) Excluir Nó
Passo 1. Vá para o nó a ser excluído e pare seu Controller.
Passo 2. Verifique o status dos nós a partir de qualquer nó.
Passo 3. Quando o ícone de exclusão aparecer no nó, clique no botão excluir e depois em Aplicar.

Passo 4. Você pode ver o nó sendo excluído de qualquer nó.

Como atualizar o Controller no modo Cluster.
Atualmente, o Omada Cluster suporta atualizações offline. Antes de atualizar o Omada Cluster, você deve parar a execução do controller em todos os nós.
Para minimizar o impacto na rede, tente atualizar o cluster durante períodos de pouco tráfego.
Certifique-se de que o firmware de todos os dispositivos suporte a implantação em cluster para evitar desconexões de dispositivos após a atualização.
Os passos específicos para a atualização são os seguintes:
- Execute o comando sudo tpeap stop em todos os nós para parar a execução do cluster.
- Instale o controller da versão mais recente em todos os nós. Consultando a instalação da sua versão anterior, escolha instalar usando deb ou tar.gz.
- Certifique-se de que todos os nós tenham sido atualizados corretamente para a versão mais recente primeiro. Em seguida, execute o Controller de todos os nós ao mesmo tempo, execute o comando sudo tpeap start.
- Aguarde que todos os controllers exibam "Started successfully" (Iniciado com sucesso). E então você poderá acessar o cluster normalmente.
Veja o exemplo do processo de atualização de um nó:

Como solucionar problemas se o modo de cluster distribuído não estiver funcionando?


- Verifique se a modificação do número de handles foi bem-sucedida. Você pode usar "ulimit -a" para verificar se o número de handles foi modificado com sucesso.
- Verifique se os parâmetros para cada nó são consistentes, incluindo a versão do Controller, a versão do Mongodb e a versão do Java utilizadas.
- Se os nós não conseguirem se conectar com sucesso por um período prolongado, certifique-se de inicializar os nós começando pelo nó primário ao configurar um Controller existente para o modo de cluster distribuído via web.
Como solucionar problemas se o status do nó estiver desconectado

Verifique se a diferença de horário em Visão Global > Configurações > Configurações do Sistema > Horário Atual do Sistema do Nó para cada nó está dentro de 20 segundos.
Como solucionar falhas de parada do nó causadas por alta utilização de recursos do sistema antes da atualização?

- Execute o comando ps -ef | grep ‘java’ no nó anormal para consultar processos Java ativos no sistema.
- Execute o comando sudo kill -9 <PID> para parar forçadamente o processo Java no nó anormal (substitua <PID> pelo ID real do processo).
- Siga os passos normais para instalar o controller da versão mais recente e, em seguida, conclua a atualização.
Como solucionar problemas se a inicialização de um nó falhou devido à execução não simultânea do comando de inicialização?
Execute o comando sudo tpeap start novamente no nó anormal.