Estratégia de Backup
Versão do documento: 2.0, 02/01/2025
Introdução
Objetivo
Este documento tem por objetivo documentar toda a estratégia de backup utilizada pela Basis, bem como estabelecer critérios de backup e evidenciar a realização da prática através de relatórios, apontando problemas e correções.
Escopo
Considera-se no escopo deste documento abordar todas as etapas e procedimentos que são necessários para a construção efetiva de um backup, tal como as configurações e breves explicações sobre o funcionamento de ferramentas envolvidas.
Ferramentas Utilizadas
Todo o processo de backup da Basis é realizado através da ferramenta Bacula, centralizada em uma máquina especializada, de nome Amsterdam. O Bacula é um framework para administração, restauração e verificação de backups e dados de máquinas seletas em uma rede. A configuração do Bacula é dividida em três partes:
Bacula Director
O Director (bacula-dir.conf) é a parte mais complexa do sistema, em que se figura toda a configuração dos trabalhos de backup (job), agendamentos, pools, seleção dos alvos de backup (FileSet), definição do tipo de armazenamento, etc. Em suma, configuram-se os clientes e arquivos que farão parte do backup, além de realizar a comunicação entre os clientes e dispositivos de armazenamento.
Bacula File Daemon
File Daemon (bacula-fd.conf). Todos os clientes que possuem esse daemon em execução estabelecem uma comunicação com o Director, que por sua vez gerencia todas as máquinas e redireciona os dados destas para o Storage.
Bacula Storage Daemon
Storage Daemon (bacula-sd.conf) é o arquivo de configuração do Bacula, em que se relacionam os dispositivos de armazenamento, como fitas e discos, para organizar os dados armazenados advindos do Director. Esse agente estabelece a comunicação com tais dispositivos, armazenando ou recuperando os arquivos específicos de cada cliente.
Backup
Há três tipos diferenciados de backup realizados na Basis:
- Backup Full/Total
-
backup completo dos dados. O próximo backup, seja ele Diferencial ou Incremental, usará este como referencial, portanto, é obrigatório para seguir com todos os backups seguintes. Na Basis, esse tipo de backup é realizado no primeiro domingo de cada mês. Para restaurar um backup Full, pode-se restaurar todo o job que realizou o backup, ou seja, restaurar todos os arquivos copiados, ou selecionar apenas os arquivos que se deseja restaurar a partir deste job.
- Backup Diferencial
-
somente os arquivos novos ou modificados desde o último backup completo (Full) são transmitidos. Neste modelo, o espaço ocupado com o armazenamento dos arquivos é maior em relação ao Incremental, mas o tempo para restauração dos dados é menor. Na Basis, fazemos esse tipo de backup todos os domingos, às 23h. Para restaurar um backup Diferencial, pode-se restaurar todo o job do backup Diferencial desejado, ou seja, apenas aqueles arquivos que foram copiados, tomando como referência o último backup Full. Se o desejado for restaurar outro diferencial que não seja o imediatamente anterior, é preciso inicialmente restaurar o último backup Full, e depois avançar até o diferencial desejado.
- Backup Incremental
-
somente os arquivos novos ou modificados desde a última execução do backup são transmitidos. Nesse modelo, o espaço ocupado com o armazenamento dos arquivos é menor, e o tempo para restauração dos dados é maior. Na Basis, esse tipo de backup é realizado todos os dias, às 23h. Para restaurar um Backup Incremental, pode-se restaurar todo o Job do backup desejado, ou seja, apenas os arquivos copiados, tomando como referência o último backup, seja ele Full, Diferencial ou Incremental. Caso o interesse seja restaurar todo o backup, desde outro referencial que não seja o imediatamente anterior, é preciso inicialmente restaurar o backup Diferencial antecedente ao desejado, e em seguida os incrementais seguintes até o que se deseja restaurar.
As máquinas internas que seguem as especificações de backup acima listadas são as seguintes:
- orlando
-
Máquina do SGO, inclui todas as configurações e anexos de ocorrências da Basis. Os seguintes diretórios são salvos:
/etc /var/lib /volumes
- brasilia
-
Servidores reverse proxy que servem de ponto de entrada externo para os principais sistemas utilizados pela Basis. Os seguintes diretórios são salvos:
/etc/apache2
- bridgetown
-
Servidores reverse proxy que servem de ponto de entrada externo para os principais sistemas desenvolvidos pela Basis. Os seguintes diretórios são salvos:
/etc/nginx
- praga
-
Máquina do NFS com drive SSD, onde são salvos os dados utilizados em ambientes de produção da Basis que exigem mais dinamismo de escrita e leitura, como os repositórios e configurações do Git (Gitlab) e SonarQube, entre outros. Os seguintes diretórios são salvos:
/etc /opt /export/rancher
- mykonos
-
Máquina do NFS com drive HD, onde são salvos os dados utilizados em ambientes de produção da Basis, como dados do site da Basis, Chat Basis (RocketChat), repositórios de imagens e bibliotecas (Nexus), entre outros. Os seguintes diretórios são salvos:
/mnt/nfs_kube/nexus_docker
- ottawa
-
Máquina do NFS com drive HD, onde são salvos os dados utilizados pelo Jenkins, como configurações de Jobs, plugins, bibliotecas baixadas do Nexus para construção, entre outros. Os seguintes diretórios são salvos:
/etc /opt /export/rancher
- panama
-
Máquina do Rancher de produção da Basis, onde fica armazenada toda a configuração da infraestrutura de produção rodando em Rancher 2. Os seguintes diretórios são salvos:
/etc /opt /srv/rancher2/volume
- amsterdam
-
Máquina do Bacula, inclui toda a configuração de backup para restauração dos clientes. O seguinte diretório é salvo:
/etc/bacula