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.
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.
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.
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: PortuguêsEnglish (Inglês)Español (Espanhol)