You are on page 1of 11

26/06/2015

BaculaparainiciantesTRILOGIA#1|PenseLinux

Introduo
O primeiro artigo de uma trilogia, onde um sistema de backup profissional ser
abordado de maneira simples e prtica.
Inicialmente faremos uma breve explanao sobre o modo como o Bacula funciona,
em seguida faremos a instalao e configurao dos mdulos necessrios para a
realizao de um backup simples.

Mdulos
Bacula Director
O mdulo bacula-director o crebro do Bacula.
ele quem vai saber onde os backups sero escritos, de quais clientes esses backups
devem ser capturados, quais datas de incio e nvel de cada backup.

Bacula Storage Daemon


O bacula-sd recebe instrues do mdulo bacula-director, se conectando ao cliente
para copiar os arquivos e pastas.
Com esse mdulo iremos apontar os diretrios ou parties para onde os backups
devem ser direcionados.

Bacula File Daemon


O mdulo bacula-fd deve ser instalado nos clientes que tero dados copiados para o
bacula-sd.
Dessa maneira o mdulo bacula-director d uma ordem de incio de backup, para que
os mdulos bacula-sd e bacula-fd se conectem. Alm de registrar todos os arquivos e
chromeextension://iooicodkiihhpojmmeghjclgihfjdjhj/front/in_isolation/reformat.html

1/11

26/06/2015

BaculaparainiciantesTRILOGIA#1|PenseLinux

pastas copiados em um catlogo Mysql em nosso exemplo.

Mo na Massa
Antes de iniciar essa etapa, seus servidores devem atender alguns requisitos:
. S.O Debian
. Repositrios devidamente configurados em /etc/apt/sources.list
. Conectividade com a internet e hosts de rede local
. Servio SSH em execuo
Vamos instalao dos pacotes necessrios para a simulao proposta em nosso
ambiente.
192.168.32.31 BACULA DIRECTOR
192.168.32.32 BACULA STORAGE DAEMON
192.168.32.33 BACULA CLIENT

Instalao/Configurao
Bacula Director
Vamos iniciar o processo de instalao e configurao dos pacotes a partir do servidor
bacula-director, que em meu caso recebe o endereo ip 192.168.32.31.
# ssh root@192.168.32.31
# apt-get update
# apt-get install bacula-director-mysql bacula-console
[1]

[2]

Nessa etapa o sistema operacional solicitou uma senha para o usurio administrativo
chromeextension://iooicodkiihhpojmmeghjclgihfjdjhj/front/in_isolation/reformat.html

2/11

26/06/2015

BaculaparainiciantesTRILOGIA#1|PenseLinux

do banco de mysql, onde o catlogo do bacula ser armazenado.


A tela seguinte ir perguntar sobre a criao do banco de dados, necessrio para que o
pacote bacula-director-mysql funcione corretamente.
Marquei a opo SIM e segui teclando Enter.
[3]

[4]

Na prxima etapa, o pacote ir solicitar a senha que deve ser utilizada para criao do
banco.
Utilizei a mesma senha definida anteriormente para o usurio root.
[5]

[6]

O processo de instalao pedir a confirmao da senha antes de finalizar.


Agora precisamos editar os arquivos de configurao do mdulo bacula-director.
Antes de editar o arquivo com as configuraes desejadas, realizei uma cpia do
arquivo original.

chromeextension://iooicodkiihhpojmmeghjclgihfjdjhj/front/in_isolation/reformat.html

3/11

26/06/2015

# cp

BaculaparainiciantesTRILOGIA#1|PenseLinux

/etc/bacula/bacula-dir.conf /etc/bacula/bacula-dir.conf.antigo

