Armazenando Backups na Nuvem Oracle – Storage/Archive Classic

Já vimos anteriormente como instalar e configurar o rclone e o rclone-changer para utilizar a nuvens como backend de armazenamento backup do Bacula, utilizando o exemplo do Amazon S3.

Agora, vamos verificar como a mesma instalação pode ser utilizada para gravação nos storages da Nuvem Oracle, que vem sendo bastante demandada devido aos preços bastante competivos em relação aos concorrentes.

Configuração do Rclone

Aqui você já deve ter instalado o rclone e rclone-changer conforme o artigo.

Como root, crie um arquivo de configuração do rclone – /root/.config/rclone/rclone.conf, informando o login e senha de acesso à console de nuvem da Oracle. A url do storage e de autenticação podem ser encontradas na console web da Nuvem Oracle, conforme a Figura 1 – Dashboard – Detalhes do Serviço. O token de autenticação (necessário), vamos atualizar depois através de um script.

[oracle]
type = swift
env_auth = false
user = hfaria@bacula.com.br
key = senha_acesso_oracle
storage_url = https://bacula.br.storage.oraclecloud.com/v1/Storage-bacula
auth = https://bacula.br.storage.oraclecloud.com/auth/v1.0
auth_token = AUTH_xxxx

Armazenando Backups na Nuvem Oracle - Storage/Archive Classic 1

Figura 1 – Detalhes da url de autenticação e do serviço de storage

Crie um script para estar sempre atualizando o token de autenticação na configuração anterior (por exemplo, /etc/ora_token.sh). Os tokens da Nuvem Oracle tem duração de 30 minutos e este tempo não pode ser renovado. O Bacula já deve estar instalado para que haja o diretório /etc/bacula/. Modifique o nome de seu storage na oracle, usuário, senha de acesso e url de autenticação de acordo com sua realidade.

#!/bin/bash
ORASTORAGE=Storage-bacula
USER=heitor@bacula.com.br
PASSWD=senha_acesso_oracle
AUTH_URL=https://bacula.br.storage.oraclecloud.com/auth/v1.0

TOKEN=$(curl -v -X GET -H "X-Storage-User: $ORASTORAGE:$USER" -H "X-Storage-Pass: $PASSWD" $AUTH_URL  2>&1 |grep X-Auth-Token |cut -f 3 -d " ") && sed -i "s/auth_token.*/auth_token = $TOKEN/g" /root/.config/rclone/rclone.conf 
cp /root/.config/rclone/rclone.conf /etc/bacula/rclone.conf
chown bacula /etc/bacula/rclone.con

Acrescente a seguinte linha em /etc/crontab, para tentar atualizar o token a cada minuto, evitando que a conexão com o Storage seja perdida.

*  *    * * *   root    /etc/ora_token.sh

Execute o script /etc/ora_token.sh. Execute alguns comandos do rclone para verificar se a conexão é feita com sucesso e crie um container de nome bacula.

# Lista containers/buckets
rclone -v lsd oracle:

# Cria um container
rclone mkdir oracle:bacula

Configuração do Bacula

Crie os diretórios e apontamento virtual para o storage, caso ainda não tenha feito:

mkdir /mnt/vtapes & touch /mnt/vtapes/tape & chown -R bacula /mnt/vtapes/
mkdir /mnt/bacula-spool & chown bacula /mnt/bacula-spool

Adicione um dispositivo semelhante ao arquivo Bacula Storage Daemon Configuration (bacula-sd.conf). No caso do Bacula Enterprise isso pode ser feito pela interface gráfica – Bweb. Se estiver utilizando o Armazenamento Archive que possui uma latência de algumas horas na restauração (similar ao Glacier), pode ser necessário aumentar ainda mais o Maximum Changer Wait (segundos).

Autochanger {
  Name = "rclone_ora"
  Device = Drive-1
  Changer Device = 'oracle:bacula' # configuração remote do rclone e bucket de gravação. Pode também especificar um diretório no bucket
  Changer Command = "/usr/sbin/rclone-changer %c %o %S %a" # não mude isso
}

