Amanda Backup
Written by Mottola Michele - Italy - Reggio Emilia   
Monday, 09 January 2012 16:18
Last Updated on Monday, 22 December 2014 10:35
AddThis Social Bookmark Button

Premessa

Questa non è una guida passo passo per imparare a utilizzare Amanda per fare i backup, ma è più una panoramica su come lavora questo sistema di backup. Una più ampia documentazione è nel sito ufficiale www.amanda.org

Introduzione ai backup con Amanda

Amanda è un sistema di backup client-server che adotta, come dispositivi di backup, dei dispositivi a nastri. Amanda, se pure fatto come sistema client-server, ha un funzionamento diverso dagli altri sistemi client-server per il semplice fatto che in amanda è il server a contattare i vari client.

Dispositivi supportati

Amanda può gestire diversi dispositivi a nastri ma anche virtual tape. I virtual tape sono un meccanismo per memorizzare i backup su directory per poi provvedere a memorizzare queste in altri tipi di dispositivi diversi (come dischi removibili, DVD, CD, etc)

Installazione

L'installazione su un sistema debian è quella tradizionale

  apt-get install amanda-server

il sistema aggiunge l'utente backup e crea già questa struttura

  /etc/amanda/
          DailySet1/
               amanda.conf
               disklist

tutti i comandi di amanda vanno eseguiti da utente backup

La configurazione di Amanda

Amanda è organizzata per configurazioni in ognuna delle quali bisogna agire su alcuni file di configurazione, in particolare su amanda.conf e disklist. Il primo è il file di configurazione principale della configurazione mentre il secondo è un file sul quale vanno specificati gli host dei client da backuppare, le loro directory e la modalità dei backup

Meccanismi di autenticazione

Ci sono diversi modi in cui client e server si riconoscono ma quello di default è bsd. In termini concettuali il problema è: come fa il singolo client, quando interpellato dal server, a riconoscere che quel server soltanto è autorizzato ad utilizzarlo? Per questo scopo esiste un file (/var/backups/.amandahosts) in cui è specificato l'hostname del server che potrà usare il cliente quando vorrà fare i backup. Stesso discorso analogo vale per il server che autorizza il client quando quest'ultimo vorrà fare il ripristino.

Backup completo o incrementale

Diversamente da altri sistemi di backup in Amanda non è possibile stabilire la data in cui avverrà un backup completo, ma si può stabilire un periodo entro il quale avverrà almeno un backup completo. Queste impostazioni vanno eseguite su tre parametri principali di amanda.conf

tapecycle 4 tapes
dumpcycle 4 weeks
runspercycle 20

tapecycle imposta il numero di tape (reali o virtuali) che ho a disposizione.
dumpcycle stabilisce ogni quanto tempo dovrà essere fatto almeno un backup completo
runspercycle stabilisce ogni quanti dump il sistema dovrà fare backup completo

Holding disk

La holding disk è una directory (o un disco dedicato) che ha lo scopo, quando il server effettua il backup, di immaginare temporaneamente qui dentro il dump per poi passarlo al tape. Seppur si potrebbe fare a meno della holding disk, questa ha la funzione di controllo prima di scrivere sul nastro. Infatti, se non ci fosse la holding, se per qualche motivo il dump si interrompesse questo andrebbe ugualmente sui tape con le ovvie conseguenze.

dumptype

I dumptype, specificati in amanda.conf, sono sezioni che descrivono in che modo devo essere effettuati i backup delle directory definite in disklist. Qui si specificano principalmente il tipo di compressione da usare, il programma di compressione, le eventuali directory da escludere

define dumptype simple-gnutar {
   auth "bsd"
   compress none
   program "GNUTAR"
}

priority può assumere i valori: low, medium, high

compress può assumere i valori: none, client fast, client best

Se non specifico il metodo di compressione con program allora amanda sceglierà lui cosa usare (tar, dump o altro)

exclude list

Si possono definire file o directory che si vogliono escludere. Queste vanno specificate nei dumptype. Per poter utilizzare l'esclusione occorre però che sia importato il metodo di compressione GNUTAR.

si possono escludere sia singoli file/directory

exclude "./percorso/file"

exclude "./percorso/"

oppure si può utilizzare una lista di directory o file specificati in un file

exclude list "/percorso/lista.txt"

lista.txt
----------
./percorso1/file1
./percorso2/file2
./percorso3

wildcard

E' possibile usare wildcard

"./*.log"

Testare, eseguire e controllare

Ogni configurazione va testata prima di avviare i dump

  /usr/sbin/amcheck DailySet1

se non ci saranno errori si potrà iniziare finalmente ad usare amanda

  /usr/sbin/amdump DailySet1

per poi controllare i dump eseguiti

  /usr/sbin/amadmin DailySet1 find

Il restore

usare amrecover è uno dei modi per ripristinare i backup. Questo strumento permette di recupare singoli file o directory. E' un sistema che va eseguito sul client e quindi bisognerà configurare il server per autorizzare il client. Nessuno ci impedisce di installare client e server sulla stessa macchina in modo da recuperare ciò che ci serve in locale per poi trasferirlo manualmente al client remoto

usare amrecover da una macchina client

anche in questo caso è sufficiente autorizzare la macchina client a collegarsi al server

vim /var/backups/.amandahosts

workstation root amindexd amidxtaped
autorizzo la macchina client workstation

dove workstation è definita in /etc/hosts

192.168.1.100 workstation

da root

amrecover -C DailySet1

comandi base amrecover

amrecover -C DailySet1


listdisk      mi elenca tutti gli host nella disklist
sethost workstation     gli faccio usare un host specifico
listdisk        mi elenca tutte le directory backappate di quell'host
setdisk /percorso     setto una directory di cui voglio fare il restore
ls        comando analogo ad ls in bash
add *     aggiungo l'intera directory e sottodirectory
extract   mi estrarrà il tutto nella dir dove mi sono piazzato prima di entrare con amrecover.
help   mi dà tutti i comandi di amrecover