Software de backup mais eficaz para o Linux - Linux quando se lida com um grande número de arquivos

3

Eu tenho dois NASes.
Eu trabalho fora de um e o outro é usado como backup. Como eu configurei agora, é lento . Executar um backup leva uma semana .
Mesmo para 7 TB, com 1.979.407 arquivos, isso parece um pouco estranho, especialmente porque ambos os sistemas são RAID-5 e a rede é toda gigabit.

Eu andei pesquisando nas páginas de manual do rsync, e realmente não entendo o que diferencia as diversas topologias.
Agora, todo o processamento está sendo feito no NAS de backup, que tem o volume principal do NAS principal montado localmente em SMB. Eu suspeito que o overhead SMB está me matando, particularmente quando se lida com muitos arquivos.

Acho que preciso configurar o rsync no nas principal como um daemon e, em seguida, executar um cliente rsync local para me conectar a ele, o que me permitiria evitar completamente todo o SMB-in-the-middle caso, além de mencionar que está lá, eu posso encontrar muito pouca informação sobre por que alguém iria querer usar o modo daemon para o rsync.

Aqui está minha linha de comando rsync atual:
rsync -r -progress --delete /cifs/Thecus/ /mnt/Storage/

Alguma entrada? Existe uma maneira / ferramenta melhor para fazer isso?

Editar:
Ok, para resolver as questões adicionais:
O NAS principal é um Thecus N7700. Eu tenho módulos adicionais instalados que me dão SSH, e tem rsync, mas não está no $ PATH, e eu ainda não descobri como editar o $ PATH local de uma forma que persiste entre reboots.
O NAS "Backup" é um caso de bricolagem, construído em torno de uma href="http://www.adaptec.com/pt-BR/products/Controllers/Hardware/sas/value/SAS-3805/"> Adaptec Hardware RAID card . Ele está rodando o CentOS 5 com um ambiente de desktop completo. É o hardware do qual estou executando o rsync. (Gigabit é através de uma placa PCI adicional).

Edição adicional: Ok, tenho rsync sobre SSH trabalhando (obrigado, lajuette!).
Eu tive que fazer um pouco de ajustes na minha linha de comando, estou executando o rsync com os args:
rsync -rum --inplace --progress --delete --rsync-path=/opt/bin/rsync [email protected]:/raid/data/Storage /mnt/Storage
(Nota: Eu especificamente não estou usando -a, porque eu quero mudar a propriedade para a conta local, para não enlouquecer o SELinux)

Parece estar funcionando. Vou ver quanto tempo demora.

    
por Fake Name 18.07.2010 / 08:51

5 respostas

3

Você está certo: o SMB é terrivelmente lento quando se trata de muitos arquivos.

Eu mesmo uso o rsync para sincronizar minha biblioteca de músicas.

rsync -aum --delete /my/music/library/* 192.168.1.5:/backup/of/music/library/

Dessa forma eu digo ao rsync para sincronizar via ssh. Você precisa de um servidor ssh em execução na máquina de destino (192.168.1.5 no meu caso) e ter o rsync instalado em ambas as máquinas.

Aqui está uma explicação se as opções:

  • -a: item de lista arquivar todos os arquivos (incluir opções rlptgoD)
  • -u: atualizar existente arquivos, não os copie novamente se eles já estão em vigor
  • -m: podar dirs vazios
  • - excluir: excluir arquivos no destino que foram excluídos na origem

herdado através da flag -a:

  • -r: recursa por subdiretórios
  • -l: preserva links simbólicos como links simbólicos
  • -p: preservar permissões
  • -t: preserva o tempo de modificação
  • -g: preservar grupo
  • -o: preservar proprietário
  • -D: preserva o dispositivo e arquivos especiais

Isso deve sincronizar seu NAS rapidamente. Se você tentar, poste seus resultados!

    
por 18.07.2010 / 09:56
1

Caso você ainda tenha problemas, ou para outros que estejam lendo isso, recomendo olhar para as seguintes opções de rsync (além das mencionadas por lajuette, como o imensamente útil -u):
-z (compactar: A menos que sua rede seja muito mais rápida que sua CPU, isso pode economizar tempo, mas você pode testar isso)
--partial-dir = '. rsync-partial' (no caso de a conexão ocorrer e você estivesse apenas transferindo um arquivo de filme de 7 gigabytes, você pode continuar de onde parou, em vez de reiniciar; considero --inplace, que é incompatível com isso, como muito perigoso)
-v (modo detalhado - somente para teste / resolução de problemas)
--exclude-from = 'seu-excluir-lista-arquivo' (se você tiver arquivos de backup, arquivos de sistema, imagens em miniatura, arquivos temporários / cache, determinados diretórios, etc., você não precisa fazer backup, etc., liste-os no arquivo de exclusão com curingas opcionais; isso pode reduzir o volume)

A opção --delete é muito perigosa e deve ser usada com muita cautela, porque se você acidentalmente apagar um ou mais arquivos e antes que você perceba você faz o seu backup (por exemplo, através de um cron job), então cópia se foi também.

A variável PATH deve ser definida / modificada em seu arquivo $ HOME / .profile, isso é executado sempre que você efetua o login.

Além disso, sugiro a segunda sugestão de MattBianco de tentar encontrar primeiro o gargalo da garrafa.

Espero que isso ajude.

    
por 24.08.2010 / 00:00
0

O rsync executado como um daemon não é seguro, portanto, é realmente útil apenas para as lojas que você deseja disponibilizar publicamente. A maneira de fazer isso é fazer com que o ssh trabalhe no NAS para que você possa rsync para nas-device:/path/to/storage diretamente, então a partir daí você pode ajustar as configurações do ssh para otimizar então.

    
por 18.07.2010 / 09:29
0

Que tipo de NAS são estas? Você está executando rsync na CPU incorporada? Talvez seja a CPU que é o gargalo aqui. Você sabe o que o sistema de arquivos interno está no NAS: es? Existem milhões de arquivos no mesmo diretório?

Se você tem uma rede Gigabit de ambos os NAS, e eles têm ambos montados em sua caixa linux (com smbmount ou NFS), não deve ser tão lento para sincronizá-la com rsync , que acredito ser a melhor opção para sincronizar grandes quantidades de dados, como você faz. Apenas tente descobrir onde o gargalo é o primeiro. Então será muito mais fácil encontrar uma solução melhor.

    
por 18.07.2010 / 10:10
0

Você conhece o uso de hard-links para criar backups point-in-time com eficiência de espaço?

Aqui está um artigo sobre isso. link

Como você está usando o rsync, já está na metade do caminho, mas pode ser uma adição útil ao sistema existente.

Essencialmente, você pode armazenar muitas, muitas cópias de seus dados de origem. Cada um deles parece uma estrutura de diretórios completa, mas os arquivos que não mudam entre as versões compartilham os mesmos inodes no (s) disco (s). Embora a solução mais simples seja usar o rsync com o parâmetro --link-dest, conforme descrito acima, a técnica também é implementada em outro software de backup, como:

  • backuppc :: backuppc.sourceforge.net
  • back-in-time :: backintime.le-web.org
  • rsnapshot :: rsnapshot.org (não usou pessoalmente este)
por 19.07.2010 / 17:47