Sincronização de arquivos para o Ubuntu Server

3

Estou planejando configurar dois servidores Ubuntu como soluções de backup, onde as pessoas podem armazenar imagens e documentos. O que eu tenho em mente é que, se um usuário salva / atualiza um arquivo em um diretório específico (diretório compartilhado do Samba, talvez?) Em um servidor Ubuntu, ele irá sincronizá-lo com outro servidor.

O que vocês acham? Existe uma solução melhor para isso? Obrigado antecipadamente!

Editar: É aconselhável criar o diretório gravável e definir o acesso dele no Samba? Os usuários têm o Mac OSX e o Windows XP instalados como seus sistemas operacionais.

    
por user11001 12.08.2009 / 08:25

5 respostas

7

rdiff-backup

Você já deu uma olhada no rdiff-backup?

Nós o usamos para sincronizar mais de 4 milhões de arquivos de um servidor de arquivos do Ubuntu para outro sem nenhum problema. Um recurso muito interessante do rdiff-backup é que ele mantém uma cópia espelhada e uma cópia diferencial (você pode configurar o conjunto por quanto tempo). Isso é útil quando você faz backup de coisas como código-fonte, imagens que mudam, etc., já que você sempre pode restaurar o arquivo para um ponto no tempo.

Esta é a descrição do site deles:

link

rdiff-backup backs up one directory to another, possibly over a network. The target directory ends up a copy of the source directory, but extra reverse diffs are stored in a special subdirectory of that target directory, so you can still recover files lost some time ago. The idea is to combine the best features of a mirror and an incremental backup. rdiff-backup also preserves subdirectories, hard links, dev files, permissions, uid/gid ownership, modification times, extended attributes, acls, and resource forks. Also, rdiff-backup can operate in a bandwidth efficient manner over a pipe, like rsync. Thus you can use rdiff-backup and ssh to securely back a hard drive up to a remote location, and only the differences will be transmitted. Finally, rdiff-backup is easy to use and settings have sensical defaults.

rsync

Minha segunda opção seria o rsync e um cron job definido para a frequência que você desejar.

JungleDisk / Amazon S3

Minha terceira escolha (dependendo das suas necessidades EXATAS) seria em backup externo para a nuvem S3 da Amazon via JungleDisk ou algum programa similar.

link

Na verdade, nós fazemos backup de mais de 4 milhões de arquivos do nosso mestre servidor de arquivos do Ubuntu para um servidor de arquivos escravo do Ubuntu (mesmo local) via rdiff-backup uma vez a cada hora.

Em seguida, fazemos o backup uma vez a cada 6 horas via rsync (ou Jungledisk) para a nuvem do Amazon S3.

Dessa forma, podemos lidar com as "coisas fáceis" apenas com o mestre / backup, mas se algo catastrófico acontecer, ainda teremos o backup do Amazon S3 na nuvem.

Espero que isso lhe dê algumas ideias ...

    
por 12.08.2009 / 08:46
1

Se você tiver uma boa conectividade e largura de banda entre os nós que você pode considerar usar o DRDB e heartbeat para bloquear o espelhamento dos seus dados.

    
por 12.08.2009 / 08:41
1

Eu realmente gosto glusterfs e usei isso por algum tempo para fazer a mesma coisa que você está pensando em fazer.

Sobre glusterfs :

GlusterFS is a clustered file-system capable of scaling to several peta-bytes. It aggregates various storage bricks over Infiniband RDMA or TCP/IP interconnect into one large parallel network file system. Storage bricks can be made of any commodity hardware such as x86-64 server with SATA-II RAID and Infiniband HBA).

Este tutorial descreve como colocar as coisas em funcionamento com a replicação do lado do servidor. Note que um "servidor" também pode ser um cliente ...

// rkthkr

    
por 12.08.2009 / 09:01
1

Dê uma olhada no projeto de código aberto BackupPC . Eu uso para fazer backup de servidores para uma pequena empresa; alguns benefícios:

  • Uma interface web agradável para permitir controle / monitoramento remoto e sem cabeça e até mesmo restaurar arquivos
  • Usa um conjunto de dados para armazenamento, para que todos os arquivos idênticos sejam armazenados apenas uma vez; economizando espaço em disco
  • Permite que o pool seja compactado; economizando espaço em disco
  • Permitindo vários protocolos / ferramentas diferentes para copiar / fazer backup; rsync, tar, etc.
  • Mantém um histórico de arquivos não apenas o mais recente (configurável)
  • Possível enviar relatórios automáticos por email
por 12.08.2009 / 09:51
0

Existem muitas soluções diferentes para isso. Todos eles têm vantagens, mas infelizmente todos eles têm desvantagens. Depende do que você quer fazer. O mais fácil é um espelho unidirecional para backups ou servidor de arquivos hot swap. Também é fácil um armazenamento de dados compartilhado que permite balanceamento de carga nos seus servidores de arquivos, mas você ainda teria um único armazenamento de dados. Muito mais complexo é a sincronização bidirecional e os dados replicados. Você então entra em problemas com o que acontece quando um nó não pode ver o outro nó. O que acontece se eles ficarem fora de sincronia?

Mais simples para complexo

  • rsync agendado
  • SAN
  • NBD e espelhamento
  • sistemas de arquivos em cluster como lustre, glustrefs, GFS, OCFS2.
por 12.08.2009 / 08:32