De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Daniel Duclos
Data de Publicação: 13 de Dezembro de 2004
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.
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.
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
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!
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.
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários