You are on page 1of 6

Sysadmin

Backups

Quando seus backups cam complexos demais para um simples script, o onipotente Bacula, livre e gratuito, pode ser a resposta.

Backup Imortal
O poder dos daemons do Conde Bacula
por Jens-Christoph Brendel

s polticas de backup variam de tamanho, preo, cor, credo e inclinao poltica. As mais mequetrefes baseiam-se em scripts simples talhados para cobrir as hecatombes, usando para isso as ferramentas nativas do sistema operacional (como tar, dd, cpio). Essa abordagem suciente para backups locais com pouco volume de dados e uma meiadzia de clientes. Polticas um pouco mais parrudas requerem tcnicas mas requintadas. Utilitrios como o rsync e o Amanda so ecientes para um grande nmero de situaes, mas essas ferramentas normalmente exigem o desenvolvimento de scripts sosticados

(e complicados) e possuem algumas limitaes nem sempre visveis num primeiro momento de tempo, sincronizao de dados, volume e reconhecimento de hardware. As ferramentas de porte corporativo acabam com todas essas restries. Como toda rosa tem seus espinhos, os fabricantes dessas ferramentas esotricas tambm cobram preos do outro mundo. Uma exceo a essa regra o Bacula [1], um sistema de backups gratuito e livre que oferece um cardpio variado de recursos, a maioria deles tambm presentes nos menus de produtos muito mais caros. O Bacula no um sistema monoltico. Pelo contrrio, um conjunto de vrios daemons precedidos de uma interface com o usurio. Cada Daemons Configurao, controle Armazenamento de de monitoramento e monitoramento metadados de todos os daemon possui uma funo especca e arquivos becapeados dos backups. usa a rede para se comunicar com os demais. Com isso podemos dividir a carga de trabalho: o trabalho rduo ou seja, ler e gravar dados feito por uma equipe Console Estao do administrador de daemons nos computadores clientes (os que possuem dados a gravar) e nos servidores de backup (os que guardaro O daemon de arquivo Armazenamento central fornece os dados a os dados para a posteridade). O controle e controle de todas as serem armazenados bibliotecas de fita de tudo isso feito na estao de trabalho do administrador; um servidor de banco de dados controla as contas dos usurios. Cada um desses elementos pode estar em O diretor inicia um backup com parmetros uma mquina diferente, mas nada impede pr-definidos que se agrupe mais de uma funo em um Clientes Servidor de armazenamento determinado sistema ou mesmo que se use um nico computador para tudo. Essa Figura 1: Dividir para conquistar o Bacula distribui o trabalho pela rede, mas mantm o repositrio exibilidade torna o sistema facilmente de dados em um ponto central. escalvel (figura 1).
Servidor de backup Servidor de banco de dados

www.sxc.hu

74

setembro 2005

edio 12 www.linuxmagazine.com.br

Backups

Sysadmin

Liderana central
O patro de toda a equipe de daemons chamado, apropriadamente, de diretor (director). O diretor sabe o que deve ser armazenado e onde. Sabe tambm onde esto os dados do usurio, caso este precise restaur-los. Ele tambm conhece os cronogramas, clientes, silos de armazenagem e detalhes sobre as tarefas planejadas. Com todo esse conhecimento, o diretor pode distribuir as tarefas de seus subalternos, os daemons. O diretor ele prprio um daemon tambm possui a distino de ser o nico componente do castelo de Bacula a falar diretamente com um ser humano. O diretor guarda os detalhes de congurao em um arquivo de texto puro (bacula-dir.conf) na forma de descries, hierarquicamente estruturadas, dos recursos do sistema. A patente mais alta nessa hierarquia ocupada pelo recurso de controle de tarefa (job control), que rene as conguraes de uma tarefa em especial tipo de tarefa (backup, restaurao, vericao ou administrao), horrio e durao da tarefa e o nvel de profundidade da tarefa (para backups, por exemplo, temos os nveis completo, incremental e diferencial). Para que as coisas quem mais fceis, muitos dos detalhes so agrupados em subrecursos, mais apropriadamente chamados de diretivas. Recursos comuns a diversas tarefas similares podem ser agrupados em JobDefs (Denies de Trabalhos) para formarem classes, que outras descries de tarefas podem referenciar. Com esse reuso de cdigo, os arquivos de congurao podem ser simplicados e encurtados. Por exemplo, o tipo de recurso Schedule (cronograma) dene agendamentos que executam tarefas em intervalos especcos de tempo, sendo bastante exveis no tocante a tipos de cronograma. J o recurso FileSet (conjunto de arquivos) lista diretrios e arquivos que voc planeja guardar. Os diretrios so manipulados recursivamente, o que quer dizer que / resultar no tipo mais simples de backup, o de todo o disco embora na prtica o bom administrador prera excluir alguns diretrios como o /var e o /tmp ou arquivos ocultos como .journal e .fsck. O backup s guardar itens em sistemas de arquivos diferentes (i.e. parties diferentes, volumes em outras mquinas acessados pela rede, mdias removveis) se houver uma ordem expressa para tal. Como padro, apenas arquivos no mesmo sistema so salvos para evitar o perigo de entrar em loops innitos ou inadvertidamente salvar servidores inteiros. Se quiser continuar usando essa medida de segurana e mesmo assim salvaguardar vrios sistemas de arquivos diferentes, necessrio indicar explicitamente cada um dos sistemas.

