Qualquer administrador de sistemas sabe que está sob constante risco de sofrer uma perda de dados. As conseqüências da perda de dados podem variar desde uma queda do sistema temporária até perdas irrecuperáveis de recursos para a empresa.
Para evitar maiores problemas, todo administrador de sistema deve ter uma boa política de backup em seu sistema. Para facilitar a vida de seus usuários, o Conectiva Linux oferece o Amanda, um software de backup bastante popular.
O Amanda pode operar em diversos tipos de meios físicos de backup (fitas DAT, discos CD-R). Por simplicidade, será feita referência somente a fita, embora possa ser substituída por outro tipo de mídia.
As vantagens de se manter uma política de backup em uma rede são um tanto óbvias. Se você já perdeu algo deve saber o quanto o backup é importante. O backup permite um certo nível de segurança aos dados armazenados na rede, já que eventuais perdas podem ser, pelo menos em parte, recuperadas.
As razões pelas quais você talvez não desejasse ter uma política de backup em sua rede são, no mínimo, duvidosas. Pode-se argumentar que o custo é elevado (mas o custo associado à perda de dados normalmente é muito maior) ou que o tempo de duração do backup de grandes quantidades de dados é muito grande (mas quanto mais dados, maior é a perda sem o backup).
Para a instalação do Amanda, você precisa:
algum conhecimento sobre o sistema de arquivos do Linux e os dispositivos;
que a rede esteja corretamente configurada;
um meio adequado para backup como uma unidade de fita;
um utilitário de backup como o GNU Tar ou o Dump+Restore;
o Perl deve estar instalado para as ferramentas de documentação do Amanda;
o GNU readline deve estar instalado para poder ser utilizado com o utilitário de recuperação de dados;
o GNU awk e o gnuplot devem estar instalados para que a ferramenta amplot possa ser utilizada.
Para instalar o Amanda, execute o Synaptic para a instalação dos seguintes pacotes:
amanda
gnuplot
amanda-server
amanda-client
linuxconf-amandaconf
Se você pretende utilizar o Dump+Restore em vez do GNU Tar deve selecionar também o pacote dump.
Se preferir, utilize o apt para a instalação:
# apt-get install amanda gnuplot linuxconf-amandaconf |
Antes de partir para a configuração do software você deverá decidir qual máquina será o servidor Amanda. Para tomar essa decisão você deve levar em conta que o Amanda pode consumir bastante processamento, especialmente se ele for configurado para comprimir dados. Além disso, o Amanda consumirá bastante recursos de rede e E/S de disco. O Amanda não utiliza uma grande quantidade de memória RAM, mas necessita acesso direto a uma unidade de fita (ou outra mídia equivalente) com espaço suficiente para o backup.
Você deve escolher um dispositivo que não rebobine automaticamente. No Conectiva Linux estes dispositivos geralmente contêm uma letra n no nome, como, por exemplo, /dev/nst0.
É possível fazer a compressão de dados diretamente no cliente ou deixar que o hardware de fita a faça. A compressão via software permite que o Amanda tenha controle sobre o uso das faixas da fita e faça melhores estimativas quanto aos tamanhos das imagens. Porém, a compressão via hardware é muito mais eficiente em termos de utilização de CPU. Você deverá desativar a compressão por hardware se for utilizar compressão por software. Acesse a documentação do seu hardware de fita para informações sobre como ativar ou desativar a compressão.
Seria interessante que você tentasse alocar espaço no disco rígido do seu servidor Amanda para que o backup seja acelerado. O Amanda pode utilizar este espaço em disco para realizar dumps[1] enquanto a unidade de fita está ocupada com um dump anterior.
Você deve criar um usuário para o Amanda. Neste capítulo, será utilizado um usuário chamado amanda, que pode ser criado assim:
# useradd amanda |
Note que as configurações são sempre guardadas em subdiretórios abaixo de /etc/amanda. Esse diretório, porém, não é criado durante a instalação. Você deve criá-lo antes de começar a configurar o Amanda:
# mkdir /etc/amanda |
Perceba que além de criar o diretório, você deverá permitir que o usuário criado para o Amanda (mais informações sobre isso na seqüência) possa acessar este diretório com permissões de escrita.
Em seguida, abra o Linuxconf e vá ao menu Configuração -> Miscelânea-> Configurador Amanda e adicione uma entrada através do botão Adicionar.
O Amanda pode possuir qualquer número de configurações. Neste capítulo, será criada uma configuração chamada Diario, que será utilizada para fazer um backup diário. Portanto, basta entrar com a palavra Diario no campo Nome da nova entrada e clicar no botão Aceitar.
Como o nome da configuração é Diario, o arquivo de configuração do Amanda será /etc/amanda/Diario/amanda.conf.
Atenção |
Surgirão várias mensagens de erro, indicando que o arquivo de configuração não foi criado. O arquivo /etc/amanda/Diario/amanda.conf só será criado quando for feita uma configuração propriamente dita, como será visto adiante. |
Para iniciar a configuração, clique sobre o nome criado (Diario). Irá aparecer a tela como na Figura 10-1. Abaixo serão mostradas as opções mais comuns seguidas por uma breve explicação de cada uma.
Dica: É muito importante ler o menu de ajuda contido no Linuxconf (botão Ajuda). Ele traz uma série de explicações sobre como preencher os campos corretamente, quando modificar os valores-padrão, entre outros detalhes.
A opção Geral contém os seguintes campos:
Descrição de config.: isso identifica a configuração. Este texto será utilizado como o assunto das mensagens de correio eletrônico que serão enviadas pelo Amanda. Um valor poderia ser Backup diario da Minha Organizacao.
Enviar relatórios a: indica um ou mais endereços de correio eletrônico (separados por espaços) para onde o Amanda enviará seus relatórios.
Ciclo de despejo: este parâmetro especifica o ciclo de dumps. Este ciclo é o tempo máximo de um ciclo de backups. Ele indica de quanto em quanto tempo o Amanda deve fazer um backup completo[2]. Exemplo de valor: 2 weeks (lembre-se de procurar no botão Ajuda os sufixos corretos).
Execuções por ciclo: número de execuções de despejos em um ciclo de despejo. O valor 0 (zero) significa o mesmo valor do ciclo.
Ciclo da fita: número de fitas em seu ciclo de fitas ativas. O padrão é um número a mais que o número de execuções do Amanda durante um ciclo de despejo do Amanda vezes o número de fitas usado por execução. Exemplo: Ciclo de Despejo = 7 dias, executando o Amanda uma vez neste dia do ciclo, o ciclo da fita será de pelo menos 8.
Usuário do despejo: indica que o Amanda deve ser executado com as permissões de um usuário que não seja o root. Utilize o usuário amanda que foi criado no início da configuração.
Executar fitas: o Amanda sempre assume que utilizará um única fita a cada execução do backup. Porém, se você possui um trocador de fita, pode especificar um número de fitas a serem utilizadas.
Tempo limite estimado: indica o número máximo de fitas usadas em uma única execução, utilizando um alternador de fitas. Se você não possui um, esta opção não será usada e deverá ser deixada em branco. São utilizados os sufixos tape e tapes.
Uso da rede: esta opção especifica um limite máximo de banda de rede a ser utilizada pelo Amanda. O valor tem de ser expresso em kilobits por segundo. Exemplo: 5000 Kbps.
Máx. de backups paralelos: número máximo de backups paralelos, respeitando as restrições de banda de rede e espaço disponível no disco.
Máx. de backups paralelos por máquina: o mesmo que a opção anterior, mas a partir de uma máquina simples.
Incremento: número de salvamentos necessários para incrementar automaticamente, indo para o próximo nível.
Mult. de incremento (flut.): é um fator utilizado para cada nível, multiplicado pelo número do incremento. Isto evita que sistemas de arquivos ativos efetuem muitos incrementos, dificultando o nível seguinte.
Dias para incremento: especifica o número de dias durante os quais o sistema de arquivos irá se manter no mesmo nível de incremento, assegurando a redundância de dumps.
Espaço de HD reservado (%): quantidade de disco que não deve ser usada para backups, caso não haja disco disponível. É um quantidade de reserva de espaço em disco.
Em seguida deve-se configurar o dispositivo de fita (aba Dispositivo de fita). Veja a Figura 10-2, e em seguida, as opções desta tela:
Rótulos de fita (reg exp): esta opção é composta de uma expressão regular utilizada para assegurar que todas as fitas estão alocadas para esta configuração. Exemplo: ^Diario[0-9][0-9]*$
Tipo de fita: especifica o tipo de dispositivo de fita instalado. Exemplo: SDT-9000.
Dispositivo de fita: especifica o dispositivo de fita a ser utilizado para o backup. Note que ele deve ser um dispositivo que não rebobine automaticamente. Exemplo: /dev/nst0.
Disp. fita sem formato: usado apenas se o Amanda for compilado em máquinas Linux com fitas flexíveis. Segue o mesmo formato colocado no campo anterior.
Nome do alternador de fitas: nome do alternador de fitas.
Disp. alternador de fitas: caminho para o dispositivo do alternador de fitas. Exemplo: /dev/dispositivo.
Arq. status alternador de fitas: opção utilizada somente se o alternador estiver configurado. Deve ser colocado o caminho para o parâmetro de configuração do alternador de fitas.
Como foi mencionado neste capítulo, é possível (e recomendado) alocar espaço no servidor de backup para acelerar o processo de backup. Além disso, este espaço em disco garante uma maior segurança, já que se a fita falhar o Amanda continuará o backup normalmente em disco, podendo ser mandando posteriormente para fita.
Para definir esta funcionalidade, vá ao menu Disco de retenção da Figura 10-1 e acrescente um disco clicando em Adicionar. Em seguida, edite a entrada clicando sobre o nome escrito. Você deve preencher os seguintes campos:
Comentário: um comentário sobre o disco. Exemplo: disco1.
Diretório: diretório para o disco de retenção. Exemplo: /backup.
Espaço a usar: quantidade de espaço a ser utilizada.
Tamanho da porção: tamanho da porção do disco de retenção, ou seja, quando dumps maiores que o especificado acontecerem, eles irão para o disco de retenção, e o tamanho de cada porção não deve exceder o valor especificado. O valor 0 (zero) faz com que o Amanda calcule um valor máximo para o disco de retenção.
Você pode criar vários discos de retenção, e em cada um deles deve-se especificar um diretório para ser utilizado pelo Amanda e a quantidade máxima de espaço a ser utilizado.
Dica: Embora não seja exigida, recomenda-se a utilização de um disco dedicado ao Amanda para possibilitar um melhor desempenho.
O próximo passo é especificar algumas informações sobre a unidade de fita que está sendo utilizada. Para isso, vá até o menu Tipos de fitas do menu principal de configuração do Amanda e adicione uma entrada. Edite-a e preencha os seguintes campos:
Comentário: algum comentário sobre a fita configurada.
Marca de arquivo: o tamanho da marca de fita, medido em kilobytes. O valor ideal é de 100 kbytes (não esqueça do sufixo).
Comprimento: tamanho da fita, em megabytes. Verifique sua fita e preencha o campo corretamente, colocando o sufixo mbytes.
Velocidade: velocidade da fita. O valor ideal é de 366 kbytes.
A única parte que você provavelmente terá de alterar é o campo Comprimento, que indica o tamanho da fita. Os outros parâmetros normalmente não precisam ser alterados.
Defina agora os tipos de dumps que o Amanda fará. Isto pode ser feito através do menu Tipos de despejo; adicione uma entrada e faça sua edição. Surgirá uma tela como na Figura 10-3:
Note que a maioria dos campos são habilitados com o valor padrão. Os parâmetros que podem ser modificados para se definir um tipo de dump são:
Tipo de aut.: é o tipo de autenticação a ser utilizada pelo Amanda. O padrão é bsd.
Comentário: apenas um comentário sobre este tipo de dump.
Compressão esp.: é uma estimativa de como ficará o tamanho dos dados após a compactação. São necessários dois valores; o primeiro é a estimativa quando de um dump incremental (parcial) e o segundo de um dump completo. Padrão: 0.5 0.5.
Tipo de compressão: tipo de compressão. Valores possíveis: none (não comprimir), client best (melhor compressão e menor velocidade, porém mais processamento), client fast (mais rápida e menos eficiente), server best (melhor compressão e menos velocidade) e server fast (compressão mais rápida e menos eficiente). Padrão: client fast.
Ciclo de dump: configura o número de dias em um ciclo de dump, ou seja, o número de dias entre dumps completos.
TAR "exclude" opc.: lista de arquivos e diretórios a serem excluídos do backup. Só é utilizada quando o backup é feito através do GNU Tar. Pode ser um padrão de arquivos a serem ignorados ou pode ser list "arquivo", onde arquivo é o nome de um arquivo no cliente contendo os nomes dos arquivos e diretórios a serem excluídos.
Usar disco de retenção: especifica se o espaço alocado no disco rígido deveria ser utilizado por este tipo de dump. Padrão: yes.
Ignorar este: se esta diretiva aparece, o sistema de arquivos ao qual ela se refere será ignorado (não fará parte do backup).
Gerar índice: especifica se o Amanda deve criar e manter um índice dos arquivos neste backup.
Encriptar c/ Kerberos: especifica se os dados devem ser criptografados entre o cliente e o servidor. Padrão: no.
Dumps máx.: número máximo de dumps concorrentes. Padrão: 1.
Prioridade: nível de prioridade do Amanda. Pode ser low, medium ou high. Estes valores só são utilizados pelo Amanda quando ele não tem como gravar em nenhuma fita por causa de algum erro.
Copiar programa: especifica qual programa deve ser utilizado para realizar os dumps. Pode ser GNUTAR para utilizar o GNU Tar ou DUMPS para usar o Dumps. Verifique os pacotes instalados e selecione o programa corretamente. Padrão: DUMPS.
Atualizar bd reg. de datas: especifica se o Amanda deve gerar um registro em /etc/dumpdates. Padrão: yes.
Omitir completo: especifica que, se o dump for completo, então o que for indicado será omitido.
Omitir incremental: especifica que, se este dump for incremental, o que for indicado será omitido.
Iniciar em: indica a hora em que o backup será iniciado. Backups antes desta hora não serão iniciados.
Estratégia: especifica a estratégia do dump. Pode ser: standard (estratégia normal), nofull (apenas dumps parciais), noinc (apenas dumps completos) ou skip (especifica que este dump deve ser ignorado).
Em cada entrada de configuração do Amanda você deverá criar um lista de discos. Este arquivo controla os sistemas de arquivos a serem incluídos no backup. Isso pode ser feito através do menu Lista de discos do menu principal. Ignore a mensagem de erro de criação do arquivo; ela será feita normalmente, após a configuração da lista de discos.
Adicione uma entrada e clique em cima dela para editá-la. Aparecerá uma tela como na Figura 10-4.
O campo Nome da máquina é o nome da máquina onde o sistema de arquivos está localizado. O campo Dispositivo de disco é o nome de dispositivo, partição ou diretório para o dispositivo, e o campo Tipo de despejo deve ser preenchido com o tipo de despejo a ser feito neste sistema de arquivos, e deve corresponder ao tipo criado anteriormente (menu Tipo de despejo configurado anteriormente). Os outros campos são de preenchimento opcional.
Assim, um exemplo de arquivo desta configuração poderia ser:
O exemplo acima indica que o Amanda deverá fazer um backup do sistema de arquivos sda1 (primeira partição do primeiro disco SCSI) da máquina kepler, utilizando o tipo de dump sempre-completo, que deve ter sido definido anteriormente. Além disso, foi definido também que o Amanda deve fazer um backup do sistema de arquivos hda1 da máquina newton. Ambos os sistemas de arquivos utilizam configurações de backup diferentes.
A configuração pelo Linuxconf está completa, e você já pode finalizá-lo, já que as outras configurações são feitas pela linha de comando.
Antes de fazer o backup você deverá inicializar as fitas. Para fazer isso, utilize o comando amlabel, que deve ser executado pelo usuário do Amanda:
# amlabel Diario Diario-12 |
Este comando inicializa a fita Diario-12. O primeiro parâmetro é no nome da configuração a se utilizar e o segundo é o nome (etiqueta) da fita.
Para facilitar as tarefas do Amanda, você poderá agendar tarefas no Cron. Verifique a documentação do Cron para mais detalhes.
Se uma fita falha, o Amanda pode utilizar o espaço alocado em disco para fazer o backup. Para poder gravar os dados que ficaram em disco rígido em uma fita você deve utilizar o comando amflush.
# amflush Diario |
Este comando irá gravar os dados do backup Diario, que ficaram em disco rígido para fitas.
O próximo passo é fazer a configuração para a recuperação de dados perdidos. De nada adiantaria a criação e manutenção de backups se você não pudesse recuperar os dados perdidos.
Para recuperar dados de um backup criado pelo Amanda você vai utilizar o comando amrestore. Este comando pode ser utilizado para recuperar todos os dados no backup ou apenas uma parte deles.
Por exemplo, imagine que a máquina newton tenha tido um problema e perdeu os dados. Para recuperar todos os dados daquela máquina você utilizaria o seguinte comando:
# amrestore /dev/nst0 newton |
O exemplo acima assume que o dispositivo de fita é o /dev/nst0.
O amrestore pode também recuperar apenas parte do backup da máquina newton. Por exemplo, para recuperar apenas os dados de /dev/hda1:
# amrestore /dev/nst0 newton hda1 |
A sintaxe do amrestore é:
amrestore DISPFITA [ MAQUINA [ DISP [ DATA ] ] ] |
onde:
DISPFITA: dispositivo da unidade de fita.
MAQUINA: expressão regular identificando a máquina cujos dados se quer recuperar. Este parâmetro é opcional.
DISP: expressão regular identificando o sistema de arquivos da máquina especificada que se quer recuperar. Este parâmetro é opcional e só pode ser utilizado junto a um nome de máquina.
DATA: útil quando se tem múltiplos dumps na mesma fita. Identifica qual o dump a ser recuperado. Este parâmetro só pode ser utilizado em conjunto com um dispositivo a ser recuperado.
Para configurar as máquinas cliente você deve:
Criar um usuário para o Amanda (deve ser o mesmo criado no servidor):
# useradd -G disk amanda |
No diretório home do usuário do Amanda crie o arquivo .amandahosts com o seguinte formato:
MAQUINA.DOMINIO USUARIO |
MAQUINA.DOMINIO: é o nome completo do servidor Amanda.
USUARIO: é o nome do usuário do Amanda no servidor.
Este arquivo cria uma relação de confiança entre o cliente e o servidor, permitindo que o usuário do Amanda possa conectar-se à máquina cliente sem senha.
Edite o arquivo /etc/inetd.conf e insira a seguinte linha:
amanda dgram udp wait amanda /usr/lib/amanda/amandad amandad |
Note que a segunda ocorrência de amanda pode mudar de nome caso você tenha criado o usuário do Amanda com outro nome. Ou seja, se você tiver criado o usuário como usuario, a linha será:
amanda dgram udp wait usuario /usr/lib/amanda/amandad amandad |
Se você utiliza o xinetd, você deve procurar a documentação do Amanda e do xinetd para verificar como criar o arquivo de configuração do Amanda para o xinetd.
A configuração do cliente está feita.
O amcheck é um comando que deve ser utilizado antes de amdump e amlabel. Ele testa se os clientes estão prontos para o backup.
# amcheck Diario |
O comando acima irá efetuar a verificação para o backup Diario. Ele envia um relatório via e-mail para o endereço especificado na configuração no Linuxconf. Faça um teste fazendo um backup de algum diretório e teste se tudo ocorre normalmente.
[1] |
Um dump é o mesmo que backup dos dados. |
[2] |
full dump. |