Driver Deduplicação Global Bacula Enterprise – Guia Rápido

Este Guia rápido fornece as etapas necessárias para implementar a Dededuplicação Global e de Storage com o Bacula Enterprise.

As organizações de TI estão constantemente sendo desafiadas a fornecer soluções de alta qualidade com um custo total de propriedade reduzido. Um desses desafios é a quantidade crescente de dados para backup, juntamente com o tempo limitado para executar tarefas de backup (janela de backup). O Bacula Enterprise oferece várias maneiras de enfrentar esses desafios, sendo um deles a Desduplicação Global Endpoint, que minimiza a transferência de rede e o tamanho do volume Bacula usando tecnologia de desduplicação.

A desduplicação pode reduzir significativamente o espaço em disco necessário para armazenar seus dados. Nos melhores casos, dependendo da deduplicabilidade dos dados de backup, isso pode reduzir o espaço em disco necessário em 99%.

O Plugin Bacula já compacta os dados após a deduplicação, portanto, você deve evitar o backup de dados compactados, o que geralmente rende uma baixa taxa de deduplicação.

A deduplicação pode reduzir significativamente a largura de banda de rede necessária, porque ambas as extremidades podem trocar referências em vez dos dados reais em si. Funciona quando o destino já tem uma cópia dos blocos originais. A desduplicação funciona para backups, mas também ao fazer uma restauração.

Manipular referências em vez dos dados pode acelerar a maior parte do processamento dentro do Daemon de Armazenamento. Por exemplo, os recursos do Bacula como Cópia/Migração e o Virtual Full podem ser até 1.000 vezes mais rápidos.

Recomendações

Para realizar uma desduplicação eficiente e rápida, o Daemon de armazenamento precisará de energia adicional da CPU (para computar códigos hash e compactação), além de RAM adicional (para consultas rápidas de código de hash).

Para um desempenho eficaz, o índice de desduplicação deve ser armazenado em SSDs, pois o índice terá muitos acessos aleatórios e muitas atualizações. Normalmente, são necessários 10 GB de 1 TB de backups.

Para armazenamento com deduplicação, prefira sistemas de arquivos que verifiquem blocos, como ZFS e usando a tecnologia RAID de hardware. Se você não for capaz de usar o ZFS, recomendamos usar o XFS. A razão para isso é que, se o seu disco desenvolver um bloco defeituoso, em vez de danificar um arquivo (que pode ser armazenado várias vezes), ele poderá danificar todos os arquivos (dúzia e centenas) que contiverem o mesmo bloco de dados.

A desduplicação não é implementada para dispositivos de fita. Funciona apenas com backups baseados em disco.

A Desduplicação Global é realizada pelo software Bacula. Se você quiser usar a desduplicação fornecida pelo hardware ou pelo sistema de arquivos, consulte o white paper do produto do Driver de Volumes Alinhados do bacula.

Instalação

O pacote de instalação do Dedup Driver está disponível para RHEL, CentOS, Debian, Ubuntu, Suse e para a maioria das outras distribuições do Bacula Enterprise Linux suportadas. Ele deve ser instalado na mesma máquina Bacula Storage Daemon. Por exemplo.:

rpm -ivh bacula-enterprise-dedup-plugin-8.10.1-1.el7.x86_64.rpm

Reinicie o bacula-sd e verifique se o driver está carregado com um comando de armazenamento de status.

Storage Daemon Configuration (bacula-sd.conf)

Conforme a Figura 1, as diretivas Dedup Directory e Dedup Index Directory devem ser configuradas para uso do Dedup Global. Pelo bconsole, vá ao Módulo de Configuração, botão Storage Daemon (meio da tela) e edite o Recurso Storage Daemon:

Driver Deduplicação Global Bacula Enterprise – Guia Rápido 1

Figura 1. Configuração do Recurso Storage Daemon do bacula-sd.conf pelo BWeb

Pelo texto, seu bacula-sd.conf deve ser editado para incluir as diretivas:

Storage {
  Name = my-sd
  Working Directory = /opt/bacula/working
  Pid Directory = /opt/bacula/working
  Subsys Directory = /opt/bacula/working
  Plugin Directory = /opt/bacula/plugins
  Dedup Directory = /mnt/bacula/dedup/containers
  Dedup Index Directory = /mnt/SSD/dedup/index
}

