Adicionar suporte a rack do Cassandra

Esta seção fornece orientações gerais para operações de escalonamento do Cassandra tornando o Cassandra no Apigee Edge para reconhecimento de rack de nuvem privada.

Para mais informações sobre a importância do reconhecimento do rack de suporte do Cassandra, consulte os links a seguir recursos:

O que é um rack?

Um rack do Cassandra é um agrupamento lógico de nós do Cassandra no anel. Cassandra usa racks para garantir que as réplicas sejam distribuídas entre diferentes agrupamentos lógicos. Como as operações são enviadas não só para um nó, mas para vários nós, cada um em um rack separado, 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 de um data center dentro dele. Embora essa configuração seja simples de instalar e gerenciar, fica 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:

1 rack com 3 nós
(Figura 1) Configuração padrão: todos os nós em um único rack

Em uma configuração mais robusta, cada nó é atribuído a um rack e operações também são executados 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 replicado no anel (sentido horário) e destaca o fato de que não há dois nós no mesmo rack:

3 racks, com 1 nó em cada rack
(Figura 2) Configuração compatível com rack: três nós, um em cada rack

Nesta configuração, as operações são enviadas para um nó, mas também para as réplicas desse nó. em outros racks (no sentido horário).

Adicionar reconhecimento de rack (com 3 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, refere-se a "IP1", "IP2" e "IP3". Por padrão, cada um desses nós fica no mesmo rack, "ra-1".

Esta seção descreve como atribuir os nós do Cassandra a racks separados para que todas as operações são enviados para 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:

  1. 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 "apigee" o usuário como proprietário.

  2. Edite a propriedade CASS_HOSTS, uma lista separada por espaços de endereços IP (não DNS ou entradas do host) que usa a seguinte sintaxe:
    CASS_HOSTS="IP_address:data_center_number,rack_number [...]"

    O valor padrão é um anel do Cassandra com três nós, com cada nó atribuído ao rack 1 e aos dados center 1, como mostra o exemplo a seguir:

    CASS_HOSTS="IP1:1,1 IP2:1,1 IP3:1,1"
  3. Altere as atribuições do rack para que o nó 2 seja atribuído ao rack 2 e o nó 3 seja atribuído 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 duas regras (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 de borda.

  4. Salve as alterações no arquivo de configuração e execute o seguinte comando para instalar 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
  5. Repita este 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:
    1. Nó 1 (IP1)
    2. Nó 2 (IP2)
    3. 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 compatível com rack, você pode verificar se os nós estão atribuídas aos diferentes racks usando o comando nodetool status, como o exemplo a seguir mostra:

/opt/apigee/apigee-cassandra/bin/nodetool status

Execute 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 deverá passar seu nome de usuário e senha para nodetool. Para mais informações, consulte Use o nodetool para gerenciar os nós do cluster.

Instalar um anel de seis nós

Para redundância adicional, você pode expandir o anel do Cassandra para seis nós. Nesse caso, atribuir 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:

Três racks, com dois nós em cada rack
(Figura 3) Anel do Cassandra com seis nós: dois nós em cada um três racks

Nesta configuração, cada nó tem mais duas réplicas: uma em cada um dos outros dois racks. Para 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, em sentido horário.

Para expandir um anel do Cassandra com três nós para um de seis nós, configure os nós na 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, você precisa instalar o Cassandra na mesma ordem em que os nós aparecem na propriedade CASS_HOSTS:

  1. Nó 1 (IP1)
  2. Nó 4 (IP4)*
  3. Nó 2 (IP2)
  4. Nó 5 (IP5)
  5. Nó 3 (IP3)
  6. Nó 6 (IP6)

* Faça suas 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 no círculo de 6 a 12. Essa configuração requer mais seis nós (IP7 por 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:

3 racks, com 4 nós em cada rack
(Figura 4) Anel do Cassandra com 12 nós: quatro nós em cada um dos três racks

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 fazer a expansão para um anel do Cassandra de 12 nós, configure os nós da seguinte maneira no silencioso de configuração do Terraform:

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 acontece com anéis de três e seis nós, você precisa executar o instalador nos nós na ordem em que os nós aparecem no arquivo de configuração:

  1. Nó 1 (IP1)
  2. Nó 7 (IP7)*
  3. Nó 4 (IP4)
  4. Nó 8 (IP8)
  5. Nó 2 (IP2)
  6. Nó 9 (IP9)
  7. Nó 5 (IP5)
  8. Nó 10 (IP10)
  9. Nó 3 (IP3)
  10. Nó 11 (IP11)
  11. Nó 6 (IP6)
  12. Nó 12 (IP12)

* Você precisa fazer essas alterações antes de instalar o Apigee Edge para nuvem privada no sétimo nó (a segunda máquina o pedido de instalação do Cassandra).