Obviamente, o Bacula permite tarefas muito mais complexas que isso. Por exemplo, pode-se referenciar uma lista de arquivos externa, usar expresses em shell (coringas) para escolher arquivos de acordo com um critrio ou mesmo empregar scripts que geram listas de backup em tempo real. Como o uso de expresses em shell signica escrever tudo em uma nica linha e, portanto, todos os caracteres fora do padro devem ser cuidadosamente escapados os scripts so a opo mais vivel. Imagine, por exemplo, que por algum motivo estranho voc queira guardar todos os arquivos de congurao que esto dentro do diretrio /etc e todos os arquivos e sub-diretrios ocultos que esto dentro do diretrio pessoal do usurio jcb. O mini-script a seguir deve dar conta do recado:
#!/bin/sh find /home/jcb -maxdepth 1 -name ".*" find /etc -name "*.conf"

O FileSet que gruda tudo isso seria:


FileSet { name = "ConfigSet" include { Options { signature = MD5 } File = "|/etc/bacula/confbackup.sh" } }

Alm de usar arquivos, listas e scripts, os administradores podem tambm especicar dispositivos brutos (raw devices) como fontes de dados (embora possam ser montados apenas para leitura). Por m, o backup pode at mesmo ler dados de FIFOs (ou named pipes, como queira), possibilitando conectar o backup a um aplicativo que esteja rodando naquele momento. Entretanto, o nvel fora do comum de exibilidade no tocante a fontes de dados tem seu preo: selecionar essas fontes dramaticamente menos intuitivo do que simplesmente deixar o administrador selecionar os arquivos em uma interface grca. Uma combinao das duas abordagens seria o ideal. Infelizmente nada perfeito

Bancos de incluso
Outra diretiva de congurao dene bancos de backup (backup pools), cada um possuindo uma determinada quantidade de volumes em ta. Essa diretiva, sozinha, coloca o Bacula

setembro 2005 www.linuxmagazine.com.br

edio 12

75

Sysadmin

Backups

num patamar muito mais alto do que as outras solues livres, a maioria muito simples. Um banco de backup agrupa logicamente uma certa quantidade de tas, permitindo que um nico backup possa se estender muito alm da capacidade de uma nica ta. Quando a tarefa de backup encontra um aviso de m de ta, o Bacula continua a tarefa na prxima ta disponvel que esteja dentro do mesmo banco de backup. Com essa diretiva, alm da vantagem bvia do volume muito maior de dados num nico backup, podemos reciclar as tas mais antigas do grupo depois de um perodo congurvel de tempo. Os recursos dos bancos de backup so controlados por algumas diretivas de congurao por exemplo, o tempo de espera para reuso da mdia ou o nmero mximo de vezes que uma dada ta pode ser reutilizada. As conguraes se aplicam a todas as tas no banco, o que bom; os administradores no precisam mais denir as preferncias de cada ta no grupo embora isso ainda possa ser feito, se desejado. Associar sicamente as tas a um determinado banco de backup pode ajudar a organizar a baguna nos armrios de ta. O programa permite organiz-las por tipo de utilizao, impedindo que sejam misturadas ou mesmo apagadas por acidente. Isso especialmente importante quando voc tem uma ta com um backup completo e, inadvertidamente, grava um backup incremental por cima. Sem o backup completo, qualquer incremento intil. Tambm possvel denir bancos para clientes individuais, dias da semana, grupos de mquinas e assim por diante.

