Instalação e Configuração do Bacula com OBS
V1.0 – Abril 2023
Versão | Autor | Descrição |
---|---|---|
V1.0 – 2023-04-29 | Wisley Paulo w0083850 | Versão inicial |
Introdução
Este documento apresenta os procedimentos para instalação de um servidor bacula utilizando instância ECS na HuaweiCloud e configuração do servidor para armazenamento de backups em um bucket no serviço OBS da Huawei cloud. Para esse cenário a configuração do bacula será feito utilizando a versão Community.
Provisionamento instancia para servidor bacula
Acesso o serviço computacional ECS e clique em “ Buy ECS”
Selecione os itens: Região, Zona de disponibilidade, tamanho da instância, imagem (Utilizamos nesse tutorial CentOs 7.9), selecione o tamanho do disco e clique em “Next: Configure Network”.
Selecione os itens de rede da instância: VPC, Subnet, Security Group e EIP (IP público).
Na security group é importante que tenha liberado a porta 22 para acesso e configuração da instância, a porta 9095 e 9096 caso queira utilizar plugin para interface gráfica Baculum.
Não é necessário que o servidor tenha IP Público (mas nesse tutorial foi ativado para facilitar o acesso do servidor para configuração).
Por fim clique no botão “Next: Configure Advanced Settings”
Defina um nome para instância, se deseja usar senha ou par de chave e clique em “Next: Cofirm”.
Confirme se todos os dados estão corretor e submeta a criação da instância clicando no botão “Submit;”
Utilize a ferramenta de terminal da sua escolha e acesse remotamente a instância.
Instalação do Bacula
Baixar e importar a chave GCP para uso dos pacotes assinados do Bacula Community
cd /tmp
wget https://www.bacula.org/downloads/Bacula-4096-Distribution-Verification-key.asc
rpm --import Bacula-4096-Distribution-Verification-key.asc
rm Bacula-4096-Distribution-Verification-key.asc
Configurar o repositório do Bacula
Crie o arquivo /etc/yum.repos.d/Bacula.repo e insira as linhas abaixo:
[Bacula-Community]
name=CentOS - Bacula - Community
baseurl=http://www.bacula.org/packages/@access-key@/rpms/@bacula-version@/el7/x86_64/
enabled=1
protect=0
gpgcheck=1
gpgkey=http://www.bacula.org/downloads/Bacula-4096-Distribution-Verification-key.asc
Instalar os pacotes de requisitos para o Bacula:
yum update
yum install postgresql-server -y
postgresql-setup initdb
systemctl enable postgresql.service
Instalar os pacotes do bacula:
yum install bacula-postgresql -y
Configuração do Banco de dados do Bacula:
systemctl start postgresql.service
su - postgres
/opt/bacula/scripts/create_postgresql_database
/opt/bacula/scripts/make_postgresql_tables
/opt/bacula/scripts/grant_postgresql_privileges
exit
systemctl start bacula-fd.service
systemctl start bacula-sd.service
systemctl start bacula-dir.service
gpasswd -a bacula tape
Instalação do plugin deduplicação com sistema ZFS:
yum install bacula-aligned -y
Teste do funcionamento do servidor Bacula:
/opt/bacula/bin/bacula-dir running as user bacula
/opt/bacula/bin/bacula-sd running as user bacula
/opt/bacula/bin/bacula-fd running as user root
sudo -u bacula /opt/bacula/bin/bconsole
run job=BackupCatalog
messages
status dir
exit
Configuração armazenamento backup OBS
Instalação do plugin para armazenamento em cloud
yum install bacula-cloud-storage -y
Criação do bucket que irá receber os dados do servidor do Bacula:
Acesso o serviço OBS na console da Huawei Cloud
Clique no botão “Create Bucket”
Selecione a região do bucket, o nome do bucket (lembre-se que deve ser único por região), selecione o tipo (deve ser utilizado o tipo Standard), Política do Bucket (recomendado “Private”), habilite a encriptação, selecione o projeto, adicione uma tag caso deseje, depois clique no botão “Create Now”
Crie uma política com permissão apenas para serviço de OBS usando serviço de IAM da Huawei Cloud (Qualquer dúvida consulte o tutorial de Criação de Usuário, Grupo e Política)
Crie uma usuário programático aplicando a política criada anteriormente e faça o download do AK/SK para utilizar na configuração no servidor bacula (Qualquer dúvida consulte o tutorial de Criação de Usuário, Grupo e Política)
Abra o arquivo bacula-sd.conf (/opt/bacula/etc/bacula-sd.conf) e acrescente as seguintes linhas(lembre-de de adaptar aos nomes e configurações que realizou):
Device {
Name = "huawei-dev1"
MediaType = "obs"
DeviceType = "Cloud"
ArchiveDevice = "/var/lib/bacula"
AutomaticMount = yes
LabelMedia = yes
MaximumFileSize = 20000000
Cloud = "huawei"
}
Cloud {
Name = "huawei"
Driver = "S3"
HostName = "obs.la-south-2.myhuaweicloud.com"
BucketName = "testbackupbacula"
AccessKey = "-----------"
SecretKey = "-----------"
TruncateCache = "AfterUpload"
Upload = "EachPart"
}
Abra o arquivo bacula-dir.conf (/opt/bacula/etc/bacula-dir.conf) e acrescente as seguintes linhas(lembre-de de adaptar aos nomes e configurações que realizou):
# Scratch pool definition
Pool {
Name = Scratch
Pool Type = Backup
}
Pool {
Name = "huaweipool"
Description = ""
PoolType = "Backup"
LabelFormat = "obs-"
LabelType = "Bacula"
MaximumVolumes = 100
MaximumVolumeBytes = 53687091200
VolumeRetention = 31536000
Storage = "huawei"
AutoPrune = yes
Recycle = yes
Catalog = "MyCatalog"
}
#
# Restricted console used by tray-monitor to get the status of the director
#
Console {
Name = bacula-mon
Password = "---------"
CommandACL = status, .status
}
Obs.: Está senha Password = “——–” você encontra dentro da configuração já existente no arquivo bacula-sd.conf
Crie a pasta /var/lib/bacula e a pasta /var/lib/bacula/obs-0002 caso ela não exista e de permissão de acesso para o usuário do bacula.
mkdir /var/lib/bacula
mkdir /var/lib/bacula/obs-0002
chmod 775 /var/lib/bacula
chmod 775 /var/lib/bacula/obs-002
chown bacula:bacula /var/lib/bacula
chown bacula:bacula /var/lib/bacula/obs-0002
Obs.: Utilizamos essa pasta que o próprio bacula requisita, porém está pasta é o local aonde o servidor vai armazenar os arquivos antes que são gerados antes de serem encaminhados para nuvem (depois eles são removidos), o recomendado nesses casos é que crie um disco dedicado para isso (para evitar que fique cheio e pare o servidor) e que tenha um volume que suporte suas rotinas de backup e que seja mais fácil ampliar o tamanho caso necessário.
Revise todas as configurações se estão condizentes com os valores adicionados para configuração da nuvem, pode ser necessário revisar itens já existentes no arquivo original para estar de acordo com os novos parâmetros de nuvem, depois disso reinicie o serviço do bacula e faça reload dentro do serviço bconsole.
Obs.: Em alguns casos pode ser melhor reiniciar o servidor para aplicar as alterações que realizou.
Teste a rotina de backup com o comando abaixo depois do comando digite m e de Enter para ver as mensagens até que aparece “You have no messages”.
sudo -u bacula /opt/bacula/bin/bconsole
run job=BackupCatalog level=Full yes pool=huaweipool
m
exit
Se o teste for bem sucedido irá aparecer tela como mostrado abaixo, quando isso ocorrer pode ir até o seu bucket na nuvem que conseguirá ver novos arquivos referente a rotina de backup que realizou. Caso receba mensagem de erro revise a configuração do arquivo sd e dir faça o restart do serviço e reload no bacula e teste novamente.