Festplatten-basierte Backups mit Amanda auf Debian Etch

Version 1.0
Author: Oliver Meyer <o [dot] meyer [at] projektfarm [dot] de>

Diese Anleitung veranschaulicht, wie man Amanda (The Advanced Maryland Automatic Network Disk Archiver) auf Debian Etch einrichtet. Für diese Anleitung habe ich Ubuntu v7.04 als Backup-Client gewählt. Das daraus resultierende System bietet ein flexibles Backup-System mit vielen Funktionen. Es kann mehrere Hosts via Netzwerk auf verschiedene Geräte sichern. Ich habe für diese Anleitung das Festplatten-basierte Backup gewählt.

Diese Anleitung ist ein praktischer Leitfaden; theoretisches Hintergrundwissen wird nicht abgedeckt. Dies wird in zahlreichen anderen Dokumenten im Netz abgehandelt.

Diese Anleitung ist ohne jegliche Gewähr! Ich möchte darauf hinweisen, dass dies nicht der einzige Weg ist ein solches System einzurichten. Es gibt viele Möglichkeiten dieses Ziel zu erreichen – dies ist der Weg, den ich gewählt habe. Ich übernehme keine Garantie, dass dies auch bei Dir funktioniert!

1 Vorbereitung

Richte ein Debian und Ubuntu Basissystem ein – aktualisiere beide.

Das Debian System wird der Backup-Host sein: server1.example.com.

Das Ubuntu System wird der Backup-Client sein: server2.example.com.

2 Benötigte Pakete auf dem Backup-Host

apt-get install amanda-server xinetd gawk gnuplot readline-common

3 Backup-Host Konfiguration

Merke: Ich verwende die Standard-Konfiguration DailySet1 in dieser Anleitung.

3.1 Amanda.conf

Wir passen amanda.conf für DailySet1 unseren Wünschen an:

vi /etc/amanda/DailySet1/amanda.conf

Bearbeite die folgenden, vorhandenen Zeilen, so dass sie wie folgt aussehen:

tapecycle 6 tapes
tapetype DISK
tpchanger "chg-disk"
changerfile "/etc/amanda/DailySet1/changer"
tapedev "file:/dumps/amandatapes/DailySet1"

Füge die Definition des tapetypes für das virtuelle Bandlaufwerk hinzu. In diesem Beispiel habe ich eine Größe von 3GB für jedes virtuelle Tape gewählt – daraus ergeben sich benötigte 18GB für alle sechs virtuellen Tapes. Passe dies an Deine Vorstellungen an.

define tapetype DISK {
   comment "Backup to HD"
   length 3072 mbytes
}

Als Nächstes müssen wir einen dumptype hinzufügen, in dem wir die Einstellungen für die Backups definieren. Du kannst aber auch die vorhandenen dumptypes verwenden. Pass auf, dass Du einen mit dem Eintrag program „GNUTAR“ verwendest/erstellst. Alle möglichen Einstellungen sind in der amanda.conf gut kommentiert.

define dumptype example {
   global
   comment "example dumptype"
   compress client fast
   program "GNUTAR"
   strategy standard
   priority high
}

3.2 Virtuelles Bandlaufwerk

Zuerst müssen wir für amanda einen Verzeichnis-Baum vorbereiten, in dem die Backups vorübergehend abgelegt werden:

mkdir -p /dumps/amanda

Nun müssen wir für das virtuelle Bandlaufwerk ein Verzeichnis erstellen:

mkdir -p /dumps/amandatapes/DailySet1

Im nächsten Schritt müssen wir die Verzeichnisse für die virtuellen Tapes erstellen. In diesem Beispiel erstellen wir sechs virtuelle Tapes:

for i in 1 2 3 4 5 6; do mkdir /dumps/amandatapes/DailySet1/slot${i}; done

Erstelle die info Datei:

touch /dumps/amandatapes/DailySet1/info

Es ist Zeit das Bandlaufwerk zu initialisieren, indem wir die erste virtuelle Seite in das Bandlaufwerk einfügen:

ln -s /dumps/amandatapes/DailySet1/slot1 /dumps/amandatapes/DailySet1/data

Nun müssen wir den Besitz an den amanda-Benutzer übergeben:

chown -R backup:backup /dumps/

Als Nächstes wechseln wir zum Benutzer backup:

su backup

Merke: Alle amanda-Befehle, außer amrestore, müssen als Benutzer backup ausgeführt werden.

Erstelle die tapelist Datei:

