Usando o RSYNC com o Amazon S3 [fechado]


39

Estou interessado em usar o Amazon S3 para fazer backup de imagens de servidor de ~ 100 GB (criadas por meio das ferramentas de backup da Acronis)

Obviamente, esse upload para o S3 todas as noites seria caro, em termos de largura de banda e custo. Estou pensando em usar o rsync com o S3 e me deparei com o s3rsync. Eu só estava me perguntando se alguém tinha alguma experiência usando isso, ou qualquer outro utilitário?


1
Uma coisa que notei no s3rsync é que você está atualmente limitado a tamanhos de bucket de 10 GB (consulte as Perguntas frequentes). Você pode ter vários buckets, mas precisa dividir seus dados em blocos de 10 GB.
dana

Respostas:


35

Recentemente, deparei com esta discussão no Google e parece que o cenário mudou um pouco desde que a pergunta foi feita. A maioria das soluções sugeridas aqui não é mais mantida ou se tornou comercial.

Após algumas frustrações ao trabalhar com o FUSE e algumas das outras soluções disponíveis, decidi escrever meu próprio "clone" de linha de comando rsync para S3 e Google Storage usando Python.

Você pode conferir o projeto no GitHub: http://github.com/seedifferently/boto_rsync

Outro projeto que eu tive conhecimento recentemente é a "duplicidade". Parece um pouco mais elaborado e pode ser encontrado aqui: http://duplicity.nongnu.org/

Espero que isto ajude.

ATUALIZAR

A equipe de Python da AWS está trabalhando duro em um projeto CLI baseado em boto para seus serviços em nuvem. Entre as ferramentas incluídas, há uma interface para o S3, que duplica (e sob muitos aspectos substitui) a maioria das funcionalidades fornecidas pelo boto-rsync:

https://github.com/aws/aws-cli

Em particular, o synccomando pode ser configurado para funcionar quase exatamente como o rsync:

http://docs.aws.amazon.com/cli/latest/reference/s3/sync.html


grande contribuição! obrigado e darei uma chance ao seu código em breve. Você tem leituras obrigatórias para aprender python / django? Cheers
iainlbc

Quais vantagens / diferenças seu programa tem em comparação com o S3cmd e o S3sync?
James McMahon

@JamesMcMahon s3cmd / s3sync são CLIs mais completas para o S3 (gerenciar buckets, conteúdo da lista etc.), enquanto o boto-rsync é estritamente uma tentativa de imitar o rsync.
Seth

Existe um fusível s3fs : github.com/s3fs-fuse/s3fs-fuse que funciona muito bem e pode ser combinado com o rsync, mas não tenho certeza da eficiência.
Stanislav

Seria incrível se você pudesse explicar como "o comando sync pode ser configurado para funcionar quase exatamente como o rsync".
21818 Trusktr #

10

Também tive sorte com o S3cmd e o S3sync , ambos gratuitos.


+1 para S3cmd -.-
fnkr

S3cmd tem um problema com grandes filenumbers (> 300k arquivos) .. Ele come sobre 1gig por 100k arquivos de memória de trabalho tão bom ter em mente que a limitação ..
Tuxie

7

Dependendo de como as suas imagens Acronis são criadas, não tenho certeza de que algum tipo de rsync economize sua largura de banda. As imagens Acronis são arquivo (s) único (s), portanto, o rsync não poderá ler dentro delas para fazer backup apenas do que mudou. Também não tenho certeza de que tipo de imagens de servidor você está criando, mas desde que você disse 100 GB, vou assumir o total? Uma imagem incremental reduziria muito o tamanho da imagem noturna, economizando largura de banda. Você também pode salvar as imagens em um local alternativo ao S3, como mídia de fita, e armazená-las fora do local.


4
Não, o rsync não funciona assim. Ele funciona com qualquer tipo de arquivo e não precisa de nenhum conhecimento das partes internas do arquivo que está sendo sincronizado. Em vez disso, compara hashes de partes do arquivo e transfere apenas as partes que diferem. en.wikipedia.org/wiki/Rsync
Alan Donnelly

