Você está na página 1de 6

Instalao, configurao e uso do Bacula

CAPA

Backup profissional

Stephen Gibson www.sxc.hu

Gravar arquivos de um local em outro muito fcil, mas s o


Bacula capaz de fazer backups em escala industrial sem perder
a praticidade necessria para os modernos administradores.
por Gerd Mller

segurana de dados, de PDAs


a grandes mainframes, incluindo verses futuras dos
softwares e das mdias de armazenamento, o objetivo do projeto
de backups Bacula [1] desde o incio. Desenvolvedor-lder do projeto desde 2000, Kern Sibbald optou
pelo modelo do Cdigo Aberto por
acreditar ser essa a melhor forma de
se obter um software seguro e competente na gerao e recuperao
de backups. Atualmente, o Bacula
j uma alternativa s custosas solues proprietrias.

Componentes

O Bacula composto por vrias


partes, sendo as mais importantes:
Catlogo (banco de dados SQL)

Linux Magazine #60 | Novembro de 2009

Director (bacula-dir)
Armazenamento (bacula-sd)
Arquivos (bacula-fd)
Console

Estes componentes permitem


dividir o servidor em mltiplos
pedaos, de forma a facilitar instalaes distribudas. exceo do
director e do catlogo, os demais
componentes podem ser utilizados somente quando necessrios.
A comunicao entre as peas
feita por meio de portas definidas
pelo IANA (figura 1), o que facilita
a instalao do Bacula atravs de
firewalls. Evidentemente, o software tambm permite a criptografia
de todas as conexes usadas. Cada
componente se autentica por meio

de uma senha, conhecida pelos dois


lados da autenticao.

Memria do Bacula

O catlogo a memria principal


do Bacula. Nele ficam os dados mais
importantes para a operao do software, gerenciados por um banco de
dados SQL. Atualmente, os bancos
de dados suportados so MySQL,
PostgreSQL e, para exigncias pouco
sofisticadas, SQLite. O back-end do
Bacula um de seus pontos fortes.
Por isso, existem certos scripts livres
para permitir seu monitoramento por
solues especficas. No caso do Nagios, o Bacula at j traz um script
por padro. Os scripts costumam ser
usados para informar o sucesso do
ltimo backup. Com isso, o adminis45

CAPA | Bacula

trador s precisa intervir na soluo


de backup quando for necessrio.

Centro de controle

O director o centro de controle


do sistema de backup. Ele coordena
os componentes, analisa os dados e
os guarda no catlogo. Alm disso,
ele gerencia os backups de acordo
com as configuraes determinadas
pelo administrador.
Com relao segurana, no h
diferena entre o Bacula e as demais
solues proprietrias dos mais variados tamanhos.
O Bacula capaz de fazer backups
das formas mais comuns: completo,
diferencial e incremental. Um backup
diferencial engloba todos os dados
alterados desde o ltimo backup
completo. O backup incremental,
por sua vez, grava somente os arquivos que tenham sido alterados aps
o ltimo backup.
Para garantir a confiabilidade dos
backups, o Bacula sempre verifica
se esto presentes o ltimo backup
completo e os incrementais posteriores a ele. Em caso negativo, o
programa realiza automaticamente
um backup incremental com base
no ltimo completo. O catlogo documenta as sequncias de backups
e os arquivos includos. possvel
definir quais arquivos salvar por meio
dos file sets e agendar as tarefas de
backup no servidor.

desde simples diretrios


at discos rgidos inteiros,
CDs, DVDs e fitas em
grandes bibliotecas (incluindo leitores de cdigo
de barra), para os quais
utiliza o projeto MTX [2].
O formato do backup
idntico em todos os casos
e embora proprietrio
muito flexvel e bem
documentado.
No Bacula, o tamanho
dos backups no est limitado ao do volume onde
ele se localiza. Da mesma Figura 1 Funcionamento dos componentes do
Bacula. Todos os componentes se
forma, um mesmo volucomunicam com o director, o sistema
me pode conter dados de
operado por meio do console e
mltiplos backups. Com
todas as tarefas de leitura e escrita
isso, no preciso acresso realizadas pelos daemons de
centar novos volumes o
arquivos e armazenamento.
tempo todo, j que o programa permite aproveitar
ao mximo o espao disponvel. Se
um backup for apagado e deixar O daemon de arquivos (file-daemon)
de ocupar um determinado es- o agente usado pelo Bacula para
pao, esse mesmo espao poder acessar os dados no sistema a ser lido.
ser ocupado logo em seguida. Os Ele l os dados do backup e grava-os
volumes podem ser agrupados nos na mdia do servidor de backup. Ele
chamados pools para permitir uma registra no director todas as tarefas de
melhor organizao dos backups e backup e restaurao, assim como
tambm a reserva de espao, caso seus respectivos arquivos, volumes e
necessrio. Os pools associam vo- pools. O director, por sua vez, armalumes a tarefas de backup.
zena essas informaes no catlogo.

