Deduplicação em Nível de Arquivos

Deduplicação em Nível de Arquivos

A principal razão para usar a deduplicação em nível de arquivos (Community e Enterprise) seria se você tivesse exatamente os mesmos arquivos entre várias máquinas diferentes. Este pode ser o caso se seus sistemas operacionais e aplicações são exatamente os mesmos e atualizados para a mesma versão. Também é apenas recomendável se você não pode usar outro tipo de deduplicação de blocos por qualquer motivo (por exemplo: Deduplicação Global, para fitas magnéticas ou armazenamento em nuvem do Bacula Enterprise).

Essa deduplicação funciona da seguinte maneira: você deve executar um backup marco (especial) que tenha um nível específico dentro do Bacula: Base Job (sempre uma espécie de Full), que deve ser executado também em uma Pool diferente. Todas as cópias de segurança do cliente do Bacula que estão configuradas para comparar o seu conteúdo com as do trabalho base não repetem a cópia dos mesmos arquivos que já foram copiados pelo trabalho de Base.

Se a deduplicação estiver configurada corretamente, você poderá ver no registro do log dos jobs a proporção de arquivos que não foram backupeados porque foram copiados no Base Job correspondente.

Em teoria, você poderia configurar um backup de Base de uma máquina e comparar apenas seus backups futuros com sua Base. O efeito prático disso é que, mesmo que você envie um trabalho de backup Full, o Bacula somente copiará os arquivos que foram alterados desde a última terminação do trabalho nível Base. Seria basicamente o mesmo comportamento de executar um backup Full e, em seguida, um diferencial/incremental. Portanto, não há uma vantagem clara de usar a deduplicação para uma única máquina específica.

Configurando a Deduplicação do Bacula:

a) Adicione no bacula-dir.conf as seguintes diretivas aos trabalhos que podem ter os arquivos similares ao Base Job e que por isso serão deduplicados:

Job {
  Name = BackupHeitor
  Base = BackupHeitor
  Accurate = yes 
  Schedule = base_schedule
  FileSet = debian_7_set
  ...
}

A diretiva Base diz ao Bacula o universo de tarefas de backup regulares e base que serão comparados e não repetir a cópia de arquivos semelhantes. No exemplo correto, o trabalho do BackupHeitor está se comparando com as ocorrências dele mesmo que serão executadas utilizando o level Base. A diretiva Accurate = yes também é obrigatória.

b) Não deixe o bacula-dir.conf ainda. Você também deve fazer algumas alterações em seu FileSet do backup regular original:

FileSet { 
  Name = debian_7_set
  Include {
    Options {
     	  BaseJob = pmugcs5 
     	  Accurate = mcs5 
     	  Verify = pin5
    }
    File = /etc
    File = /var
    File = /opt
  }
  ...

Cada uma dessas opções necessárias estabelece comportamentos diferentes para a forma como o Bacula procura e compara arquivos entre Jobs de backup Base e regulares. Eles são os mesmos suportados para o Verify Job (job de verificação) do Bacula.

c) Adicione ao menos uma nova Pool e Schedule para as tarefas de backup base. Considere usar um valor para VolumeRetention significativo que não seja menor do que os backups regulares; caso contrário, você poderia perder a capacidade de executar a restauração completa de alguns Jobs Full se o trabalho Base a que eles se referem já estiver reciclado.

Pool {
  Name = Base-Pool
  Pool Type = Backup
  Volume Use Duration = 18 hours
  Volume Retention = 364 days
  ...
}
Schedule {
  Name = base_schedule
  Run = Base Pool=Base-Pool 1st sunday at 12:00
}

d) Realize um Job no nível Base e, em seguida, a tarefa de backup regular (ex. Full), que já deverá ser deduplicado. Você pode notar que informações semelhantes aparecerão no resumo do log do Job:

...
Rate: 2425.4 KB/s 
Software Compression: 39.7 % 
Base files/Used files: 39336/39114 (99.44%) 
VSS: yes 
Encryption: no
...

Leave a Reply

File Level Deduplication

File Level Deduplication

The main reason to use file-level deduplication (Community and Enterprise) would be if you had exactly the same files between several different machines. This may be the case if your operating systems or applications are exactly the same and upgraded to the same version. It is also only recommended if you cannot use other type of block deduplication for some reason (for example, Bacula Enterprise Global Deduplication, including  magnetic tapes and cloud storage).

This deduplication works in the following way: you must perform a (special) milestone backup that has a specific level within the Bacula: Base Job (always a kind of Full), which must also be performed in a different Pool. All Bacula client backups that are configured to compare their contents with those of the base job do not repeat the copy of the same files that have already been copied by the Base job.

If deduplication is set up correctly, you can see in the job log the proportion of files that were not backed up because they were copied to the corresponding Base Job.

In theory, you could set up a Base backup of a machine and compare only your future backups with your Base. The practical effect of this is that even if you send a Full backup job, Bacula will only copy the files that have changed since the last termination of the Base level job. This would basically be the same behavior as performing a Full backup and then a differential/incremental. Therefore, there is no clear advantage of using deduplication for a single specific machine.

Configuring the Bacula Deduplication:

a) Add to bacula-dir.conf the following directives to the jobs that can have the files similar to the Base Job and that will be deduplicated:

Job {
  Name = BackupHeitor
  Base = BackupHeitor
  Accurate = yes 
  Schedule = base_schedule
  FileSet = debian_7_set
  ...
}

