Realizando backups em HD com Amanda

  • Post author:
  • Post category:Sem categoria

Colabora??o: Daniel Lobato Ducl?s

Vers?o On Line (http://www.cybershark.net/tutoriais/amanda_hd/)

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 (http://www.amanda.org)
? 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 “[email protected]” # 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.