Sistema centralizado de backup utilizando Bacula
Clever de Oliveira Júnior¹, Paulo E. M. Almeida¹
¹Departamento de Recursos em Informática
Centro Federal de Educação Tecnológica de Minas Gerais
{clever, pema}@dri.cefetmg.br
Resumo. Este trabalho apresenta um modelo centralizado, porém modular, de
backup para atender a estrutura de servidores institucionais utilizando Software
Livre. À medida que uma organização cresce, sua estrutura física, o número de
sistemas, servidores e sua capacidade de armazenamento também tendem a
crescer, o que agrava problemas relacionados ao arquivamento de informações
tais como perda e corrupção de dados. A partir desse cenário, houve a
necessidade de armazenar informações de maneira mais segura, possibilitando a
restauração de qualquer dado durante certo período. Para solução deste
problema foi adotado o Bacula, que se mostrou uma solução em Software Livre
bastante estável, robusta e segura.
1. Introdução
A partir das mudanças de comportamento das organizações, impulsionadas pela evolução
das tecnologias de comunicação e informação, observa-se um crescimento na quantidade e
diversidade de informações, muitas delas de grande importância para as instituições.
Considerando as informações como um patrimônio valioso para a organização e sendo de
responsabilidade da área de Tecnologia da Informação o seu armazenamento de forma segura e
íntegra, surge a necessidade de criar uma estrutura robusta e segura que propicie a recuperação de
dados, por certo período, em caso de perda ou corrupção.
A Associação Brasileira de Normas Técnicas, ABNT, em sua norma NBR ISO/IEC
17799:2005 recomenda como medida de controle, no item 15.1.3 Proteção de registros
organizacionais, que registros importantes sejam protegidos contra perda, destruição e falsificação,
de acordo com os requisitos regulamentares, estatutários, contratuais e do negócio [1].
Com relação a instituições de ensino, informações como registros escolares, acervo
bibliográfico, dados administrativos, são de vital importância e tendem a crescer de forma contínua.
Geralmente, essas informações são armazenadas em sistemas de arquivos e banco de dados nos
servidores da instituição, que estão vulneráveis a problemas causados por diversos fatores como
falhas de rede, no hardware e manipulação incorreta ou acidental pelos usuários. Diante dessas
ameaças, este trabalho apresenta uma solução de backup centralizada, segura e robusta, utilizando
Software Livre, que tem o objetivo de minimizar o risco da concretização dessas ameaças.
Este artigo está organizado como se segue: na seção 2 serão descritas informações relativas a
estrutura da solução de backup e na seção 3 as adaptações necessárias para o seu funcionamento
com o carregador automático de fita utilizado pelo CEFET-MG. As questões sobre a política de
backup são tratadas na seção 4, os detalhes sobre o gerenciamento na seção 5 e considerações sobre
a solução são discutidas na seção 6.
2. Estrutura
O sistema de backup desejável para a segurança de informações institucionais é aquele que
garanta, de maneira centralizada, a cópia e a restauração de qualquer dado armazenado nos
servidores da instituição, por um período de tempo suficiente, arquivado em mídia adequada com
rodízio automático.
Entende-se por rodízio, a troca da mídia de armazenamento por outra de acordo com a
política de backup ou por não ter espaço disponível. Em dispositivos de fita com um drive1, apenas
uma fita é acessada por vez, sendo recomendado um recurso de rodízio, responsável por inserir no
drive uma determinada fita e acomodar as demais em um espaço reservado (slot).
Outro recurso desejável para o sistema de backup é a utilização de agentes distribuídos pelos
servidores que suportem diversas arquiteturas e sistemas operacionais. A principal vantagem desse
tipo de recurso é, além da portabilidade, a facilidade de administração dos trabalhos de backup e
restore (restauração), que são centralizados em um servidor específico.
A solução adotada pelo CEFET-MG e relatada nesse trabalho utiliza o Bacula [2], Software
Livre que implementa um sistema centralizado de backup a partir de módulos distribuídos,
utilizando uma estrutura cliente/servidor para comunicação em rede [3]. Ele suporta diversos tipos
de mídia de armazenamento, como CD, DVD, fita e arquivo, assim como dispositivos específicos
como Tape Autoloader2.
Os módulos utilizados pelo Bacula são:
• Bacula Director: responsável por agendar e supervisionar todas as operações do sistema, como
backup, restore, verificação e armazenamento dos dados. É um serviço que executa em
segundo plano;
• Bacula Console: aplicativo que permite o administrador ou usuário comunicar com o Bacula
Director e realizar as diversas operações disponíveis;
• Bacula File: também conhecido como client, é instalado nas máquinas que devem ser incluídas
nas rotinas de backup. Responsável por prover ao Director informações sobre os dados e
atributos dos arquivos a serem copiados ou restaurados. Também é executado em segundo
plano;
• Bacula Storage: serviço responsável pelas operações de leitura e gravação dos dados e
atributos dos arquivos do backup a serem copiados ou restaurados a partir das mídias de
armazenamento. É executado em segundo plano e deve ser instalado na máquina em que os
dados serão armazenados ou que possua um dispositivo de armazenamento conectado
diretamente a ela.
Os backups são disparados pelo Director, que solicita ao File para relacionar os dados e
atributos dos arquivos e os enviar para o Storage, que os armazenarão na mídia de armazenamento.
O processo de restore é inverso, ou seja, o Director solicita ao Storage o envio dos dados e atributos
dos arquivos para o File, que os armazena no sistema de arquivos da máquina cliente especificada.
Toda a conexão entre módulos é protegida por senha. A Figura 1 exibe a interação entre os módulos
do Bacula.
Base
Relacional
(Catálogo)
Bacula
Director
Bacula
Console
(Estação)
Mídia de
Armazenamento
Bacula
Storage
Bacula
File
Figura 1: Interação entre os módulos do Bacula
1
2
Unidade de leitura e gravação magnética
Carregador automático de fita
As informações sobre os processos que envolvem todo o sistema, como clientes, trabalhos,
mídias, etc, são referenciadas em um banco de dados relacional, definido como catálogo. Nele
também são armazenados todas as informações sobre os arquivos copiados e as mídias que os
armazenam, por isso é um serviço de enorme valor para o sucesso da estrutura.
As máquinas cadastradas no sistema para realização do backup são definidas como cliente
(client). Cada configuração de cliente possui principalmente, um nome, um catálogo, uma senha
para conexão com o agente, e um período de retenção de arquivo (file) e tarefa (job). Entende-se por
período de retenção, o tempo em que o sistema irá manter certas informações no catálogo.
Para a realização do backup, uma tarefa é configurada para cada cliente. Nela são definidos
vários parâmetros importantes como cliente, conjunto de arquivos (file set), dispositivo de
armazenamento (storage), agendamento (schedule), prioridade (priority) e etc. Os conjuntos de
arquivos são definições que indicam quais os caminhos no cliente que devem ser cobertos pelo
backup, suportando uso de expressões regulares, compactação por hardware ou software e criação
de hash MD5 ou SHA1 para os arquivos copiados. Os agendamentos são regras de periodicidade
para a execução dos trabalhos, geralmente ligados diretamente à política de backup.
As mídias de armazenamento (media) fazem parte de grupos de mídia (pools), que
geralmente também são relacionados a uma política de backup. Esses grupos possuem
configurações como nome, definição se ele é reciclável (recycle), definição se ele pode ser apagado
após expiração dos dados ou trabalhos, parâmetros para período de retenção dos volumes, entre
outros. No caso de fitas, elas são rotuladas (label) logicamente por uma gravação específica no
início do volume e, a partir de um autoloader, também suportam etiquetas de código de barras, o
que otimiza sua localização para o processo de rodízio.
A estrutura do Bacula utiliza três tipos básicos de backup: completo (full), diferencial
(differential) e incremental (incremental). O primeiro copia todos os arquivos cobertos pelo
conjunto de arquivos e os armazena na mídia. O segundo, realiza a cópia de toda a diferença entre a
execução do último backup completo até sua execução. O último compara e copia o que foi
adicionado do último incremental ou diferencial executado até a sua execução. Caso no momento
da execução dos backups diferenciais ou incrementais o sistema não localize no catálogo um
backup completo, a estrutura força a execução de um imediatamente.
Para a restauração dos dados mais recentes do backup é necessário extrair os arquivos do
último backup completo, mais o último diferencial e a soma de todos os incrementais do último
diferencial até o momento.
Os parâmetros de configuração dos módulos são definidos em arquivos texto, orientados por
sessões. O Projeto Bacula disponibiliza em seu sítio oficial uma documentação ampla e bem
detalhada sobre o software.
3. Adaptações
O primeiro desafio para o funcionamento correto do sistema de backup institucional
utilizando Bacula foi compatibilizar o shell script mtx-changer, que é uma interface com o
dispositivo de carregamento automático de fitas, com o autoloader Dell PowerVault 124T
adquirido pelo CEFET-MG. Esse script utiliza o aplicativo mtx3 [4] para comunicar com o
dispositivo e acessar o status atual de vários itens como o slot em que cada fita se encontra, seu
código de barras e qual fita está carregada no drive.
A adaptação executada foi ajustar a expressão regular do filtro grep e awk utilizado pelo
script para adquirir os valores dos status fornecidos pelo aplicativo mtx e retorná-los corretamente
para o Bacula. Os comandos do script que necessitaram de ajuste foram o list e o loaded. Como
exemplo, a Figura 2 exibe a saída correta do comando list, sendo o par código:valor
respectivamente o slot do dispositivo de carregamento automático e o rótulo da fita. Para o
comando loaded, somente o número do slot que está carregado no drive deve ser exibido.
3
Ferramentas de mudança de mídia
1:000011L2
2:000014L2
3:000023L2
4:000026L2
5:000015L2
6:000016L2
8:000018L2
7:000020L2
Figura 2: Retorno do comando list do script
4. Política de backup
Políticas de backup podem ser definidas como regras para execução dos trabalhos de
backup, em relação a periodicidade e o tipo de cópia. A política para um sistema de backup deve ser
bem planejada para não deixar períodos de informação sem cobertura e gerar um falsa expectativa
que tudo está sob controle.
No caso do CEFET-MG, que possui um carregador automático de fitas com capacidade
máxima para oito fitas e dezesseis fitas LTO-24, a política de backup adotada é subdividida em dois
grandes grupos: Ciclo Semanal 1 e Ciclo Semanal 2. Cada ciclo corresponde a um grupo de
servidores, o que permite o balanceamento de trabalhos e evita que o tempo total ultrapasse a noite
e invada o dia seguinte. A Tabela 1 ilustra o agendamento definido para a política adotada.
Tabela 1: Agendamento dos trabalhos de backup
Tipo de Backup
Ciclo Semanal 1
Ciclo Semanal 2
Completo
1ª segunda-feira do mês às 22:30
1ª terça-feira do mês às 22:30
Diferencial
2ª à 5ª segundas-feiras do mês às 21:00
2ª à 5ª terças-feiras do mês às 21:00
Incremental
Terça-feira à domingo às 21:00
Quarta-feira à segunda-feira às 21:00
As mídias são agrupadas em três pools denominados Full-Pool, Diff-Pool e Inc-Pool,
respectivamente responsáveis por armazenar trabalhos de backup completo com retenção de
sessenta dias, diferencial com retenção de quarenta dias e incremental com retenção de quatorze
dias. São distribuídas oito fitas no Full-Pool, quatro no Diff-Pool e quatro no Inc-Pool, totalizando
uma cobertura de até sessenta dias de backup.
No momento em que aumenta-se o número de fitas simultâneas no carregador automático de
fitas, ajustes podem ser realizados na política para que um período maior possa ser coberto, sem
prejuízo na gerencia das mídias.
Os backups diferencial e incremental tem a vantagem de demandarem menos tempo de
processamento e menos fluxo de dados, entretanto, dependem dos backups completos, o que exige
um período de retenção apropriado para os completos, a fim de evitar que eles sejam reciclados
antes de um diferencial ou incremental relacionado.
5. Gerenciamento
O gerenciamento do sistema de backup é realizado a partir do console, utilizando o
aplicativo bconsole. Ele possui uma interface de texto simples, bastante intuitiva, organizada em
comandos e menus, a partir dos quais todas as operações necessárias à administração podem ser
executadas [5].
4
LTO-2 (Linear Tape-Open) - versão 2, é uma tecnologia de fita magnética que permite armazenar 200 GB sem
compactação e 400 GB com compactação.
Para melhorar o gerenciamento dos trabalhos de backup, o director foi configurado para
enviar um relatório por e-mail, que relata várias informações como o sucesso, tipo e duração do
backup. Mensagens solicitando a intervenção humana para troca de fita quando não há uma
disponível para gravação e de erros também são disparadas.
Um funcionário foi definido como responsável por acompanhar os relatórios do sistema,
verificar a manutenção das fitas e limpeza do drive, bem como a retirada das fitas que devem ser
armazená-las fisicamente em um cofre fora da área dos servidores. Essas fitas são volumes de
trabalhos que possuem um período de retenção que ainda não expirou.
6. Considerações finais
A estrutura de backup do Bacula está em produção no CEFET-MG desde 2008 e tem
demonstrado estabilidade, robustez e segurança. O Departamento de Recursos em Informática,
responsável pelos servidores da instituição, utiliza o Bacula para gerenciar o backup de, atualmente,
vinte e cinco servidores, entre Windows, Unix e GNU/Linux, totalizando mais de seis tera bytes de
informação em fitas.
Várias operações de backup e restore foram realizadas até o momento, sendo bem sucedidas,
o que reforça a confiança apresentada pelo software e sua qualidade. Outras unidades e
departamentos da instituição estão implantando esse sistema para gerenciar o backup dos servidores
locais, aumentando a segurança das informações geradas e processadas pela instituição.
Referências Bibliográficas
[1] ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. NBR ISO/IEC 17799: tecnologia
da informação, técnicas de segurança e código de prática para a gestão de segurança da informação.
2. ed. Rio de Janeiro: ABNT, 2005. 120 p.
[2] Bacula (The Open Source Network Backup Solution). Disponível em: <http://www.bacula.org>.
Acesso em: 12 abr 2010.
[3] BRENDEL, Jens Christoph. Backup imortal: o poder dos daemons do conde drácula.
Disponível em:
<https://www.linuxmagazine.com.br/images/uploads/pdf_aberto/LM12_bacula.pdf>. Acesso em: 12
abr 2010.
[4] MTX: Media Changer Tools. Disponível em: <http://sourceforge.net/projects/mtx>. Acesso em:
14 abr 2010.
[5] NEMETH, Evi; SNYDER, Garth; HEIN, Trend R. Manual completo do linux: guia do
administrador. 2. ed. São Paulo: Pearson Prentice Hall, 2007. 684 p.
Download

Sistema centralizado de backup utilizando Bacula - Cefet-MG