Agentes

Armazenamento

O componente seguinte o daemon


de armazenamento. Ele fornece
acesso do director aos meios (ou
volumes) de armazenamento e se
encarrega da gravao e da leitura
dos dados no momento da restaurao destes. Nas tarefas de backup, o
daemon de armazenamento recebe
os dados diretamente do daemon
de arquivos e os repassa ao meio de
armazenamento.
Para gravar, o Bacula consegue
utilizar vrias mdias diferentes,
46

Figura 2 Verso do console do Bacula para sistemas Windows.

http://www.linuxmagazine.com.br

Bacula | CAPA

O daemon de arquivos troca os arquivos diretamente com o daemon


de armazenamento.
O Bacula suporta vrios sistemas
no papel de daemon de arquivos,
como Unix (Linux, Solaris, FreeBSD, OpenBSD, Mac OS X, Tru64,
Irix, AIX, BSDI, HPUX, NetBSD e
outros) e tambm Windows (Windows 98, Me, XP, NT, 2000 e 2003). A
restaurao de dados de um sistema
para outro diferente no nenhum
problema, pois cada uma das tarefas
realizada por um agente especfico
em cada mquina e cada agente
possui todas as permisses necessrias
em seu sistema local. Evidentemente, tambm possvel gravar e ler
compartilhamentos NFS e Samba.
Vale a pena mencionar que o
Bacula no Windows permite fazer
backup de arquivos abertos e interage com os aplicativos para garantir cpias consistentes de bancos de
dados. Para isso, o programa utiliza
h tempos o servio Microsoft Volume Shadow Copy Service (VSS),
utilizando uma pequena parte do
concorrente tambm livre Amanda.
Porm, no Amanda essa funo est
apenas no planejamento.
O Bacula ainda oferece a possibilidade de executar, em cada plataforma, algumas aes antes e aps cada
atividade de backup. Esse recurso
especialmente til no caso de bancos de dados, que podem fazer um
dump para o disco logo antes de o
backup ser realizado, de forma a
conservar efetivamente todo o contedo do banco.

Console
administrativo
O ltimo componente do Bacula
o console a interface do administrador. Se for desejvel controlar
manualmente o Bacula, o console administrativo a ferramenta
ideal. Alm do Bconsole, baseado
em shell, h tambm um console

Linux Magazine #60 | Novembro de 2009

Figura 3 O console grfico do Bacula oferece as mesmas funes do console


de texto.

grfico para Windows e Gnome


(figuras 2 e 3). Sua principal diferena para o console grfico a
organizao dos menus. No entanto, todos os consoles oferecem as
mesmas e muito teis funes
administrativas.
O exemplo detalhado a seguir
ilustra a instalao do Bacula com
base numa configurao mnima
com um nico servidor que age
como catlogo, director e daemon
de armazenamento. Alm disso, esse
mesmo sistema o alvo do backup, o
que significa que preciso ter ainda
o daemon de arquivos. O catlogo
utiliza o MySQL.

Instalao

A verso atual do Bacula est disponvel no site do projeto [1]. Aps


descompact-la, bastam os comandos
tradicionais para instalar o servidor
de backup:

./configure --with-mysql
make
make install

Se um determinado servidor precisar apenas dos componentes para


gravao ou restaurao, o melhor
usar o comando ./configure--enable-client-only.
Em seguida, preciso preparar o
catlogo (leia-se banco de dados) no
servidor de backup. H scripts especficos em /etc/bacula/ para realizar
essa tarefa:
./create_bacula_database
./make_bacula_tables
./grant_bacula_privileges

Com isso, a instalao j est terminada. Resta apenas criar o link