The Base directive tells Bacula the universe of regular and base backup tasks that will be compared and not repeat copying of similar files. In the correct example, the BackupHeitor work is comparing with the occurrences of itself that will be executed using the Base level. The Accurate = yes directive is also mandatory.

b) Don’t leave the bacula-dir.conf yet. You should also make some changes to your FileSet from the original regular backup:

FileSet { 
  Name = debian_7_set
  Include {
    Options {
     	  BaseJob = pmugcs5 
     	  Accurate = mcs5 
     	  Verify = pin5
    }
    File = /etc
    File = /var
    File = /opt
  }
  ...

Each of these necessary options establishes different behaviors for the way Bacula searches and compares files between Base and Regular Backup Jobs. They are the same as those supported for Bacula Verify Job.

c) Add at least one new Pool and Schedule for base backup tasks. Consider using a significant VolumeRetention value that is not less than regular backups; otherwise, you could lose the ability to perform a complete restoration of some Full Jobs if the Base Job they refer to is already recycled.

Pool {
  Name = Base-Pool
  Pool Type = Backup
  Volume Use Duration = 18 hours
  Volume Retention = 364 days
  ...
}
Schedule {
  Name = base_schedule
  Run = Base Pool=Base-Pool 1st sunday at 12:00
}

d) Perform a Base Job and later the regular backup Job (e.g. Full), that should be deduplicated. You may notice that similar information will appear in the Job log summary:

...
Rate: 2425.4 KB/s 
Software Compression: 39.7 % 
Base files/Used files: 39336/39114 (99.44%) 
VSS: yes 
Encryption: no
...

Leave a Reply

Deduplicación a Nivel de Archivos

Deduplicación a Nivel de Archivos

La razón principal para usar la deduplicación a nivel de archivos (Community y Enterprise) sería si tuviera exactamente los mismos archivos entre varias máquinas diferentes. Este puede ser el caso si sus sistemas operativos o aplicaiones son exactamente iguales y están actualizados a la misma versión. También se recomienda si no puede utilizar otro tipo de deduplicación de bloques por algún motivo (por ejemplo, Deduplicación Global de Bacula Enterpise, incluyendo cintas magnéticas o almacenamiento en nube).

Esta deduplicación funciona de la siguiente manera: debe realizar un backup histórico (especial) que tenga un nivel específico dentro de Bacula: Base Job (siempre una especie de Full), que también debe realizarse en un Pool diferente. Todas las copias de seguridad del cliente Bacula que están configuradas para comparar su contenido con las del trabajo base no repiten la copia de los mismos archivos que ya fueron copiados por el trabajo Base.

Si la deduplicación está configurada correctamente, puede ver en el registro del log de jobs la proporción de archivos que no se hice backup porque se copiaron en el Base Job correspondiente.

En teoría, podría configurar un backup de Base de una máquina y comparar solo sus backups futuros con su Base. El efecto práctico de esto es que, incluso si envía un trabajo de backup Full, Bacula solo copiará los archivos que se hayan modificado desde que finalizó el último trabajo de nivel Base. Sería básicamente el mismo comportamiento que realizar un backup Full y luego un diferencial/ incremental. Por lo tanto, no existe una clara ventaja de utilizar la deduplicación para una sola máquina específica.

      1. Configurando la Deduplicación de Bacula:

a) Agregue en bacula-dir.conf las siguientes directivas a los trabajos que pueden tener los archivos similares a Base Job y que, por lo tanto, se deduplicarán:

Job {
  Name = BackupHeitor
  Base = BackupHeitor
  Accurate = yes 
  Schedule = base_schedule
  FileSet = debian_7_set
  ...
}

La directiva Base le dice a Bacula el universo de tareas de backup regulares y base que se compararán y no repetirán la copia de archivos similares. En el ejemplo correcto, el trabajo BackupHeitor se compara con las ocurrencias de sí mismo que se ejecutarán utilizando el nivel Base. La directiva Accurate = yes también es obligatoria.

b) No abandones bacula-dir.conf todavía. También debe realizar algunos cambios en su FileSet del backup regular original:

FileSet { 
  Name = debian_7_set
  Include {
    Options {
     	  BaseJob = pmugcs5 
     	  Accurate = mcs5 
     	  Verify = pin5
    }
    File = /etc
    File = /var
    File = /opt
  }
  ...

Cada una de estas opciones necesarias establece diferentes comportamientos para la forma en que Bacula busca y compara archivos entre Jobs de backup Base y regulares. Son los mismos soportados para Verify Job (job de verificación) de Bacula.

c) Agregue al menos un nuevo Pool y Schedule para tareas de backup base. Considere usar un valor significativo de VolumeRetention que no sea menor que los backups regulares; de lo contrario, podría perder la capacidad de realizar una restauración completa de algunos Jobs Full si el trabajo Base al que hacen referencia ya está reciclado.

Pool {
  Name = Base-Pool
  Pool Type = Backup
  Volume Use Duration = 18 hours
  Volume Retention = 364 days
  ...
}
Schedule {
  Name = base_schedule
  Run = Base Pool=Base-Pool 1st sunday at 12:00
}

d) Realice un Job Base y mas tarde el Job de backup regular (por ejemplo, Full), que debe ser ahora deduplicado. Puede notar que aparecerá información similar en el resumen de log del Job.

...
Rate: 2425.4 KB/s 
Software Compression: 39.7 % 
Base files/Used files: 39336/39114 (99.44%) 
VSS: yes 
Encryption: no
...

Leave a Reply