Driver Nuvem/Cloud Storage S3 e CEPH Bacula Enterprise – Guia Rápido

Este guia rápido se destina a fornecer informações sobre os processos necessários para implementar backups armazenados de soluções do S3, CEPH e outros provedores de serviços de nuvem, usando o Cloud Driver do Bacula Community ou Enterprise.

O Amazon Web Services (AWS), Wasabi, Huawei Cloud e o BackBlaze são alguns dos provedores de armazenamento de objetos testados, mas a maioria das tecnologias S3 e CEPH são compatíveis com o Bacula Cloud Driver. Oracle Cloud, Azure, Google Cloud, Swift (etc.) possuem Drivers específicos exclusivos para o Bacula Enterprise.

O Driver fornece mais um tipo de dispositivo de armazenamento Bacula, permitindo que o administrador do Bacula gerencie discos locais, fitas magnéticas e, agora, vários backups armazenados em dispositivos em nuvem, usando qualquer arquitetura ou distribuição desejada.

O Bacula se trata apenas do software. O serviço de armazenamento de objetos deve ser contratado de seu provedor de serviços favorito.

Transmissão Cloud e Cache

A transmissão do Driver Cloud Bacula, é limitada apenas pelos recursos de leitura de disco de clientes de backup, redes locais e para a nuvem.

Para evitar gargalos de conexão à Internet, o Driver suporta técnicas avançadas de cache local e de divisão de dados. O cache pode ser mantido para restaurações locais mais rápidas ou automaticamente descartado (truncado), de acordo com a vontade do Administrador Bacula e com o armazenamento em disco local disponível.

Essas são as diretivas possíveis do novo recurso Cloud, bacula-sd.conf:

TruncateCache = AfterUpload # Cada parte do volume do cache será removida logo após o upload. Observe, se esta opção for especificada, todas as restaurações exigirão um download da nuvem. 
# TruncateCache = AtEndOfJob # No final do trabalho, cada parte que foi enviada com sucesso para a nuvem será removida (truncada). Observe, se esta opção for especificada, todas as restaurações exigirão um download da nuvem. 
# TruncateCache = Não # Neste caso, o administrador deve especificar ou truncar manualmente ou por um administrador de script de comando do console (por exemplo: cloud truncate). 

Upload = EachPart  # faz o upload quando uma parte (subdivisão do volume) atinge o tamanho máximo, mesmo que durante um Job de backup. 
# Upload = AfterJob # faça o upload das partes do volume somente depois que o Job for concluído. 
# Upload= No # não faz upload automaticamente. O administrador deve especificar fazer ou truncar manualmente ou por um console de comando do script admin (ex .: cloud upload allpools allfrompool storage=<nome_storage>).

Também é possível limitar a largura de banda de transmissão.

Instalação

O Driver é instalado na mesma máquina que hospeda o Bacula Storage Daemon. Para instalar ambos, adicione um novo repositório à sua distribuição RedHat / CentOS, substituindo @customer-string@ pelo seu código de cliente exclusivo e @version@ pela versão desejada do Bacula Enterprise:

cat /etc/yum.repos.d/bacula.repo

[Bacula]
name=Bacula Enterprise Edition
baseurl=https://www.baculasystems.com/dl/@customer-string@/rpms/bin/@version@/rhel7-64/
enabled=1
protect=0
gpgcheck=0

[BEECloudPlugin]
name=BEE Cloud Plugin
baseurl=https://www.baculasystems.com/dl/@customer-string@/rpms/cloud/@version@/rhel7-64/
enabled=1
protect=0
gpgcheck=0

O Cloud Driver também está disponível para o Debian. Por exemplo:

cat /etc/apt/sources.list.d/bacula.list

#Bacula Enterprise
deb https://www.baculasystems.com/dl/@customer-string@/debs/bin/@version@/jessie-64/ jessie main
deb https://www.baculasystems.com/dl/@customer-string@/debs/cloud/@version@/jessie-64/ jessie cloud

Use o gerenciador de pacotes para atualizar e instalar o driver. Por exemplo:

yum install bacula-enterprise-cloud-storage

# or

apt-get update && apt-get install bacula-enterprise-cloud-storage

Configuração

Conforme mostrado na Figura 1, crie uma nova configuração de conexão na nuvem. É possível usar o bweb para executar isso.

