Nesta seção, fornecemos orientações gerais para escalonar as operações do Cassandra, tornando o Cassandra no Apigee Edge para nuvem privada compatível com rack.
Para mais informações sobre por que é importante tornar o anel do Cassandra compatível com rack, 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 grupo lógico de 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 compatíveis com a Apigee em topologias de produção.
A instalação padrão do Cassandra na 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 é 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 (no 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 desse nó em outros racks (em sentido horário).
Adicionar reconhecimento de rack (com 3 nós)
Todas as topologias de instalação de produção da Apigee Edge para nuvem privada têm pelo menos três nós do Cassandra, que esta seção chama 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 para nós de réplica em grupos lógicos separados dentro do anel.
Para atribuir nós do Cassandra a racks diferentes durante a instalação:
- Antes de executar o instalador, faça login no nó do Cassandra e abra o
seguinte arquivo de configuração silenciosa para edição:
/opt/silent.conf
Crie o arquivo, se ele não existir, e defina o usuário "apigee" como proprietário.
- Edite a propriedade
CASS_HOSTS, uma lista separada por espaços de endereços IP (não entradas de DNS ou nome de host) que usa a seguinte sintaxe:CASS_HOSTS="IP_address:data_center_number,rack_number [...]"
O valor padrão é um anel do Cassandra de três nós, 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 de rack para que o nó 2 seja atribuído ao rack 2 e o nó 3 seja atribuído ao
rack 3, como mostra o exemplo a seguir:
CASS_HOSTS="IP1:1,1 IP2:1,2 IP3:1,3"
Ao alterar as atribuições de rack, você instrui o Cassandra a criar mais dois agrupamentos lógicos (racks), 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 do Edge. - Salve as alterações 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 os nós
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 mostra o
exemplo a seguir:
/opt/apigee/apigee-cassandra/bin/nodetool status
Execute esse comando em um dos nós do Cassandra.
Os resultados serão semelhantes aos seguintes, 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 nodetool para gerenciar nós de cluster.
Instalar um anel de seis nós
Para maior redundância, é possível expandir 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 (no sentido horário) e destaca o fato de que, durante a replicação, não há dois nós adjacentes no mesmo rack:
Nessa 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 ao nó 1 também são enviadas às réplicas nos outros racks, em sentido horário.
Para expandir um anel do Cassandra de três nós para um 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 em um anel de três nós, é preciso 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)
- Node 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, aumente o número de nós do Cassandra no anel de seis para 12. Essa configuração requer mais seis nós (IP7 a IP12).
A imagem a seguir mostra a ordem em que as operações são replicadas no anel (no 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 ao de instalar 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, configure os nós da seguinte maneira no arquivo de configuração silenciosa:
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 em um anel 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)
- Node 6 (IP6)
- Nó 12 (IP12)
* É preciso fazer essas mudanças antes de instalar o Apigee Edge para nuvem privada no sétimo nó (a segunda máquina na ordem de instalação do Cassandra).