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.