Existem várias opções diferentes disponíveis, e depende da sua situação, que é melhor, mas aqui está uma visão geral das técnicas disponíveis.
Existem basicamente duas coisas que você está tentando proteger ao fazer o backup de um armazenamento de dados:
- Perda de dados devido a falhas nos volumes de armazenamento subjacentes
- Perda de dados devido a dados inválidos sendo inseridos ou excluídos da loja
O Cassandra tem replicação de dados incorporada em seu design. A opção de configuração do fator de replicação informa à cassandra quantas cópias de cada registro devem ser armazenadas. Uma escolha comum para o fator de replicação é 3, porque ele representa um bom equilíbrio entre desempenho e durabilidade. Se você tiver um fator de replicação maior que um, poderá suportar a perda de pelo menos alguns nós. Há muito mais a dizer sobre este assunto, mas você pode ler sobre isso em outro lugar.
A replicação não protege você contra alterações de dados ruins por meio da API, já que as exclusões em massa replicam o mesmo que as boas inserções. Para ajudá-lo com isso, a cassandra oferece um recurso de instantâneo. Basicamente, ele vincula os arquivos de dados a uma pasta de snapshots no diretório de dados. Essa pode ser uma abordagem bastante barata, dependendo de quão frequentemente e aleatoriamente seus dados são alterados. Uma abordagem possível é manter vários instantâneos nos discos das máquinas cassandra, desde que você tenha espaço suficiente.
Se você tiver capacidade de E / S de reserva, poderá transferir esses backups para máquinas separadas. Na minha experiência, isso afeta muito o rendimento do disco e da rede.
Por fim, a partir do Cassandra 0.7, você pode configurar a replicação de vários datacenters. Essencialmente, você pode ter várias cópias de seu cluster distribuídas em todo o mundo. Se você combinar isso com instantâneos, você terá algumas opções diferentes para restaurar seus dados quando algo der errado.
Lembre-se de que você ganha 1 ponto por fazer um backup e 10.000 pontos por restaurar um. Pense em como você testará seus backups para garantir que eles possam ser restaurados quando chegar a hora.