Backup e sincronização com BitTorrent Sync

BitTorrent Sync é um aplicativo multi plataforma que utiliza a tecnologia P2P (peer to peer) para realizar o sincronismo de arquivos de um computador para outro.

Além de gratuito, o app por padrão utiliza criptografia para garantir a segurança e privacidade dos dados, o que pode ser crucial para uma empresa cujos arquivos estão fora de sua intranet.

Apesar do ponto chave do app (como o próprio nome diz - SYNC) ser o sincronismo, o foco deste post é o BACKUP. Por que utilizar uma solução dessas ao invés do Zamanda, Bacula, BackupPC, entre outras?


A resposta é muito simples:

Simpĺicidade, facilidade de configuração, curva de aprendizado praticamente inexistente, facilidade na replicação, simplicidade e agilidade na restauração, versionamento de arquivos e compatibilidade com todos os sistemas operacionais atuais.

Por se tratar de uma ferramenta de sincronismo, não será necessário se preocupar com agendamentos de backup, pois eles acontecerão em tempo real. Em um primeiro momento isso pode ser um problema, porém, a ferramenta disponibiliza recursos para limitação de banda e recursos da máquina, o que possibilita manter a rede de sua empresa ou residência totalmente estável, bem como o computador que está sendo utilizado.

Mas e se eu alterar um arquivo, ele for corrompido e o software realizar o backup do mesmo? Perderei a versão válida no servidor?

NÃO! Existe uma opção no software para manter o histórico de 30 dias de qualquer arquivo modificado ou excluído! Em resumo, todas as versões dos arquivos serão mantidas por no máximo 30 dias.

O fato do app utilizar a tecnologia P2P e toda a lógica de compartilhamento TORRENT lhe proporcionará, de forma pronta para uso, uma ferramenta que possibilita o backup e sincronismo de qualquer lugar do planeta.

Sem mais delongas, vou explicar-lhe como utilizei e recomendo o uso da ferramenta.

ARQUITETURA
Utilizo, como servidor de armazenamento primário, o Ubuntu Server 12.04 LTS e os clientes são máquinas rodando linux mint, elementary os, windows 7, windows vista, windows 8 e os x.

INSTALAÇÃO
Existem duas formas para a instalação do app em ambiente LINUX (windows e mac possuem apenas executáveis com as mesmas interfaces):
  • Download do site do desenvolvedor:
    • Basta acessar o site "http://www.bittorrent.com/sync/downloads", baixar o arquivo correnspondente a sua arquitetura, executá-lo e BOOMM!!! Porém, para LINUX, por padrão, o acesso a interface gráfica é feito via browser no endereço "http://localhost:8888" e neste local não estão disponíveis todas as configurações do app.

      Algumas configurações são importantes para o desktop, como consumo de recursos de hardware, pois podem deixar a máquina inoperante (muito lenta). Neste caso será necessário a criação do arquivo de configuração com todas as opções desejadas, pois uma vez utilizado, as configs padrão serão sobrescritas. Os detalhes deste procedimento serão mostrados logo abaixo no tópico CONFIGURAÇÃO.
  • PPA de terceiros (não oficial):
    • É possível a instalação através de um PPA de terceiro, que já traz as rotinas de inicialização automática setadas e também o arquivo de configuração criado, porém as permissões de leitura e escrita estão atribuidas ao usuário "www-data" e não ao seu usuário criado, pois o daemon é iniciado por este usuário.

      (Eu particularmente não gosto muito desta opção, porém, se for a preferida, deixarei o link com mais detalhes de configuração para que o daemon possa ser startado pelo usuário local. Outra solução é setar o usuário "www-data" como proprietário das pastas de sincronismo, mantendo-as no grupo de seu usuário de uso.)

      http://blog.bittorrent.com/2013/09/17/sync-hacks-how-to-set-up-bittorrent-sync-on-ubuntu-server-13-04/
    • Portanto, para instalar via PPA, cole o comando abaixo no terminal:
      sudo add-apt-repository ppa:tuxpoldo/btsync && sudo aptitude update && sudo aptitude install btsync
CONFIGURAÇÃO
Tanto para o servidor quanto para os clientes LINUX sugiro a configuração setada no arquivo .conf mostrado abaixo.

Se pretende fazer backup da pasta home inteira do usuário, considere colocar o executável e os outros arquivos em questão fora desta pasta, pois nesta configuração, tudo que é modificado ou apagado será movido para uma pasta de histório e será mantido por 30 dias. Consequentemente, você duplicará vários arquivos, pois este histórico também está mantido no servidor por padrão.

Para facilitar a explicação, no DESKTOP vou utilizar a pasta TRABALHO como sendo o local onde todos os meus arquivos importantes serão mantidos e no SERVIDOR existirá uma pasta chamada BACKUP e subpastas para cada usuário. Neste caso, no servidor, existirá BACKUP/MARCOS/.