Para a troca automtica de tas, o Bacula supe que voc possua uma toteca robotizada. O programa reconhece uma grande variedade de robs, tambm conhecidos como autocarregadores, autochangers ou autoloaders com drives do tipo DAT, VXA2, DLT, LTO e AIT. A ferramenta Mtx [2], usada pelo Bacula para controlar totecas, pode at mesmo ler cdigos de barra, o que permite a robs com leitores laser identicar uma ta sem que seja necessrio coloc-la no drive para ler seu contedo. Em alguns casos por exemplo, quando as tas houverem sido classicadas manualmente na toteca deve-se fazer uma reclassicao da localizao das mdias. Se isso acontecer com voc, acredite: agradecer aos cus o fato de seu chefe ter liberado verba para a aquisio do sistema de reconhecimento de cdigo de barras.

Catlogos
Sempre que o Bacula coloca um arquivo em uma ta, guarda tambm os detalhes desse arquivo tamanho, atributos, assinatura, data da ltima modicao, data e local do backup em um banco de dados conhecido como o catlogo. Esse o terceiro recurso principal do Bacula e o coloca num patamar mais alto do que os outros sistemas de backup, pois permite que arquivos individuais sejam restaurados sem que a ta (ou grupo de tas) tenha que ser lida completamente. Os arquivos que desejar restaurar podem ser selecionados pela simples meno de seus metadados, que incluem a posio do arquivo na ta. No h necessidade de ler a ta de cabo a rabo; em vez disso, o Bacula pode avanar a ta at onde estabelecido. Os administradores puderam, depois, anar o ciclo baseados nas informaes do banco de dados do catlogo. Os 32 sistemas do teste multiplexaram os backups em grupos de 10 a 20 uxos paralelos de dados. O parmetro de congurao Maximum Concurrent Jobs foi mexido para que isso fosse possvel e, no nal, o efeito foi positivo em backups incrementais e diferenciais com respeito ao tempo requerido para completar cada tarefa, bem como na carga (tempo de CPU, acesso a disco e trfego de rede) imposta a cada um dos sistemas. Sob condies reais, o sistema levou 19 horas para criar um backup completo de 450 gigabytes de dados, 90 minutos para um backup diferencial e apenas 40 minutos para um backup incremental. O MySQL usado originalmente mostrou sinais evidentes de gargalos de desempenho em testes de longa durao, levando-o a ser substitudo pelo PostgreSQL, o que melhorou absurdamente o desempenho das tarefas de restaurao e reciclagem de tas. A congurao otimizada foi testada em operaes do dia-a-dia por um perodo de vrias semanas. Depois de completar esse teste nal, a concluso a que o provedor chegou foi que o Bacula era capaz, com galhardia, de preencher os requisitos necessrios para o trabalho. Como no havia nada que impedisse o provedor de instalar o Bacula em todo o seu data center, assim foi feito e todos se regozijaram.

Uma visita ao castelo do Conde Bacula


No incio do ano de 2004, um provedor de servios de Internet, com sede em Stuttgart, Alemanha, estava querendo substituir seu sistema de backup, ligeiramente ancio. O Bacula era um dos competidores, ombro-a-ombro com inmeras solues comerciais. O que convenceu o provedor, alm do fato de o Bacula signicar a economia de rios de dinheiro em licenas, foi o fato de que o programa livre e portanto independente da poltica comercial e industrial de qualquer fabricante evitando assim o famoso abrao amigo de tamandu. O provedor tambm procurava por solues que se integrassem com seus sistemas de cobrana e bilhetagem, alm de permitir a centralizao das conguraes. O provedor decidiu implementar um piloto para testar o sistema numa situao real e a situao real de um provedor de Internet algo assustador! Na fase piloto, 32 mquinas com FreeBSD foram alvo de backup durante trs meses, com o Bacula rodando em paralelo com as solues existentes (eram mais de uma). Depois do teste inicial com robs de ta ter sido um sucesso, o provedor optou por uma combinao heterognea de mdias: uma unidade de ta LTO 1 e alguns discos rgidos. Um ciclo de backup de sete dias (um backup completo mais seis incrementais) e um perodo de reteno de 4 semanas foi

