Aula 01

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 30

Bacula

Enterprise Backup System

Treinamento EAD Unirede


Aula 01
O que é o Bacula:

O Bacula é conhecido como a principal ferramenta


de backup, verificação e recuperação de dados
em um ambiente de Tecnologia da Informação e
Comunicação, em Enterprise Level.
Aula 01
O Bacula não é?

O Bacula é um sistema de backup que viabiliza


situações conhecidas como “Disaster/Recovery”,
mas por si só, não possui essa função.
Aula 01
DRP - Disaster Recovery Plan

Um plano de recuperação de desastres não pode se


resumir a uma ferramenta de backup. Conforme nós,
profissionais de TIC, alcançamos certa maturidade,
compreendemos que esse plano envolve todo um
processo corporativo, e a ferramenta de backup é
apenas uma das partes (chave) desse plano.
Aula 01
Quem precisa do Bacula?

Muitos administradores de sistemas e redes, não


possuem uma ferramenta de backup de dados, outros,
realizam seu backup com outras ferramentas próprias
de um produto, como o tar do GNU/Linux (que
funciona muito bem), através de um shell script
trabalhoso.
Aula 01
Quem precisa do Bacula?

Administradores de bancos de dados, Oracle,


PostgreSQL, MySQL e outros, usam ferramentas
próprias que algumas vezes, não dão qualquer poder
de administração sobre o backup, ou pouco. Esse
também é o caso de uso do Bacula.
Aula 01 - Estrutura básica

O Bacula Open Source Edition que estudaremos, possui


resumidamente a estrutura da figura ao lado.

À frente, vamos compreender cada um de seus


componentes em ainda mais adiante, suas configurações e
considerações.

Fonte: http://blog.bacula.org/documentation/documentation/
Aula 01 - conceitos
Bacula Director
Bacula Director é a parte do software que controla todo o restante, estando no
mesmo servidor ou em outros. No Bacula Director criamos os jobs de backup,
restore, verificação dos dados, Schedules, File Sets, etc…

Bacula Console
Bacula Console, resumidamente, é uma console específica para comandos da
ferramenta de backup e pode ser usada em modo texto do GNU/Linux, ou
manipulada por algum frontend. Em nosso curso, vamos usar ao menos um
deles.
Aula 01
Bacula File
Bacula File é a parte do Bacula responsável pelos clientes os quais terão seus
dados em backup, ou seja, é o agente de backup a ser instalado nos ativos
para serem contemplados pelo backup.

Bacula Storage
Bacula Storage é a parte do sistema de backup responsável por controlar os
storages usados durante os procedimentos de backup. Exemplo, se o Bacula
vai gravar o backup em disco local, Storage remoto, algum Type Drive, etc...
Aula 01
Catalog
Catalog é um recurso comum a ferramentas de backup. Para o Bacula, não é diferente.
O serviço de Catalog é responsável por manter os índices dos dados que foram
contemplados pelo backup, sua mídia de armazenamento, Pools utilizados, dentre outras
informações para verificação e recuperação desses dados. Pode ser usado em banco de
dados MySQL, PostgreSQL ou SQLite.

Bacula Monitor
Bacula Monitor é o recurso que permite monitorar o status do sistema de backup. Hoje,
existe apenas uma versão oficial que roda à base de GTK+, como Gnome, KDE, e outros
servidores X. Existem diversos trabalhos da comunidade de software livre contribuindo
para outras interfaces, como o Webacula, que também veremos nesse curso.
Aula 01
Laboratório - Instalação básica

Em nosso exercício, vamos usar apenas um servidor para comportar toda a


solução do sistema de backup Bacula. Existem instalações que podem ser
feitas a partir de repositórios oficiais de uma distribuição GNU/Linux, porém,
dificilmente ela será a versão mais atual do sistema, logo, vamos instalar o
sistema mais novo, compilando seu código-fonte em um servidor Debian.

Download do códito-fonte para compilação em


http://sourceforge.net/projects/bacula/files/bacula/7.2.0/
Aula 01
Laboratório - Instalação básica

Os principais requisitos para a compilação do Bacula em nosso sistema


GNU/Linux Debian são bibliotecas gcc e as que correspondem ao banco de
dados de sua escolha (MySQL, PostgreSQL ou SQLite).

Sendo assim, para a instalação mínima, faremos...


Aula 01
Laboratório - Instalação básica

build-essential - pacote para compilação gcc, g++, etc...


mysql-server - SGBD
libmysqld-dev - conjunto de bibliotecas de desenvolvimento MySQL

Instale esses pacotes, para viabilizar a compilação básica do Bacula.

# aptitude install build-essential mysql-server libmysqld-dev


Aula 01
Laboratório - Instalação básica

Ao descompactar o conteúdo .tar.gz em /opt, prossiga com a compilação


básica, como abaixo:

# ./configure --with-mysql

O resultado, deve ser como nas próximas páginas.