2
e nenhum dos mandris corresponderá porque qualquer pequena alteração nos arquivos dentro da imagem fará com que o arquivo inteiro seja alterado devido à compactação. Mesmo com a compactação desativada, não tenho certeza se o rsync funcionaria bem, pois os arquivos dentro da imagem podem mudar de ordem e coincidir numa base contínua, em vez de encontrar qualquer parte da mesma forma.
21411 JamesRyan

4

Eu nunca tentei o S3rsync.

Estou usando duplicidade para nossos backups externos. Ele suporta backups incrementais no S3, embora não esteja realmente economizando largura de banda devido ao protocolo de armazenamento Amazon S3, no qual qualquer modificação de arquivo obriga a carregar novamente o arquivo inteiro. Enfim, a duplicidade apenas carrega diferenças do último backup incremental.

Com o Duplicity, você não precisará passar por outro servidor, como o S3sync, no entanto, se você criptografar seus dados, vale a pena tentar o S3sync.


1

O S3 também possui um serviço complementar chamado AWS Import / Export que permite enviar uma unidade USB com o conjunto de dados inicial de 100 Gb e eles serão carregados na nuvem S3 usando algumas ferramentas de back-end em seus datacenters. Quando o seu 100Gb estiver lá em cima, você pode fazer backups diferenciais todas as noites para fazer backup de tudo o que mudou.

O site é http://aws.amazon.com/importexport/

Se a maioria dos seus dados for razoavelmente estática, essa seria uma boa opção, se todos os 100 GB de dados estiverem mudando diariamente, isso não ajudará muito.


3
Como você acha que eles "carregam" uma unidade flash de 128Gb? Imagino o maior hub USB do mundo, um patch panel do chão ao teto de conectores USB, 3/4 cheios de unidades flash fornecidas pelo cliente, todas na parte traseira de um único servidor blade.
Paul Paul

Que imagem !! Na realidade, provavelmente, alguns pobre rapaz em um canto escuro de um centro de dados com maior do seu mundo hub USB conectado ao seu PC :)
monkeymagic

0

Você pode tentar o minio client, também conhecido como "mc". O mc fornece ferramentas mínimas para trabalhar com sistemas de arquivos e armazenamento em nuvem compatíveis com Amazon S3.

mc implementa os seguintes comandos

  ls        List files and folders.
  mb        Make a bucket or folder.
  cat       Display contents of a file.
  pipe      Write contents of stdin to one or more targets. When no target is specified, it writes to stdout.
  share     Generate URL for sharing.
  cp        Copy one or more objects to a target.
  mirror    Mirror folders recursively from a single source to many destinations.
  diff      Compute differences between two folders.
  rm        Remove file or bucket [WARNING: Use with care].
  access    Manage bucket access permissions.
  session   Manage saved sessions of cp and mirror operations.
  config    Manage configuration file.
  update    Check for a new software update.
  version   Print version.

Você pode usar o comando mirror para fazer sua operação. "localdir" sendo o diretório local & S3 [alias para Amazon S3] e o nome "remoteDir" do seu bucket no S3.

$ mc mirror localdir/ S3/remoteDir

Você também pode escrever um cronjob para o mesmo. Também em caso de indignação da rede, você pode usar "$ mc session" para reiniciar o upload a partir desse momento.

PS: Eu contribuo para o projeto minio e gostaria de receber seu feedback e contribuição. Espero que ajude.


-1

O novo Jungle Disk Server Edition (beta) pode ser útil para você. Possui desduplicação em nível de bloco, portanto, se suas imagens Acronis tiverem algo em comum, isso reduzirá bastante a quantidade que você precisa fazer backup. Os recursos são perfeitos para backups de servidores. Confira as notas de versão.

Estou testando a versão beta há duas semanas e, além de alguns pequenos problemas com a GUI que, com certeza, serão corrigidos na final, estou animado com o produto.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.