Personal tools
You are here: Home Dicas e Tutoriais Backup em HD com Amanda
Document Actions

Backup em HD com Amanda

by Daniel Duclos last modified 13-06-2007 02:31 PM http://creativecommons.org/licenses/by/2.0/br/deed.pt

Realizando backups em HD com Amanda

Todo administrador de sistemas sabe que o backup é uma parte vital da segurança e garantir sua realização e integridade é crítico no seu cotidiano.

Existem muitas alternativas de backups destinadas a todos os tamanhos de rede e bolso, e o Amanda é sempre citado como uma alternativa livre e gratuita.

Porém o Amanda é comumente utilizado para realizar backups em fita, o que nem é sempre econômico, já que hoje em dia HDs são muito baratos e certamente mais práticos para uma pequena empresa utilizar.

É perfeitamente possível ter um amanda realizando backups no disco rígido, e como realizar isso é a que nos propomos neste artigo.

Do que você irá precisar

Escolha uma máquina para ser o servidor de arquivos. Este tutorial considera que se utilizará como sistema operacional desse servidor o Debian GNU/Linux atualizado, porém pode perfeitamente servir de base para que a mesma tarefa seja realizada em outras distribuições.

É muito interessante que esta máquina tenha bastante espaço em disco e se possível um HD dedicado somente ao backup.

Essa máquina deve estar conectada à rede das outras máquinas que terão seus dados salvos.

Estratégia de backups e definições

Iremos criar no HD 14 fitas "virtuais", que serão diretórios no HD. O Amanda considera que será rodado uma vez por dia.

O amanda pode realizar backups completos (full) e incrementais. Você pode decidir a freqüência e a retenção (por quanto tempo ficarão armazenados) desses backups.

Nesse artigo escolhemos realizar um backup completo uma vez por semana e incrementais seis vezes por semana, criando um ciclo semanal.

A retenção é feita por duas semanas, com uma fita virtual por backup.

Esse parâmetros podem ser alterados no /etc/amanda/DailySet1/amanda.conf, na seção:

  dumpcycle 7 days
  tapecycle 14

Se quiser realizar dois backups completos em uma semana, por exemplo, altere para:

  dumpcycle 3 days
  tapecycle 14

As fitas virtuais ficarão em /backups e o usuário com que o amanda irá rodar é o padrão do Debian, "backup". Este usuário já existe na Debian, porém pode variar em outras distribuições.

Resta agora decidir o tamanho que cada fita virtual terá. Nesse exemplo escolhemos 10 GB por fita, o que dá um espaço alocado de 140 GB para backups.

Instalação e Configuração: Servidor

No servidor instale o amanda. É muito importante que seu Debian esteja com a versão atualizada do sistema, pois a versão do amanda que está na Stable não suporta backup para disco rígido. A versão 2.4.4p3-2 foi utilizada neste tutorial:

  apt-get install amanda-server

Após feita a instalação, vamos configurá-lo:

  cd /etc/amanda/DailySet1/

Salve uma cópia do arquivo original, se quiser:

  cp /etc/amanda/DailySet1/amanda.conf{,-ori}

Agora edite o arquivo /etc/amanda/DailySet1/amanda.conf, apague seu conteúdo e coloque o seguinte, lembrando que o que vem depois do sinal # é considerado comentário e será ignorado pelo Amanda:

  org "DailySet1"                # Nome descritivo para as mensagens
  mailto "sysadmin@dominio.com"  # Email de quem irá receber os logs
  dumpuser "backup"              # Usuário dono dos backups
  inparallel 1                   # Procesos em paralelo
  netusage  10                   # Uso máximo de banda em Kbps

  dumpcycle 7 days               # Número de dias de um ciclo completo
  tapecycle 14              # Número de "fitas"

  runtapes     1                 # Quantas fitas usar por ciclo
  tpchanger "chg-multi"          # Script controlador de fitas
  changerfile "/etc/amanda/DailySet1/changer.conf" # Configuração das fitas

  tapetype HARD-DISK              # Tipo de armazenamento
  labelstr "^HISS[0-9][0-9]*$"    # Expressão regular das etiquetas das fitas

  infofile "/var/lib/amanda/DailySet1/curinfo"    # Diretório de datos
  logfile  "/var/log/amanda/DailySet1/log"        # Diretório de log

  indexdir "/var/lib/amanda/DailySet1/index"   # Diretório de índice

  amrecover_changer "chg-multi"  # Seleciona as fitas automaitcamente no restore

  # definição de arquivamento com dump
  define dumptype hard-disk-dump {
    comment "Backup no HD - usando dump"
    holdingdisk no
    index yes
    options compress-fast, index, exclude-list "/etc/amanda/exclude.gtar"
    priority high
  }

  # Definição do armazenamento com tar
  define tapetype HARD-DISK {
    comment "HD"
    length 10000 mbytes  # 10 GB de espaço
  }

  # Definição de armazenamento com 'tar'
  define dumptype hard-disk-tar {
    program "GNUTAR"
    hard-disk-dump
    comment "Backup para disco - usando tar"
  }