Dedup Directory = <caminho do diretório>. Os dados de backup dos contêineres serão armazenados no diretório Dedup. Esse diretório é comum para todos os dispositivos Dedup configurados em um Daemon de armazenamento e deve ter uma grande quantidade de espaço livre para hospedar dados desduplicados de backups. Aconselhamos você a usar o LVM em sistemas Linux para garantir que você possa estender o espaço neste diretório. Se você alterar a diretiva do Dedup Directory, seus arquivos deverão ser movidos para o novo diretório.

Dedup Index Directory = <diretório-caminho>. Os índices serão armazenados no diretório do índice Dedup. Os índices terão muitos acessos aleatórios de atualização e se beneficiarão de unidades rápidas, como unidades SSD.

Por padrão, o Bacula Storage Daemon é executado com o usuário do sistema operacional bacula. Certifique-se de que tenha permissão ao montar esses diretórios ou se forem discos locais:

chown bacula /mnt/bacula/dedup/containers
chown bacula /mnt/SSD/dedup/index

Ainda no bacula-sd.conf, também é necessário criar um novo Autochanger especial e Dispositivos que usarão o driver de deduplicação:

Autochanger {
  Name = "Dedup"
  ChangerCommand = "/dev/null"
  ChangerDevice = "/dev/null"
  Device = "DedupDisk1","DedupDisk2"
}

Device {
  Name = "DedupDisk1"
  Archive Device = /mnt/bacula/dedup/volumes
  Media Type = DedupVolume1
  Device Type = Dedup
  LabelMedia = yes
  Random Access = Yes
  AutomaticMount = yes
  RemovableMedia = no
  AlwaysOpen = no
  Maximum Concurrent Job = 5
}

Device {
  Name = "DedupDisk2"
  Archive Device = /mnt/bacula/dedup/volumes
  Media Type = DedupVolume1
  Device Type = Dedup
  LabelMedia = yes
  Random Access = Yes
  AutomaticMount = yes
  RemovableMedia = no
  AlwaysOpen = no
  Maximum Concurrent Job = 5
}

Um Autochanger e vários Dispositivos são sugeridos para evitar gargalos de tarefas de backup simultâneas e saturar a capacidade de gravação do Daemon de Armazenamento. Mais de 5 trabalhos simultâneos do Diretor irão para o próximo Dispositivo disponível (DedupDisk2).

O Archive Device contém a pasta no formato de volumes tradicionais do Bacula, por isso ainda é possível usar o bscan, o bextract e outras ferramentas de emergência do Bacula. Usando o Dedup, os volumes realmente não contêm os dados de backup, mas os contêineres escreveram no diretório Dedup.

O Midia Type deve ser um nome exclusivo para todos os Dispositivos e Daemons de Armazenamento anexados ao mesmo Diretor. Autochangers diferentes devem ter um Midia Types diferentes.

Reinicie o Storage Daemon para aplicar as alterações.

Configuração do Director (bacula-dir.conf)

Crie uma nova diretiva Autochanger para conectar o Bacula SD:

Storage {
  Name = Dedup
  Allow Compression = No
  Address = 192.168.0.85
  Password = xxx
  Device = Dedup
  Media Type = DedupVolume1
 ...
}

Permitir compactação deve ser não para desabilitar a compactação do software Bacula, pois o Mecanismo Global de Dedup já o executa após a desduplicação.

Os nomes de dispositivo e tipo de mídia devem corresponder aos definidos na configuração dos recursos Autochanger e Device do bacula-sd.conf.

Em cada um dos FileSets do Bacula, é possível decidir entre Global (cliente de backup) ou Deduplicação de armazenamento. A desduplicação global (ambos os lados) tem a vantagem de minimizar o tráfego da rede A opção de armazenamento só executa a deduplicação de dados na máquina do Daemon de Armazenamento.

Include {
  Options {
    Dedup = bothsides  # or storage
  }
  File = /etc
}

Configuração Opcional de File Daemons (bacula-fd.conf)

Os Daemons do Arquivo Bacula podem ser configurados para manter algumas informações de deduplicação para acelerar as restaurações, especialmente usando larguras de banda menores. Isso pode ser ativado com a diretiva Enable Client Rehydration (padrão = não).