76

setembro 2005

edio 12 www.linuxmagazine.com.br

Backups

Sysadmin

o arquivo est ou, pelo menos, at o incio da tarefa de backup. Adicionalmente, o catlogo armazena o histrico de todos os backups. O Bacula pode usar qualquer banco de dados SQL para sua administrao. O pacote inclui scripts de congurao para PostgreSQL, MySQL e SQLite. Como so bancos SQL bastante populares, o administrador pode fazer cpias de segurana das tabelas em uso e, se o que j ruim car danado, fazer cirurgias mo para corrigir alguma coisa. Um catlogo extraviado ou inconsistente um dos desastres mais catastrcos que podem acometer um dado backup. Para diminuir o efeito de um catlogo perdido, o Bacula possui scripts que guardam o catlogo em um arquivo texto enquanto o trabalho de backup est sendo feito. Se algo der errado, pelo menos a verso anterior pode ser restaurada facilmente. Incidentalmente, voc pode usar o catlogo do Bacula para improvisar um sistema de deteco de intrusos a l Tripwire ou Aide. Duas funes integradas, que voc pode rodar independentemente das de backup e restaurao, comparam os metadados armazenados com os do sistema de arquivos atual. Pode-se descobrir, dessa forma, alteraes no autorizadas em arquivos.

Figura 2: O GConsole no possui interface grca propriamente dita, mas oferece um console com uns poucos menus que no precisam de uma janela de terminal.

Trabalho de equipe
claro que um diretor no nada sem uma equipe digna desse nome. No Bacula, o diretor d ordens para dois grupos distintos de subalternos: um ou mais daemons de armazenamento (storage daemons) e inmeros daemons de arquivo (le daemons). Estes ltimos rodam nos clientes ou seja, os computadores que tm coisas que devem ser guardadas

no backup e usam a rede para enviar os dados ao servidor de armazenamento que o local onde o daemon de armazenamento est rodando e que controla o drive ou a toteca robotizada. Se necessrio, o daemon de armazenamento pode tambm fazer backup em disco, o que pode ser uma soluo de curto ou mdio prazo para o armazenamento do ltimo backup, especialmente se compararmos os preos cadentes dos discos rgidos e os cada vez mais altos das unidades (e mdias) de ta. Daemons de arquivo esto disponveis para Linux, a maioria dos sistemas operacionais aparentados com o Unix (por exemplo: Solaris, AIX, HPUX, FreeBSD, MacOS X) e todas as verses de Windows. O nmero de sistemas suportados evita que precisemos fazer gambiarras envolvendo NFS ou Samba para fazer backups de qualquer dos sistemas da rede embora essas gambiarras, se existentes, funcionem muito bem com o Bacula!

Meia volta, volver!


O processo de restaurao dos dados o inverso do backup. Quando ordenado a isso pelo diretor, o daemon de armazenamento envia o arquivo ao daemon de arquivo, que por sua vez grava o arquivo solicitado no cliente. Os arquivos restaurados no so gravados em suas posies originais; em vez disso, uma rvore de diretrios completa contendo o arquivo restaurada abaixo de um diretrio especial. A congurao de cada tarefa de backup especica qual esse diretrio. Obviamente, deve existir no cliente espao livre o bastante para aceitar os arquivos restaurados. O padro /tmp/bacula-restores. Voc pode mudar esse comportamento especicando o raiz como diretrio de restaurao. Com isso, os arquivos so gravados em suas posies originais. Cuidado para no tomar

Figura 3: O JBacula, um projeto independente, facilita a congurao do daemon de diretrio.

setembro 2005 www.linuxmagazine.com.br

edio 12

77

Sysadmin

Backups

