Fazendo um grande backup do sistema de arquivos rapidamente

Fazendo um grande backup do sistema de arquivos rapidamente

Há um sistema de arquivos montado em /home, que possui espaço de armazenamento de 2,6 PB. Atualmente, há mais de 300 TB de dispersão de dados no diretório /home. Pretendo fazer backup de todos os dados de mais de 300 TBde maneira diáriapara /home/fs_backup, mas achei o seguinte comando via tarextremamente lento:

cd /home/fs_backup && tar -cpf backup.tar.gz  --exclude="/home/fs_backup" --one-file-system "/home"

Eu estimo que ele poderia render apenas 10 GB/min, o que significa que não é possível fazer backup de todos os dados de mais de 300 TB em 24 horas. Alguma ideia de como eu poderia 'fazer uma cópia' dos dados atuais em /home, independentemente de estarem bem compactados - ou mesmo não compactados - ou não em pouco tempo. Muito obrigado.

Responder1

Como você já determinou que não pode fazer backup de todo o valor de 300 GB dentro do período obrigatório de 24 horas, será necessário revisar seus requisitos.

No nível do arquivo, uma ferramenta incremental como star, duplicityou mesmo rsync/ rsnapshotainda pode levar mais do que um dia para criar o backup base, mas depois disso deve ser consideravelmente mais rápido. Obviamente, isso dependerá do número e do tamanho dos arquivos que são alterados a cada período de backup de 24 horas.

No nível do sistema de arquivos, um instantâneo pode ser suficiente para suas necessidades (embora não seja realmente um backup), especialmente porque você pode fazer um backup verdadeiro do instantâneo à vontade, sem levar em conta o tempo necessário para sua conclusão. Como antes, uma vez estabelecido o backup básico, seus incrementais poderão levar consideravelmente menos tempo para serem produzidos.

Você não especificou como seu backup deve ser armazenado, mas para muitos arquivos pequenos, algo como rsnapshotpode ser uma boa opção. (Eu o uso para backups baseados em arquivos de muitos de nossos servidores de arquivos internos, pois nos permite acesso trivial a arquivos individuais para fins de recuperação.)

Aliás, um backup em outro disco no mesmo host não deveria ser considerado um backup seguro. Seria muito melhor fazer backup em um host totalmente diferente. (Se /home/fs_backupfor uma montagem remota de um servidor diferente, considere seriamente usar duplicityou rsync/ rsnapshotpara se comunicar diretamente com o host remoto em vez de passar pelo sistema de arquivos montado remotamente.)

Responder2

O método mais rápido que conheço para fazer um backup é usar star(veja a versão mais recente deste programa em schilytools), pois este programa implementa um buffer de anel de tamanho arbitrário que fica entre um processo do sistema de arquivos e outro processo que arquiva E/S. Se o tamanho FIFO for selecionado da maneira correta, quase todos os arquivos serão lidos usando um único read()syscall e isso o torna (juntamente com seu código otimizado) muito rápido.

Este buffer de anel é chamado FIFOe por padrão usa 8MB, mas pode ser solicitado a usar qualquer tamanho. O valor útil máximo é metade do valor RAMda máquina.

startambém suporta dumps incrementais e um dump completo seguido de um dump incremental é o que eu recomendo para salvar o conteúdo de um sistema de arquivos de uma forma que no último estágio leve pouco tempo.

Você pode dar uma olhada na página de manual:http://schilytools.sourceforge.net/man/man1/star.1.html

Observe que esta página de manual recomenda fazer backups não de um sistema de arquivos ativo, mas de um snapshotnível de sistema de arquivos.

informação relacionada