segunda-feira, 15 de outubro de 2007

Bacula - backup eficiente

Um serviço muito importante para qualquer servidor é o do backup (apesar de muita gente não dar o valor necessário até precisar dele).

E falando em backup, uma ferramenta que me vem direto ao pensamento é o Bacula.

O Bacula é um software livre com recursos de backup em rede. Ele pode usar vários tipos de mídias para backup como fitas, DVDs, CDs ou mesmo um HD. Além disso, ele tem clientes para Linux e Windows o que flexibiliza bastante o backup de um ambiente homogêneo.

A instalação do servidor consiste basicamente em compilar/instalar o pacote e depois configurar os serviços. Você pode usar um DB MySQL ou PostgreSQL como forma de armazenamento do catálogo. O servidor se divide em 3 serviços: o director, o storage e o file daemon (opcional para o servidor).

O director é onde você configura efetivamente o servidor. Nele você configura seu DB, os endereços de e-mail para envio das mensagens de alerta/aviso e os pools de volumes. Além disso nele você também deve setar os jobs, os clientes e os file sets.
Os clientes são as máquinas onde você vai conectar para buscar os dados.
Os file sets são os arquivos que vocês vai backupear do cliente.
Os jobs são nada mais do que a junção de tudo isso, ou seja o cliente, com o file set, agendamento de horário, nível do mesmo além de outras features. Você pode configurar um job padrão com as configurações comuns e dizer para seus outros jobs para usá-lo, setando no mesmo só as configurações mais específicas.
Além disso, você pode ter mais que um job para um mesmo cliente com um file set diferente, ou seja, você pode backupear seus dados em várias partes, na hora que for mais oportuna. A flexibilidade do bacula nesse ponto é muito interessante.
No director você também pode configurar para rodar scripts antes ou depois de um job específico. Por exemplo, você pode fazer o dump de uma base MySQL antes de fazer o backup do servidor MySQL, ou então, você pode fazer a fita ser ejetada após o último job.

O storage é onde você configura onde serão armazenados os dados. Nele você informa se vai usar uma unidade de fita, um DVD, um CD ou todos eles.

O file daemon também deve ser configurado para que seu servidor possa ser backupeado. Ele é opcional para o servidor funcionar, mas você não vai deixar de backupear o próprio servidor, correto ? ;-)

Já no lado do cliente, basta instalar o file daemon e configurar o mesmo. Ou seja, no cliente a operação é muito simples, ainda mais se for um cliente Linux. Se for Windows pode ser um pouco mais chato, porque após instalar o mesmo, é necessário copiar os arquivos de configuração e reiniciar o serviço. O problema aí é saber onde exatamente colocar os arquivos. :-D
Se precisar de mais informações sobre isso, me avise que eu possa detalhar melhor a situação.

O bacula possui vários softwares para conectar ao seu console que permitem configurá-lo, agendar jobs, restaurar dados, etc...
O principal deles é o bconsole, que é via linha de comando. Graficamente temos o bweb (via web, obviamente, que pode ser obtido pelo svn do bacula e que vale a pena instalar), um console para gnome (que nada mais é que um frontend visual para o bconsole, bastante interessante e que tem uma linha de comando como o bconsole), um monitorador que fica no tray e mais recentemente o BAT (Bacula Administration Tool) que promete ser a ferramente gráfica oficial do Bacula.

Claro que nem tudo é perfeito, então segue uma lista de features que eu acho que seriam interessantes:

Aviso programado por e-mail que informa o label da fita do próximo backup a ser realizado (para por exemplo, enviar um e-mail às 17hs informando qual o nome da fita que deve ser colocada para o próximo backup, que roda às 23hs).

Um novo evento de script para quando a fita lotar (para poder ejetar a fita, por exemplo).

Concluindo, na minha opinião é uma ótima ferramenta que deve ser avaliada por todos interessados numa solução de backup.

Outras ferramentas de backup:
Amanda - nunca usei, mas está em desenvolvimento há bastante tempo e tem sua última versão lançada em 06/06/2007 (versão 2.5.2p1).
Restore - tem chamado minha atenção pelo constante desenvolvimento que tenho percebido nos últimos tempos. A última versão é a 4.0b3-1(lançada em 15/10/2007). O que me incomoda com relação ao Restore é que ele não disponibiliza os fontes (ou se faz, está bem escondido). No site só existe ISO das VMs e pacotes binários para Debian e Ubuntu.

ERRATA (23/11): Quer obter os fontes do Restore? Saiba aqui como fazê-lo.