HowTo, Sysadmin

Bacula: Gestão de Backup Distribuida – Prática

Termos

Existe uma vasta terminologia usada no Bacula para maiores informações acesse Terminology

Ele é um sistema totalmente distribuido sendo formado por 3 daemons ( Director, Storage e FileDaemon ). Os 2 primeiros não necessariamente precisam estar em máquinas separadas, enquanto que o FD precisa ser instalado em todas as máquinas clientes.

Bacula Director

Responsável por supervisionar todas as operações de backup, restauração, verificação e as operações dos arquivos.

Bacula Storage

Responsável pelo armazenamento, leitura e escrita em fita ou outros meios de armazenamento, por exemplo arquivos.

Bacula File Daemon

Este é o cliente do Bacula.

Instalação e Configuração Básica

Agora apresentarei de uma forma bem simples a instalação e configuração do Bacula, recomendo uma profunda leitura da documentação. O bom entendimento de sua infra-estrutura e da política adotada facilitará muito na configuração e manutenção da rotina de backup.

No Debian a instalação desta ferramenta é bastante simples. Execute o comando abaixo para instalar todos os daemons:

aptitude install bacula-director bacula-sd bacula-fd

Configurando o Bacula Director

Edite o arquivo /etc/bacula/bacula-dir.conf

Director { # define myself
Name = backup-dir
DIRport = 9101 # where we listen for UA connections
QueryFile = “/etc/bacula/scripts/query.sql”
WorkingDirectory = “/var/lib/bacula”
PidDirectory = “/var/run/bacula”
Password = “Console/iA6pwbPuT2zUt/hbyE2123123132123” # Console password
Messages = Daemon
DirAddress = 123.123.123.123
}

## Clients

Job {
Name = “Job-server-01”
Client = server-01-fd
Type = Backup
FileSet = “Server 01 Set”
Schedule = “PeriodicidadeSemanal”
Messages = Standard
Pool = Default
Full Backup Pool = “Full_server-01”
Differential Backup Pool = “Diff_server-01”
Write Bootstrap = “/var/lib/bacula/server-01_new.bsr”
}

## Backup Catalog

Job {
Name = “BackupCatalog”
Client = server-2-fd
Type = Backup
FileSet=”Catalog”
Schedule = “PeriodicidadeSemanalCatalog”
Messages = Standard
Storage = Storage-Server2
Pool = “Catalog_Backup”
RunBeforeJob = “/etc/bacula/scripts/make_catalog_backup bacula”
RunAfterJob = “/etc/bacula/scripts/delete_catalog_backup”
Write Bootstrap = “/var/lib/bacula/BackupCatalog_new.bsr”
}

## Restore Job

Job {
Name = “Server-01_Restore”
Type = Restore
Client = server-01-fd
FileSet = “Server 01 Set”
Pool = Default
Messages = Standard
Where = “/var/bacula/restore/b_server-01”
Bootstrap = “/var/lib/bacula/server-01_new.bsr”
}

# Backup Files

FileSet {
Name = “Server 01 Set”
Include {
Options {
signature = MD5
compression = GZIP
}
File = /etc
File = /var/bkpdb
}
Exclude {
File = /tmp
}
}

#Schedules

Schedule {
Name = “PeriodicidadeSemanal”
Run = Level=Full on sun at 23:00
Run = Level=Differential on mon-sat at 23:00
}

Schedule {
Name = “PeriodicidadeSemanalCatalog”
Run = Level=Full on sun at 07:00
Run = Level=Differential on mon-sat at 07:00
}

# Clients FD

Client {
Name = Server-1-fd
Address = 123.123.123.123
FDPort = 9102
Catalog = MyCatalog
Password = “Nlw2vp555z4vepasdasdasddasdda”
File Retention = 30 days
Job Retention = 30 days
Autoprune = yes
}

#Storage

Storage {
Name = Storage-Server2
Address = 123.13.12.3123 # N.B. Use a fully qualified name here
SDPort = 9103
Password = “Nlw2vp555z4veqweqweqweqwY”
Device = FileStorage
Media Type = File
}

#Pool Server 01

Pool {
Name = Full_Server-01
Pool Type = Backup
Storage = FullStorage
Maximum Volume Jobs = 1
Maximum Volume Bytes = 6g
Recycle = yes
AutoPrune = yes
Volume Retention = 2 weeks
Maximum Volumes = 5
LabelFormat = “F_server-01_${Year}-${Month}-${Day}_${Hour}.${Minute}.${Second}”
}

Pool {
Name = Diff_server-01
Pool Type = Backup
Storage = DiffStorage
Maximum Volume Jobs = 1
Maximum Volume Bytes = 6g
Recycle = yes
AutoPrune = yes
Volume Retention = 2 weeks
Maximum Volumes = 7
LabelFormat = “D_server-01_${Month}-${Day}”
}