touch /etc/amanda/DailySet1/tapelist

Wir müssen die virtuellen Tapes kennzeichnen, um sie für amanda nutzbar zu machen:

for i in 1 2 3 4 5 6; do /usr/sbin/amlabel DailySet1 DailySet1-${i} slot ${i}; done

3.3 Die Liste der Festplatten

Die Liste der Festplatten bringt alles zusammen. Hier definieren wir, was von welchem Server mit welchen Einstellungen gesichert werden soll. Ein vollständiger Eintrag für einen Server besteht aus fqdn, dem Pfad (z.B. /var) oder Gerät (z.B. sda1), das gesichert werden soll und dem dumptype.

vi /etc/amanda/DailySet1/disklist

server2.example.com /home example

Merke: Vergiss nicht den Backup-Client /etc/hosts hinzuzufügen, wenn Du dieses Setup in einem LAN ohne eigenen DNS verwendest.

3.4 Amandahosts

Letztendlich müssen wir die amandahosts Datei bearbeiten:

vi /etc/amandahosts

server1.example.com backup
server1.example.com root
server2.example.com root

4 Benötigte Pakete auf dem Backup-Client

sudo apt-get install amanda-client xinetd openssh-server

5 Amandahosts auf dem Backup-Client

Füge den Backup-Host der amandahosts Datei hinzu.

sudo vi /etc/amandahosts

server1.example.com backup

Merke: Vergiss nicht den Backup-Host /etc/hosts hinzuzufügen, wenn Du dieses Setup in einem LAN ohne eigenen DNS verwendest.

6 Geplante Backups

Bearbeite die vorhandene crontab (crontab.amanda) in /etc/amanda auf dem Backup-Host wie Du magst.

7 Die Konfiguration auf dem Backup Host testen

/usr/sbin/amcheck DailySet1

sollte wie folgt aussehen:

Amanda Tape Server Host Check
—————————–
Holding disk /dumps/amanda: 25063520 KB disk space available, using 24961120 KB
slot 1: read label `DailySet1-1′, date `20070911′
NOTE: skipping tape-writable test
Tape DailySet1-1 label ok
Server check took 0.254 seconds
Amanda Backup Client Hosts Check
——————————–
Client check: 1 host checked in 0.354 seconds, 0 problems found
(brought to you by Amanda 2.5.1p1)

8 Manuelles Backup

Für Testzwecke (oder aus besonderen Gründen) kannst Du ein Backup natürlich auch manuell machen:

/usr/sbin/amdump DailySet1

Merke: Je nach Datenumfang kann das eine Weile dauern.

9 Backups wiederherstellen

Wechsle zu einem Verzeichnis auf dem Backup-Host, in dem Du die Backup-Dateien (vorübergehend) wiederherstellen möchtest:

cd /tmp/

9.1 Wähle das virtuelle Tape aus

Gib das virtuelle Tape ein, von dem Du die Backups wiederherstellen möchtest:

/usr/sbin/amtape $configuration slot $x

z.B.

/usr/sbin/amtape DailySet1 slot 1

9.2 Das virtuelle Tape zurückspulen

Kein Scherz, Du musst Deine Festplatte zurückspulen 🙂

/usr/sbin/ammt -t file:/dumps/amandatapes/$configuration rewind

z.B.

/usr/sbin/ammt -t file:/dumps/amandatapes/DailySet1 rewind

9.3 Backup(s) vom virtuellen Tape zurückspulen

Um alle Backups vom Tape zu bekommen:

/usr/sbin/amrestore file:/dumps/amandatapes/$configuration

z.B.

/usr/sbin/amrestore file:/dumps/amandatapes/DailySet1

Um ein einzelnes Backup vom Tape zu bekommen:

/usr/sbin/amrestore file:/dumps/amandatapes/$configuration $host $backed_path_or_device

z.B.

/usr/sbin/amrestore file:/dumps/amandatapes/DailySet1 server2.example.com ‚/home$‘

oder

/usr/sbin/amrestore file:/dumps/amandatapes/DailySet1 server2.example.com sda1

9.4 Die Backup-Datei zum Client Host transferieren

Ich habe dafür scp gewählt.

scp -C $backup_file $user@$backup-client:$destination_file

z.B.

scp -C server2.example.com._home.20070911.0 administrator@server2.example.com:/tmp/backup

9.5 Dekomprimiere das transferierte Backup auf dem Client-Host

cd /tmp/
sudo tar xvf backup

10 Links

Das könnte dich auch interessieren …