
Eu, eu, eu! Ministro treinamentos in-company do Bacula, com implementação.
Comprem a 3ª Edição do meu Livro, material suplementar do curso: http://www.bacula.com.br/compre-o-livro-do-bacula-aqui/
Seja meu amigo no Facebook: https://www.facebook.com/heitor.faria
Ou entre em contato comigo por:
Lista da comunidade Brasileira de Usuários do Bacula: http://groups.google.com/group/bacula-backup-pt-br
E no primeiro dia Deus criou o.... Backup! =)
Manual completo do Bacula (EN): http://www.bacula.com.br/?page_id=1880
Meu site para mais documentação: www.bacula.com.br
Estratégias gerais para não ter o seu sangue sugado pelo vampiro... Muahhhh
Os porquês da importância do backup hoje e por muito tempo.
Conceitos básicos de backup para todos.
Você consegue diferenciar um backup incremental de um diferencial?
Uma estratégia de backup campeã, difundida mundialmente para o menor uso de storage com o maior tempo de retenção para seus backups!
Está sendo bom para você? Para mim está ótimo! Inscreva-se no curso e torne-se um apaixonado pelo Bacula como eu.
*Atualmente recomendo ir direto para a instalação compilando o código fonte. Sessão 8 do curso.
==================================================================================
1. Desabilitar o firewall:
iptables --flush
2. Desabilitar o selinux
3. Instalação do Banco de dados:
yum install postgresql-server
service postgresql initdb
service postgresql start
3. Instalação do Bacula (servidor, cliente, storage e console):
yum install bacula-director-postgresql bacula-storage-postgresql bacula-client bacula-console
4. Criar, popular e usuário do Banco do Bacula:
cd /usr/libexec/bacula
chmod 777 create_postgresql_database
chmod 777 make_postgresql_tables
chmod 777 grant_postgresql_privileges
su postgres
./create_postgresql_database
./make_postgresql_tables
./grant_postgresql_privileges
exit
5. Incializar os daemons do Bacula:
/etc/init.d/bacula-fd start
/etc/init.d/bacula-sd start
/etc/init.d/bacula-dir start
6. Pronto! Pode acessar a console texto com o comando:
bconsole
7. Atenção! Em caso de erro verificar a log em:
cat /var/log/bacula.log
Alterar todas os valores de Password que deveriam ter as variáveis configuradas pelo script automático de instalação do Bacula.
Exemplo: no lugar de "@@FD_Password@@", alterar por uma senha qualquer "senha_cliente", mas que deve ser igual para todas as ocorrências de "@@FD_Password@@", em todos os arquivos de configuração iniciais do Bacula: bacula-dir.conf, bacula-sd.conf, bacula-fd.conf e bconsole.conf
Em caso de dúvidas consultar o diagrama de configuração constante de: http://www.bacula.com.br/?p=698
Alterar os endereços (Address=) dos recursos Storage e Client para o endereço de IP de rede local ou nome qualificado.
Neste caso, ambos os serviços estão instalados no mesmo servidor onde estamos trabalhando, mas não devem ser utilizados endereços do tipo localhost.
*Atualmente recomendo ir direto para a instalação compilando o código fonte. Sessão 8 do curso.
=======================================================
1. Atualização e teste do apt:
apt-get update
2. Instalação banco de dados (no exemplo Postgresql):
apt-get install postgresql
3. Instalação de um servidor Bacula com todos os daemons, consoles e Postfix (para o envio de email):
apt-get install bacula-director-pgsql bacula-sd-pgsql bacula-fd bacula-console bacula-console-qt postfix
4. Durante a instalação:
a) selecionar as opções padrão do Postfix (site internet).
b) permitir que o instalador crie e popule o banco de dados do Catálogo do Bacula.
c) definir uma senha para acesso do usuário Bacula no banco de dados.
1. Certificar-se onde o Dispositivo do Storage do Bacula está armazenando os backups (no caso em disco): bacula-sd.conf. Alterar para o diretório desejado:
Archive Device = /backup
2. Criar o diretório e fornecer permissões de gravação:
mkdir /backup
chown bacula /backup
3. Ao submeter o job de backup, acompanhar as mensagens com o comando messages e/ou comando status.
4. Se o job solicitar volumes para gravação, pode criá-lo com o comando label, dentro da pool para a qual o job foi submetido (no caso a Pool: File).
A primeira coisa que sempre devemos observar numa instalação do Bacula é onde o Storage está armazenando os dados de Backup (Archive Device).
Nessa instalação o Bacula estava pré-configurado para armazenar os backups em disco no diretório /tmp, o que seria catastrófico!
Podemos alterar este parâmetro editando o arquivo bacula-sd.conf.
Não esquecer de reiniciar o serviço do bacula-sd, criar o diretório onde irá gravar os backups e dar permissão para o usuário bacula. Exemplo:
/etc/init.d/bacula-sd restart
mkdir /backup
chown bacula /backup
ERRATA! Para cada dispositivo de gravação em disco dentro de um Virtual Changer é necessário utilizar Media Types diferentes para cada Archive Device (ponto de montagem) diferente.
1. Instalar a funcionalidade adicional de Backup do Windows.
2. Criar um novo volume de disco para armazenagem do systemstate (exemplo: E:)
3. Criar script para fazer backup do system state (ex: sysmtemstate.bat):
wbadmin start systemstatebackup -backuptarget:e: -quiet
4. Configurar o job de backup para executar o script. Exemplo:
Job {
Name = "Backup Servidor Ruindows"
JobDefs = "DefaultJob"
Client = ruindows-fd
FileSet = ruindows_set
ClientRunBeforeJob = C:/systemstate.bat
}
5. Incluir no fileset do servidor windows o backup do volume E: (destino do systemstate backup)
Exemplo de FileSet com compressão habilitada:
FileSet {
Name = "Catalog"
Include {
Options {
signature = MD5
Compression = GZIP
}
File = "/var/spool/bacula/bacula.sql"
}
}
Também é possível utilizar LZO (mais leve que o GZIP) ou um nível de compressão para o GZIP (GZIP1-GZIP9).
Muito importante! Veja o diagrama em anexo.
Exemplo agenda GFS (não esquecer de configurar o Job para utilizar esta agenda):
Schedule {
Name = "agenda_gfs"
Run=Incremental Pool=Diaria monday-thursday at 20:00
Run=Full Pool=Semanal 2nd-5th friday at 20:00
Run=Full Pool=Mensal 1st friday at 20:00
}
Pool de volumes em branco. Mais utilizada para robôs de fitas para automatizar a distribuição de volumes entre as pools necessitadas..
Tipos de dispositivos de fitas magnéticas, tape library, autoloader, cartuchos etc., conexão e configuração com o Bacula Storage Daemon, Director e operação básica.
Essa opção sempre recicla volumes da pool quando necessário espaço para gravação, mesmo que os volumes estejam dentro da retenção. Muito PERIGOSA!
Dizem respeito à retenção apenas de índices no banco de dados do Bacula.
File Retention = índice de arquivos, que permite restauração de apenas 1 arquivo de um job.
Job Retention = índice de jobs, que depois de expirado não permite mais a restauração do job pelo Bacula.
Recomendo aumentar ambos os valores (recurso Client, bacula-dir.conf). Se desejar programar para infinito:
Client {
Name = bacula-fd
Address = 192.168.0.120
FDPort = 9102
Catalog = MyCatalog
Password = "senha_cliente" # password for FileDaemon
File Retention = 99 years # 30 days
Job Retention = 99 years # six months
AutoPrune = yes # Prune expired Jobs/Files
}
1. A mensagem de log do postfix não mostrava tentativa de envio de email pelo Bacula. Utilizamos o comando para testar, no shell:
bsmtp -h localhost -f "heitor@bacula.com.br" -s "Bacula daemon message" heitor@bacula.com.br
2. O seguinte erro apareceu:
bsmtp: bsmtp.c:377 Fatal gethostbyname for myself failed "centos.localdomain": ERR=Success
3. Então foi inserido o nome centos.localdomain no arquivo /etc/hosts, como alias para localhost.
4. Se necessário habilitar o envio de email autenticado (porta 25 bloqueada), instalar a dependência:
yum install cyrus-sasl-plain
5. Configurar o postfix, de acordo com o turorial disponível no bacula.com.br: http://www.bacula.com.br/?p=1160
*Sempre mantenho meu site procedimentos atualizados para as novas versões do Bacula: http://www.bacula.com.br/comandos-de-compilacao/
===================================================================================
1. Site do http://www.bacula.com.br > menu direito: Download do Bacula > pasta Bacula (no Sourceforge).
Ou ainda, para download direto da versão 7.0.5:
wget http://downloads.sourceforge.net/project/bacula/bacula/7.0.5/bacula-7.0.5.tar.gz
2. Descompactar:
tar -xzvf bacula-7.0.5.tar.gz
3. Entrar no diretório:
cd bacula-7.0.5
No vídeo deixei de instalar a versão zlib-devel, que é necessária para a compressão dos backups. Este seria o comando completo:
yum install postgresql-devel gcc-c++ readline-devel zlib-devel libacl-devel
Se fosse mysql:
mysql-devel
Dentro do diretório do código, configurar a compilação:
./configure --with-postgresql --with-readline=/usr/include/readline --disable-conio --bindir=/usr/bin --sbindir=/usr/sbin --with-scriptdir=/usr/libexec/bacula/ --with-working-dir=/var/spool/bacula/
1. Comando para compilar e instalar (o -j8 divide o trabalho e permite que até 8 processadores sejam utilizados na compilação, conferindo mais agilidade):
make -j8 && make install && make install-autostart
Necessário executar o script de atualização de versão do banco de dados do Bacula, quando mudando da versão 5.0 para a 5.2 ou superior.
1. Fornecer permissão de execução no script:
chmod 777 /usr/libexec/bacula/update_postgresql_tables
2. Executar o script:
echo /usr/libexec/bacula/update_postgresql_tables | su postgres
3. Ou:
su postgres
/usr/libexec/bacula/update_postgresql_tables
1. Download do Código:
cd /usr/src
wget http://downloads.sourceforge.net/project/bacula/bacula/7.0.5/bacula-7.0.5.tar.gz
tar -xzvf bacula-7.0.5.tar.gz
cd bacula-7.0.5
2. Dependências básicas:
apt-get install build-essential postgresql-server-dev-9.1 libreadline6-dev
./configure --with-postgresql --with-readline=/usr/include/readline --disable-conio --bindir=/usr/bin --sbindir=/usr/sbin --with-scriptdir=/etc/bacula/scripts --with-working-dir=/var/lib/bacula
make && make install && make install-autostart
Reiniciar todos os daemons.
***ATENÇÃO***
Para MYSQL e Debian 32 bits pode ser necessário executar os seguintes passos antes de realizar o make (etc.):
1. Editar o seguinte arquivo:
vi /usr/src/bacula-7.0.5/src/cats/Makefile
2. Verificar se o valor da variável está vazio e modificar pelo que segue :
MYSQL_LIBS =
para:
MYSQL_LIBS = /usr/lib/i386-linux-gnu/libmysqlclient.a
3. Salvar e sair.
O treinamento apresenta teoria e prática de Backups , cobrindo instalação, recuperação, backup de ferramentas específicas, “disaster recovery” e diversos outros aspectos importantes para Backups seguros e confiáveis. Serão simuladas situações reais de gravação e recuperação de dados.
Objetivos: Preparar técnicos e/ou administradores de redes para implementar e administrar o Bacula enquanto sistema de backups.
* Tipos, mitos, topologias e estratégias de backup (GFS).
* Principais Recursos do “Bacula”
* Instalação e Configuração do Servidor “Bacula” no Linux
* Instalação e Configuração do Cliente “Bacula” (Linux e Windows)
* Configuração e Operação de “Storages” em Disco, Fita Magnética e Robô-de-fitas.*
* Comandos do “Bacula”
* Restauração completa e parcial de dados
* Restauração Cruzada
* Restauração do banco-de-dados do Bacula
* Run e After Backup scripts
* Backup de aplicações específicas: máquinas virtuais, bancos de dados, servidores de email, etc.
* Restauração do Servidor de Backups
* Cópia e Migração de Volumes
* Desduplicação de Arquivos
* Compactação de Dados
* Exercícios