FileDaemon {
  ...
  Enable Client Rehydration = yes
}

Novas Pools do Bacula Director

Depois que um novo Storage é anexado, é uma boa idéia criar novos Pools de backup associados, para não obter os Dedup Volumes misturados com outros. Por exemplo:

Pool {
  Name = Daily-Dedup
  Type = Backup
  Storage = Dedup
  ...
}

Configuração do Job de backup

Não há configuração especial nos Jobs de backup que usam a deduplicação. Basta agendar tarefas de backup regulares para os pools de backup recém-criados, usando os FileSets com a deduplicação bothsides ou storage ativa.

Teste e Status de Deduplicação

Aqui está um exemplo de saída da saída do comando dedup usage:

* dedup storage=Dedup usage
Dedupengine status:
  DDE: hash_count=1275 ref_count=1276 ref_size=78.09 MB
    ref_ratio=1.00 size_ratio=1.13 dde_errors=0
  Config: bnum=1179641 bmin=33554393 bmax=335544320 mlock_strategy=1
    mlocked=9MB mlock_max=0MB
  Containers: chunk_allocated=3469 chunk_used=1275
    disk_space_allocated=101.2 MB disk_space_used=68.87 MB
    containers_errors=0
  Vacuum: last_run="06-Nov-14 13:28" duration=1s ref_count=1276
    ref_size=78.09 MB vacuum_errors=0 orphan_addr=16
  Stats: read_chunk=4285 query_hash=7591 new_hash=3469 calc_hash=3470
    [1] filesize=40.88KB/499.6KB usage=36/484/524288   7% ***...............
    [2] filesize=40.13KB/589.0KB usage=18/286/524288   6% **5...............
    [3] filesize=25.47KB/655.2KB usage=7/212/524288    3% *4................

O size_ratio é o ganho geral de deduplicação para todos os trabalhos de backup. Quanto mais backups forem realizados e mantidos, essa proporção deverá melhorar.

O ref_size é o tamanho dos trabalhos de backup antes da deduplicação e o disk_space_used é o tamanho real dos contêineres de desduplicação.

É uma boa ideia habilitar a funcionalidade hole_punching, o que pode economizar mais espaço em disco a longo prazo, aproveitando os blocos de dados expirados no mecanismo de desduplicação. Por exemplo:

* dedup vacuum holepunching storage=<DeviceName>

Leia o white paper referenciado da  Bacula Systems para obter mais informações sobre a saída do uso de dedup e para mais opções de comando, como o processo de vacuum e scrub (verificação) do engine de deduplicação.

Conforme mostrado na Figura 2, também é possível obter informações similares pelo Bweb, a exemplo do consumo dos dados de bakup deduplicado em disco (Actual Disk Space Used), e o tamanho caso esses dados não fossem reduzidos pelo Dedup (Equivalente Standard File or Tape Storage Space). Versão do Engine de Dedup, tamanho dos Holes e muitas outras informações. Os uso dos containers e disposição dos blocos ocupados são exibidos graficamente no widget mais abaixo nessa tela.

Driver Deduplicação Global Bacula Enterprise – Guia Rápido 2

Figura 2. Menu Estatísticas, Uso Deduplicação Global EBacula pelo BWeb

Executando um Job de Backup

O log registro regular de Jobs do Bacula deve imprimir algumas informações sobre a deduplicação. Por exemplo:

...
  FD Bytes Written:       137,402,873,108 (137.4 GB)
  SD Bytes Written:       258,766,712 (258.7 MB)
  Rate:                   28330.5 KB/s
  Software Compression:   99.8% 531.0:1
...

FD Bytes Written são os dados de backup não deduplicados obtidos do Client.

O SD Bytes Written é a quantidade de dados duplicados gravados no Bacula Storage.

Se o formato de compactação FileSet estiver definido (por exemplo, LZO, mesmo que não seja usado por Bacula ao gravar no driver Dedup), o campo Software Compression deverá informar a taxa de desduplicação.

Referência

Global Endpoint Deduplication – Bacula Enterprise Edition. http://baculasystems.com

 

 

Disponível em: pt-brPortuguêsenEnglish (Inglês)esEspañol (Espanhol)

Deixe uma resposta