Bacula 1: ferramenta livre de backup

Aprenda a construir um sistema de backups 100% software livre com o Bacula, a ferramenta mais popular do Brasil
4.5 (101 ratings) Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
444 students enrolled
$19
$50
62% off
Take This Course
  • Lectures 74
  • Length 9 hours
  • Skill Level All Levels
  • Languages Portuguese
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works

Discover

Find online courses made by experts from around the world.

Learn

Take your courses with you and learn anywhere, anytime.

Master

Learn and practice real-world skills and achieve your goals.

About This Course

Published 9/2014 Portuguese

Course Description

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.

Ementa:

* 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

What are the requirements?

  • Duas máquinas Linux físicas ou virtuais para o servidor Bacula (Director) e outra apenas para instalação do cliente (ao menos um Debian 7.6 recomendado) com ao menos 10 Gb de espaço livre
  • Uma máquina Windows virtual ou física (versões server recomendadas), com ao menos 10 Gb de espaço livre, para instalação de cliente Bacula

What am I going to get from this course?

  • Preparar o aluno para planejar, instalar, configurar e administrar um sistema de backups de nível empresarial completo
  • Entender as principais estratégias de backup
  • Ser capaz de configurar o backup de aplicações específicas

What is the target audience?

  • Administradores e analistas de sistemas
  • Técnicos de TI
  • Gestores de TI

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.

Curriculum

Section 1: Introdução Teórica
03:16

Eu, eu, eu! Ministro treinamentos in-company do Bacula, com implementação.

Seja meu amigo no Facebook: https://www.facebook.com/heitor.faria

Ou entre em contato comigo por:

  • email: heitor@bacula.com.br
  • Gtalk: heitorfaria@gmail.com
  • Skype: neocodeheitor


Lista da comunidade Brasileira de Usuários do Bacula: http://groups.google.com/group/bacula-backup-pt-br

12:18

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

07:07

Estratégias gerais para não ter o seu sangue sugado pelo vampiro... Muahhhh

06:59

Os porquês da importância do backup hoje e por muito tempo.

21:08

Conceitos básicos de backup para todos.

06:43

Você consegue diferenciar um backup incremental de um diferencial?

07:34

Uma estratégia de backup campeã, difundida mundialmente para o menor uso de storage com o maior tempo de retenção para seus backups!

11:53

Está sendo bom para você? Para mim está ótimo! Inscreva-se no curso e torne-se um apaixonado pelo Bacula como eu.

Parte Teórica
5 questions
Section 2: Instalação Debian 7.6
03:52

*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.

Aspectos da Instalação Fresca
02:52
07:33

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).

Section 3: Instalação CentOS 6.5
17:19

*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

08:04

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

04:41

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.

Aspectos da instalação fresca CentOS
14:05
Section 4: Primeiros Passos
11:43

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

O Primeiro Restore
07:04
Instalação
3 questions
Section 5: Visão Geral Configurações
bacula-dir.conf (Director)
07:16
bacula-dir.conf (Jobs & Job Defs)
19:37
bacula-dir.conf (Job Restore)
03:59
bacula-dir.conf (FileSets)
07:39
bacula-dir.conf (Schedule)
07:20
bacula-dir.conf (Client e Storage)
06:01
bacula-dir.conf (Catalog e Messages)
06:22
bacula-dir.conf (Pool e Monitor)
05:25
13:27

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.

bacula-fd.conf
02:50
Section 6: Novos Clientes
Novo Cliente Linux
09:38
Novo Cliente Linux: Job e FileSet
07:17
Novo Cliente Windows
10:52
09:18

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)

Section 7: Principais Configurações
10:17

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).

15:33

Muito importante! Veja o diagrama em anexo.

Pools (GFS)
13:17
12:20

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

}

02:23

Pool de volumes em branco. Mais utilizada para robôs de fitas para automatizar a distribuição de volumes entre as pools necessitadas..

02:53

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!

05:27

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
}

09:29

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

Section 8: Atualização por Compilação Versão 7.0.5 (CentOS 6.5)
03:27

*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

03:03

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

08:37

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/

04:38

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

03:42

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

Novas Funcionalidades Versão 7.0.5
06:46
Section 9: Atualização por Compilação Versão 7.0.5 (Debian 7.6)
01:59

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

03:01

./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

06:00

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.

Section 10: Recuperação de Desastres
Restauração de Dump do Catálogo
08:21
08:34

1. Exemplo de bscan, para mais de um volume em disco:

bscan -s -m -c /etc/bacula/bacula-sd.conf -v -V "diaria-0|diaria-1" /backup

07:49

1. Exemplo de bstract, para restore dos arquivos de configuração do Bacula e do dump do banco de dados, a partir de uma lista:

