Armazenamento em nuvem e sincronização entre plataformas CLI?

0

Estou trabalhando com um projeto acadêmico que está tentando otimizar a eficiência energética para proprietários de residências, coletando dados de sensores em residências inteligentes. O problema é que eles precisam carregar seus dados de sensores de uma rede de máquinas heterogêneas de patchwork (alguns laptops Windows, alguns servidores Linux, alguns Raspberry Pis, etc.).

A solução precisa ter as seguintes propriedades:

  • Sincronizar para / de S3. Já temos alguns dados sobre o S3, mas não nos importamos com o provedor, desde que seja um armazenamento de backup barato e com baixa falha que parece um diretório.

  • Sincronização unidirecional por arquivo Deve ser possível fazer upload de alterações apenas para um arquivo específico, em vez de para um diretório inteiro. Também deve ser capaz de promover mudanças.

  • A Delta escreve. Os arquivos serão grandes e não queremos enviá-los novamente por completo - apenas as alterações.

  • Armazena metadados separadamente. Precisamos poder ler os arquivos na extremidade remota, pois eles estão no lado local; se os arquivos estiverem envoltos em algum tipo de envelope / contêiner que dificultará o seu consumo.

  • Interface da linha de comando. Ele precisa ser programável por script, porque estaremos conduzindo o processo de sincronização com um script externo.

  • Plataforma cruzada. Deve funcionar no Windows 7+ e no Ubuntu.

  • Dependências externas mínimas. Idealmente, "instalação" consistiria em descartar uma pasta em algum lugar ou fazer o download de um pacote.

Opções que eu olhei e tive que rejeitar:

  • Escreva diretamente usando s3fs: Não suporta gravações delta; reenvie o arquivo inteiro para qualquer alteração. Ai!

  • rsync + s3rsync.com: Proibitivamente caro, já que nossos fluxos de rsync farão upload de muitos dados, o tempo todo. Além disso, o site está extinto ("copyright 2010"), muitas críticas negativas.

  • Duplicidade: Não oferece suporte à gravação de conteúdo de arquivo não processado - todos os arquivos são agrupados em metadados que apenas o Duplicity compreende.

  • Sincronização: Não suporta sincronização unidirecional de arquivo único.

por John Feminella 03.02.2014 / 14:54

0 respostas