Backup em HD usando o Amanda

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

Esta é uma adaptação do tutorial Backup em HD com Amanda, objetivando adequar o mesmo a realidade do Mandriva e mudando a quantidade de "fitas".

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 (Advanced Maryland Automatic Network Disk Arquiver) é 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.

Estratégia de backups e definições

Iremos criar no HD 25 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 quatro semanas, com uma fita virtual por backup.

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

 dumpcycle 1 week
 tapecycle 28 tapes

Se quiser realizar dois backups completos em um mês, por exemplo, altere para:

 dumpcycle 2 weeks
 tapecycle 28 

As fitas virtuais ficarão em /backups e o usuário com que o Amanda irá rodar no Ubuntu é o usuário "backup" e grupo "backup" (mas no Mandriva é usuário "amanda" e grupo "disk"). Este usuário e grupo são criados ao instalar-se os pacotes do Amanda no Ubuntu, porém pode variar em outras distribuições.

Resta agora decidir o tamanho que cada fita virtual terá. Nesse exemplo escolhemos 40 GB por fita, o que dá um espaço alocado de 1,12 TB para backups. Não necessariamente você deverá dispor deste espaço imediatamente. Saiba que o tamanho da fita (slot) deve ser maior que a maior partição a ser feito o backup definida em disklist, mais adiante.

Instalação e Configuração: Servidor

No servidor instale o Amanda. A versão 2.4.5 foi utilizada neste tutorial:

 urpmi amanda

Após feita a instalação, vamos configurá-lo. Como primeiro passo recomenda-se fazer uma cópia de todo o diretório de configuração do Amanda para um com nome sugestivo para o seu caso. Em nosso exemplo vou utilizar Cefet.

 cp -rf /etc/amanda/DailySet1 /etc/Amanda/Cefet

Agora edite o arquivo /etc/amanda/Cefet/amanda.conf, edite/apague seu conteúdo deixando-o no formato do modelo abaixo. Lembrando que o que vem depois do sinal # é considerado comentário e será ignorado pelo Amanda:

 org "Cefet"                    # Nome descritivo para as mensagens
 mailto "sysadmin@dominio.com"  # Email de quem irá receber os logs. Pode ser mais de 1 separado por espaço
 dumpuser "amanda"              # Usuário dono dos backups
 
 inparallel 4                   # Procesos em paralelo
 netusage  600                  # Uso máximo de banda em Kbps
 dumpcycle 4 weeks               # Número de dias de um ciclo completo
 tapecycle 28 tapes              # Número de "fitas"
 
 runtapes     1                 # Quantas fitas usar por ciclo
 tpchanger "chg-multi"          # Script controlador de fitas
 changerfile "/etc/amanda/Cefet/changer.conf" # Configuração das fitas
 tapetype HARD-DISK              # Tipo de armazenamento
 labelstr "^Cefet[0-9][0-9]*$"    # Expressão regular das etiquetas das fitas
 
 infofile "/var/lib/amanda/Cefet/curinfo"    # Diretório de dados
 logfile  "/var/log/amanda/Cefet/log"        # Diretório de log
 indexdir "/var/lib/amanda/Cefet/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/Cefet/exclude.gtar"
   priority high
 }
 
 # Definição do armazenamento com tar
 define tapetype HARD-DISK {
   comment "HD"
   length 40000 mbytes  # 40 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"
 }

Crie o arquivo /etc/amanda/Cefet/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/Cefet/changer-status

 firstslot 1
 lastslot 28

 slot 01 file:/backups/Cefet01
 slot 02 file:/backups/Cefet02
 [...]
 slot 28 file:/backups/Cefet28

Crie o arquivo de exeções:

 touch /etc/amanda/Cefet/exclude.gtar

Agora a vez é do /etc/amanda/Cefet/disklist, que irá definir quais máquinas terão quais diretórios armazenados, lembre-se que, caso queira fazer backup de algum diretório do próprio servidor, ele deve aparacer na lista.

 # 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
 [...]

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

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

 mkdir -p /backups/Cefet01/data
 mkdir -p /backups/Cefet02/data
 [...]
 mkdir -p /backups/Cefet28/data

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

 chown -R amanda:disk /backups
 chown -R amanda:disk /etc/amanda

Edite o /var/lib/amanda/.amandahosts para permitir o acesso do usuário que irá realizar o backup e restauração de arquivos, no caso o amanda para backup e o root para restauro. Acrescente essas linhas:

 #servidor usuário
 localhost amanda
 localhost.localdomain amanda
 maquina1.meudominio.com.br amanda
 maquina2.meudominio.com.br amanda
 localhost root
 localhost.localdomain root
 maquina1.meudominio.com.br root
 [...]

O Amanda não é um servidor propriamente dito, ele simplesmente acesse e resposnde a determinadas portas. É necessário então 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 xinet. Ao instalarmos o Amanda o Mandriva já configurou o xinet, mas deixou suas portas "travadas" por questão de segurança, devemos "destravá-las". Para isto basta editarmos os arquivos /etc/xinetd.d/amanda, /etc/xinetd.d/amandaidx e /etc/xinetd.d/amidxtape e habilitarmos os serviços, mudando a diretiva diseble de yes para no nos 3 arquivos.

 disable = no

Reinicie o serviço xinet:

 /etc/init.d/xinetd restart

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

 su - amanda

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

 touch /etc/amanda/Cefet/tapelist

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

 /usr/sbin/amlabel Cefet Cefet01 slot 1
 /usr/sbin/amlabel Cefet Cefet02 slot 2
 /usr/sbin/amlabel Cefet Cefet03 slot 3
 [...]
 /usr/sbin/amlabel Cefet Cefet28 slot 28

Vamos editar a agendada de tarefas (cron) para realizar os backups às 23 h de segunda a sexta-feira, por exemplo. Edite (crontab -e) o crontab e acrescente a seguinte linha:

  0 23    * * 1-5   /usr/sbin/amdump Cefet

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 Mandriva:

 urpmi amanda-client

Agora, edite o '/var/lib/amanda/.amandahosts':

 # nome da maquina usuario
 servidor.dominio.com        amanda

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 xinet. Neste caso devemos editar o /etc/xinetd.d/amanda e mudarmos a diretirva disable conforme abaixo:

 disable = no

Reinicie o serviço xinet:

 /etc/init.d/xinetd restart

Testes

O teste mais básico e rápido para se fazer é com o amcheck.

 /usr/sbin/amcheck Cefet

Se tudo correu bem você deve obter algo do tipo:

Amanda Tape Server Host Check
-----------------------------
amcheck-server: slot 2: date 20071002 label Cefet02 (active tape)
amcheck-server: slot 3: date X        label Cefet03 (new tape)
NOTE: skipping tape-writable test
Tape Cefet03 label ok
WARNING: tapecycle (28) <= runspercycle (28).
Server check took 0.250 seconds

Amanda Backup Client Hosts Check
--------------------------------
Client check: 1 host checked in 10.099 seconds, 0 problems found

(brought to you by Amanda 2.4.5)

Caso tenha algum aviso de arquivo ou diterório faltando, crie-os e mude seu dono e grupo para amanda:disk. Repita o teste.

Como usar alguns recursos do Amanda



VOLTAR para o Portal da Coordenadoria de Informática