Amanda Kurzreferenz


0. Amanda installieren:

Ich arbeite mit FreeBSD somit war dies der einfachste Teil der Konfiguration. Einfach den Port installieren, dem user operator noch eine Shell geben, sonst ist er ungluecklich (/bin/csh mittels vipw geben) et voila!

Der inetd muss noch vom amanda-server und dem index-daemon wissen:

amanda		dgram	udp	wait	operator	/usr/local/libexec/amanda/amandad	amandad
amandaidx	stream	tcp	nowait	operator	/usr/local/libexec/amanda/amindexd	amindexd
amidxtape	stream	tcp	nowait	operator	/usr/local/libexec/amanda/amidxtaped	amidxtaped

mittels eines

# kill -HUP `cat /var/run/inetd.pid`

den inetd restarten.

1. Neue Hosts hinzufuegen (Serverseitig):

a) Einen Ordner mit einem eindeutigen Namen (z.B. chuck) unter /usr/local/etc/amanda/ anlegen.
b) Darin eine amanda.conf anlegen (am besten von einer bestehenden Konfiguration uebernehmen und darin alle Eintraege mittels suchen und ersetzen auf den neuen Namen aendern (z.B. von netbase auf chuck).
Wichtig dabei: zuerst herausfinden, was fuer ein Tape-Device man hat, am besten mittels:

# cd /usr/ports/misc/amanda24/work/amanda-2.4.1p1/tape-src
# ./tapetype DDS2 /dev/nrsa0

Weiterer wichtiger Punkt: bei den Dump-Types im Global-Sektor index auf yes stellen, und kencrypt ebenfalls auf yes stellen.
c) Ein File mit dem Namen disklist anlegen und darin Hostnamen und Platte definieren (am besten eine bestehende Konfig als Vorbild nehmen).
d) Einen Ordner mit dem Namen der Konfiguration unter z.B. /var/amanda anlegen und darin einen Ordner namens index anlegen. Berechtigungen auf operator:operator setzen.

2.) Neuen Host konfigurieren (Clientseitig):

Zuerst muss amanda auf dem host mal installiert sein. Wenn das der Fall ist, schauen, als welcher user fuer amanda beim compilieren vorgesehen ist (Serverseitig Operator), der muss dann eine Shell mittels vipw bekommen. Im Userhome (Normalerweise / unter FreeBSD) muss ein File namens .amandahosts liegen, worin geschrieben steht, wie der Server heisst und welcher user darauf zugreift (server username). Das File muss operator:operator und chmod 600 werden.
Normalerweise muss auch noch das Slice die Leseberechtigungen fuer other bekommen, z.B.: chmod o+r /dev/rda2s1e.
Als letztes muss der inetd noch vom amandad informiert werden:

# Amanda Client Config
amanda	dgram	udp	wait	operator	/usr/local/libexec/amanda/amandad	amandad

mittels eines

# kill -HUP `cat /var/run/inetd.pid`

den inetd restarten.

3.) Tape labeln:

Ein Band in das Laufwerk legen (hier ein DDS-2, 4 GB), und folgenden Kommand ausfuehren:

# su operator -c "amlabel [Name der Konfiguration] [Konfigurationsname mit Datum]"
Z.B.:

# su operator -c "amlabel chuck chuck-001205"

4.) Die neue Konfig testen:

Mittels folgendem Kommand wird die Konfig auf Richtigkeit getestet:

# su operator -c "amcheck [Name der Konfiguration]"

Z.B.:

# su operator -c "amcheck chuck"

5.) Das erste mal backupen:

Wenn amcheck erfolgreich war, d.h. keine Fehler gefunden worden sind, dann kann mit dem dump begonnen werden. Dies wird wie folgt bewerkstelligt:

# su operator -c "amdump [Name der Konfiguration]"

Z.B.:

# su operator -c "amdump chuck"

6.) Der wohl wichtgste Part: Restoren!