Edite o arquivo /etc/amanda/DailySet1/changer.conf para definir as características das "fitas" e coloque o seguinte:

  multieject 0
  gravity 0
  needeject 0
  ejectdelay 0

  statefile /var/lib/amanda/DailySet1/changer-status

  firstslot 1
  lastslot 14

  slot 1 file:/backups/tape01
  slot 2 file:/backups/tape02
  slot 3 file:/backups/tape03
  slot 4 file:/backups/tape04
  slot 5 file:/backups/tape05
  slot 6 file:/backups/tape06
  slot 7 file:/backups/tape07
  slot 8 file:/backups/tape08
  slot 9 file:/backups/tape09
  slot 10 file:/backups/tape10
  slot 11 file:/backups/tape11
  slot 12 file:/backups/tape12
  slot 13 file:/backups/tape13
  slot 14 file:/backups/tape14

Agora a vez é do /etc/amanda/DailySet1/disklist, que irá definir quais máquinas terão quais diretórios armazenados:

  # O nome da máquina deve ser o que está no DNS (ou no /etc/hosts)
  cliente.dominio.com /home hard-disk-tar
  cliente.dominio.com /var hard-disk-tar
  cliente.dominio.com /etc hard-disk-tar

  cliente2.dominio.com /home         hard-disk-tar
  cliente2.dominio.com /usr/local hard-disk-tar

Os nomes das máquinas clientes devem estar definidas no seu /etc/hosts ou no seu DNS.

A seguir iremos criar os diretórios das fitas virtuais:

  mkdir /backups

Então, os sub-diretórios:

  mkdir -p /backups/tape01/data
  mkdir -p /backups/tape02/data
  [...]
  mkdir -p /backups/tape14/data

Acerte a permissão de modo que o usuário de backup possa escrever nesses diretórios:

  chown -R backup:backup /backups

Vamos editar o agendador de tarefas (cron) para realizar os backups às 5:00 da manhã. Edite o /etc/crontab e acrescente a seguinte linha:

  00 5    * * *   backup      /usr/sbin/amdump DailySet1

Edite o /etc/amandahosts para permitir o acesso do usuário que irá realizar a restauração de arquivos, no caso o root. Acrescente essas linhas:

  #servidor usuário
  servidor  root

É necessário iniciar os serviços de rede do Amanda, para que o backup e os restores possam ser feitos. Isso é definido através do super-servidor inet ou seu substituto, o xinet. Iremos mostrar como configurar os dois. Primeiro o inetd. Descomente ou insira as seguintes linhas no seu /etc/inetd.conf :

  amanda dgram udp wait backup /usr/sbin/tcpd /usr/lib/amanda/amandad
  amandaidx stream tcp nowait backup /usr/sbin/tcpd /usr/lib/amanda/amindexd
  amidxtape stream tcp nowait backup /usr/sbin/tcpd /usr/lib/amanda/amidxtaped

Reincie o inetd:

  /etc/init.d/inetd restart