simblico dos scripts de inicializao bacula-ctl-dir (para o director),
bacula-ctl-sd (daemon de arma-

Listagem 1: Configurao do console


01 Director {
02 Name = dir-backup
03 DIRport = 9101
04 address = backup
05 Password = d87Y2YQsX0PQLyDaUHTg5kVoWmk7io52
06 }

47

CAPA | Bacula

Listagem 2: Configuraes do daemon de arquivos


01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23

Director {
Name = dir-backup
Password = suefheKt70tSOz29JUGwSxPZrVrH
}
Director {
Name = backup-mon
Password = iDD6sy05efsfNsNjZflTkedwMpdJ
Monitor = yes
}
FileDaemon {
Name = backup-fd
FDport = 9102
WorkingDirectory = /var/bacula/working
Pid Directory = /var/run
Maximum Concurrent Jobs = 20
}
Messages {
Name = Standard
director = dir-backup = all, !skipped, !restored
}

Listagem 3: Configurao do daemon de armazenamento


01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34

48

Storage {
Name = backup-sd
SDPort = 9103
WorkingDirectory = /var/bacula/working
Pid Directory = /var/run
Maximum Concurrent Jobs = 20
}
Director {
Name = backup-dir
Password = zLsrudRETNgNMSmyE0ZcNvHgI8yW
}
Director {
Name = backup-mon
Password = KmAQ2EK0KEeE5j5gXLVLpVvyak/Z
Monitor = yes
}
Device {
Name = FileStorage
Media Type = File
Archive Device = /tmp
LabelMedia = yes;
Random Access = Yes;
AutomaticMount = yes;
RemovableMedia = no;
AlwaysOpen = no;
}
Messages {
Name = Standard
director = dir-backup- = all
}

zenamento) e bacula-ctl-fd (daemon de arquivos) de seu local atual


(/etc/bacula/) para o local correto
no seu sistema.
O Bacula sempre instala o daemon de arquivos no prprio servidor
de backup. Ele oferece no apenas
para fazer backups nesse servidor,
mas tambm para gravar o catlogo
sempre que necessrio.
Terminada a instalao, podemos
proceder aos arquivos de configurao.

Configurao

A configurao dos componentes


feita nos arquivos bacula-dir.conf,
bacula-fd.conf, bacula-sd.conf e bconsole. Para o exemplo deste artigo,
bastam as configuraes padro
desses componentes, o que significa que no precisaremos alterar tais
arquivos. O arquivo mais fcil de
entender o do console. Ele controla somente a comunicao com
o director (listagem 1).
O daemon de arquivos, o nico
que requer alteraes no arquivo de
configurao padro (listagem 2),
requer muita ateno no uso profissional. Alm da comunicao
com o director, preciso definir
quais mensagens de status devem
ser transmitidas ao director.
O caso do daemon de armazenamento bastante diferente. Suas opes de configurao so semelhantes
s do daemon de arquivos, mas ele
dispe de um script de instalao
que resolve os problemas. No nosso
exemplo, temos um dispositivo que
montado em /tmp/ (listagem3)
isto serve para demonstrao, mas
no para uso em produo. O arquivo bacula-sd.conf contm diversos
exemplos para outros casos, como
unidades de DVD e fitas, bibliotecas
e muito mais.
A configurao do director (listagem 4) um pouco mais complexa.
Todos os componentes se encontram
novamente aqui e contm links para
seus nomes. Alm disso, ele contm

http://www.linuxmagazine.com.br

Bacula | CAPA

as definies de tarefas de backup,


agendamentos, conjuntos de arquivos e pools.
Todos os componentes do Bacula
j podem ser iniciados neste momento. Se a instalao e a configurao
tiverem sido feitas corretamente, o
administrador pode abrir o console
com o comando bconsole. Nele, o
comando status all oferece um panorama do status de todos os componentes. Se o teste tiver sido realizado
com sucesso, j ser possvel realizar
o primeiro backup.

Primeiro backup

Para iniciar o primeiro backup, basta


usar o comando run no console administrativo, selecionando em seguida o servidor a ser lido para fazer o
backup. No nosso exemplo, trata-se
da mquina cliente1.
Nesse momento, o console exibe as configuraes dessa tarefa de
backup e pergunta se pode mesmo
ser executado imediatamente. Aps
a resposta yes, ele inicia o backup e o
console mostra uma mensagem informando que h novas mensagens.
Para ler as mensagens, possvel
escolher o mtodo automtico (autodisplay on) ou o manual (messages).
Ao final do backup, o Bacula emite
um relatrio com todos os detalhes
mais importantes da tarefa que acabou de executar.

Restaurao

A restaurao do backup igualmente fcil e pode ser iniciada com


o comando restore no console administrativo. Em seguida, possvel
selecionar quais dados restaurar. No
momento, so oferecidas onze opes,
comeando pelos arquivos mais recentemente gravados e terminando
com a possibilidade de selecionar
os dados a restaurar por meio de
comandos SQL no catlogo. Aps
escolher um mtodo, basta marcar
os arquivos desejados e informar o
destino dos dados restaurados, alm

Linux Magazine #60 | Novembro de 2009

Listagem 4: Configurao do director


01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62

