Utilização de volumes por jobs

37 views
Skip to first unread message

Ronaldo Araujo

unread,
Jul 6, 2023, 8:40:28 AM7/6/23
to bacula-ba...@googlegroups.com
Bom dia à todos ...

Estou com o seguinte problema:
tenho 3 pools: semanal (pool_se) , segunda_quarta (pool_sq) e terca_quinta (pool_tq).

Na pool semanal, os volumes são renomeados conforme o job de forma correta: LabelFormat = "${Job}_se".

Nas pools segunda_quarta e terca_quinta se o job tem arquivos para serem feito o backup, o volume é nomeado e utilizado da forma correta. Se o job não tem arquivos para fazer o backup, o bacula vai reciclando o volume do job anterior (que não tem arquivo).

Ao todo eu tenho 28 jobs de backup, mas vou usar somente 4 como exemplo:

Lembrando que os jobs semanais (FULL) estão corretos.

job1: php-des executando às 18:55 -> diferencial
job2: dc02 executando às 19:00 -> diferencial
job3: dns01 executando às 19:05 -> diferencial
job4; mysql executando às 19:10 -> diferencial

Ás 18:55 inicia o job1. Ele cria o volume php-des_sq tem arquivo paa fazer o backup. Faz o backup e muda o status do volume para USED.

Às 19:00 inicia o job2. Ele cria o volume dc02_sq só que não tem arquivo para fazer backup. Muda o status do volume para USED.

Às 19:05 inicia o job3. Ao invés de criar o volume dns01_sq, ele recicla o volume dc02_sq. Novamente não tem  arquivo para fazer backup. Muda o status do volume para USED.

Às 19:10 inicia o job4. Ao invés de criar o volume mysql_sq, ele recicla o volume dc02_sq. Agora tem arquivo para fazer backup. Faz o backup e muda o status do volume para USED.

Às 19:10 inicia o job5 e ele cria o volume com o nome correto.

Eu imagino que seja algum parâmetro que esteja faltando, mas não consigo identificar.

Abaixo, as minhas configurações:

*****************************************************
BACULA-DIR
*****************************************************
Director {                           
  Name = server-bacula-dir
  DIRport = 9101               
  QueryFile = "/opt/bacula/scripts/query.sql"
  WorkingDirectory = "/opt/bacula/working"
  PidDirectory = "/opt/bacula/working"
  Maximum Concurrent Jobs = 3
  Password = "bacula@sp"
  Messages = Standard
}

*****************************************************
POOLS 
*****************************************************
Pool {
    Name = pool_se
    PoolType = "backup"
    VolumeRetention = 6 Day
    Maximum Volume Jobs = 1
    Recycle = Yes
    UseVolumeOnce = yes
    AutoPrune = yes
    LabelFormat = "${Job}_se"
}

Pool {
    Name = pool_sq
    PoolType = "backup"
    VolumeRetention = 1 Day
    Maximum Volume Jobs = 1
    Recycle = Yes
    UseVolumeOnce = yes
    AutoPrune = yes
    LabelFormat = "${Job}_sq"
}

Pool {
    Name = pool_tq
    PoolType = "backup"
    VolumeRetention = 1 Day
    Maximum Volume Jobs = 1
    Recycle = Yes
    UseVolumeOnce = yes
    AutoPrune = yes
    LabelFormat = "${Job}_tq"
}

*****************************************************************************************
DEVICES 
Eu tenho 1 conjunto de 3 devices configurado para cada cliente. 
Vou colocar somente 1 conjunto para não ficar muito grande a mensagem
*****************************************************************************************
Device {
  Name = php-des-dv_se;
  Media Type = File;
  Archive Device = /mnt/disk1;
  LabelMedia = yes;
  Random Access = Yes;
  AutomaticMount = yes;
  RemovableMedia = no;
  AlwaysOpen = no;
}

Device {
  Name = php-des-dv_sq
  Media Type = File
  Archive Device = /mnt/disk2
  LabelMedia = yes;
  Random Access = Yes;
  AutomaticMount = yes;
  RemovableMedia = no;
  AlwaysOpen = no;
}