Caso possua xinetd, inclua no arquivo '/etc/xinetd.conf':

  service amanda
   {
        socket_type     = dgram
        protocol        = udp
        wait            = yes
        user            = backup
        server          = /usr/lib/amanda/amandad
   }

  service amandaidx
   {
        socket_type     = stream
        protocol        = tcp
        wait            = no
        user            = backup
        server          = /usr/lib/amanda/amindexd
   }

  service amidxtape
   {
        socket_type     = stream
        protocol        = tcp
        wait            = no
        user            = backup
        server          = /usr/lib/amanda/amidxtaped
   }

Os próximos comandos serão dados como o usuário backup:

  su - backup

Crie o arquivo de lista de tapes, que será posteriormente preenchido pelo Amanda:

  touch /etc/amanda/DailySet1/tapelist

Agora vamos etiquetar as fitas virtuais, para uso do Amanda:

  /usr/sbin/amlabel DailySet1 HISS01 slot 1
  /usr/sbin/amlabel DailySet1 HISS02 slot 2
  /usr/sbin/amlabel DailySet1 HISS03 slot 3
  [...]
  /usr/sbin/amlabel DailySet1 HISS14 slot 14

Instalação e Configuração: Clientes

A configuração no servidor está completa. Agora iremos para um cliente Linux, que pode ser o desktop de alguém ou seu Servidor Web, por exemplo. Caso esse cliente também esteja rodando Debian:

  apt-get install amanda-client

Ou instale o cliente do amanda da sua distribuição.

Agora, edite o '/etc/amandahosts':

  # nome da maquina usuario
  servidor.dominio.com        backup

Note que o nome do servidor deve estar definido no /etc/hosts do cliente ou no seu DNS interno. O mais fácil é definir no /etc/hosts, nesse formato:

  192.168.1.110     servidor.dominio.com      servidor

Estamos quase lá. É preciso que o seu cliente esteja escutando na rede para que, quando o servidor se conectar, ele consiga transferir os dados. Como explicado anteriormente, isso pode ser feito via inet ou xinet. Vamos ver os dois casos.

No Debian, quando se instala o amanda-server ele insere a seguinte linha no seu /etc/inetd.conf :

  amanda dgram udp wait backup /usr/sbin/tcpd /usr/lib/amanda/amandad

Se não estiver lá, insira manualmente a linha. Em qualquer dos casos reinicie o inetd.conf:

  /etc/init.d/inetd.conf restart

Caso você utilize o xinetd porém, basta editar o /etc/xinetd.conf e colocar assim:

  service amanda
   {
        socket_type     = dgram
        protocol        = udp
        wait            = yes
        user            = backup
        server          = /usr/lib/amanda/amandad
   }

Reinicie o xinetd:

  /etc/init.d/xinetd restart

E a configuração está pronta!

Restaure os backups!

O seu backup foi realizado com sucesso às 5:00 da manhã e tudo está certo. É hora de aprender a restaurar os backups enquanto tudo está tranquilo e ninguém esta desesperado gritando com você pelos seus dados preciosos.

Existe algumas maneiras de fazer isso. Uma é utilizando o amrecover, como root. Essa opção é a que iremos utilizar, por ser a mais poderosa.

Na máquina servidora, como root, crie um diretório de restore:

  mkdir /restore
  cd /restore

Agora, chame o programa de recuperação:

  amrecover

Dê o comando que determina a data que você quer restaurar, no formato AAAA-MM-DD, onde AAAA é o ano com quatro dígitos, MM é o mês com dois dígitos e DD é o dia com dois dígitos:

  amrecover> setdate 2004-11-06
  200 Working date set to 2004-11-06.

Aqui você determina de qual cliente você quer restaurar o backup:

  amrecover> sethost cliente
  200 Dump host set to cliente.

A seguir você determina de qual "disco" você irá restaurar o backup. Se você especificou para ser feito o backup do diretório /home do cliente ponha /home. Mesmo que você vá restaurar somente um diretório ou somente um arquivo. Veja abaixo como extrair somente um arquivo do diretório /home/daniduc :

  amrecover> setdisk /home
  200 Disk set to /home.

Aqui você navega até o diretório:

  amrecover> cd daniduc
  /home/daniduc

O próximo passo é adicionar o arquivo a ser restaurado. Lembre-se que você pode usar coringas, como o * para adicionar todos os arquivos, ou pode adicionar um diretório:

  amrecover> add .bash_history
  Added /daniduc/.bash_history