Device {
  Name = Drive-1
  Media Type = ora
  Maximum Changer Wait = 18000 # pode ser necessário mudar de acordo com o tamanho dos volumes
  Archive Device = /mnt/vtapes/tape # precisa corresponder ao arquivo criado no passo anterior
  Autochanger = yes
  LabelMedia = yes;
  Random Access = Yes
  AutomaticMount = no
  RemovableMedia = no
  AlwaysOpen = no
  Spool Directory = /mnt/bacula-spool
  Maximum Spool Size = 524288000
}

Agora, amarre o novo dispositivo Storage Daemon ao seu Diretor e também crie um Pool para ele:

Autochanger {
  Name = OracleCloud
# Do not use "localhost" here
  Address = hfaria-asus-i5                # N.B. Use a fully qualified name here
  SDPort = 9103
  Password = "O0yFMuPy2jZM8L7eMg9TQccW4SvXdVl-n"
  Device = rclone_ora
  Media Type = ora
  Maximum Concurrent Jobs = 10        # run up to 10 jobs a the same time
  Autochanger = OracleCloud                 # point to ourself
}

Pool {
  Name = Offsite
  Pool Type = Backup
  Recycle = yes                       
  AutoPrune = yes                    
  Storage = OracleCloud
  Maximum Volume Bytes = 5G # recomendado
  AutoPrune = yes
  Volume Retention = 4 weeks
}

É importante ter em mente as considerações do desenvolvedor se desejar mudar o Maximum Volume Bytes:

Recomenda-se que você use muitos volumes pequenos em vez de grandes. Tente permanecer em um tamanho que seu arquivo médio se encaixa sem ficar muito pequeno. O raciocínio aqui está em uma situação de recuperação se você estiver trabalhando em volumes que você deseja minimizar a quantidade de dados não relacionados a determinado job de backup que você precisa copiar localmente para se recuperar. Se você possui uma fita virtual de 10G e precisa apenas de 500M, você ainda precisa esperar para que o 10G completo seja baixado antes que você consiga recuperar dados. Portanto, se seu tamanho de arquivo típico for em média 700M, os volumes de 1G provavelmente são uma boa idéia.[https://github.com/travisgroth/rclone-changer]

Há um limite de código macio de 8192 “slots” de fita no trocador de rclone, mas isso pode ser alterado manualmente manipulando o script. Se quiser mudar para 100 slots, por exemplo, execute o seguinte comando:

sed -i 's/slots = 8192/slots = 100/g' /usr/sbin/rclone-changer

Então, crie rótulos de Bacula de fita virtual. Use o bconsole para isso:

label barcodes storage=OracleCloud pool=Offsite

Se tiver problemas para rotular as fitas virtuais, verifique todos os comandos anteriores e concessões de permissão. Para reiniciar o VTL e tentar novamente, elimine o arquivo vtape e rclone-change state.

rm -f /mnt/vtapes/tape*
rm /var/lib/bacula/rclone-changer.state
touch /mnt/vtapes/tape & chown -R bacula /mnt/vtapes/

Pronto. Execute um Job de backup de teste na Pool Offsite e crie rotinas do Schedule para a nuvem, de acordo com suas necessidades. As fitas virtuais serão alteradas e carregadas na nuvem automagicamente, como nas Figuras 2 e 3.

Armazenando Backups na Nuvem Oracle - Storage/Archive Classic 2 Armazenando Backups na Nuvem Oracle - Storage/Archive Classic 3

Figuras 2 e 3: Backup com sucesso e lista de fitas virtuais (arquivos) na console web da Oracle

Resolução de Problemas do Rclone-changer

Estes são os locais onde o rclone e o rclone-changer salvam suas mensagens de log:

cat /tmp/rclone.log
cat /var/log/bacula/rclone-changer.log

 

Disponível em: pt-brPortuguês enEnglish (Inglês)

Deixe uma resposta

Fechar Menu