Wie in der Doku beschrieben: ein Backup ist absolut sinnlos, wenn man nicht restoren kann. Deshalb ist dieser der wichtigste Punkt.
Funktioniert im Grunde recht einfach: Zuerst mal auf dem Client-Host, wo man was restoren will, root werden (su). Anschliessend in das Top-Level der Partition wechseln (z.B. / fuer die Root-Partition, oder /usr fuer die Partition, die den Mountpoint /usr hat). Dann mittels folgendem Command die Recovery-Session starten:

# amrecover -C [Konfigurationsname] -d [tape-device]

Das kann z.B. so aussehen:

# amrecover -C chuck -d /dev/nrsa0

Dies oeffnet eine amrecover-Shell, sofern die Dienste in inetd die richtigen Pfade haben und eine Indexierung fuer die Konfiguration gesetzt wurde (ansonsten funktioniert nur amrestore!), bzw. der Tape-Server Host up ist. Nungut, nehmen wir mal dem ist so, dann wechselt man in das Verzeichnis, das man restoren will und fuegt Ordner und Files mittels add hinzu.
Zum Beispiel: ein File liegt in /usr/home/peter und nennt sich fuzzi.dat. Der Client heist abla.fuzzi.bla, der Konfigurationsname ist abla, /usr/home ist als /usr gemountet (und in der disklist steht auch das richtige slice fuer /usr) und der server amanda.fuzzi.bla; das erste was man mal tut ist zum index und tape-server connecten:

# su
# cd /usr
# amrecover -C abla -s amanda.fuzzi.bla -t amanda.fuzzi.bla -d /dev/nrsa0

damit bekommt man eine amanda-shell.

# cd home/peter

Anschliessend setzt man das Datum jenes Zeitpunkts, als es das File noch gab oder von welchem Zeitpunkt man es wiederhaben will:

# setdate 2001-01-12

Dann definiert man das File selbst und beginnt mittels extract das File zu restoren:

# add fuzzi.dat
# extract

Dabei sagt einem amanda, welches Tape einzulegen ist, welche Permissions das ganze bekommen soll und es geht auch schon los. Happy amamdaing! ;-)

7.) Tape loeschen (VORSICHT!!):

Wenn man ein Tape loeschen will/muss, darf man nicht vergessen, dass man Daten loescht ;-) d.h. das Tape ist tatsaechlich futsch. Gut. Machen kann man das mit folgendem einfachen Command:

# mt erase 0

Dann kann man das Tape erneut mit dem Force-Flag relabeln:

# su operator -c "amlabel -f [Name der Konfiguration] [Konfigurationsname mit Datum]

8.) Amflush: Die dump-Daten auf der holding disk auf das Tape spielen:

Normalerweise benutzt man das amflush script. Ich habe dazu ein kleines Skript geschrieben, um diese Sache etwas zu erleichtern: amanda dump made easy. Falls man diesselben Probleme wie ich hat (siehe naechster Punkt), so sollte man das ipcrm.pl innerhalb des Skripts entkommentieren. Was man natuerlich noch zusaetzlich braucht ist das Skript in Punkt 10 ...

9.) Shared memory, oder: "FATAL shmget: Cannot allocate memory":

Whatever. Wenn amanda es nicht schafft genuegend shared memory zu allozieren, bricht logischerweise der dump ab. Das kann man mittels folgendem Kommand loesen, indem man die Bereiche von amanda loescht:

ipcs -a [zeigt die Message Queues, Shared Memory und Semaphores an]
ipcrm -m [id, die man mittels obigen Kommand herausgefunden hat] [Dies loescht den shared memory Bereich]

Oder gleich das dazu passende Skript von mir nehmen ;-)

10.) Aufzeigen lassen wie gross die Dump-Files auf der Holding Disk geworden sind:

Well, das kann man in zweierlei Varianten machen: in jeden Unterordner der Holding Disk gehen und ein du -sk zu machen und anschliessend ein ls -l um das Datum herauszufinden, oder gleich dieses Perl-Skript verwenden ;-)

$Id: index.html,v 1.2 2001/10/08 16:10:20 mic Exp $