Backup usando Bacula – Tutorial de instalação
Bacula é um programa que possibilita fazer backup, restaura e verificar dados através da sua rede. Existem clientes do Bacula para Linux, Windows e Mac OSX. Tornando-o uma solução independente da plataforma e disponível para todo tipo de rede.
Baculaé composto de vários componentes e serviços usado para genrenciar quais arquivos a serem feito bakcupa e onde serão armazenados:
- Bacula Director: um serviço que controla backup, restauração, verificação, e operações de arquivo.
- Bacula Console: uma aplicação que permite a comunicação com o Director. Existem três versões do Console:
- Versão de linha de comando baseada em texto
- Interface Gráfica de Usuário (GUI) baseada no Gnome GTK+.
- Interface GUI wxWidgets.
- Bacula File: também conhecido como o programa Cliente do Bacula. Esta aplicação é instalada nas máquinas que serão feito backup, e é responsável pelos dados requisitados pelo Director.
- Bacula Storage: o programa que executa o armazenamento e recuperação dos dados para a mídia física.
- Bacula Catalog: é responsável por manter os arquivos de índice e banco de dados de volumes para todos os arquivos feito backups, possiblitando a localização rápida e restauração dos arquivos arquivados. O Catalog suporta três diferentes tipos de bancos de dados, MySQL, PostgreSQL, e SQLite.
- O Monitor do Bacular: permite a monitoração do Director, daemons de arquivos, e deamons de Storage. Atualmente o Monitor só está disponível como uma aplicação GTK+ GUI.
Estes serviços e aplicações podem ser executados em múltiplos clientes e servidores, ou podem ser instalado em uma máquina se estiver fazendo o backup de um único disco ou volume.
Existem muitos pacotes contendo os diferentes componentes do Bacula. Para instalar o Bacula, no terminal digite:
sudo apt-get install bacula
Por padrão, ao instalar o pacote bacula ele irá utilizar o banco de dados MySQL para o Catalog. Se você quizer usar o SQLite ou PostgreSQL, para o Catalog, instale bacula-director-sqlite3 ou bacula-director-pgsql respectivamente.
Durante o processo de instalação você sera solicitado para fornecer credenciais para o administrador do banco de dados e o proprietario do banco de dados do bacula. O administrador do banco de dados precisa ter os direitos apropriados para criar um banco de dados, para mais informações veja o “MySQL”.
O arquivos de configuração do Bacula são formatados baseados em recursos compreendido por diretivas cercados por chaves “{}”. Cada componente do Bacula tem um arquivo individual no diretório /etc/bacula.
Os vários componentes do Baculadevem autorizar-se entre eles. Isto password. Por exemplo. a senha do recurso Storage no arquivo /etc/bacula/bacula-dir.conf deve coincidir com a senha do recurso Director no arquivo /etc/bacula/bacula-sd.conf.
Por padrão a tarefa de backup chamada Client1 é configurada para arquivar o Bacula Catalog. Se você planeja utilizar um servidor para fazer backup de mais de um cliente você deve mudar o nome desta tarefa para algo mais descritivo. Para mudar o nome edite /etc/bacula/bacula-dir.conf:
#
# Define the main nightly save backup job
# By default, this job will back up to disk in
Job {
Name = "ServidorDeBackup"
JobDefs = "TarefaPadrao"
Write Bootstrap = "/var/lib/bacula/Client1.bsr"
}
O Console pode ser usado para consultar o Director sobre tarefas, mas para usar o Console como usuário não-root, o usuário precisa fazer parte do grupo bacula. Para adicionar um usuário ao grupo bacula digite o seguinte no terminal:
sudo adduser $username bacula
Esta seção descreve como fazer o backup de diretórios específicos em uma única máquina para um drive de fita local.
- Primeiro, o dispositivo Storage precisa ser configurado. Edite
/etc/bacula/bacula-sd.confe adicione:Device { Name = "Tape Drive" Device Type = tape Media Type = DDS-4 Archive Device = /dev/st0 Hardware end of medium = No; AutomaticMount = yes; # when device opened, read it AlwaysOpen = Yes; RemovableMedia = yes; RandomAccess = no; Alert Command = "sh -c 'tapeinfo -f %c | grep TapeAlert'" }Este exemplo é para um drive de fita DDS-4. Ajuste o Tipo de Mídia e Dispositivo de Arquivo que corresponda com o seu hardware.
Você poderia igualmente remover o comentário de um dos outros exemplos no arquivo.
- Após a editar o
/etc/bacula/bacula-sd.confo daemon Storage terá de ser reiniciado:sudo /etc/init.d/bacula-sd restart
- Agora adicione o recurso Storage no
/etc/bacula/bacula-dir.confpara usar o novo Dispositivo:# Definition of "Tape Drive" storage device Storage { Name = TapeDrive # Do not use "localhost" here Address = backupserver # N.B. Use a fully qualified name here SDPort = 9103 Password = "Cv70F6pf1t6pBopT4vQOnigDrR0v3LT3Cgkiyj" Device = "Tape Drive" Media Type = tape }A diretiva Address precisa usar o Fully Qualified Domain Name (FQDN) do servidor. Altere backupserver para o nome atual da máquina.
Também, assegure-se que a diretiva Password combine com a senha em
/etc/bacula/bacula-sd.conf. - Crie um novo FileSet, que irá determinar quais diretórios irão conter no backup, adicionando:
# LocalhostBacup FileSet. FileSet { Name = "LocalhostFiles" Include { Options { signature = MD5 compression=GZIP } File = /etc File = /home } }Este FileSet irá fazer o backup dos diretórios
/etce/home. A diretiva Options do recurso configuram o FileSet para criar uma assinatura MD5 para cada arquivo da cópia de segurança, e para comprimir os arquivos usando GZIP. - A seguir, crie um novo Agendamento para a tarefa de backup:
# LocalhostBackup Schedule -- Daily. Schedule { Name = "LocalhostDaily" Run = Full daily at 00:01 }A tarefa será executada todo dia as 00:01 ou 12:01 am. Existem várias outras opções de agendamento disponíveis.
- Finalmente crie a Tarefa:
# Localhost backup. Job { Name = "LocalhostBackup" JobDefs = "DefaultJob" Enabled = yes Level = Full FileSet = "LocalhostFiles" Schedule = "LocalhostDaily" Storage = TapeDrive Write Bootstrap = "/var/lib/bacula/LocalhostBackup.bsr" }A tarefa irá fazer um backup Completo para o drive de fita diariamente.
- Cada fita usada precisará de um Rótulo. se a fita atual não tiver um rótulo o Bacula enviará um email para que você saiba. Para rotular uma fita usando o Console digite o seguinte comando no terminal:
bconsole
- No console do Bacula digite:
label
- Será solicitado o recurso de Armazenamento:
Catálogo selecionado automáticamente: MeuCatalogo Usando catálogo "MeuCatalog" Os recursos de Armazenamento definidos são: 1: Arquivo 2: Drive de Fita Selecione o recurso de Armazenamento (1-2):2 - Digite o nome do novo Volume:
Digite o novo nome do Volume:DomingoPools Definidas: 1: Padrão 2: ZeradoSubstitua Domingo com o rótulo desejado.
Agora, selecione o Pool:
Selecione o Pool (1-2): 1
Conectando ao daemon de armazenamento do TapeDrive TapeDrive no backupserver:9103 ...
Enviando o comando label para o Volume "Domingo" Slot 0 ...
Fim


1 comment
Valew, muito bom.
Leave a Comment