Ao adicionar nós do Cassandra a um cluster, é essencial considerar os dois pontos principais a seguir:
- As posições 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, é fundamental 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 mais expansão for necessária, você deverá adicionar mais seis nós a cada centro de dados, resultando em uma contagem total de 24 nós (12 nós em cada centro de dados).
Neste documento, apresentamos instruções para adicionar três novos nós do Cassandra a um Edge para instalação de nuvem privada. Siga as mesmas etapas para adicionar nós. Sempre garanta que o número de nós seja dobrado ao expandir seu 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 compatíveis com um sistema de produção especificam o uso de três topologias do Cassandra;
nós. 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ê precisa disso
ao adicionar os novos nós do Cassandra.
Como modificar o arquivo de configuração a ser adicionado 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 de token e que o token inicial de cada novo nó está entre os valores de token dos nós existentes.
Configurar o Edge
Depois de editar o arquivo de configuração, faça o seguinte:
- Reconfigurar os nós atuais do Cassandra
- Instalar o Cassandra nos novos nós
- Reconfigurar o servidor de gerenciamento
Reconfigurar o Cassandra atual nós
Nos nós atuais do Cassandra:
- Execute o setup.sh novamente com "-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:
- Instalar o app
apigee-setup
em primeiro nó, como descrito em Instalar o Utilitário de configuração da Apigee 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 novos nós restantes do Cassandra.
- Instalar o app
- Recriar os três novos nós do Cassandra, especificando o nome da região para ser 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ó precisará passar seu nome de usuário e sua senha se ativou a autenticação JMX para o Cassandra.
- Repita essa etapa nos novos nós restantes do Cassandra.
- No primeiro nó, execute:
Reconfigurar o servidor de gerenciamento
Em um nó do servidor de gerenciamento
- Execute setup.sh novamente para atualizar o Management Server para os nós recém-adicionados do Cassandra:
/opt/apigee/apigee-setup/bin/setup.sh -p ms -f updatedConfigFile
Reiniciar todos os roteadores e mensagens Processadores
- 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
Espaço livre em disco nos arquivos existentes Nós do Cassandra
Depois de adicionar um novo nó, use o comando nodetool cleanup
na
nós preexistentes para liberar espaço em disco. Esse comando limpa tokens de configuração que não são
já pertence ao nó pré-existente do Cassandra.
Para liberar espaço em disco em nós pré-existentes do Cassandra após adicionar um novo nó, execute o seguinte comando:
/opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassandraIP cleanup
Você só precisará passar seu nome de usuário e sua senha se ativou a autenticação JMX para o Cassandra.
Verificar recriação
Use os seguintes comandos para verificar se a recriação foi bem-sucedida:
nodetool [-u username -pw password] -h nodeIP netstats
Esse comando vai indicar MODE: Normal
quando o nó estiver ativo e os índices
são construídas.
nodetool [-u username -pw password] -h nodeIP statusthrift
Deve indicar que o servidor thrift está em execução, o que permite que o Cassandra aceite novos clientes solicitações.
nodetool [-u username -pw password] -h nodeIP statusbinary
Precisa indicar que o transporte nativo (ou protocolo binário) está em execução.
nodetool [-u username -pw password] -h nodeIP describecluster
Precisa mostrar que os novos nós estão usando a mesma versão de esquema que os nós mais antigos.
Para mais informações sobre como usar nodetool
, consulte a
documentação sobre o uso do Nodetool.