>_Backup com Bacula – Redundância do Storage – Cópia e Migração – 1.17

Entendendo um pouco da estrutura de backup do Bacula.

logo

Backup Storage – Copy (Cópia) ou Migration (Migração).

O Migration (Migração) – Tem como função mover os dados de um volume (storage1) para um novo volume (storage2). Em particular, refere-se a um job de trabalho. Como parte desse processo, os registros do catálogo de arquivos associados com o primeiro trabalho de backup são expurgados, ficando somente os registro no segundo Volume/Storage.

O processo de Copy (cópia) é idêntico ao recurso de migração, com a ressalva de que o trabalho que é copiado é deixado inalterado no segundo Volume/Storage. Criando se então duas cópias idênticas de um mesmo backup. No entanto, a cópia é tratada como uma cópia em vez de um trabalho de backup. Portanto, não está diretamente disponível para restauração da forma mais fácil. (bconsole).

storage_1 (1)

 

Ajustando o servidor ba-vm-bkp-02 – 192.168.0.251.

Instalando o bacula-sd (Storage) no segundo servidor.

# apt-get install bacula-sd -y

Configurando o arquivo bacula-sd.conf, ajustando os parâmetros Storage, Director e Device.

# cd /etc/bacula
# vim bacula-sd.conf
Storage {                             
     Name = ba-vm-bkp-02               # NOME DO STORAGE 2.
     SDPort = 9103                 
     WorkingDirectory = "/var/lib/bacula"
     Pid Directory = "/var/run/bacula"
     Maximum Concurrent Jobs = 20
     SDAddress = 192.168.0.251         # IP OU FQDN DO STORAGE 2. 
}

No parâmetro abaixo, será configurado o Director do servidor Bacula (ba-vm-bkp-01/192.168.0.218). Lembrando que a senha precisa ser exatamente igual ao arquivo bacula-dir.conf.

Director {
  Name = bacula-dir
  Password = "centos"
}

No parâmetro abaixo esta a configuração do Device, local onde serão armazenados os volumes físicos do backup.

Device {
     Name = FileStorage
     Media Type = File
     Archive Device = /backup   # Diretório de armazenamento.
     LabelMedia = yes;                   
     Random Access = Yes;
     AutomaticMount = yes;              
     RemovableMedia = no;
     AlwaysOpen = no;
}

Criando o diretório /backup e ajustando as permissões de acesso.

# mkdir /backup
# chown -R bacula.bacula /backup

Reiniciando o serviço do bacula-sd no segundo servidor (ba-vm-bkp-02).

# /etc/init.d/bacula-sd restart
Stopping Bacula Storage Daemon: bacula-sd
Starting Bacula Storage Daemon: bacula-sd

Ajustando o servidor ba-vm-bkp-01 – 192.168.0.218.

Ajustando o arquivo bacula-dir.conf. Este ajuste tem como objetivo adicionar o segundo Storage.

# cd /etc/bacula
# vim bacula-dir.conf

Adicionando o segundo Storage.

# Segundo Storage - bacula-sd
Storage {
        Name = File2
        # Do not use "localhost" here    
        Address = 192.168.0.251                # N.B. Use a fully qualified name here
        SDPort = 9103
        Password = "centos"
        Device = FileStorage
        Media Type = File
}

Validando o ajuste.

# /etc/init.d/bacula-dir restart
Stopping Bacula Director services:                         [  OK  ]
Starting Bacula Director services:                         [  OK  ]

Verificando o status do Storage 2.

# bconsole 
Connecting to Director localhost:9101
1000 OK: 1 bacula-dir Version: 7.0.5 (28 July 2014)
Enter a period to cancel a command.
*status
Status available for:
     1: Director
     2: Storage
     3: Client
     4: Scheduled
     5: All
Select daemon type for status (1-5): 2
The defined Storage resources are:
     1: File
     2: File2
Select Storage resource (1-2): 2

Novamente no bacula-dir.conf, será configurado os parâmetros da Pool de cópia e também alguns ajustes na Pool Diario.

# vim bacula-dir.conf

Ajustando a Pool que terá o volume sendo copiado para o segundo storage
Observação: No exemplo, vou utilizar a Pool Diario para ser copiada para o segundo Storage.

Pool {
        Name                    = Diario
        Pool Type               = Backup
        Recycle                 = yes
        AutoPrune               = yes
        Volume Use Duration     = 24 hours
        Volume Retention        = 1 days
        Maximum Volume Bytes    = 10G
        Maximum Volumes         = 4
        Label Format            ="diario-${NumVols}"
        # Informando a Pool Diario que teremos uma Poll copia chamada Diario-copia
        Next Pool               = Diario-copia
        # Informando em qual storage será armazenado
        Storage                 = File
}

