Esta é uma boa idéia para backups usando rsync, squashfs e aufs?

0

Atualmente, faço backups usando rsync e hardlinks. Eu crio um novo full a cada ano e, em seguida, incrementais todos os dias. Eu gosto do jeito que eu posso navegar em um gerenciador de arquivos comum, e esse acesso é bastante rápido. Eu não gosto da quantidade de tempo e espaço ocupados criando os hardlinks. Eu também gostaria de compressão (mas de certa forma, portanto, a corrupção afeta apenas um único arquivo). Também seria melhor se eu pudesse armazenar isso em sistemas de arquivos que não suportam atributos linux (como armazenamento em nuvem).

Eu fiz algumas pesquisas e testes e aprendi algumas coisas. Em primeiro lugar, descobri que squashfs satisfaz todas as minhas necessidades, exceto incremental. Ele compacta cada bloco individualmente (ainda que tenha comprimido meu diretório home para 70% do tamanho original), de modo que a corrupção afeta apenas uma pequena quantidade de dados. Ele também pode ser armazenado como um arquivo comum e ainda conter atributos do Linux. Também pode ser montado e suporta acesso aleatório. Para resolver a necessidade remanescente de backups incrementais, pesquisei sistemas de arquivos de sobreposição. Eu decidi pelo aufs, pois ele suporta múltiplos branches, e parece simples o suficiente para usar.

A maneira que estou pensando em fazer backups é:

  • Na unidade de backup, eu teria três pastas:
    • Uma pasta de trabalho (para sincronizar com o computador usando o rsync algumas vezes para que eu possa ter um backup atômico)
    • Uma pasta temporária (para armazenar os pontos de montagem temporários)
    • A pasta de backup:
    • Armazena instantâneos anuais completos como squashfs, com o nome tendo o seguinte padrão: full-${unix_timestamp}.squashfs
    • Armazena instantâneos incrementais mensais com base no instantâneo completo mais recente com o seguinte padrão: full-${unix_timestamp_of_full}-differential-${unix_timestamp}.squashfs
    • Armazena instantâneos incrementais diários com base no diário anterior, até o mês mais recente. Isso seria denominado como: daily-${unix_timestamp_of_monthly}-incremental-${unix_timestamp}.squashfs
  • O processo de backup seria assim:
    • Executar rsync -axvh --delete /home /backups/work/ algumas vezes (e com algumas exclusões para cache e lixo)
    • mkdir /backups/temp/overlay
    • Monte todos os backups diários, mensais e completos relevantes em um ponto de montagem em /backups/temp/
    • Monte aufs em /backups/base com todas as montagens squashfs sendo ro, e a sobreposição sendo rw
    • dir de trabalho do Rsync para overlay, com o compare-dest sendo /backups/base
    • mksquashfs a sobreposição para o incremental diário relevante
    • rm o diretório de sobreposição
    • Desmontar tudo
  • A navegação apenas faz a montagem aufs como parte do processo de backup, até a data em que quero navegar

Isso é possível ou vou me deparar com problemas importantes (como problemas de desempenho) e minha ideia parece boa?

Estou planejando escrever um script para automatizar esse processo se não houver problemas importantes na minha ideia.

    
por user276075 15.02.2018 / 04:55

1 resposta

0

Parece assim:

link

A backup program employing the use of SquashFS, Aufs and Rsync

    
por 06.08.2018 / 17:09