Acesso direto ao conteúdo
Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: Segurança Linux ·  UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Você está aqui: Home  → Arquivo Dicas-L

 

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

Realizando backups em HD com Amanda

Colaboração: Daniel Duclos

Data de Publicação: 13 de Dezembro de 2004

Versão On Line

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.

Veja a relação completa dos artigos de Daniel Duclos

Formato PDF
Newsfeed RSS
Formato para impressão
PDF RSS Imprimir

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 3.02/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (1566 votos)

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script

Treinamentos, Consultorias e Soluçoes em TI. Baseados em softwares livres e padrões abertos para ambientes de missão crítica

Submarino.com.br

Guia Manga Universo