Backups por meio de sistemas de arquivos distribuídos

Backups por meio de sistemas de arquivos distribuídos

Espero poder articular minha pergunta da forma mais precisa possível.

Estou procurando uma maneira de fazer backups para meus servidores VM o mais rápido e frequente possível, pois os dados que eles estão manipulando/produzindo são valiosos. Eu tenho um KVM-Host e pelo menos 2 convidados: servidor Web (Apache/PHP) e servidor de banco de dados (MySQL/Solr). Não me importo muito com o anfitrião, mas sim com os convidados. Não quero que você se aprofunde em KVM ou virtualização neste tópico. Este thread deve ser aplicável a todos os ambientes baseados em VM e também a todos os outros ambientes. O cenário vm é adequado porque é mais complicado e representa uma das situações mais complexas da minha imaginação. Pelo menos, eu preciso disso com base nisso.

Atualmente, tenho backups in-vm e instantâneos baseados em LVM que gero 1 a 2 vezes por dia. No caso de uma falha de hardware (que tive recentemente), perco muitos dados, na melhor das hipóteses.

Portanto, uma maneira seria analisar cada aplicativo/serviço e aplicar a melhor estratégia de backup disponível. Deve ser considerado em cada caso.

Outra forma interessante parece ser a utilização de um sistema de arquivos distribuído. A ideia é ter um sistema de arquivos que atue um pouco como o log binário do MySQL. Ou mais geral: ele captura todas as ações de gravação no sistema de arquivos e as replica para outra máquina de forma assíncrona. Dependendo da rede e da quantidade de dados gravados, isso pode resultar em segundos ou minutos de latência e nem é preciso dizer que perde todas as ações retidas no cache. Portanto, eu tenho uma VM que está em um sistema de arquivos distribuído instalado no host da VM. Cada ação de gravação é aplicada de forma assíncrona em um (digamos) servidor de backup. Quando se trata de uma falha de hardware, posso mudar para o servidor de backup (em teoria) como o novo mestre ou simplesmente copiar os arquivos de volta para o servidor mestre restaurado, caso o tempo de inatividade seja mais aceitável do que a perda de dados. O efeito deve ser que a máquina virtual aja como se tivesse sido desligada imediatamente, segundos ou minutos antes. Mas não horas. Não busco uma replicação mestre-mestre no nível do sistema de arquivos, pois isso não é suportado pela maioria dos aplicativos, especialmente servidores de banco de dados como MySQL!

Então minha pergunta é: existe alguém que já tenha feito alguma experiência com tais configurações ou tenha conhecimento positivo e negativo para esta tentativa de backup de dados? Não tenho experiência profunda com esses sistemas de arquivos. Especialmente em confiabilidade e desempenho.

Responder1

Um sistema de arquivos distribuído não é um backup, é redundância. Ele também fará backup de suas exclusões acidentais.

Dito isto,DRBD.

Responder2

A melhor resposta possível para a sua situação é o armazenamento em cluster, onde os dados são armazenados de forma redundante no nível do bloco. Existem várias maneiras diferentes de implementar isso, mas o melhor que posso imaginar (pelo menos de acordo com suas especificações de tempo de atividade) seria um cluster de pilha aberta. O Openstack distribuirá armazenamento e computação para que, no caso de falha de hardware, tanto a execução quanto o armazenamento sejam redundantes e incessantes. Em outras palavras, a melhor maneira de manter a integridade dos dados e o tempo de atividade é garantir que o aplicativo não trave. Como Yoonix apontou, isso não irá protegê-lo contra erros de usuário/lógica, mas a pilha aberta também inclui ferramentas para criação de imagens/backup de disco - carregar uma imagem e inicializar leva minutos, senão segundos. Amazon Web Services e Rackspace são exemplos de implantações openstack. http://www.openstack.org/

Um bom lugar para começar com o openstack é o devstack (praticamente um script de implantação com vários modos de implantação diferentes para testar) http://devstack.org/

O ponto fraco desta implementação é a falta de hardware, este sistema não brilha exatamente em um pequeno escritório com apenas dois servidores físicos ou algo semelhante (embora funcione muito bem com sistemas blade)

Responder3

Você já pensou em migrar para uma plataforma VMware e utilizar suas soluções para isso?

'Fault Tolerance' (usando vLockstep) mantém uma segunda cópia 'standby' de qualquer VM atualizada com todas as alterações feitas na versão primária da VM. Se algo acontecer com a versão primária, o sistema fará failover imediatamente para a VM secundária. (pouco ou nenhum tempo de inatividade ou impacto)

'Alta disponibilidade' mantém uma VM em espera preparada, mas a VM em espera é mantida desligada. No caso de falha da VM primária, o sistema liga automaticamente a VM em espera. (vários minutos de inatividade)

Esse material funciona muito bem e é muito confiável. Mas... é caro. Se você não tem orçamento para o licenciamento necessário para administrar essas tecnologias, esta sugestão não o ajudará em nada. Esperamos que pelo menos lhe dê mais algumas ideias sobre quais ferramentas existem.

informação relacionada