No DESKTOP criarei uma pasta oculta na home chamada ".BTSync" e nela colocarei o arquivo executável baixado "btsync", o arquivo de configuração (que será criado) "sync.conf", uma subpasta oculta onde informações do sincronismo/backup serão mantidas ".sync" e também um arquivo executável criado por mim com o comando para execução do BitTorrent Sync com os parâmetros setados no arquivo de configuração (btsyncwithconf).

Minha pasta BTSync ficará assim:
/home/marcos/.BTSync/
  • .sync/
  • btsync
  • sync.conf
  • btsyncwithconf
No arquivo sync.conf, que deve ser criado, pois ele ainda não existe, deverá existir as seguintes informações:

sync.conf
{
        "device_name": "NomeDoComputador",
        "storage_path" : "/home/USUARIO/.BTSync/.sync",
        "listening_port" : 0,
        "check_for_updates" : true,
        "use_upnp" : false,
        "download_limit" : 0,
        "upload_limit" : 0,
        "disk_low_priority" : true,
        "lan_encrypt_data" : true,
        "lan_use_tcp" : false,
        "rate_limit_local_peers" : false,
        "folder_rescan_interval" : 600,
        "webui" :
//Altere aqui o usuário e senha que deseja utilizar na interface web
//Não utilize o usuário e senha de sua instalação LINUX
        {
                "listen" : "0.0.0.0:8888",
                "login" : "admin",
                "password" : "senha"
        }
}

O arquivo executável (deve ser setado como executável) que iniciará o aplicativo com as configurações setadas foi chamado de "btsyncwithconf" e deve conter as seguintes informações:

cd ~/.BTSync/
./btsync --config sync.conf

Adicione este arquivo na inicialização do sistema, tanto para o cliente quanto para o servidor. 

Agora que tudo está setado será necessário a criação das chaves de compartilhamento e para isso acessaremos a interface web no endereço http://localhost:8888 (para a máquina local) e/ou http://ipdoservidor:8888 (para o servidor). Entre com o usuário e senha setados no arquivo de configuração sync.conf e:
  • Para o cliente
    Selecione a pasta que deseja fazer backup (neste exemplo estou supondo que a pasta chama-se TRABALHO) e gere as chaves (escrita e leitura). Se desejar que o servidor nunca escreva na pasta cliente, ou seja, qualquer alteração no servidor não será replicada / sincronizada no computador cliente, utilize a chave de leitura, do contrário, a chave de escrita.
  • Para o servidor
    Adicione um novo compartilhamento, selecione a pasta onde o backup será armazenado (neste exemplo estamos utilizando a pasta BACKUP/MARCOS/) e ao invés de criar as chaves de leitura e escrita, cole a chave criada no cliente (no campo Secret, ao invés de clicar em "Generate", apenas cole a chave do cliente). Adicione o compartilhamento e a mágica está pronta!
Nota: sempre que uma chave é gerada ("Secret") estamos falando da chave de leitura e escrita. Para utilizar a chave apenas de leitura, será necessário clicar na engrenagem (icone que fica do lado esquerdo do X em vermelho) do compartilhamento criado para abrir a tela de preferências e posteriormente clicar na aba "Advanced" para visualizá-la.

Nesta estrutura, qualquer alteração de arquivo no cliente, desde um simples renomeio quanto edição interna, gerará uma nova versão do arquivo no servidor e será mantida por 30 dias.

REDUNDÂNCIA / REPLICAÇÃO
Se preferir ter mais segurança no armazenamento dos dados, crie um servidor adicional idêntico ao configurado neste post (com outro nome e ip). Você pode optar, para evitar a inserção individual de todas as chaves já inseridas no servidor primário, fazer o sincronismo entre servidores. Para isso basta, no servidor principal, criar um novo compartilhamento pegando toda a pasta BACKUP (utilizada neste exemplo), copiar a chave de leitura (não utilize a de escrita) e, no servidor secundário, criar um compartilhamento e colar a chave ao invés de criar uma nova.

Pronto, apartir daqui tudo que é escrito no servidor primário será replicado no servidor secundário e cada se novos compartilhamentos forem inseridos, não será necessário nenhuma configuração adicional no servidor secundário!

Este servidor secundário pode ser alocado fora da empresa, se preferir ter mais segurança, porém, dependendo do volume de dados, sugiro analisar a utilização de agendamento noturno para esta tarefa.

SUBSTITUIR O DROPBOX
Se desejar aproveitar a estrutura para substituir o dropbox ou qualquer outro software similar, basta criar uma pasta no servidor e gerar a chave de leitura e escrita. No cliente, crie uma pasta de mesmo nome e cole a chave do servidor no campo "Secret". Se não existir nenhuma regra de bloqueio de torrent no firewall interno os arquivos serão sincronizados de onde você estiver. Se existir, crie uma exceção e fixe a porta do servidor, pois por padrão, uma nova porta será utilizada em cada inicialização da máquina.

Backup e sincronização com BitTorrent Sync Backup e sincronização com BitTorrent Sync Reviewed by Marcos Garcia on abril 10, 2014 Rating: 5

Nenhum comentário:

Tecnologia do Blogger.