Director {
Name = dir-backup
DIRport = 9101
QueryFile = /etc/bacula/query.sql
WorkingDirectory = /var/bacula/working
PidDirectory = /var/run
Maximum Concurrent Jobs = 1
Password = 4V60qoOSZgEBrirJBNAXbUUmAcM8
Messages = Daemon
}
JobDefs {
Name = DefaultJob
Type = Backup
Level = Incremental
Client = backup-fd
FileSet = Full Set
Schedule = WeeklyCycle
Storage = File
Messages = Standard
Pool = Default
Priority = 10
}
Job {
Name = Client1
JobDefs = DefaultJob
Write Bootstrap = /var/bacula/working/Client1.bsr
}
Job {
Name = BackupCatalog
JobDefs = DefaultJob
Level = Full
FileSet=Catalog
Schedule = WeeklyCycleAfterBackup
RunBeforeJob = /etc/bacula/make_catalog_backup bacula bacula
RunAfterJob = /etc/bacula/delete_catalog_backup
Write Bootstrap = /var/bacula/working/BackupCatalog.bsr
Priority = 11
}
Job {
Name = RestoreFiles
Type = Restore
Client=backup-fd
FileSet=Full Set
Storage = File
Pool = Default
Messages = Standard
Where = /tmp/bacula-restores
}
FileSet {
Name = Full Set
Include {
Options { signature = MD5 }
File = /usr/local/src/bacula-2.0.3
}
Exclude {
File = /proc
File = /tmp

49

CAPA | Bacula

Listagem 4 (continuao)
63
File = /.journal
64
File = /.fsck
65 }
66 }
067
068 Schedule {
069 Name = Semanal
070 Run = Full 1st sun at 23:05
071 Run = Differential 2nd-5th sun at 23:05
072 Run = Incremental mon-sat at 23:05
073 }
074
075 Schedule {
076 Name = SemanalAposBackup
077 Run = Full sun-sat at 23:10
078 }
079
080 FileSet {
081 Name = Catalogo
082 Include {
083
Options { signature = MD5 }
084
File = /var/bacula/working/bacula.sql
085 }
086 }
087
088 Client {
089 Name = backup-fd
090 Address = backup
091 FDPort = 9102
092 Catalog = MyCatalog
093 Password = w4Usp8cV18pitA56WhtUHYSbNat83NgvesmiH
094 File Retention = 30 days
095 Job Retention = 6 months
096 AutoPrune = yes
097 }
098
099 Storage {
100 Name = Arquivo
101 Address = backup
102 SDPort = 9103
103 Password = 0KaQ38vP8E8R2jKERde1BIZH5p27jimk62MXl1kZ
104 Device = FileStorage
105 Media Type = File
106 }
107
108 Catalog {
109 Name = MeuCatalogo
110 dbname = bacula; user = bacula; password =
111 }
112
113 Pool {
114 Name = Default
115 Pool Type = Backup
116 Recycle = yes # O Bacula consegue reciclar volumes
automaticamente
117 AutoPrune = yes # Remover volumes expirados
118 Volume Retention = 365 days # Um ano
119 }
120
121 Console {
122 #...
123 }

50

de confirmar se desejvel sobrescrever os arquivos que j estiverem


presentes no destino. Esta tarefa
tambm gera um relatrio.
O exemplo utilizado neste artigo explora somente uma pequena
parcela das inmeras possibilidades
oferecidas pelo Bacula. Embora ele
demonstre o backup de apenas um
diretrio, o procedimento praticamente o mesmo para gravar os
backups em fitas, por exemplo. As
tarefas importantes, como o rtulo
da fita, so resolvidas de forma automtica pelo Bacula por meio dos
parmetros j fornecidos, ou ento
informadas pelo administrador de
forma manual.

Concluses

Este exemplo mostra que o Bacula


uma soluo completa de backup
que no deixa a desejar em comparao com as solues proprietrias.
Alm de gratuito, oferece o poder do
Software Livre.
No preciso temer o uso do
Bacula. Com a documentao
exemplarmente bem detalhada
mesmo em comparao com outros
projetos livres , praticamente no
restam dvidas para o administrador. fcil perceber que o lder do
projeto Kern Sibbald lhe dedicou
muito tempo. n

Mais informaes
[1] Bacula:
http://www.bacula.org
[2] Compatibilidade com o MTX:
http://mtx.opensource-sw.
net/compatibility.php

Gostou do artigo?
Queremos ouvir sua opinio.
Fale conosco em
cartas@linuxmagazine.com.br
Este artigo no nosso site:
http://lnm.com.br/article/3101

http://www.linuxmagazine.com.br

Você também pode gostar