Driver Nuvem/Cloud Storage S3 e CEPH Bacula Enterprise – Guia Rápido 1

Figura 1. Nova Configuração de Conexão Cloud do Storage Daemon

Exemplos de configurações texto dos Provedores de serviços de nuvem AWS e CEPH alternativos são listados da seguinte maneira:

Cloud {
  Name = AWS
  Driver = "S3"
  HostName = "s3.amazonaws.com"
  BucketName = "seu_bucket"
  AccessKey = "xyz"
  SecretKey = "abc"
  Protocol = HTTPS
  UriStyle = VirtualHost
  Truncate Cache = AfterUpload
  Upload = EachPart
  Region = "us-east-1" 
  MaximumConcurrentUploads=20
  MaximumConcurrentDownloads=20
  # MaximumUploadBandwidth = 5MB/s # Opcional
}
Cloud {
  Name = CEPH_S3
  Driver = "S3"
  HostName = ceph.mydomain.lan
  BucketName = "CEPHBucket"
  AccessKey = "xxxXXXxxxx"
  SecretKey = "xxheeg7iTe0Gaexee7aedie4aWohfuewohxx0"
  Protocol = HTTPS
  Upload = EachPart
  Truncate Cache = AfterUpload
  UriStyle = Path  # Must be set for CEPH
  MaximumConcurrentUploads=20
  MaximumConcurrentDownloads=20
}

Após a configuração da nuvem, conforme exibido na Figura 2, adicione um dispositivo Bacula Storage Daemon que gravará no bucket configurado. Ele deve ter o Cloud DeviceType e usar a mesma configuração de nuvem criada anteriormente. ArchiveDevice é o caminho do cache de disco local, geralmente com um grande espaço disponível. O MediaType deve ser um nome exclusivo em relação a todos os outros Dispositivos Bacula existentes e o MaximumPartSize é o tamanho dos dados divididos que o Bacula transferirá para o bucket.

Driver Nuvem/Cloud Storage S3 e CEPH Bacula Enterprise – Guia Rápido 2

Figura 2. Novo Device do Storage Daemon

Segue um exemplo de Device único texto (lembrando que o plugin Cloud é compatível com Autochanger, que são grupos de Devices do Bacula):

Device {
  Name = MyCloudAWS
  Device Type = Cloud
  Cloud = AWS
  Archive Device = /mnt/backups # volumes do cache local
  Maximum Part Size = 500 MB # importante: é a granularidade do upload do objeto
  Media Type = Cloud01
  LabelMedia = yes
  Random Access = Yes;
  AutomaticMount = yes
  RemovableMedia = no
  AlwaysOpen = no
}

Finalmente, conforme exibido na Figura 3, é hora de amarrar o novo Device do Storage Daemon ao seu Director do Bacula. Crie uma nova configuração de Storage para o Director. O endereço e a senha geralmente são os mesmos já usados pelos Devices já criados para o mesmo Storage Daemon. O DeviceName e o MediaType devem corresponder aos valores definidos na configuração do dispositivo recentemente criado.

Driver Nuvem/Cloud Storage S3 e CEPH Bacula Enterprise – Guia Rápido 3

Figura 3. Nova Configuração de Storage no Director

É aconselhável também criar um ou mais novas Pools para hospedar os backups na nuvem, usando o armazenamento recém-criado. Um novo valor de tempo da diretiva CacheRetention Pool (x dias, meses etc.) pode ser especificado, para determinar a expiração os volumes armazenados em cache.

Modifique Jobs e Horários do Bacula para usar os novos Cloud Pools, a seu critério.

Aplicar alterações e executar um trabalho de backup de teste.

Teste e Solução de Problemas

O S3 CLI pode ser usado para testar o AWS e outras conexões do Cloud Storage. É possível instalá-lo usando pip:

yum -y install python-pip
pip install awscli

O seguinte comando pode ser usado para configurar a conexão de bucket:

aws configure

A criação de bucket e uma lista podem ser executadas da seguinte forma (por exemplo):

aws s3api --endpoint-url='https://s3.amazonaws.com' 
create-bucket --bucket bsyssdsync
aws s3 ls

Mais comandos, detalhes e informações gerais sobre o Bacula Enterprise Cloud Driver podem ser encontrados no whitepaper de referência.

Referência

Bacula Cloud Backup – Bacula Enterprise Edition. http://baculasystems.com

 

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

Deixe uma resposta