Continue adicionando diretórios e arquivos, conforme o necessário.

Aqui você pede para o Amanda selecionar a fita virtual automaticamente:

  amrecover> settape chg-multi
  Using tape "chg-multi" from server localhost.

E finalmente, só resta extrair os arquivos:

  amrecover> extract
  Extracting files using tape drive chg-multi on host localhost.
  The following tapes are needed: HISS06

  Restoring files into directory /restore
  Continue [?/Y/n]? y

  Extracting files using tape drive chg-multi on host localhost.
  Load tape HISS06 now
  Continue [?/Y/n/s/t]? y
  ./daniduc/.bash_history
  amrecover> exit

Pronto, foi feita a restauração do arquivo dentro do diretório /restore! Sua empresa já pode dormir tranqüila, sabendo que possui backups eficientes a um custo extremamente acessível.


Esse tutorial lhe foi útil? Economizou tempo ou dinheiro? Que tal colaborar com o Cybershark? Qualquer dólar ajuda :) MUITO OBRIGADO!

Restaurar backup com amrestore

Posted by Anonymous User at 13-04-2007 09:13 AM

Como recupero os backups com o amrestore??

Restaurar backup com amrestore

Posted by Daniel Duclos at 09-05-2007 02:10 AM
olá. O procedimento está explicado no artigo!

amrestore

Posted by Anonymous User at 02-10-2007 07:22 PM
amigo grande tutorial, parabens

o procedimento com amrestore nao esta no artigo, somente o amrecover. Teria maiores informacoes sobre como instalar essa ferramenta ou entao restaurar os backups de outra maneira, pq eu como outros nao estamos conseguindo e se nao tivermos como restaurar, ja fica dificil usar esse modelo :)

obrigado

Erro com o amcheck

Posted by Anonymous User at 02-08-2007 11:53 AM
Olá! Estou configurando a Amanda e qdo rodei amcheck deu o seguinte erro:

"/etc/amanda/DailySet1/amanda.conf", line 481: dumptype parameter expected
"/etc/amanda/DailySet1/amanda.conf", line 481: end of line is expected
"/etc/amanda/DailySet1/amanda.conf", line 482: dumptype parameter expected
"/etc/amanda/DailySet1/amanda.conf", line 482: end of line is expected
"/etc/amanda/DailySet1/amanda.conf", line 483: dumptype parameter expected
"/etc/amanda/DailySet1/amanda.conf", line 483: end of line is expected
"/etc/amanda/DailySet1/amanda.conf", line 484: dumptype parameter expected

As minhas configurações estão do jeito que está no seu tutorial... Vc saberia me dizer como resolver isso?
Muito Obrigado!

erro do amcheck

Posted by Anonymous User at 02-10-2007 07:18 PM
amigo a resposta pra sua duvida do amcheck esta aqui
http://wiki.zmanda.com/index.php/Configuration_keyword_expected

-

Mesmo erro amcheck

Posted by Anonymous User at 03-06-2008 02:22 PM
Mesmo problema do colega, já li esse wiki mas não entendi o que pode estar errado, em outros sistemas comparei o amanda.conf e está igual, nao entendo porque estas mensagens de erro ocorrem. No wiki só fala p/ verificar se o parametro está correto ou está na sessão correta, mas aparentemente tudo normal.

Se puder ajudar....valeu!

Resolvido! Amcheck

Posted by Anonymous User at 03-06-2008 02:42 PM
Bom retificando....

O problema é que não se pode colocar o tapetype na mesma sessão onde se encontram as fitas já pré-definidas pelo Amanda. É necessário cadastrar na sessão dumptypes, ou seja, a linha abaixo:

# Definição Mídia
define tapetype DISK {
comment "Backup Fita Dell"
length 5000 mbytes # 5 GB de espaço
}

Tem que estar abaixo na sessão dumptypes. Esse howto aqui está certíssimo, é que como o amanda.conf padrão vem cheio de comentários, alguém (assim como eu) pode não resistir e definir a tapetype na sessão já criada por padrão.

Abraço e excelente howto!
Anúncios
 

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: