Você está na página 1de 8

BACULA

Virgínia Tavares

1. Conceitos importantes
1.1.1. Retenção: período pelo qual determinada informação não pode ser apagada do
banco de dados ou da mídia de "backup" – a não ser por especial intervenção humana.
1.1.2. Expiração: término do prazo de retenção.
1.1.3. “Job”: trabalho de “backup” ou de “restore”. No caso do “Bacula”
1.1.4. Volume: divisão (espécie de caixa) reservada para o armazenamento dos dados de
“backup”. Compartimento lógico no qual os “backups” serão armazenados. Pode ser criado
em fitas, HD, etc., sendo que cada fita somente poderá conter 01 (um) volume lógico.
1.1.5. “Pool” (grupo): conjunto de volumes com características semelhantes (ex.: tempo de
retenção). De igual sorte, trata-se de um dispositivo de segurança (se o “backup” utilizando
determinada pool é agendado não poderão ser utilizados volumes de outra). O volume
herda as características da pool.
1.1.6. “FileSet”: lista de diretórios (ou arquivos) que serão "backupeados". Pode ser utilizado
para um ou vários servidores. Geralmente deve excluir diretórios desnecessários (/proc,
/tmp). No Bacula, são suportadas expressões regulares para excluir ou incluir arquivos com
nomes e/ou terminações específicas.
1.1.10. Catálogo: é o responsável por armazenar um índice de todos os arquivos
armazenados pela ferramenta de "backup". Fica armazenada em um banco de dados. A
vantagem do Bacula, é que ele suporta 3 bancos diferentes (e livres) para armazenamento
do catálogo.
1.1.16. "backup" Cruzado: “backup” realizado remotamente, de uma máquina para outra (ou
para um “storage” independente, através da rede.
2. Tipos de Backup
1.2.1. “Full” – faz cópia de todos os arquivos definidos na configuração da ferramenta,
independente que os arquivos da lista ("file set") terem sido alterados ou não.
1.2.2. Diferencial – faz o “backup” apenas dos arquivos modificados a partir do último
“backup full”.
1.2.3. Incremental – faz cópia apenas dos arquivos modificados a partir do último “backup”
diferencial.
1.2.4. Cópia – cópia secundária ou complementar de determinado volume de “backup”
(redundante). Muito utilizada para “backup off-site”. O volume copiado é mantido intacto.
1.2.5. Migração – os dados de determinado volume são migrados para outro, sendo que o
primeiro deixa de existir.
3. Funcionamento Bacula
Bacula Director Daemon (DIR)​– Pode ser considerado o centro nervoso do Bacula,
pois e a aplicação responsável por iniciar os agendamentos, autenticar as conexões
de rede e realizar as tarefas de backup e restauração de dados.
Bacula Storage Daemon (SD) – Pode ser considerado o coração do Bacula, pois e a
aplicação responsável por armazenar em disco rígido ou fita magnética os dados de
backup.

Bacula File Daemon (FD) ​– Pode ser considerado o corpo do Bacula, pois é a
aplicação responsável pela leitura, escrita e verificação dos arquivos a serem
realizado as rotinas de backup e restauração de dados.

4. Instalação e configuração
4.1 Diretor e Sd

● sudo apt-get update


Now install MySQL Server with apt-get:
● sudo apt-get install mysql-server
● sudo apt-get install bacula-server bacula-client
General Type of Mail Configuration:​ Choose "Internet Site"
System Mail Name:​ Enter your server's FQDN or hostname
Configure database for bacula-director-mysql with dbconfig-common?:​ Select
"Yes"
Password of the database's administrative user:​ Enter your MySQL root
password (set during MySQL installation)
MySQL application password for bacula-director-mysql​: Enter a new password
and confirm it, or leave the prompt blank to generate a random password
● sudo chmod 755 /etc/bacula/scripts/delete_catalog_backup
● sudo mkdir -p /bacula/backup /bacula/restore
● sudo chown -R bacula:bacula /bacula
● sudo chmod -R 700 /bacula
● sudo vi /etc/bacula/bacula-dir.conf

Rename Director:
Director { # define myself
Name = ​NOME_DIRETOR
DIRport = 9101 # where we listen for UA connections
QueryFile = "/etc/bacula/scripts/query.sql"
WorkingDirectory = "/var/lib/bacula"
PidDirectory = "/var/run/bacula"
Maximum Concurrent Jobs = 1
Password = "yQB1N3T46bRr1AhTd-dOnT0vdzYDj3LV-" # Console
password
Messages = Daemon
DirAddress = 127.0.0.1
}

Rename BackupClient1 job:


Job {
Name = "BackupLocalFiles"
JobDefs = "DefaultJob"
}

Rename Client:
Client {
Name = ​diretor #NOME-CLIENTE-DIRETOR
Address = ​IPDIRETOR
FDPort = 9102
Catalog = MyCatalog
Password​ = "senha-cliente" # password for FileDaemon
File Retention = 30 days # 30 days
Job Retention = 6 months # six months
AutoPrune = yes # Prune expired Jobs/Files
}

Rename JobDefs:
JobDefs {
Name = "DefaultJob"
Type = Backup
Level = Incremental
Client = ​diretor
FileSet = "Full Set"
Schedule = "WeeklyCycle"
Storage = File
Messages = Standard
Pool = File
Priority = 10
Write Bootstrap = "/var/lib/bacula/%c.bsr"
}

Rename RestoreFiles job:


Job {
Name = "RestoreLocalFiles"
Type = Restore
Client=​BackupServer-fd #NOME SD
FileSet="Full Set"
Storage = File
Pool = Default
Messages = Standard
Where =​ /bacula/restore
}
Configure Storage Daemon Connection
Storage {
Name = File
# Do not use "localhost" here
Address = ​IPDIRETOR ​ # N.B. Use a fully qualified name here
SDPort = 9103
Password = "ITXAsuVLi1LZaSfihQ6Q6yUCYMUssdmu_"
Device = FileStorage
Media Type = File
}
Configure Pool
# File Pool definition
Pool {
Name = File
Pool Type = Backup
​ Label Format = Local-
Recycle = yes # Bacula can automatically recycle Volumes
AutoPrune = yes # Prune expired volumes
Volume Retention = 365 days # one year
Maximum Volume Bytes = 50G # Limit Volume size to something reasonable
Maximum Volumes = 100 # Limit number of Volumes in Pool
}
● sudo bacula-dir -tc /etc/bacula/bacula-dir.conf
● sudo vi /etc/bacula/bacula-sd.conf

Configure Storage Resource


Storage { # definition of myself
Name = BackupServer-sd
SDPort = 9103 # Director's port
WorkingDirectory = "/var/lib/bacula"
Pid Directory = "/var/run/bacula"
Maximum Concurrent Jobs = 20
​SDAddress = IP DIRETOR
}
Configure Storage Device
Device {
Name = FileStorage
Media Type = File
Archive Device =​ /bacula/backup
LabelMedia = yes; # lets Bacula label unlabeled media
Random Access = Yes;
AutomaticMount = yes; # when device opened, read it
RemovableMedia = no;
AlwaysOpen = no;
}

● sudo bacula-sd -tc /etc/bacula/bacula-sd.conf


● sudo service bacula-director restart
● sudo service bacula-sd restart

******************TESTE:
sudo bconsole
status
ALL

4.2 Novo Cliente

Esta parte é feita na máquina do cliente:

● apt-get update
● apt-get install bacula-fd
● sudo vi /etc/bacula/bacula-fd.conf
Configure director:
Director {
Name = ​NOME_DIRETOR
Password = ​"senha-cliente"
}
Configure FileDaemon:
FileDaemon { # this is me
Name = ​NOMEDOCLIENTE ​ # NOME DO CLIENTE
FDport = 9102
WorkingDirectory = /var/lib/bacula
Pid Directory = /var/run/bacula
Maximum Concurrent Jobs = 20
# FDAddress = 127.0.0.1
}
● sudo bacula-fd -tc /etc/bacula/bacula-fd.conf
● sudo service bacula-fd restart
Esta parte é feita na máquina do administrador do backup (onde vai ser salvo)

● sudo vi /etc/bacula/bacula-dir.conf

Configure client:
Client {
Name = ​NOMEDOCLIENTE
Address =​ IP/FQDN DO CLIENTE
FDPort = 9102
Catalog = MyCatalog
Password = ​"senha-cliente"
File Retention = 30 days # 30 days
Job Retention = 6 months # six months
AutoPrune = yes # Prune expired Jobs/Files
}

Configure fileset:
FileSet {
Name = "​cliente_set"
Include {
Options {
signature = MD5
}
File = /etc
File = /opt
}

Exclude {
File = /.journal
File = /.fsck
}
}
#no exclude pastas que não vão ser salvas

Create job:
Job {
Name = "Backup do cliente Debian"
Client = ​NOMEDOCLIENTE
JobDefs = "DefaultJob"
FileSet = ​cliente_set
}
● sudo bacula-dir -tc /etc/bacula/bacula-dir.conf
● sudo service bacula-director rest0art

5. Funcionamento do Bacula no Lasse


diretor:
Kanon

clientes:
PROD1
PROD2 (Coreos)
DEATHMASK

backup em 2 hds:
HD1: Diff and incremental all Prod1, Prod2, DeathMask
HD2: FULL PROD2

schedule:
SUN MON TUE WED THU FRI SAT

INC DIF DIF DIF DIF INC FULL

6.Referências

https://tisemestresse.blogspot.com/2016/07/bacula-instalar-no-ubuntu.html
http://tutoriaisgnulinux.com/2015/04/28/_backup-com-bacula-primeiro-cliente-linux-1-
9/

Você também pode gostar