Editando
# vi /etc/bacula/bacula-dir.conf
Director {
Name = bacula-dir
DIRport = 9101
QueryFile = "/etc/bacula/scripts/query.sql"
WorkingDirectory = "/var/lib/bacula"
PidDirectory = "/var/run/bacula"
Maximum Concurrent Jobs = 1
Password = "senha2014"
Messages = mensagens
DirAddress = 192.168.32.31
}
Job {
Name = "Backup_Exemplo"
Type = Backup
Level = Full
Client = bacula-client
FileSet = "etc"
Schedule = "semanal"
Storage = bacula-storage
Messages = mensagens
Pool = backup_exemplo
Priority = 10
Write Bootstrap = "/var/lib/bacula/%c.bsr"
}
FileSet {
Name = "etc"
Include {
Options {
signature = MD5
}
File = /etc
}
}
Schedule {
chromeextension://iooicodkiihhpojmmeghjclgihfjdjhj/front/in_isolation/reformat.html

4/11

26/06/2015

BaculaparainiciantesTRILOGIA#1|PenseLinux

Name = "semanal"
Run = Full mon-fri at 23:00
}
Client {
Name = bacula-client
Address = 192.168.32.33
FDPort = 9102
Catalog = MyCatalog
Password = "senha2014"
File Retention = 30 days
Job Retention = 6 months
AutoPrune = yes
}
Storage {
Name = bacula-storage
Address = 192.168.32.32
SDPort = 9103
Password = "senha2014"
Device = FileStorage
Media Type = File
}
Catalog {
Name = MyCatalog
dbname = "bacula"; DB Address = ""; dbuser = "bacula"; dbpassword = "senha2014"
}
Messages {
name = mensagens
console = all, !skipped, !saved
catalog = all
}
Pool {
Name = backup_exemplo
Pool Type = Backup
Recycle = yes
AutoPrune = yes
Label Format = "backup_exemplo"
Volume Retention = 6d
Use Volume Once = yes
Volume Use Duration = 23h
chromeextension://iooicodkiihhpojmmeghjclgihfjdjhj/front/in_isolation/reformat.html

5/11

26/06/2015

BaculaparainiciantesTRILOGIA#1|PenseLinux

}
Console {
Name = bacula-dir
Password = "senha2014"
CommandACL = status, .status
}

Configurando o Console
Vamos configurar o console para utilizao do comando bconsole em terminal, onde
poderemos administrar os backups previamente configurados.
# vi /etc/bacula/bconsole.conf
Director {
Name = bacula-dir
DIRport = 9101
address = 192.168.32.31
Password = "senha2014"
}

Em seguida iremos reiniciar o servio bacula-director para ter certeza de que as


configuraes foram feitas corretamente.
# /etc/init.d/bacula-director restart

Se estiver tudo certo, uma mensagem parecida com a mensagem abaixo deve ser
exibida:
[ ok ] Stopping Bacula Director...: bacula-dir.
[ ok ] Starting Bacula Director...: bacula-dir.

Confirme a configurao do console digitando o comando bconsole em terminal.


# bconsole

Se estiver tudo certo, o terminal deve abrir com informaes parecidas com o exemplo
abaixo:
Connecting to Director 192.168.32.31:9101
1000 OK: bacula-dir Version: 5.2.6 (21 February 2012)
Enter a period to cancel a command.
*

Saia do console digitando o comando quit


Bacula Storage Daemon
O mdulo bacula-sd precisa ser instalado e configurado para receber as ordens do
chromeextension://iooicodkiihhpojmmeghjclgihfjdjhj/front/in_isolation/reformat.html

6/11

26/06/2015

BaculaparainiciantesTRILOGIA#1|PenseLinux

mdulo bacula-director.
Nesse servidor mantive um maior recurso de disco para o armazenamento dos
backups.
# ssh root@192.168.32.32
# apt-get update
# apt-get install bacula-sd

Em seguida editei o arquivo principal do servio bacula-sd, deixando-o da seguinte


maneira:
# vi /etc/bacula/bacula-sd.conf
Storage {
Name = bacula-sd
SDPort = 9103
WorkingDirectory = "/var/lib/bacula"
Pid Directory = "/var/run/bacula"
Maximum Concurrent Jobs = 20
SDAddress = 192.168.32.32
}
Director {
Name = bacula-dir
Password = "senha2014"
}
Device {
Name = FileStorage
Media Type = File
Archive Device = /backup
LabelMedia = yes;
Random Access = Yes;
AutomaticMount = yes;
RemovableMedia = no;
AlwaysOpen = no;
}
Messages {
name = mensagem
console = all, !skipped, !saved
}

Reiniciando o servio
chromeextension://iooicodkiihhpojmmeghjclgihfjdjhj/front/in_isolation/reformat.html

7/11

26/06/2015

BaculaparainiciantesTRILOGIA#1|PenseLinux

# /etc/init.d/bacula-sd restart
[ ok ] Stopping Bacula Storage daemon...: bacula-sd.
[ ok ] Starting Bacula Storage daemon...: bacula-sd.

Bacula File Daemon


J temos um director e um storage configurados, restando somente o cliente para a
realizao do nosso backup teste.
# ssh root@192.168.32.33
# apt-get update
# apt-get install bacula-fd

Editando o arquivo de configurao do cliente


Director {
Name = bacula-dir
Password = "senha2014"
}
FileDaemon {
Name = bacula-fd
FDport = 9102
WorkingDirectory = /var/lib/bacula
Pid Directory = /var/run/bacula
Maximum Concurrent Jobs = 20
FDAddress = 192.168.32.33
}
Messages {
Name = Standard
director = bacula-dir = all, !skipped, !restored
}

Reinicie o servio bacula-fd para aplicar as alteraes.


# /etc/init.d/bacula-fd restart
[ ok ] Stopping Bacula File daemon...: bacula-fd.
[ ok ] Starting Bacula File daemon...: bacula-fd.