boi por bezerro: o Bacula no resolve conitos que possam decorrer disso. Se um arquivo sendo restaurado j existir, o Bacula simplesmente vai escrever por cima sem d nem piedade. Se o arquivo estiver protegido contra gravao, a restaurao gerar um erro. Se no exatamente isso o que voc quer, o melhor usar o mtodo do diretrio diferente. Cone em Al, mas amarre o seu camelo. H mil e uma maneiras de se escolher quais arquivos do backup voc quer restaurar. Todas elas acabam desembocando em um diretrio virtual que mostra todos eles e a forma como esto organizados na ta. Pode-se navegar pela rvore de diretrios usando os comandos padro do Unix (cd, ls, pwd e companhia limitada). Ser preciso digitar comandos para marcar quais arquivos e diretrios devem ser

restaurados mais uma vez, uma interface grca em que se pudesse clicar nos arquivos desejados seria algo muito mais apropriado. Como um servio especial, o Bacula permite que se combine o ltimo backup completo para um cliente e todos os incrementais subseqentes. Adicionalmente, pode-se restringir a seleo a todos os arquivos em backup antes (ou depois) de uma determinada data e hora. As verses atuais do Knoppix [3] incluem um daemon de arquivo e um console do Bacula, o que torna o sistema uma soluo simples para recuperao de desastres, desde que voc anote o particionamento de qualquer disco em que tenha guardado em backup e tambm que armazene os arquivos de boot do Bacula em um local separado. Um CD algumas solues tenham sido tentadas, no vo alm de simples menus baseados em texto. Um gerenciador grco de arquivos para escolher o que guardar ou restaurar com um clique do mouse seria o mnimo aceitvel. Um calendrio para selecionar agendamentos seria bastante til. No h um assistente de congurao para ajudar os administradores nessa ingrata tarefa. Gurus experientes do Unix talvez no se importem muito com essas frescuras, mas os administradores de hoje em dia vo procurar outra soluo e riro bastante da sua cara se voc tentar impingir a eles uma soluo baseada em linha de comando e scripts. Sem um ambiente grco no qual se possa congurar 100% (sem exceo) das opes do programa usando apenas o mouse e um ambiente usvel, por favor! o Bacula est fadado a ser solenemente ignorado pelo pblicoalvo e entrar em extino certa. O mesmo se pode dizer da ajuda online: alm de existir (o que no verdade, atualmente), ela deve ser completa e fcil de consultar.
P

O futuro
O Bacula , denitivamente, o sistema livre de backup que chega mais perto dos sistemas comerciais, em especial tratando da avidez gigantesca por dados dos ambientes corporativos. O conde Bacula , indubitavelmente, talhado para uso em sistemas empresariais de todos os tamanhos. Como a chuva nem sempre suciente para salvar a lavoura, h ainda alguns itens que gostaramos de ver em verses futuras:
P

Segurana: no momento, no possvel fazer backups criptografados. Em outras palavras, um invasor poderia farejar (com um software para captura de trfego ou sniffer) a rede local para acessar os dados do backup. O pnico com esse tipo de segurana no histeria paranica de administradores estressados, mas uma preocupao genuna em ambientes com dados importantes e sigilosos. O temor aumenta se o backup for efetuado por provedores de servios, j que os dados trafegaro pela Internet ou por uma linha privada externa. Como paliativo, podemos usar um tnel SSH para criptografar a comunicao entre os daemons de arquivo e de armazenamento, bem como entre eles e o diretor. Em ambientes Windows seria preciso, no mnimo, integrar um anti-vrus atualizado. Os desenvolvedores do Bacula esto planejando as solues para esse problema, mas nada de concreto foi implementado ainda. Fitotecas grandes: Embora mltiplos backups possam ser disparados simultaneamente, ainda preciso melhorar de forma dramtica a ecincia do processamento paralelo. Por exemplo, um daemon de arquivo no pode usar de multiplexao para enviar dados a mltiplos daemons de armazenamento. Isso melhoraria em muito o desempenho para grandes volumes de dados. Bancos de drives capazes de associar um determinado nmero de acionadores de ta a uma tarefa especca seriam algo bastante desejvel. Se pudessem permitir que cada tarefa selecionasse o banco de drives que estivesse disponvel (isto , ocioso) no momento, melhor ainda. Tristemente, nenhuma das duas coisas possvel no momento. Tambm no h a possibilidade de atribuir automaticamente drives ociosos a tarefas pendentes. Sem esses recursos, uma toteca robotizada que disponha de mltiplas unidades de ta nunca estar com 100% de ocupao. Resultado: desperdcio de recursos de hardware e perda de desempenho. Interface grca: a verdade dura, mas o Bacula no possui o elemento primordial para que seja adotado em massa por administradores mundo afora especialmente os oriundos de ambientes Windows. Embora