bextract -i /tmp/lista -c /etc/bacula/bacula-sd.conf -v -V diaria-0 /backup /tmp

2. Conteúdo da lista:

[root@centos bacula-7.0.5]# cat /tmp/lista

/etc/bacula/*.conf

*bacula.sql

Section 11: Configurações Situacionais
04:36

1. Segundo storage em disco no bacula-sd.conf:

Device {

Name = FileStorage

Media Type = File1

Archive Device = /backup2

LabelMedia = yes; # lets Bacula label unlabeled media

Random Access = Yes;

AutomaticMount = yes; # when device opened, read it

RemovableMedia = no;

AlwaysOpen = no;

}

2. Criar o novo destino do backup em disco (se necessário):

mkdir /backup2

chown bacula /backup2

3. Reinicar o daemon do Storage:

/etc/init.d/bacula-sd restart

03:55

1. No bacula-dir.conf:

Pool { # Pool de origem da cópia

Name = Diaria
Pool Type = Backup
Recycle = yes
AutoPrune = yes #
Volume Use Duration = 20 hours
Volume Retention = 6 days # one year
Label Format = "diaria-${NumVols}"
Maximum Volume Bytes = 25MB
Maximum Volumes = 100
Next Pool = Copia # Pool de destino cópia

Storage = File # Storage de origem da cópia

}

Pool { # Pool de destino da cópia

Name = Copia
Pool Type = Backup
Recycle = yes
AutoPrune = yes
Volume Use Duration = 20 hours
Volume Retention = 1 year # one year
Label Format = "copia-${NumVols}"
Maximum Volume Bytes = 25MB
Maximum Volumes = 100
Storage = File2
# Storage de destino da cópia: será também configurado no director no próximo vídeo

}

14:11

1. Amarrar o segundo storage de backup em disco criado na Aula 46 ao Director (inserir no bacula-dir.conf):

Storage {

Name = File2

Address = 192.168.0.120

SDPort = 9103

Password = "senha_storage

Device = FileStorage2

Media Type = File

}

2. Criar o Job de cópia:

Job {

Name = "Copia Pool Diaria"
JobDefs = "DefaultJob"
Type = Copy # ou Migrate
Pool = Diaria # Pool Origem
Storage = File # Storage Origem
Selection Type = PoolUncopiedJobs

3. É possível configurar / agendar o Job de cópia para diversos destinos diferentes através do Schedule. Exemplo:

Schedule {
Name = "agenda_gfs"
Run=Differential Pool=Diaria NextPool=Copia1 monday-thursday at 20:00
Run=Differential Pool=Diaria NextPool=Copia2 monday-thursday at 20:00

}

15:57

1. Adicionar ao Options dos FileSet:

BaseJob = pmugcs5
Accurate = mcs
Verify = pin5

2. Criar o Job de Base (comparação):

Job {
Name = "Backup Base Centos"
JobDefs = "DefaultJob"
Level = Base

Client = centos-fd
}

3. Defina os jobs que deverão ser comparados com a base de desduplicação e que os arquivos exatamente iguais não serão novamente copiados:

Job {
Name = "Backup Arquivos Bacula"
JobDefs = "DefaultJob"
Accurate = yes
Base = "Backup Arquivos Bacula", "Backup Base Centos"
}

05:34

1. Permitir o acesso de seu director Local ao Storage Remoto Internet (bacula-sd.conf do servidor remoto):

Director {
Name = bacula-dir
Password = "senha_dificil_storage" # aqui você pode determinar uma nova senha
}

2. Configurar o dispositivo de gravação remoto (ainda no mesmo arquivo):

Device {
Name = FileStorageRemoto
Media Type = File
Archive Device = /backupremoto
LabelMedia = yes; # lets Bacula label unlabeled media
Random Access = Yes;
AutomaticMount = yes; # when device opened, read it
RemovableMedia = no;
AlwaysOpen = no;
}

3. Reiniciar o Bacula SD remoto.

4. No bacula-dir.conf, amarrar o dispositivo de storage remoto:

Storage {
Name = StorageRemoto
Address = 172.245.35.120
SDPort = 9103
Password = "senha_dificil_storage"
Device = FileStorageRemoto
Media Type = File
}

Backup em 2º Storage Remoto em VPS (Internet): execução de backup
05:29
Section 12: Interfaces Gráficas
06:16

1. Instalação:

apt-get install bacula-console-qt

2. Arquivo de configuração (pode ter conteúdo igual ao bconsole.conf):

/etc/bacula/bat.conf

3. Incializar pela linha de comando:

bat

10:36

1. Download (CentOS):

wget http://downloads.sourceforge.net/project/webadmin/webmin/1.710/webmin-1.710-1.noarch.rpm

2. Instalação:

rpm -ivh webmin-1.710-1.noarch.rpm

3. Dependência servidor:

yum install perl-DBD-Pg icedtea-web

4. Dependência na máquina que irá acessar:

yum install icedtea-web

5. Acesso:

http://ip_do_servidor:10000

6. Credenciais:

*as mesmas do sistema operacional. Ex.: root / senha.

7. Procedimento completo (também para Debian): http://www.bacula.com.br/?p=873

Section 13: Principais Comandos do Bacula
03:51

1. cancel: cancela job em execução. Na versão 7.0 também é possível cancelar todos os jobs em execução, por exemplo:

cancel all

2. delete: deleta informações do banco de dados - volumes, pools ou registros de jobs. É necessário deletar Pools que já existiram no arquivo de configuração do Bacula mas não mais serão utilizadas. Ex:

delete pool=File

02:50

1. disable: retira do motor de agendamento do Bacula um job específico, mas apenas até o daemon do director ser reiniciado, feito um reload ou ativado novamente pelo comando oposto: o enable.

03:14

1. estimate: estima o total de arquivos de tamanho de um job de backup. Também é possível definir o nível do backup na simulação. Exemplo:

estimate level=differential

2. Outro uso para o estimate é listar os arquivos backupeados a partir de uma simulação, importante para testar se o FileSet está efetivamente selecionado os arquivos desejados para o backup:

estimate listing

06:19

1. lista diversos elementos do banco de dados. Exemplo da listagem de todos os jobs já executados:

list jobs

2. É possível também listar dos os arquivos de um job de backup realisado:

list files jobid=xx

3. Na versão 7.x do Bacula é possível também listar o log de um backup com o comando list!

list joblog jobid=xx

4. O list jobs trás códigos de terminação dos jobs que possuem o seguinte significado:

A Canceled by user
B Blocked
C Created, but not running
c Waiting for client resource
D Verify differences
d Waiting for maximum jobs
E Terminated in error
e Non-fatal error
f fatal error
F Waiting on File Daemon
j Waiting for job resource
M Waiting for mount
m Waiting for new media
p Waiting for higher priority jobs to finish
R Running
S Scan
s Waiting for storage resource
T Terminated normally
t Waiting for start time

10:20

Opção 2: espécie de "find". Digite um nome de arquivo que deseja pesquisar entre os jobs de backup.

Opção 3: liste manualmente os jobid que você deseja restaurar. Pode colocar um full e um diferencial, por exemplo, entre vírgulas: 15,17 - e o Bacula vai restaurar os dois com os arquivos mais atualizados de cada um. Você pode rever seus JobID com o comando list jobs, no bconsole.

Opção 5: restaure os backups mais recentes para um determinado servidor.

Opção 6: selecione os últimos backups de um ponto no tempo passado.

07:37

1. reload: aplica as alterações no bacula-dir.conf, sem interromper os jobs eventualmente em execução.

2. status: serve para visualizar informações sobre os jobs de backup em execução ou agendados, taxas de transferência, progresso etc. e mais importante ainda: testar a comunicação do director com os daemons de storage e de cliente.

07:07

1. show: exibe configurações do seu director. Exemplo:

*show fileset

FileSet: name=FileSet-Home

O Me

N

I /home

N

E /.cache

E /.pulse

N

FileSet: name=Full Set

O M

N

I /var

I /etc

N

E /var/lib/bacula

N

2. update: muito importante! Além de permitir modificar manualmente parâmetros de volumes, é indispensável para atualizá-los caso seja realizada alguma modificação nos atributos das Pools (exemplo: retenção do volume). Para que isso aconteça:

update

1. Parâmetros do Volume

14: All volumes from all pools

Se utliza robôs de fitas o comando update > 3: Slots from Autochanger é necessário toda vez que forem substituídas fitas no robô.

05:30

1. Exemplo de redirecionamento de saída para um arquivo:

*@output /tmp/lista.txt
*list jobs
*@output

2. Exemplo de redirecionamento do bash para o bconsole:
watch -n 1 "echo status client=bacula-fd |bconsole"
3. Drive de fitas manual - exemplo de script para montar fita antes do backup:

http://www.bacula.com.br/?p=48

4. Drive de fitas manual - exemplo de script para ejetar fita antes do backup:

http://www.bacula.com.br/?p=200

Section 14: Backup S3 Amazon como Storage Montado (Não Recomendado)
02:05

================================================================================

Esse método não é recomendado, pois a performance de se instalar um Storage Daemon do Bacula numa máquina remota via Internet (exemplo: Amazon E2) é muito maior do que a transferência pela montagem s3fs. Use com cautela.

================================================================================

1. Certificar-se de que não existem pacotes conflitantes:

yum remove fuse fuse-s3fs

2. Instalar dependências:

yum install gcc libstdc++-devel gcc-c++ curl-devel libxml2-devel openssl-devel mailcap

*Fonte desse manual e procedimentos Debian: http://tecadmin.net/mount-s3-bucket-centosrhel-ubuntu-using-s3fs/

02:20

1. Baixar, descompactar, configurar e compilar:

cd /usr/src/

wget http://downloads.sourceforge.net/project/fuse/fuse-2.X/2.9.3/fuse-2.9.3.tar.gz

tar xzf fuse-2.9.3.tar.gz

cd fuse-2.9.3

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

./configure --prefix=/usr/local

make && make install

vim /etc/ld.so.conf

2. Certificar da presença das seguintes linhas:

/usr/local/lib
include ld.so.conf.d/*.con

3. Carregar o módulo:

ldconfig

modprobe fuse

02:31

1. Baixar, descompactar, configurar e compilar (aqui utilize sempre a versão mais recente do s3fs):

cd /usr/src/

wget https://s3fs.googlecode.com/files/s3fs-1.77.tar.gz

tar xzf s3fs-1.77.tar.gz

cd s3fs-1.77

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

./configure --prefix=/usr/local

make && make install

03:42

echo AWS_ACCESS_KEY_ID:AWS_SECRET_ACCESS_KEY > ~/.passwd-s3fs

chmod 600 ~/.passwd-s3fs

03:18

1. Exemplo de dispositivo no bacula-sd.conf:

Device {
Name = FileStorageS3
Media Type = File
Archive Device = /mnt/s3fs
LabelMedia = yes; # lets Bacula label unlabeled media
Random Access = Yes;
AutomaticMount = yes; # when device opened, read it
RemovableMedia = no;
AlwaysOpen = no;
}

2. Exemplo de amarração no bacula-dir.conf

Storage {
Name = StorageAmazon
# Do not use "localhost" here
Address = 192.168.0.120 # N.B. Use a fully qualified name here
SDPort = 9103
Password = senha_storage
Device = FileStorageS3
Media Type = File

}

07:25

1. Configuração de diretórios:

mkdir /tmp/cache

mkdir /mnt/s3fs

chmod 777 /tmp/cache /s3mnt

2. Exemplo comando de montagem:

s3fs -o url=http://s3-us-west-2.amazonaws.com baculaheitor -o use_cache=/tmp/cache /mnt/s3fs

Onde baculaheitor é o nome do bucket, e a URL o endereço onde está hospedado seu bucket.

3. Para depurar a montagem acrescentar o -d e o -f ao comando.

4. Para desmontar:

fusermount -u /mnt/s3fs

Section 15: Backup de Aplicações Específicas: Bancos de Dados
10:22

Método 1: parar o banco de dados e incluir no backup a pasta que contém o banco de dados do postgres (/var), sem prejuízo de arquivos de configuração (/etc)

Método 2: dump. Exemplo:

pg_dump -U postgres bacula > bacula.sql

Certificar-se de incluir o dump no backup.

Método 3: hotbackup (ESTE MANUAL ESTÁ MAIS COMPLETO QUE O VÍDEO E QUE NO MEU LIVRO)

a) habilitar o modo arquivamento do Postgres e o Wal ahead log. Exemplo:

vi /etc/postgresql/9.3/main/postgresql.conf

b) descomente / acrescente os seguintes valores (NÃO USAR O ARCHIVE COMMAND test QUE USEI NO VÍDEO):

archive_mode = on

archive_command = 'cp -i %p /mnt/arquivo_psql/%f < /dev/null'

wal_level = archive

c) Crie a pasta destino do arquivamento e dê permissões para o usuário postgres:

mkdir /mnt/arquivo_psql

chown postgres /mnt/arquivo_psql

d) Exemplo de script antes do job de backup:

</p>

echo "SELECT pg_stop_backup();" | psql -U postgres

d) Enquanto em modo backup o Bacula deve fazer o backup de /var e /etc (postgres).

f) Exemplo de Script para sair do modo backup:

"SELECT pg_stop_backup();" | psql -U postgres

g) Referências:

http://www.postgresql.org/docs/9.1/static/continuous-archiving.html

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Heitor Medrado De Faria, Bacula Backup Software Book Author and Teacher

"Bacula: Open Source Backup Tool" and "Open Licenses & Fundamental Rights" books author (both in portuguese). Bacula Training instructor at Udemy. Law Graduated. IT Service Manager and Project Management extension degrees. Works on a brazilian governmental company called SERPRO and for Neocode Software (Canada). Bacula brazilian community founder. Has plenty of experience as a server / backup systems administrator (Windows, Linux, Netware, directory services) and as IT / Project manager. ITIL-F, TOEIC (Golden Certificate) and LPIC-III certificated professional.

Ready to start learning?
Take This Course