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
- Amanda: http://www.amanda.org
- Debian: http://www.debian.org
- Ubuntu: http://www.ubuntu.com