Estratégia de backup e recuperação para um VPS

2

Eu tenho vários pequenos servidores virtuais privados executando o Ubuntu 11.04. Eu atualmente tenho o VirtualMin gerenciando os backups para o servidor, no entanto, ele apenas faz backup das pastas iniciais dos usuários e a configuração de várias coisas para fazer agora com Apache ou FTP ou qualquer configuração que suporte o host virtual individual.

Eu gostaria de fazer algo mais robusto. Eu gostaria de ser capaz de, no caso de uma emergência, ser capaz de fazer o backup mais recente, movê-lo para um novo VPS e descompactá-lo / descompactar e fazer com que o novo VPS seja essencialmente um clone do antigo.

Atualmente, todos os backups são armazenados no Amazon S3 e eu gostaria de mantê-lo assim. Também gostaria de evitar a dependência de uma ferramenta específica para fazer a restauração (ou seja, armazenamento em binários personalizados / proprietários).

Essencialmente, como posso fazer o backup do servidor para que eu possa descompactar um backup em um novo servidor e fazer com que ele se comporte da mesma maneira. Eu entendo que existem considerações especiais com bancos de dados, eu já tenho uma estratégia de backup para o MySQL.

    
por Malfist 15.02.2013 / 21:58

1 resposta

2

Fazendo backup com o TAR

A coisa bonita sobre o Linux é que tudo é um arquivo. Como tudo é um arquivo, tudo o que você precisa fazer para fazer backup e restaurar o sistema é copiar todos os arquivos de volta (com algumas exceções mencionadas abaixo). Assumindo que o provisionamento do VPS configura o sistema operacional base, você pode simplesmente executar o tar e zincar todo o sistema de arquivos e salvar o arquivo tar.gz em algum lugar. Restaurar é apenas uma questão de descompactar sobre os arquivos existentes, de preferência no modo de usuário único.

Uma maneira ligeiramente mais fácil

Já fiz o tar antes e funciona, mas prefiro configurar o rdiff-backup e o backupninja - o que torna realmente fácil fazer backups incrementais. Este método tem algumas vantagens:

  • Você não precisa escrever seus próprios scripts de backup, basta configurar através de alguns arquivos conf e um menu baseado em texto. Você pode escrever seus próprios scripts para fazer recursos adicionais sem começar do zero
  • Assegura que os backups de SQL sejam feitos antes do backup do sistema de arquivos, para exportar para um arquivo .sql que não seja tão facilmente corrompido
  • Os backups incrementais permitem que você mantenha mais histórico sem ocupar muito mais espaço. Você pode restaurar o sistema inteiro ou um único arquivo em qualquer dia do último mês, por exemplo. O que é importante se as pessoas não perceberem que um arquivo foi excluído ou danificado imediatamente!
  • Como ele usa o rsync para transferir os arquivos, será necessária MUITO menos largura de banda do que os arquivos TAR noturnos.
  • Ainda é apenas um monte de arquivos - sem formatos de arquivos proprietários ou qualquer coisa. Você pode restaurar seus arquivos apenas copiando-os se quiser (embora a restauração por meio do rdiff-backup facilite isso)

O que excluir

Em ambos os casos, há alguns diretórios que talvez você não precise fazer backup ou restaurar:

  • /lost+found - é para onde os arquivos vão quando seu sistema de arquivos está danificado e o fsck tenta consertar as coisas. Se as coisas acabarem aqui, você provavelmente restauraria o backup de ontem de qualquer maneira.
  • /mnt e /media - depende do que está montado lá, se você montar sistemas de arquivos remotos, provavelmente não desejará fazer backup deles com a imagem do sistema local
  • /proc - este é um sistema de arquivos especial para processos - ele fará parte do sistema operacional básico quando você criar um novo VPS e não precisar ser restaurado
  • /sys e /dev - informações sobre drivers e hardware - farão parte da nova instalação do sistema operacional, e a substituição poderá danificar as coisas
  • /tmp - geralmente não é necessário fazer backup de arquivos temporários, e arquivos grandes podem ser criados para ocupar espaço em seus backups
  • /var/cache/ap t - é aqui que o apt armazena os pacotes baixados para que possam ser reinstalados facilmente. Eu não me preocupo em fazer o backup porque pode ficar enorme, e tudo lá pode ser baixado novamente com bastante facilidade

Assim como o cache do apt, você pode ter outros diretórios que contenham grandes arquivos fáceis de serem baixados novamente, portanto, exclua-os. Não há sentido em pagar os custos de armazenamento no S3 para arquivos que você pode baixar novamente.

Teste seus backups!

Os backups não são bons, a menos que você possa restaurá-los. Como você está usando um VPS, deve ser muito fácil girar uma nova máquina virtual e restaurá-la sem afetar o servidor principal. A maioria dos provedores de VPS cobra apenas pelas horas / dias que estão realmente em execução, por isso só custaria alguns dólares para fazer.

Anote exatamente como restaurar seus backups e quaisquer problemas que você tenha superado ao testá-los - quando chegar a hora real, você estará se estressando e é bom ter anotações para guiá-lo pelo processo.

Outras dicas

Se você estiver restaurando para uma máquina diferente, eles podem ter fornecido um endereço IP diferente. Certifique-se de alterar /etc/network/interfaces logo após a restauração para corresponder ao seu novo endereço IP, caso contrário, uma reinicialização bloqueará você. Além disso, verifique em qualquer programa de firewall que você esteja usando para ver se alguma coisa precisa ser alterada. Se este não for um teste e você estiver restaurando para um servidor diferente para valer, também será necessário alterar os endereços IP nas configurações do software do servidor e nos servidores DNS.

A restauração dessa maneira só ocorrerá sem problemas se for restaurada para a mesma versão do sistema operacional. Restaurar para uma versão mais recente do Ubuntu, por exemplo, vai quebrar as coisas, às vezes de formas estranhas que você não percebe até semanas ou meses depois. Se você tiver que restaurar para uma versão diferente, será melhor apenas copiar arquivos de configuração e dados do usuário e instalar qualquer software através do sistema operacional como se fosse uma nova configuração.

    
por 15.02.2013 / 22:10