Executando o primeiro backup


Com a configurao acima, teremos um backup do diretrio /etc, sendo executado de
segunda a sexta as 23hrs.
chromeextension://iooicodkiihhpojmmeghjclgihfjdjhj/front/in_isolation/reformat.html

8/11

26/06/2015

BaculaparainiciantesTRILOGIA#1|PenseLinux

Esse backup ser copiado para o diretrio /backup do servidor 192.168.32.32


Vamos forar o incio desse backup para confirmar sucesso nas configuraes.
# ssh root@192.168.32.31
# bconsole

Vamos utilizar o comando status com algumas variaes para testar a conectividade
entre os outros mdulos.
*status client=bacula-client

Se a conectividade com o client estiver ok, o resultado abaixo ser exibido:


Connecting to Client bacula-client at 192.168.32.33:9102
bacula-fd Version: 5.2.6 (21 February 2012)

i486-pc-linux-gnu debian 7.0

Daemon started 05-Set-14 03:44. Jobs: run=0 running=0.


Heap: heap=270,336 smbytes=12,972 max_bytes=13,059 bufs=45 max_bufs=46
Sizeof: boffset_t=8 size_t=4 debug=0 trace=0
Running Jobs:
Director connected at: 05-Set-14 04:47
No Jobs running.
====
Terminated Jobs:
====

Em seguida digite o comando para testar a conectividade com o bacula-sd.


*status storage=bacula-storage

O resultado deve ser o seguinte:


Connecting to Storage daemon bacula-storage at 192.168.32.32:9103
bacula-sd Version: 5.2.6 (21 February 2012) i486-pc-linux-gnu debian 7.0
Daemon started 05-Set-14 03:16. Jobs: run=0, running=0.
Heap: heap=266,240 smbytes=14,887 max_bytes=75,166 bufs=49 max_bufs=50
Sizes: boffset_t=8 size_t=4 int32_t=4 int64_t=8 mode=0,0
Running Jobs:
No Jobs running.
====
Jobs waiting to reserve a drive:
chromeextension://iooicodkiihhpojmmeghjclgihfjdjhj/front/in_isolation/reformat.html

9/11

26/06/2015

BaculaparainiciantesTRILOGIA#1|PenseLinux

====
Terminated Jobs:
====
Device status:
Device "FileStorage" (/backup) is not open.
====
Used Volume status:
====

Confirmada a conectividade, podemos iniciar um backup teste utilizando o comando


run, dentro do console bacula.
* run

As informaes abaixo sero exibidas:


Automatically selected Catalog: MyCatalog
Using Catalog "MyCatalog"
A job name must be specified.
Automatically selected Job: Backup_Exemplo
Run Backup job
JobName:

Backup_Exemplo

Level:

Full

Client:

bacula-client

FileSet:

etc

Pool:

backup_exemplo (From Job resource)

Storage:

bacula-storage (From Job resource)

When:

2014-09-05 05:50:47

Priority: 10
OK to run? (yes/mod/no): yes

Para confirmar se o backup foi concludo com sucesso, digite o comando status
client=bacula-client e veja os jobs concludos.
* status client=bacula-client
Terminated Jobs:
JobId

Level

Files

Bytes

Status

Finished

Name

====================================================================
1

Full

Full

1,464

0
1.381 M

Cancel

05-Set-14 05:47 Backup_Exemplo

OK

05-Set-14 05:51 Backup_Exemplo

Finalizo por aqui a primeira etapa da trilogia.

chromeextension://iooicodkiihhpojmmeghjclgihfjdjhj/front/in_isolation/reformat.html

10/11

26/06/2015

BaculaparainiciantesTRILOGIA#1|PenseLinux

Dvidas ?
Entre em contato conosco atravs do e-mail contato@layer8.com.br[7]
Acesse facebook.com/penselinux[8] e deixe sua sugesto para os prximos artigos
dessa trilogia.
Share

Links
1. http://i1.wp.com/penselinux.com.br/wp-content/uploads/2014/09/bacula1.png
2. http://i1.wp.com/penselinux.com.br/wp-content/uploads/2014/09/bacula1.png
3. http://i2.wp.com/penselinux.com.br/wp-content/uploads/2014/09/bacula2.png
4. http://i2.wp.com/penselinux.com.br/wp-content/uploads/2014/09/bacula2.png
5. http://i2.wp.com/penselinux.com.br/wp-content/uploads/2014/09/bacula3.png
6. http://i2.wp.com/penselinux.com.br/wp-content/uploads/2014/09/bacula3.png
7. mailto:contato@layer8.com.br
8. http://www.facebook.com/penselinux

chromeextension://iooicodkiihhpojmmeghjclgihfjdjhj/front/in_isolation/reformat.html

11/11