Aula 01 - Resultado da compilação
Configuration on Sat Oct 31 15:12:21 BRST 2015: C Compiler: gcc 4.9.2-10)
C++ Compiler: /usr/bin/g++ 4.9.2-10)
Host: x86_64-unknown-linux-gnu -- debian 8.2 Compiler flags: -g -O2 -Wall -fno-strict-aliasing
-fno-exceptions -fno-rtti
Bacula version: Bacula 7.2.0 (14 August 2015)
Linker flags:
Source code location: .
Libraries: -lpthread -ldl -ldl
Install binaries: /sbin
Statically Linked Tools: no
Install libraries: /usr/lib
Statically Linked FD: no
Install config files: /etc/bacula
Statically Linked SD: no
Scripts directory: /etc/bacula
Statically Linked DIR: no
Archive directory: /tmp
Statically Linked CONS: no
Working directory: /opt/bacula/working
Database backends: MySQL
PID directory: /var/run
Database port:
Subsys directory: /var/lock/subsys
Database name: bacula
Man directory: ${datarootdir}/man
Database user: bacula
Data directory: /usr/share
Plugin directory: /usr/lib
Aula 01 - Resultado da compilação
Job Output Email: root@localhost Large file support: yes AFS support: no
Traceback Email: root@localhost Bacula conio support: no ACL support: no
SMTP Host Address: localhost readline support: no XATTR support: yes
TCP Wrappers support: no systemd support: no
Director Port: 9101 TLS support: no Batch insert enabled: MySQL
File daemon Port: 9102 Encryption support: no
Storage daemon Port: 9103 ZLIB support: yes
LZO support: no
Director User: enable-smartalloc: yes
Director Group: enable-lockmgr: no
Storage Daemon User: bat support: no
Storage DaemonGroup: client-only: no
File Daemon User: build-dird: yes
File Daemon Group: build-stored: yes
Plugin support: yes
Aula 01
Laboratório - Instalação básica

Perceba que poderíamos ter habilitado o suporte a vários recursos como


compressão do tipo LZO, suporte a TLS, dentre outras. Nossa instalação
servirá ao propósito básico do estudo da ferramenta; posteriormente, outra
compilação mais avançada pode ser feita.

# make && make install


Aula 01
Laboratório

Após o sucesso da compilação básica, é criado o diretório /etc/bacula

Dentro dele, estão vários arquivos de configuração importantes e alguns


scripts que vamos usar.

# ls /etc/bacula
Aula 01
Laboratório

Após a compilação, o sistema não inicializa sozinho. Será preciso executar


alguns comandos:

# /etc/bacula/bacula status
# /etc/bacula/bacula start
# /etc/bacula/bacula status
Aula 01
Laboratório

Também é possível visualizar seus processos da seguinte forma:

# ps -ef | grep bacula

Ainda há algo a ser feito para a correta configuração inicial.


Aula 01
Laboratório

Outro diretório que é criado durante a compilação, é o /opt/bacula.


Também aí estão arquivos importantes.

# tail -f /opt/bacula/bacula-dir.xxxxxx.mail

Algumas mensagens importantes precisam ser lidas.


Por exemplo, o Bacula Director precisa usar o Catalog, mas não configuramos.
Aula 01
Criando o banco de dados do Bacula
Execute os scripts conforme abaixo:

# /etc/bacula/create_bacula_database -u root -p
# /etc/bacula/grant_bacula_privileges -u root -p
# /etc/bacula/make_mysql_tables -u root -p
# /etc/bacula/grant_mysql_privileges -u root -p
Aula 01
Configurando permissões
Altere o password para o usuário bacula:

# mysql -u root -p

mysql> UPDATE mysql.user SET password='passmysql' WHERE user='bacula';


mysql> GRANT ALL PRIVILEGES ON bacula.* TO 'bacula'@'localhost' IDENTIFIED BY
'bacula';
mysql> FLUSH PRIVILEGES;
mysql> quit
Aula 01
Teste de acesso ao banco
Acesso o MySQL com o usuário e senha criados:

# mysql -u bacula -pbacula

mysql> use bacula;


mysql> show tables;
mysql> quit
Aula 01
Configurando o Bacula Director
Agora, o Bacula Director precisa receber os dados de acesso ao banco de dados criado.

Edite o arquivo /etc/bacula/bacula-dir.conf e o modifique para que fique como abaixo:

Catalog {
Name = MyCatalog
dbname = "bacula"; dbuser = "bacula"; dbpassword = "bacula"
}
Aula 01
Iniciando o Sistema de Backup
Agora, podemos iniciar o sistema novamente, e conferir seus serviços.

# /etc/bacula/bacula stop
# /etc/bacula/bacula start
# /etc/bacula/bacula status
# netstat -ntpl | grep bacula

Serão retornados 3 daemons: bacula-dir (9101), bacula-fd (9102) e bacula-sd (9103)


Respectivamente, bacula director, bacula file daemon e bacula storage daemon
Aula 01
Um pouco de “bconsole”
Uma vez iniciado o sistema, podemos interagir com ele através do bconsole, sua
interface de linha de comando.

# bconsole
* help
* status dir
Aula 01
Aula 01
Considerações sobre o Laboratório
O sistema Bacula está instalado, mas lembre-se, essa é uma configuração de estudos
de laboratório. Nosso objetivo é realizar mais configurações e avançar em conteúdo e
complexidade.

Veja na página anterior que nosso Bacula já possui Jobs de backup agendados. É o
backup dele mesmo, salvando em disco local, o que mudaremos mais à frente.
Aula 01

http://bkpserver.lab.com.br

Tarefa concluída!

Você também pode gostar