Existem várias maneiras de replicar os metadados e jobs de backup para sites alternativos pelo Bacula. Podem ser utilizada a replicação do PostgreSQL para o Catálogo, Jobs de Cópia para os backups, ou até mesmo soluções de terceiros como DRBD.
Outra maneira é importar o backup realizado por outro Bacula através de sua ferramenta nativa Bscan, como veremos neste artigo.
Como mostrado na Figura 1, o Director primário salva os backups também ou exclusivamente em um Storage Daemon remoto secundário, e os volumes de backup podem ser scaneados e importados para o Director Remoto.
Figura 1. Backups de Cópia e Importação de Metadados para Director Secundário
A vantagem desse método é que os dois Directors ficam sempre ativos e podem executar Jobs de restauração há qualquer tempo.
Implantação
Depois de instalado o Servidor Bacula secundário, contendo Director, Storage e Cliente, configure um job de Cópia ou de backup para armazenar dados nesse Storage. Você precisará fornecer acesso aos dois Directors no bacula-sd.conf, como no exemplo:
Director { Name = "bacula_master-dir" Password = "30HLZox4K4idLu+j97SHDbXJYgduxUUD+kpVPyEgj1I9" } Director { Name = "bacula_remote-dir" Password = "14idLu+j97SH#GSADgqgq344idLu+j97SH4idLu+j97t" }
Execute Jobs de Cópia ou de backup do Bacula Primário para o Secundário. O ideal é que os volumes de backup estejam armezados todos em um diretório ou monto de montagem exclusivo. Por exemplo, /mnt/volumes.
Crie um Job do tipo Admin no Servidor Bacula Secundário para fazer a importação dos volumes gravados através do bscan. Você pode usar o script a seguir (ex.: /opt/bacula/scripts/bimporter) para realizar o scan de diversos ou todos os Volumes, que é executado através da diretiva RunScript (ClientRunBeforeJob).
#!/bin/bash # # bimporter - Heitor Faria, Bacula LATAM (http://bacula.us, https://bacula.lat, http://bacula.com.br) # uses Bacula bscan to import several volumes to a new Catalog + Director # Obs. 1: bscan requires connection to the new Catalog # # Usage: /opt/bacula/scripts/bimporter vol_name_string vols_dir # E.g.: /opt/bacula/scripts/bimporter DedupDaily /mnt/volumes # # It is desired to only have Bacula volumes in the same archive device path. for i in $(find $2 -printf "%f\n" |grep $1 | sort | grep -v -e .blk -e .idx -e .tch -e bin); do sudo -u bacula /opt/bacula/bin/bscan -s -m -V $i $2 >> /opt/bacula/working/bimporter.log; done
Configure uma Agenda (Schedule) para executar a importação dos volumes na periodicidade e horário desejados, preferencialmente após todos os Jobs de backup terem sido terminados.
Os Jobs de backup importados no Servidor secundário terão o status Archived, não devendo ser utilizados para armazenamento de backups pelo Director Secundário, apenas pelo primário.
Disponível em: PortuguêsEnglish (Inglês)Español (Espanhol)