Métodos para backup remoto

Esta página contém um estudo dos métodos de produção, transferência e armazenamento de backups, divididos nas partes:

  • Métodos de tranferência
  • Métodos de armazenamento

A discussão aqui não tem caráter prático mas meramente teórico, sem menção às implementações dos métodos. Para isso, veja a página Convencoes.

Métodos de transferência

Método 1: rsync + hardlinks

Vantagens:

  • Economiza espaço
  • Simples de configurar

Desvantagens:

  • Precisa rodar como root nas duas máquinas/vservers para preservar permissões
  • Workarround: criar um FILELIST.TXT para cada vserver indicando as permissões e os proprietários dos arquivos, juntamente com um script que corrija todas essas permissões no caso de um restauro de backup.

Método 2: tar + ssh

Esse método consiste em criar um .tar.bz2 num pipe direto para o servidor remoto, sem escrita local em disco, isto é,

nice -n 19 tar c /mnt/backup/servidor/vservers/vservers.0/ | bzip2 | \
ssh servidor-remoto "cat - > servidor-vservers-0.tar.bz2"

Vantagens:

  • o arquivo transferido preserva todas as permissões do seu conteúdo
  • no servidor remoto o arquivo fica compactado
  • rodar com um nice alto garante que esse comando não atrapalhará o funcionamento normal do sistema

Para economizar espaço na máquina remota, podemos operar com backups incrementais:

nice -n 19 tar cv /mnt/backup/servidor/vservers/vservers.0/ --listed-incremental=/var/log/backup/vservers.snar \ |
bzip2 | ssh servidor-remoto "cat - > servidor-vservers-`date +%w`.tar.bz2" >> /var/log/backup/servidor-remoto.log

Nesse caso, uma vez por semana as seguintes operações devem ser feitas:

  • Mover todos os arquivos para uma pasta da "semana passada"
  • Iniciar um novo full-dump.

Desvantagem: full-dump semanal.

Método 3: GNU backup

O script backup que acompanha o GNU tar pode ser usado para fazer dumps incrementais locais que depois são enviados aos servidores remotos.

Desvantagem: arquivos não podem ser modificados durante a confecção do backup.

Método 4: duplicity

Método 5: rdiff-backup

Métodos de armazenamento

Método 1: vserver dedicado a backups

Cada servidor possui um único vserver dedicado a puxar os backups dos outros servidores. Esse vserver não terá acesso externo e por isso é a abordagem mais segura de armazenamento.

Veja uma discussão sobre isso em https://docs.indymedia.org/view/Sysadmin/PullBackupsForParanoiacs.

Método 2: vservers dedicados a cada servidor

Cada servidor possui seu próprio vserver em cada máquina remota onde ele fizer backup. Nesse vserver os backups remotos poderão ser feitos como root sem acarretar perda de segurança para a máquina remota, o que faz essa ser a abordagem mais flexível para puxar ou receber backups remotos. Backups criptografados

Veja uma discussão sobre isso em https://wiki.boum.org/TechStdOut/EncryptedBackupsForParanoiacs.