Ao adicionar nós do Cassandra a um cluster, é essencial considerar estes dois pontos principais:
- As posições atuais dos nós no anel do Cassandra não devem mudar para minimizar o streaming e manter um anel equilibrado.
- O número de nós em todos os data centers precisa permanecer consistente.
Para garantir o primeiro objetivo, é crucial dobrar o número de nós no cluster do Cassandra sempre que você adicionar novos nós.
Por exemplo, se você começar com uma topologia padrão de instalação de cluster de 12 nós distribuída em dois data centers, terá um total de seis nós do Cassandra, três em cada data center. Para expandir esse cluster, adicione três nós a cada data center, aumentando a contagem total de nós para 12 (seis nós em cada data center). Se for necessário fazer mais expansões, adicione seis nós a cada data center, resultando em um total de 24 nós (12 em cada data center).
Este documento fornece instruções para adicionar três novos nós do Cassandra a uma instalação do Edge for Private Cloud. Siga as mesmas etapas para adicionar outros nós. Sempre dobre o número de nós ao expandir o cluster.
Para uma lista dos requisitos do sistema para um nó do Cassandra, consulte a seção Requisitos de instalação.
Configuração atual do Edge
Todas as topologias de borda com suporte para um sistema de produção especificam o uso de três nós do Cassandra. Os três nós são especificados para a propriedade CASS_HOSTS
no arquivo de configuração,
conforme mostrado abaixo:
IP1=10.10.0.1 IP2=10.10.0.2 IP3=10.10.0.3 HOSTIP=$(hostname -i) ADMIN_EMAIL=opdk@google.com APIGEE_ADMINPW=Secret123 LICENSE_FILE=/tmp/license.txt MSIP=$IP1 USE_LDAP_REMOTE_HOST=n LDAP_TYPE=1 APIGEE_LDAPPW=secret MP_POD=gateway REGION=dc-1 ZK_HOSTS="$IP1 $IP2 $IP3" ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3" # Must use IP addresses for CASS_HOSTS, not DNS names. CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1" SKIP_SMTP=n SMTPHOST=smtp.example.com SMTPUSER=smtp@example.com SMTPPASSWORD=smtppwd
A propriedade REGION
especifica o nome da região como "dc-1". Você vai precisar dessas
informações ao adicionar os novos nós do Cassandra.
Como modificar o arquivo de configuração para adicionar os três novos nós do Cassandra
Neste exemplo, os três novos nós do Cassandra estão nos seguintes endereços IP:
- 10.10.0.14
- 10.10.0.15
- 10.10.0.16
Primeiro, atualize o arquivo de configuração do Edge para adicionar os novos nós:
IP1=10.10.0.1 IP2=10.10.0.2 IP3=10.10.0.3 # Add the new node IP addresses. IP14=10.10.0.14 IP15=10.10.0.15 IP16=10.10.0.16 HOSTIP=$(hostname -i) ADMIN_EMAIL=opdk@google.com ... # Update CASS_HOSTS to add each new node after an existing nodes. # Must use IP addresses for CASS_HOSTS, not DNS names. CASS_HOSTS="$IP1:1,1 $IP14:1,1 $IP2:1,1 $IP15:1,1 $IP3:1,1 $IP16:1,1"
Isso garante que os nós atuais mantenham as configurações iniciais do token, e que o token inicial de cada novo nó esteja entre os valores de token dos nós atuais.
Configurar a borda
Depois de editar o arquivo de configuração, você precisa fazer o seguinte:
- Reconfigurar os nós do Cassandra
- Instalar o Cassandra nos novos nós
- Reconfigurar o servidor de gerenciamento
Reconfigure os nós do Cassandra.
Nos nós do Cassandra atuais:
- Execute o setup.sh novamente com o perfil "-p c" e o novo arquivo de configuração:
/opt/apigee/apigee-setup/bin/setup.sh -p c -f updatedConfigFile
Instalar o Cassandra nos novos nós
Use o procedimento abaixo para instalar o Cassandra nos novos nós.
Em cada novo nó do Cassandra:
- Instale o Cassandra nos três nós:
- Instale
apigee-setup
no primeiro nó, conforme descrito em Instalar o utilitário apigee-setup do Edge. - Instale o Cassandra no primeiro nó usando o arquivo de configuração atualizado:
/opt/apigee/apigee-setup/bin/setup.sh -p c -f updatedConfigFile
- Repita essas duas etapas para os outros nós novos do Cassandra.
- Instale
- Recrie os três novos nós do Cassandra, especificando o nome da região como o data center
em que você está adicionando o nó (
dc-1
,dc-2
e assim por diante). Neste exemplo, édc-1
:- No primeiro nó, execute:
/opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h nodeIP rebuild dc-1
Em que nodeIP é o endereço IP do nó do Cassandra.
Você só precisa transmitir seu nome de usuário e senha se tiver ativado a autenticação JMX para o Cassandra.
- Repita essa etapa nos novos nós do Cassandra restantes.
- No primeiro nó, execute:
Reconfigurar o servidor de gerenciamento
Em um nó de servidor de gerenciamento
- Execute novamente o setup.sh para atualizar o servidor de gerenciamento para os nós do Cassandra adicionados recentemente:
/opt/apigee/apigee-setup/bin/setup.sh -p ms -f updatedConfigFile
Reiniciar todos os roteadores e processadores de mensagens
- Em todos os roteadores:
/opt/apigee/apigee-service/bin/apigee-service edge-router restart
- Em todos os processadores de mensagens:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
Liberar espaço em disco em nós do Cassandra
Depois de adicionar um novo nó, use o comando nodetool cleanup
nos nós
existentes para liberar espaço no disco. Esse comando limpa os tokens de configuração que não são mais
de propriedade do nó do Cassandra.
Para liberar espaço em disco em nós do Cassandra já existentes após a adição de um novo nó, execute o seguinte comando:
/opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassandraIP cleanup
Você só precisa transmitir seu nome de usuário e senha se tiver ativado a autenticação JMX para o Cassandra.
Verificar a reconstrução
Use os seguintes comandos para verificar se a recriação foi bem-sucedida:
nodetool [-u username -pw password] -h nodeIP netstats
Esse comando indica se o transporte nativo (ou protocolo binário) está em execução, o que permite que o Cassandra aceite novas solicitações de cliente.
nodetool [-u username -pw password] -h nodeIP statusbinary
Esse comando indica se o transporte nativo (ou protocolo binário) está em execução.
nodetool [-u username -pw password] -h nodeIP describecluster
Esse comando mostra se os novos nós estão usando a mesma versão do esquema dos nós mais antigos.
Para mais informações sobre como usar nodetool
, consulte a
documentação de uso do nodetool.