Backup a quente: No h nenhum mdulo para fazer backup de bancos de dados sem que seja preciso desativ-los antes. Tambm no possvel fazer backup de aplicativos e sistemas que usem arquivos e os travem (com lockles) para impedir o acesso por outros. O diretor contorna parte do problema permitindo que se rode scripts no cliente e no servidor antes e depois de iniciar alguma tarefa de backup. Nos scripts, poderamos incluir comandos para encerrar a execuo de tais sistemas e, depois, inici-los novamente. Como tanto o backup quanto a restaurao podem usar FIFOs (named pipes) como suas fontes de dados (ou mesmo como destino), possvel manipular os dados indo ou vindo de aplicativos em execuo sem que se tome um desvio por meio de um arquivo. Essa uma alternativa interessante, mas de forma alguma pode substituir um verdadeiro e completo sistema de backup online. Extras: sistemas comerciais de backup oferecem a seus usurios um grande numero de programinhas extras, alguns bastante teis, que o Bacula simplesmente no possui. Por exemplo, sistemas comerciais sempre incluem um utilitrio para clonagem de mdias. Isso reduz ao mnimo o risco de erros irrecuperveis nas tas claro, s se voc as copiar na hora em que foram geradas. Tambm teis e onipresentes so as ferramentas para recuperar e continuar sesses de backup interrompidas. bvio que o Bacula funciona sem esses programinhas, mas eles so um mimo ao qual os usurios desse tipo de sistema j esto acostumados. Sua ausncia pode provocar a escolha de outros sistemas de backup mais prdigos.

78

setembro 2005

edio 12 www.linuxmagazine.com.br

Backups

Sysadmin

de recuperao do Bacula, criado para reanimar o sistema depois de uma falha completa, no funcionar nos kernels mais recentes do Linux (2.6.x), mas uma verso atualizada est a caminho.

Designando responsabilidades
O acesso ao console do Bacula governado pelas permisses de execuo do usurio; o aplicativo no pede que os usurios se autentiquem e, portanto, no permite diferentes nveis de privilgio. Entretanto, possvel congurar variaes no console para permitir apenas alguns tipos de tarefas e comandos, limitar determinados bancos de tas e restringir drivers e totecas. Isso d aos administradores uma forma improvisada (mas til) de gerenciamento de usurios. O improviso no granular o suciente para permitir que cada usurio restaure seus prprios arquivos sem pedir permisso ao administrador, mas possvel criar grupos de usurios e delegar direitos administrativos a eles. Em muitos casos, esperar que o usurio consiga restaurar os prprios arquivos sem uma interface do tipo apontare-clicar algo temerrio. Ferramentas como o Wxconsole e o Gconsole (gura 2) possuem alguns menus que evitam

que o usurio tenha que saber de cor e digitar alguns comandos, mas ainda possuem uma linha de comando para as funes mais avanadas. O JBacula [4], escrito em Java, facilita um pouco a vida do usurio sem intimidade com o console (gura 3).

Concluso
Os administradores que no tm medo da linha de comando vo encontrar no Bacula um sistema de backup utilssimo e extremamente exvel, com muitos recursos prossionais. O Bacula muito bem documentado e se integra facilmente com ambientes altamente heterogneos.

Informaes
[1] Castelo do Conde Bacula: www.bacula.org [2] Mtx Controle de totecas robotizadas (Frankenstein): mtx.badtux.net [3] Knoppix e Bacula, dois monstros sagrados vivendo juntos: www.knopper.net/knoppix/index-en.html [4] JBacula: jbacula.sourceforge.net

setembro 2005 www.linuxmagazine.com.br

edio 12

79

You might also like