Eu tenho um cluster Cassandra composto por 21 nós (cada nó tem volume de dados Cassandra de 4 TB) e preciso substituir os nós (migração do Ubuntu 18.04 para 22.04)
Gostaria de saber se é possível reanexar o volume de dados da instância existente a uma nova sem consequências negativas? Eu estava pensando em seguir o plano:
- Drene (nodetool dreno) o antigo servidor Cassandra e desligue-o;
- Desconecte o volume de dados e anexe-o ao novo servidor;
- Inicie o novo servidor;
- Repita as etapas a seguir para o restante dos nós do Cassandra.
Há algum risco em fazer isso, a única coisa que será alterada é o endereço IP privado do nó.
O único problema que vejo ao fazer isso é que as
system
tabelas de keyspace saberão que fazem parte do nó antigo e isso pode causar problemas. Portanto, você pode querer acessarrm -rf
odata/data/system
diretório depois de parar o nó Cassandra original.Ao mover os dados fisicamente, você não precisará se preocupar em transmiti-los para os nós restantes do cluster. Em seguida, mova a unidade para o novo nó e inicie, enquanto configura o sinalizador JVM (no
cassandra-env.sh
arquivo)-Dcassandra.replace_address_first_boot=<dead_node_ip>
para o novo endereço IP. Isso garantirá que o "novo" nó (com a mesma unidade) obtenha os mesmos intervalos de tokens para corresponder aos dados na unidade.Como o novo nó já terá dados, você não precisará transmiti-los. Então eu também coloquei
auto_bootstrap: false
nocassandra.yaml
arquivo.Eu recomendo tentar isso antecipadamente em um ambiente de desenvolvimento/estágio, apenas para ter certeza de que a abordagem funciona. Você também deve dar uma olhada na documentação oficial sobre como substituir um nó , pois isso provavelmente ajudará.