Esta seção fornece orientações gerais para escalonar operações do Cassandra fazendo com que o Cassandra seja reconhecido no Apigee Edge para o rack de nuvem privada.
Para saber mais sobre a importância de fazer o rack do anel Cassandra reconhecer, consulte os seguintes recursos:
- Replicação (documentação do Cassandra)
- Arquitetura do Cassandra e estratégia de fator de replicação
O que é um rack?
Um rack do Cassandra é um agrupamento lógico dos nós do Cassandra dentro do anel. O Cassandra usa racks para garantir que as réplicas sejam distribuídas entre diferentes agrupamentos lógicos. Como resultado, as operações são enviadas não apenas para um nó, mas para vários nós, cada um em um rack separado, proporcionando maior tolerância a falhas e disponibilidade.
Os exemplos nesta seção usam três racks do Cassandra, que é o número de racks com suporte da Apigee em topologias de produção.
A instalação padrão do Cassandra no Apigee Edge para nuvem privada pressupõe um único rack lógico e coloca todos os nós em um data center dentro dele. Embora essa configuração seja simples de instalar e gerenciar, ela será suscetível a falhas se uma operação falhar em um desses nós.
A imagem a seguir mostra a configuração padrão do anel do Cassandra:
Em uma configuração mais robusta, cada nó seria atribuído a um rack separado, e as operações também seriam executadas em réplicas em cada um desses racks.
A imagem a seguir mostra um anel de três nós. Esta imagem mostra a ordem em que as operações são replicadas no anel (sentido horário) e destaca o fato de que não há dois nós no mesmo rack:
Nessa configuração, as operações são enviadas para um nó, mas também para réplicas dele em outros racks (no sentido horário).
Adicionar reconhecimento de rack (com três nós)
Todas as topologias de instalação de produção do Apigee Edge para nuvem privada têm pelo menos três nós do Cassandra, que nesta seção são chamados de "IP1", "IP2" e "IP3". Por padrão, cada um desses nós está no mesmo rack, "ra-1".
Nesta seção, descrevemos como atribuir os nós do Cassandra a racks separados para que todas as operações sejam enviadas aos nós de réplica em agrupamentos lógicos separados dentro do anel.
Para atribuir nós do Cassandra a diferentes racks durante a instalação:
- Antes de executar o instalador, faça login no nó do Cassandra e abra o
seguinte arquivo de configuração silencioso para edição:
/opt/silent.conf
Crie o arquivo, se ele não existir, e certifique-se de tornar o usuário "apigee" um proprietário.
- Edite a propriedade
CASS_HOSTS
, uma lista de endereços IP separada por espaços (não entradas de DNS ou de nome do host) que usa a seguinte sintaxe:CASS_HOSTS="IP_address:data_center_number,rack_number [...]"
O valor padrão é um anel de três nós do Cassandra com cada nó atribuído ao rack 1 e ao data center 1, conforme mostrado no exemplo a seguir:
CASS_HOSTS="IP1:1,1 IP2:1,1 IP3:1,1"
- Altere as atribuições do rack para que o nó 2 seja atribuído ao rack 2 e o nó 3 ao
rack 3, conforme o exemplo a seguir:
CASS_HOSTS="IP1:1,1 IP2:1,2 IP3:1,3"
Ao alterar as atribuições do rack, você instrui o Cassandra a criar dois agrupamentos lógicos (racks) adicionais que fornecem réplicas que recebem todas as operações recebidas pelo primeiro nó.
Para mais informações sobre como usar a propriedade de configuração
CASS_HOSTS
, consulte Referência do arquivo de configuração de borda. - Salve as mudanças no arquivo de configuração e execute o seguinte comando para instalar
o Cassandra com a configuração atualizada:
/opt/apigee/apigee-setup/bin/setup.sh -p c -f path/to/silent/config
Exemplo:
/opt/apigee/apigee-setup/bin/setup.sh -p c -f /opt/silent.conf
- Repita esse procedimento para cada nó do Cassandra no anel, na ordem em que eles
são atribuídos na propriedade
CASS_HOSTS
. Nesse caso, instale o Cassandra na seguinte ordem:- Nó 1 (IP1)
- Nó 2 (IP2)
- Nó 3 (IP3)
Após a instalação, verifique a configuração do Cassandra.
Verificar a configuração do Cassandra
Depois de instalar uma configuração do Cassandra com reconhecimento de rack, verifique se os nós estão
atribuídos aos diferentes racks usando o comando nodetool status
, como
mostrado no exemplo a seguir:
/opt/apigee/apigee-cassandra/bin/nodetool status
Você executa esse comando em um dos nós do Cassandra.
Os resultados serão semelhantes aos mostrados a seguir, em que a coluna Rack mostra os diferentes IDs de rack para cada nó:
Datacenter: dc-1 ======================== Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns Host ID Rack UN IP1 737 MB 256 ? 554d4498-e683-4a53-b0a5-e37a9731bc5c ra-1 UN IP2 744 MB 256 ? cf8b7abf-5c5c-4361-9c2f-59e988d52da3 ra-2 UN IP3 723 MB 256 ? 48e0384d-738f-4589-aa3a-08dc5bd5a736 ra-3
Se você ativou a autenticação JMX para o Cassandra, também precisa transmitir seu nome de usuário e
senha para nodetool
. Para mais informações, consulte
Usar o nodetool para gerenciar nós do cluster.
Instalar um anel de seis nós
Para mais redundância, expanda o anel do Cassandra para seis nós. Nesse caso, você atribui dois nós a cada um dos três racks. Essa configuração requer mais três nós: Nó 4 (IP4), Nó 5 (IP5) e Nó 6 (IP6).
A imagem a seguir mostra a ordem em que as operações são replicadas no anel (sentido horário) e destaca o fato de que, durante a replicação, não há dois nós adjacentes no mesmo rack:
Nesta configuração, cada nó tem mais duas réplicas: uma em cada um dos outros dois racks. Por exemplo, o nó 1 no rack 1 tem uma réplica no Rack 2 e no Rack 3. As operações enviadas para o nó 1 também são enviadas para as réplicas nos outros racks, no sentido horário.
Para expandir um anel do Cassandra de três nós para um do Cassandra de seis nós, configure os nós da seguinte maneira no arquivo de configuração silenciosa:
CASS_HOSTS="IP1:1,1 IP4:1,3 IP2:1,2 IP5:1,1 IP3:1,3 IP6:1,2"
Assim como acontece com um anel de três nós, você precisa instalar o Cassandra na mesma ordem em que os nós
aparecem na propriedade CASS_HOSTS
:
- Nó 1 (IP1)
- Nó 4 (IP4)*
- Nó 2 (IP2)
- Nó 5 (IP5)
- Nó 3 (IP3)
- Nó 6 (IP6)
* Faça as alterações no arquivo de configuração silenciosa antes de executar o utilitário de configuração no quarto nó (a segunda máquina na ordem de instalação do Cassandra).
Expandir para 12 nós
Para aumentar ainda mais a tolerância a falhas e a disponibilidade, é possível aumentar o número de nós do Cassandra no anel de 6 para 12. Essa configuração requer seis nós adicionais (IP7 a IP12).
A imagem a seguir mostra a ordem em que as operações são replicadas no anel (sentido horário) e destaca o fato de que, durante a replicação, não há dois nós adjacentes no mesmo rack:
O procedimento para instalar um anel de 12 nós é semelhante à instalação de um anel de três ou seis nós:
defina CASS_HOSTS
com os valores fornecidos e execute o instalador na ordem especificada.
Para expandir para um anel do Cassandra de 12 nós, defina os nós da seguinte maneira no arquivo de configuração silencioso:
CASS_HOSTS="IP1:1,1 IP7:1,2 IP4:1,3 IP8:1,1 IP2:1,2 IP9:1,3 IP5:1,1 IP10:1,2 IP3:1,3 IP11:1,1 IP6:1,2 IP12:1,3"
Assim como nos anéis de três e seis nós, é preciso executar o instalador nos nós na ordem em que eles aparecem no arquivo de configuração:
- Nó 1 (IP1)
- Nó 7 (IP7)*
- Nó 4 (IP4)
- Nó 8 (IP8)
- Nó 2 (IP2)
- Nó 9 (IP9)
- Nó 5 (IP5)
- Nó 10 (IP10)
- Nó 3 (IP3)
- Nó 11 (IP11)
- Nó 6 (IP6)
- Nó 12 (IP12)
* É preciso fazer essas alterações antes de instalar o Apigee Edge para nuvem privada no 7o nó (a segunda máquina no pedido de instalação do Cassandra).