Pool {
        Name                    = Diario-copia
        Pool Type               = Backup
        Recycle                 = yes
        AutoPrune               = yes
        Volume Use Duration     = 24 hours
        Volume Retention        = 1 days
        Maximum Volume Bytes    = 10G
        Maximum Volumes         = 4
        Label Format            ="diario-copia-${NumVols}"
        # Informando em qual storage será armazenado
        Storage                 = File2
}

Parâmetros importantes.

PoolUncopiedJobs – Seleciona os jobs que nunca foram copiados.

Selection Pattern – Para o OldestVolume e SmallestVolume, esta opção será ignorada. Para a opção Client, Volume e Job, esta “pattern” deve ser uma expressão regular válida para filtrar os nomes encontrados na pool. Diretivas para a pool de onde os volumes serão migrados.

Migration Time – Define um tempo após o qual os jobs realizados serão migrados.

Migration High Bytes – Numero de bytes após o qual os jobs excedentes serão migrados..

Migration Low Bytes – Mínimo de bytes para que a migração ocorra.

Next Pool (indispensável!) – Específica para qual pool os jobs serão migrados.

Storage – Especifica um storage específico para a migração (terá prioridade sobre todas as outras especificações de storage. Ex.: “schedule”, jobs, etc).

Criando o Job da cópia (“Diario-Copia – Segundo Storage”), para que tudo funcione perfeitamente.

Job {
        Name            = "Diario-Copia - Segundo Storage"
        JobDefs         = "DefaultJob"
        Type            = Copy                  # Se for migração Migrate
        Pool            = Diario                # Pool de origem
        Storage         = File                  # Storage de origem
        Selection Type  = PoolUncopiedJobs      # copiar tudo que não foi copiado para o segundo Storage da Pool Diario.
}

Reiniciando o bacula-dir.

# /etc/init.d/bacula-dir restart
Stopping Bacula Director services:                         [  OK  ]
Starting Bacula Director services:                         [  OK  ]

Validando todas as alterações.

# bconsole
*run
Automatically selected Catalog: MyCatalog
Using Catalog "MyCatalog"
A job name must be specified.
The defined Job resources are:
     1: BackupClient1
     2: Backup do cliente Debian
     3: Backup do cliente Windows
     4: Diario-Copia - Segundo Storage
     5: BackupCatalog
     6: RestoreFiles
Select Job resource (1-6): 4
Run Copy job
JobName:       Diario-Copia - Segundo Storage
Bootstrap:     *None*
Client:        bacula-fd
FileSet:       Full Set
Pool:          Diario (From Job resource)
NextPool:      Diario-copia (From Job Pool's NextPool resource)
Read Storage:  File (From Pool resource)
Write Storage: File2 (From Job Pool's NextPool resource)
JobId:         *None*
When:          2015-05-14 16:40:36
Catalog:       MyCatalog
Priority:      10
OK to run? (yes/mod/no):yes

Se tudo correu bem, com o comando list jobs será possível verificar se o backup foi feito realmente e se também foi copiado para o segundo Storage.

Parâmetros importantes:

c – Significa cópia.
T – Backup concluído sem erro.

|   266 | Diario-Copia - Segundo Storage | 2015-05-14 16:44:55 | c    | I     |        0 |             0 | T         |
|   268 | Diario-Copia - Segundo Storage | 2015-05-14 16:44:57 | c    | I     |        0 |             0 | T         |
|   270 | Diario-Copia - Segundo Storage | 2015-05-14 16:45:00 | c    | I     |        0 |             0 | T         |
|   272 | Diario-Copia - Segundo Storage | 2015-05-14 16:45:03 | c    | I     |        0 |             0 | T         |
|   274 | Diario-Copia - Segundo Storage | 2015-05-14 16:45:07 | c    | I     |        0 |             0 | T         |

Na dúvida, basta acessar o servidor do segundo Storage (ba-vm-bkp-02), e verificar se no diretório /backup contém os volumes de cópia.

root@ba-vm-bkp-02:~# cd /backup/
root@ba-vm-bkp-02:/backup# ls
diario-copia-0	diario-copia-1

Continua…
Fonte:
http://www.bacula.com.br
http://www.bacula.org

>_Backup com Bacula – Redundância do Storage – Cópia e Migração – 1.17
Tagged on:

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

%d blogueiros gostam disto: