Hochverfügbarkeit, redundante Massenspeicher und RAID-Systeme sind zweifelsohne eine feine Sache. Nun sind Verfügbarkeit und Ausfallsicherheit zwar wichtige Faktoren – eine ordentliche Datensicherung gehört dennoch zu den Pflichtaufgaben. Denn so wie Backup und Archivierung zwei völlig verschiedene Dinge sind, ersetzt auch ein noch so hochverfügbares System keine Datensicherung.
Nur eine konsequente und gut durchdachte Backup-Strategie bietet ausreichenden Schutz vor dauerhaftem Datenverlust. Dieser Artikel stellt Backup-Lösungen unter Linux mit Bordmitteln oder fertigen Programmen vor.
Die Hausmittel rsync und tar
In fast jeder Linux-Installation befinden sich rsync und tar mit an Bord. Wie Sie damit Backups automatisieren und sogar verschlüsselt übertragen, finden Sie ausführlich im TecChannel-Workshop „Automatische Backups mit Linux“ beschrieben. Das Gespann rsync und tar lässt sich via Kommandozeile nutzen. Man kann die beiden Softwarepakete durchaus als Urgesteine der UNIX-Welt bezeichnen. Ihren Nutzen haben sie aber alles andere als verloren, denn im Gespann mit find, ssh und cat lässt sich eine mächtige Backup-Lösung selbst basteln. TecChannel möchte noch einmal den grundsätzlichen Aufruf und die wichtigsten Schalter der beiden Tools vorstellen:
rsync <Schalter> <Quelle> <Ziel>
Schalter für rsync |
Funktion |
-a |
Archive-Modus, äquivalent zu -rlptgoD |
-r |
rekursiv, alle Unterverzeichnisse |
-l |
kopiert symbolische Links als symbolische Links und nicht als Datei |
-p |
bewahrt die Berechtigungen der Dateien |
-t |
bewahrt die Zeitstempel der Dateien |
-g |
bewahrt die Gruppenberechtigungen der Dateien |
-o |
bewahrt den Besitzer der Datei (nur root) |
-D |
bewahrt Geräte |
-v |
mehr Ausgabetext auf dem Bildschirm |
-q |
weniger Ausgabetext auf dem Bildschirm |
-u |
nur Updates; überschreibt keine neueren Dateien |
-W |
kopiert die gesamte Datei, nicht nur das Delta |
-n |
Trockenlauf, zeigt nur an, was passieren würde |
-e |
spezifiziert die remote shell (zum Beispiel ssh) |
-z |
Dateien komprimieren |
-4 |
vorzugsweise IPv4 benutzen |
-6 |
vorzugsweise IPv6 benutzen |
--delete |
Alle Dateien, die im Ziel, aber nicht in der Quelle vorhanden sind, werden gelöscht |
--exclude=<Ausdruck> |
Ausschluss bestimmter Dateien |
--exclude-from=<Datei> |
Ausschluss bestimmter Dateien, die in Listenform in <Datei> stehen |
--include=<Ausdruck> |
diese Dateien einbeziehen |
--include-from=<Datei> |
Dateien einbeziehen, die in Listenform in <Datei> stehen |
--files-from=<Datei> |
Eine exakte Liste von Dateien aus <Datei> wird kopiert |
Einen Gesamtüberblick der zahlreichen rsync-Schalter finden Sie in der entsprechenden man-Page: man rsync
tar <Funktion> <Optionen> <Dateien>
Schalter für tar |
Funktion |
-c |
create erzeugt eine neues Archiv |
-f |
Archive-Datei |
-r |
append hängt Dateien an vorhandenes Archiv an |
-t |
listet den Inhalt eines Archivs auf |
-u |
update hängt nur Dateien an, die neuer sind als die Kopie im Archiv |
-x |
extract packt Dateien aus dem Archiv aus |
-j |
Archiv durch bzip2 filtern |
-Z |
Archiv durch compress filtern |
-z |
Archiv durch gzip filtern |
--exclude=<Datei> |
Datei <Datei> ausschließen |
-X, --exclude-from=<Datei> |
Inhalt aus <Datei> ausschließen |
Auch für tar existiert eine entsprechende man-Page: man tar
Komplexe Backup-Szenarien mit Bacula
Die Backup-Software Bacula ist technisch gesehen ein netzwerkfähiges Datensicherungsprogramm mit Client-/Server-Architektur. Bacula wird als Open-Source-Projekt entwickelt. Es erfüllt alle Ansprüche einer dezentralen Backup-Lösung und eignet sich somit auch für kleinere und mittelgroße Rechenzentren. In einschlägigen Foren ist zu lesen, dass es Bacula mit kommerziellen Backup-Lösungen aufnehmen kann.
Das Datensicherungsprogramm ist modular aufgebaut. Diese Eigenschaft ist auch Baculas größte Stärke. Die Software auf Client-Seite lässt sich für fast alle Betriebssysteme und Hardwareplattformen einsetzen. Auch für Microsoft Windows gibt es Client-Unterstützung. Die Module sind im Einzelnen:
Modul |
Aufgabe |
Catalog |
der Katalog in einer SQL-Datenbank |
Director (bacula-dir) |
Schaltzentrale: steuert alle Vorgänge zur Sicherung, Wiederherstellung und Überprüfung der Daten |
Speicherplatz-Daemon (bacula-sd) |
Ist auf dem Sicherungsserver für das Schreiben und Lesen der Daten verantwortlich |
Datei-Daemon (bacula-fd) |
Läuft auf dem Client, von dem Daten gesichert werden sollen |
Console |
Wird zur Kommunikation mit dem Director verwendet. Es gibt das Kommandozeilen-Tool Bconsole sowie grafische Oberflächen für Linux, Unix und Windows |
Monitor |
für Überwachungszwecke |
Selbstverständlich beherrscht Bacula die Dreifaltigkeit der Backup-Arten: komplett, differenziell und inkrementell. Obwohl die aktuelle Ausgabe 5.0.1 ist, bieten viele Linux-Distributionen noch ältere Versionen in den Softwarelagern an. Wer also die neueste Version verwenden möchte, muss diese zwangsläufig selbst übersetzen. Voraussetzung hierfür ist GNU C++ als Version 2.95 oder höher.
Ältere Versionen könnten funktionieren, werden allerdings nicht offiziell unterstützt. Weitere Informationen zu den Mindestanforderungen finden Sie bei bacula.org.
Bei Ubuntu 9.10 ist zum Beispiel noch Version 2.4.4 an Bord. In der LTS-Variante Ubuntu 10.04 „Lucid Lynx“ stellen die Entwickler aber schon die derzeit aktuelle Version bereit. Die Konfigurationsdateien der einzelnen Module sind nach den Binärdateien der Daemons benannt und befinden sich im Verzeichnis /etc/bacula/.
Hier finden Sie die vier Dateien bacula-dir.conf, bacula-sd.conf, bacula-fd.conf und bconsole.conf. Das ist sozusagen das Herzstück von Bacula. Sie können unter anderem die TCP-Ports festlegen. Die von den Entwicklern empfohlenen Ports sind 9101 für den Director, 9102 für den Datei-Daemon und 9103 für den Speicherplatz-Daemon.
Bacula unterstützt auch diverse Bandlaufwerke. Vor einer Verwendung sollten Sie allerdings einen Blick auf die dafür bereitgestellte Liste werfen. Das Gleiche gilt für sogenannte Autochanger.
Sie müssen nicht unbedingt die Konsole verwenden, um Bacula zu administrieren. Es gibt auch diverse grafische Administrationswerkzeuge für das Backup-System. Eines davon ist BAT (Bacula Administration Tool). Unter Ubuntu lässt es sich benutzen, wenn Sie das Paket bacula-console-qt installieren. Danach können Sie es via Konsole mit bat aufrufen. Das setzt allerdings voraus, dass ein X-Server auf dem Rechner läuft.
Eine andere Möglichkeit wäre die Verwendung von Webmin. Das können Sie auch auf einer Servervariante ohne grafische Oberfläche installieren. Dennoch haben Sie die Möglichkeit, via Maus und Browser alle Einstellungen von Ihrem Arbeitsplatz aus zu erledigen. Eine komplette Administration via Konsole ist zwar auch möglich, erfordert aber anders als bei den grafischen Varianten einen Blick in die Dokumentation. Für die Software gibt es mit Bacula Systems zudem kommerzielle Unterstützung.
Amanda – Advanced Maryland Automatic Disk Archiver
Amanda ist ebenfalls eine Client-Server-Backup-Lösung. Das Projekt kam ein wenig in die Diskussion, nachdem die Entwicklung von Zmanda übernommen wurde.
Der Kern an sich ist zwar Open Source, aber eine grafische Benutzeroberfläche (ZMC) gibt es zum Beispiel nur als unfreies Tool zusammen mit dem kostenpflichtigen Amanda Enterprise. Auch andere proprietäre Weiterentwicklungen sind der Community sauer aufgestoßen. Dennoch kann die Open-Source-Lösung viel und unterstützt zum Beispiel Autochanger-Systeme komplett.
Die Datensicherungslösung erfreut sich aber weiterhin großer Beliebtheit. Ein Hauptargument der Amanda-Anhänger gegen Bacula ist, dass ein SQL-Server als Katalog für die Daten verwendet wird. Viele trauen dem Frieden nicht und fragen sich, was passiert, wenn der MySQL- oder PostgreSQL-Server seinen Geist aufgibt.
In der aktuellen Ubuntu-Version 10.04 LTS „Lucid Lynx“ finden Sie die neueste Amanda-Version 2.6.1p1-2. Nach der Installation legen Sie die Konfigurationsdateien im Verzeichnis /etc/amanda an. Amandas Konfiguration kann anfangs ein wenig verwirrend sein. Sie werden kaum ohne einen Blick in die Dokumentation oder zumindest in das Quick-Start-Tutorial auskommen.
Amanda – Funktionsweise
Prinzipiell funktioniert diese Lösung folgendermaßen: Auf jedem Client gibt es eine Datei mit Namen .amandahosts, die den Namen des Datensicherungsservers und den dort verwendeten Benutzernamen beinhaltet. Sie gewährt dem Server Zugriff auf den Client. Auf dem Server gibt es diese Datei ebenfalls. Allerdings beinhaltet diese die Client-Namen der zu sichernden Rechner. Die Liste der zu sichernden Verzeichnisse ist ebenfalls auf dem Server gelagert. Sie nennt sich disklist und enthält auch die Art des Backups. Hier legen Sie zum Beispiel fest, ob die Software die zu sichernden Daten komprimieren soll.
Ein natives Modul für Webmin gibt es leider nicht. Allerdings sind Bestrebungen im Gange, eines zu entwickeln. Es befindet sich derzeit in einer Beta-Phase, wurde allerdings zuletzt im Jahre 2006 aktualisiert. Sie können es wie jedes andere Webmin-Modul installieren, und es hilft gerade Neulingen beim Aufsetzen eines Amanda-Servers ungemein. Wie schon erwähnt, bietet Zmanda auch kostenpflichtige Enterprise-Lösungen mit professionellem Support an. Die Datensicherungsspezialisten offerieren ebenfalls eine MySQL-Backup und eine Cloud-Backup-Lösung.
Fazit
Mit rysnc und tar lassen sich auch komplexe Datensicherungen anlegen und automatisieren. Wie Sie damit Backups automatisieren und sogar verschlüsselt übertragen, finden Sie ausführlich im TecChannel-Workshop „Automatische Backups mit Linux“ beschrieben. Wenn Sie auf fertige Software zurückgreifen möchten, bieten sich die erwähnten Lösungen Bacula und Amanda an. Diese gehören zu den beliebtesten und am häufigsten eingesetzten Lösungen, wenn es um kostenfreie Datensicherung geht.
Dank der grafischen Oberfläche bat und der nativen Webmin-Unterstützung ist Bacula für Einsteiger in diese Materie einfacher zu handhaben. Dieser Umstand soll aber keinesfalls die Leistungsfähigkeit von Amanda schmälern. Von den Möglichkeiten her stehen beide Open-Source-Programme kommerziellen Lösungen in nichts nach. Sie sollten sich aber darauf einstellen, das entsprechende Handbuch wälzen zu müssen.
Einen interessanten Vergleich verschiedener Backup-Systeme finden Sie übrigens auf der Bacula-Seite. Hier vergleichen die Entwickler ihr Programm mit namhaften Lösungen wie Tivoli, Veritas, Legato Networker, BrightStor ARCserver, Arkeia Network Backup, BakBone NetVault, Amanda und Bacula. Die Datei ist recht aktuell und wurde am 16. Februar 2010 letztmalig aktualisiert. (mje)