ferramenta rsync-like que suporta compressão e mantém hardlinks?

6

Eu uso um esquema de backup rsync para manter diariamente (e também semanalmente e mensalmente) "instantâneos" do meu servidor de arquivos, usando o recurso de link-dest de rsync para armazenar hardlinks entre os instantâneos para arquivos que não foram alterados. Isso funciona muito bem: Fazendo backup de mais de 330 GB de dados, um instantâneo inteiro ocupa apenas 1,5 MB no disco, se nenhum arquivo for alterado.

Recentemente, uma falha no disco rígido neste servidor me chocou com a percepção de quão frágil estou agora - embora não tenha perdido dados graças a esses instantâneos de backup, os backups e os dados que eles armazenam estão no mesmo físico caixa no escritório no meu apartamento; algo tão simples como uma pequena fogueira no meu prédio poderia destruir completamente a última gota (trocadilho intencional) dos meus dados!

Eu tenho um local fora do local para o qual eu poderia levar discos rígidos externos, portanto, pretendo implementar um backup externo rotativo em que eu teria um disco rígido off-line e off-site, enquanto um segundo é conectado e Fazendo backup de meus instantâneos, e eu periodicamente (por exemplo, uma vez por semana) trocá-los, de modo que, se o pior acontecer, eu perco no máximo as últimas semanas de dados.

Agora aqui está o problema: eu quero fazer backup dos meus instantâneos, não dos dados em si, no disco rígido externo. (Eu não percebi o disco rígido que falhou por um dia, de modo que o instantâneo diário do dia seja praticamente inútil; ter instantâneos adicionais, no entanto, é o que salvou meu bacon, e também quero o mesmo nível de segurança aqui. : Na verdade, monitore esses dados úteis do SMART ...) O cp provado e verdadeiro não funcionará porque ele verá arquivos individuais, não hard links, aumentando o armazenamento necessário em 7 vezes! rsync funcionaria, mas gostaria que os dados dessas unidades externas fossem compactados para que eu pudesse ter unidades menores (estou direcionando 1TB, mais do que suficiente para os 337 GB atuais de dados, mas marcadamente menores do que a capacidade de quase 3 TB do meu servidor de arquivos, eu não espero poder fazer backup de todos os 3 TB para apenas 1 TB, mesmo com a compactação, eu só quero que o 1 TB tenha uma vida útil máxima como meus dados cresce).

Então, alguém sabe de um método pelo qual eu poderia manter associações hard-link entre os snapshots e também compactar os arquivos que estou fazendo backup? A solução ideal também suportaria uma lista de exclusão para que eu pudesse simplesmente pular a compactação de arquivos já compactados (.zip, .gz, .mp3, .jpg, etc.).

Apenas para maior clareza, estou procurando um esquema em que um link físico em /backup/snapshots/daily.1/file1 que aponte para /backup/snapshots/daily.0/file1 seja copiado para / mnt / external_hdd / snapshots / daily.1 / file1 como um link físico que aponta para /mnt/external_hdd/snapshots/daily.0/file1, o último dos quais (o próprio arquivo real) está agora compactado (por exemplo, gzip).

    
por Kromey 05.04.2011 / 20:09

2 respostas

3

Veja rdup-simple (de rdup ). Você disse que queria a compactação, mas, caso mude de ideia, recomendo enfaticamente rsnapshot .

A propósito, se dois hardlinks apontarem para um arquivo, é o mesmo arquivo. Você não pode compactar apenas um dos hardlinks, uma vez que são os mesmos dados subjacentes no sistema de arquivos.

    
por 05.04.2011 / 20:49
2

Você pode fazer a compactação no nível do sistema de arquivos. No entanto, nenhum dos sistemas de arquivos tradicionais no Linux suporta sistemas de arquivos, o que deixa você com três opções.

Você obterá uma taxa de compactação muito melhor se compactar um arquivo grande do que se compactar vários arquivos pequenos separadamente. Por isso, seria uma boa ideia usar arquivos em sua mídia externa. Basta usar qualquer software de backup com arquivamento, por exemplo, duplicidade . Você ainda pode navegar nos arquivos facilmente com o Gnome ou sistemas de arquivos virtuais do KDE, ou com qualquer programa através do AVFS ( mountavfs; ls ~/.avfs$PWD/archive.tgz#/path/to/archive/member ).

    
por 05.04.2011 / 21:39