Device {
  Name = php-des-dv_tq
  Media Type = File
  Archive Device = /mnt/disk3
  LabelMedia = yes;
  Random Access = Yes;
  AutomaticMount = yes;
  RemovableMedia = no;
  AlwaysOpen = no;
}
*****************************************************************************************
JOBs
Todos os jobs seguem o mesmo padrão
*****************************************************************************************
####### C L I E N T
Client {
    Name = server-php-des-fd;
    Address = 172.16.99.2;
    FdPort = 9102;
    Password = "password";
    File Retention = 13 days;
    Job Retention = 13 days;
    Catalog = catalog;
    AutoPrune = Yes;
    Maximum Concurrent Jobs = 1;
}
####### S T O R A G E
####### S E M A N A L #######
Storage {
  Name = php-des-st_se
  Address = server-bacula
  SDPort = 9103
  Password = "password";
  Device = php-des-dv_se
  Media Type = File
  Maximum Concurrent Jobs = 1
  AllowCompression = yes
  Heartbeat Interval = 60
}
####### S E G e Q U A #######
Storage {
  Name = php-des-st_sq
  Address = server-bacula
  SDPort = 9103
  Password = "password";
  Device =php-des-dv_sq
  Media Type = File
  Maximum Concurrent Jobs = 1
  AllowCompression = yes
  Heartbeat Interval = 60
}
####### T E R e Q U I #######
Storage {
  Name = php-des-st_tq
  Address = server-bacula
  SDPort = 9103
  Password = "password";  "
  Device = php-des-dv_tq
  Media Type = File
  Maximum Concurrent Jobs = 1
  AllowCompression = yes
  Heartbeat Interval = 60
}
###### J O B S
FileSet {
    Name = php-des-fs
    Enable VSS = Yes
    Include {
        Options {
            Compression=GZIP6
            IgnoreCase = yes
        }
    }
}
Job {
    Name = php-des-jb
    Client = server-php-des-fd
    Enabled = yes
    Maximum Concurrent Jobs = 10
    Prefer Mounted Volumes = no
    Type = backup
    Level = Full
    Priority = 10
    FileSet = php-des-fs
    Schedule = php-des-sc
    Storage = php-des-st_se
    Pool = pool_se
    Messages = job-messages
    Write Bootstrap = "/opt/bacula/working/dphp-desbsr"
}
Schedule {
    Name = "php-des-sc"
    Run = Level=Full            Pool=pool_se Storage=php-des-st_se fri     at 18:55
    Run = Level=Differential Pool=pool_sq Storage=php-des-st_sq mon wed at 18:55
    Run = Level=Differential Pool=pool_tq Storage=php-des-st_tq tue thu at 18:55
}

Obrigado

Ronaldo Araujo

Messias Alves

unread,
Jul 6, 2023, 6:55:11 PM7/6/23
to bacula-ba...@googlegroups.com
Prezado Ronaldo,

O seu problema está na opção de Pool  "UseVolumeOnce = yes".
Comente as linhas com essa opção ou altere para "UseVolumeOnce = no"

Adicionalmente, é recomendável definir tamanho para os volumes das Pool.

Att., 

[]'s
Messias Alves


--
Você recebeu essa mensagem porque está inscrito no grupo "Bacula Backup-Pt-Br" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para bacula-backup-p...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/bacula-backup-pt-br/CAKEujDjOqE9PYzF%2BSriYuTkE_JrjFW2MYepxYB118K-QTZnCbg%40mail.gmail.com.

Ronaldo Araujo

unread,
Jul 6, 2023, 7:25:12 PM7/6/23
to bacula-ba...@googlegroups.com
Boa noite Messias ...

Fiz o que você sugeriu (alterei para no o UseVolumeOnce) ... Reinicializei o bacula por completo (dir, sd, fd), mas mesmo assim o problema persiste.
Os volumes continuam sendo utilizados em outros jobs até que pelo menos um arquivo seja feito o backup.

Se conseguir visualizar alguma outra coisa, fico à disposição.

Obrigado



--

Abs

Ronaldo Araujo

Wellington Solution

unread,
Jul 11, 2023, 5:29:59 PM7/11/23
to Bacula Backup-Pt-Br
Olá Ronaldo espero que tenha resolvido o seu problemas.
Meu alerta é apenas em "Media Type"
Como está você terá problemas no restore.

Quando se tem mais 1 Storage/Device, cada um deve ter um Media Type Exclusive.
exemplo:
Storage/Device 1: Media Type = File

Storage Device 2: Media Type = Disco2
....etc

Se forem iguais, na hora do restore o bacula não saberá em qual está, já que ambas são iguais (mesmo Media Type).

Wellington

Ronaldo Araujo

unread,
Jul 12, 2023, 8:27:16 AM7/12/23
to bacula-ba...@googlegroups.com
Bom dia Wellington ...

Como um bom brasileiro, dei um "jeitinho" pra contornar o meu problema ... rsrsrs

Obrigado pela observação ... Vou fazer os ajustes necessários.

Abs



--

Abs

Ronaldo Araujo
Reply all
Reply to author
Forward
0 new messages