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).