Escolhi o Bacula (v.5.0.2) para fazer backups dos dados dos nossos funcionários de escritório.
O Director e o Storage Daemon são executados em um servidor raiz baseado em Debian (o SERVER
) alugado de uma grande empresa de hospedagem alemã.
Todos os dados preciosos e, portanto, o File Daemon do Bacula (o CLIENT
) residem em um servidor Samba baseado em Debian que está localizado no local e conectado à internet via ADSL (~768Kbit acima) atrás de um roteador SOHO (é uma organização sem fins lucrativos que está cronicamente com falta de dinheiro).
Além disso, a CLIENT
ligação à Internet do está a serdesconectado pelo ISP a cada 24 horaseseu IP mudade vez em quando.
Consegui configurar a infraestrutura básica e testei com êxito o backup e a restauração de arquivos. Mas, agora que é hora de definir os trabalhos automatizados, estou enfrentando um problema que simplesmente não consigo entender:
Problema
Suponha que eu queira ter um emprego por funcionário de escritório e precise fazer backup de sua parcela do Samba, que pesa cerca de 0,00
10GB
. O nível de backup não importa, pois o Bacula precisa fazer um backup completo para começar.Mas esse backup completo inicial não conseguirá atravessar a rede do escritório antes que uma desconexão forçada torne o trabalho inútil.
Pergunta
Existe alguma maneira de particionar a carga de trabalho inicial em partes menores, além de configurar vários trabalhos (e conjuntos de arquivos)?
Ou melhor, é possível pausar e reiniciar de alguma forma um trabalho em execução para superar a inevitável perda de conexão?
Mais alguma coisa que não pensei que possa ajudar?
Responder1
Os backups levam um tempo proporcional aos dados que estão sendo copiados. Se você precisar mover 10 G de dados, isso levará algum tempo (quanto tempo será determinado pela velocidade do seu link de rede).
Além disso, o bacula assume que sua conectividade de rede é confiável - ele não espera que sua conexão caia e, francamente, essa é uma suposição razoável por parte do bacula.
OAPROPRIADOsolução para o seu problema é mudar de ISP.
Francamente, se sua conexão de rede não for tão confiável quanto você descreve (desconectada a cada 24 horas!) E você não estiver obtendo a conexão 100% gratuita, provavelmente está pagando demais.
Se você não conseguir implementar a solução adequada, sua melhor alternativa é executar um Storage Daemon local no site do cliente e fazer backup em disco lá.
Você pode então usar uma ferramenta comorsync
para copiar os arquivos de fita virtual para outro local.
As principais desvantagens desta solução são que você precisará (pelo menos) de um disco extra para fazer backup e terá que gerenciar o trabalho rsync (o que pode ser feito com um RunAfterBackup
script no Bacula).
Dependendo das suas necessidades, um disco rígido USB pode ser suficiente para o disco extra.
As outras alternativas que você descreveu em sua pergunta são falhas ou não são possíveis.
Especificamente, o Bacula não tem o conceito de "pausar" um backup, e dividir o backup em vários trabalhos (a única maneira de dividi-lo) significa apenas que você falhará em um subtrabalho em vez de tudo - você ainda pode acabar crie um backup que não restaure você para um estado bom/consistente se você fizer isso, então você não está realmente resolvendo o problema.
Responder2
A partir deversão7.2
, o bacula suporta a suspensão e retomada de jobs (via comandos stop
e resume
/ restart
).