Linux als SOHO-Server

für Linux- und Windows-Clients
http://linux.eusterholz.dyndns.org

Kapitel:

Home
Debian Installation
Debian Etc.
Internet-Zugang
Telnet
FTP
r-Utilities
SSH
Printing
NTP
Nameserver
NFS/NIS/Automount
Samba (SMB-Server)
Apache (WEB-Server)
Modem / ISDN
Backup
Etc.


Backup im Netzwerk

Grundlagen Backup ] Standard-Backup-Tools ] [ Backup im Netzwerk ] Bandlaufwerke ] rsnapshot / dirvish / rdiff-backup ] BackupPC ] Amanda ]


Bei mehreren Rechnern im Netzwerk ist es sinnvoll, Backups zentral auf einem System im Netzwerk abzulegen, so sind die relevanten Daten zentral archiviert und auch eine gewisse räumliche Trennung ist gegeben. Weiterhin wird nur ein Sicherungsmedium benötigt, z.B. ein Bandlaufwerk oder eine zentrale Festplatte, auf der die Datensicherung geschieht.

Bei einer Datensicherung im Netzwerk sind zwei Betrachtungspunkte zu berücksichtigen, dabei ist zu unterscheiden welches der Systeme im LAN die Datensicherung inszeniert. In einem Fall sichert ein zu sicherndes System seine Daten auf einen entfernten Server (z.B. Rechner mit Bandlaufwerk), das zu sichernde System inszeniert also selbst die Datensicherung und nutzt nur das andere System nur zum Ablegen seiner Daten. Im anderen Fall inszeniert der Sicherungsrechner selbst das Sichern eines oder auch mehrerer Clients.

In diesem Unterkapitel wird auf Verfahren zum Sichern im Netzwerk eingegangen, dabei werden als zu sichernde Systeme Linux- und Windows-Rechner berücksichtigt. Als Sicherungsrechner dient bei den folgenden Beispielen ein Linux-System.

Datensicherung Linux-Rechner

Datensicherung via NFS-Mount

Soll ein Linux-Rechner eine Datensicherung eines entfernten Linux-Rechners vornehmen, so sind die zu sichernden Bereiche auf dem Sicherungsrechner zu über das Netzwerk zu verbinden ('mounten'). Zum 'mounten' sind 'NFS'-Kenntnisse notwendig, auf die an dieser Stelle jedoch nicht weiter eingegangen wird  (siehe Kapitel: NFS). Nach dem 'mounten' der zu sichernden Bereiche, kann die eigentliche Sicherung so behandelt werden, als wenn es sich um eine lokale Sicherung handelt. Es können nun die zuvor vorgestellten Mechanismen angewandt werden; im einfachsten Fall mit dem Kommando 'cp'.

Datensicherung unter Hinzunahme von 'r-Utilities'/'SSH'

Soll ein zu sichernder Linux-Rechner seine Daten auf einen anderen Linux-Rechner sichern, so können die Daten via 'rsh' oder noch besser via 'ssh' auf dem entfernten System übertragen werden (siehe Kapitel: 'r-Utilities' und 'SSH'). Zum Schreiben/Lesen der Daten unter Benutzung eines Bandlaufwerks können die schon vorgestellten Programme 'tar' und 'cpio' verwendet werden. Auch sollte gleich eine Pufferung der Daten mit 'buffer' berücksichtigt werden. Hier ein Beispiel  für das Sichern auf einen entfernten Rechner:

tar -cf /etc | rsh tempelton buffer -o /dev/tape

und analog dazu das Widerherstellen von einen entfernten Rechner aus:

rsh  tempelton buffer -i /dev/tape | tar -xf -

Auch kann die Steuerung des Bandlaufwerks 'remote' erfolgen, z.B.:

rsh tempelton "mt rewind"

Bei den vorgestellten Beispiel werden alle Operationen auf einen entfernten Linux-Rechner: 'tempelton', ausgestattet mit einen Streamer: '/dev/tape' durchgeführt. Andere Mechanismen z.B. mit 'tar' oder 'cpio' können entsprechend abgeleitet werden. Egal ob die Remote-Sicherung über 'rsh' oder 'ssh' eingeleitet wird, ist eine gültige Konfiguration für die beiden Möglichkeiten notwendig.

Die zuvor vorgestellten Standardmechanismen mit: 'tar', 'cpio' und 'dump'/'restore' unterstützen zumindest in der GNU-Variante auch einen direkten Zugriff auf einen anderen Linux-Rechner im Netzwerk. Dazu ist einfach als Zieldatei '<USER>@<HOST>:<DEVICE>' oder bei gleichen Benutzern kurz '<HOST>:<DEVICE>' anzugeben. Hierzu ein Beispiel unter Anwendung von 'dump' und 'restore' auf einem entfernten Rechner:

dump -0 -f tempelton:/dev/tape ./*

und dazu das interaktive Zurücksichern:

restore -i -f tempelton:/dev/tape

Zum Teil werden die netzwerkfähigen Versionen von 'dump/restore' auch 'rdump/rrestore' genannt. Auch bei direkten Zugriffen  mittels Standardmechanismen werden die Zugriffsrechte wie bei 'rsh'/'ssh' vorausgesetzt.

Datensicherung mittels 'rsync'

Ein sehr leistungsfähiges Programm zum synchronisieren von Dateien und Verzeichnissen ist das unter GPL stehende Programm 'rsync'. Das Programm wurde u. a. von Andrew Tridgell aus dem Samba-Team entwickelt, es eignet sich vor allem für das Sichern von Daten über ein Netzwerk (mirroring/snapshot). 'rsync' kann zur kompletten und zur inkrementellen Sicherung eingesetzt werden, dabei werden nur geänderte Dateien, bzw. sogar nur die geänderten Teile einer geänderten Datei übertragen. Es hat viele Parameter z.B. komprimieren der Daten und bei geschickten Einsatz kann viel Bandbreite im Netzwerk eingespart werden.

Damit 'rsync' über ein Netzwerkgenutzt werden kann, ist auf allen Rechnern die am Backup beteiligt sind 'rsync' zu installieren. Unter Debian  kann dies am einfachsten mit 'apt-get install rsync' geschehen.

Der grundsätzliche Aufruf von 'rsync' ist ähnlich wie bei 'cp' wie folgt:

rsync [Optionen] QUELLE ZIEL

Es ist möglich mit 'rsync' Quelle und Ziel auf dem exakt gleichen Stand zu halten. Das Ziel kann dabei der lokale Rechner oder ein entfernter Rechner im LAN oder WAN sein. Hierzu ein Beispiel für eine remote-Sicherung:

rsync -av --delete --exclude "unwichtig.txt" /tools norbert@meridian:/software

Mit der Option '-a' wird das archivieren eingeleitet, wobei 'v' den 'verbose'-Mode aktiviert. '--delete' besagt, dass auf dem Zielsystem Dateien gelöscht werden, die auf dem Quellsystem nicht mehr existent sind. Mit '--exclude' werden angegebene Dateien bei der Synchronisation ausgeschlossen. Die Quelle der Datensicherung ist das Verzeichnis '/tools'. Als Ziel ist das Verzeichnis '/software' auf dem Rechner 'meridian' als Benutzer 'norbert' angegeben.

Während 'rsync' selbst keine Verschlüsselung kennt, kann dies von 'ssh' übernommen werden, wodurch ein verschlüsselter Abgleich über das Internet möglich ist. Auch kann eine Komprimierung der Daten veranlasst werden. Hierzu ein weiteres etwas Beispiel:

rsync -avz --delete --recursive --update -e ssh norbert@meridian:/tools/etc /test

Mit der Option 'z' werden alle Daten vor dem Senden komprimiert und nach dem Empfang wieder dekomprimiert. Mit '-e' wird die Übertragung über 'ssh' eingeleitet. '--recursiv' bedeutet alle Verzeichnisse werden rekursiv behandelt, '--update' überspringt alle Dateien die neuer auf der Empfängerseite sind.

Weitere Optionen werden auf der Manualseiten zu 'rsync' erklärt. Auch ist es sinnvoll den Einsatz von 'rsync' innerhalb eines Skriptes zu realisieren, da der Aufruf mit den vielen Optionen relativ komplex werden kann. Auch kann so einfach eine zeitgesteuerte zyklische Datensicherung unter Verwendung von 'cron'-Jobs erreicht werden. Wird auf dem Systemen mit unterschiedlichen Benutzern gearbeitet kommt es zur Passwortabfrage, um diese zu unterbinden können diverse Maßnahmen ergriffen werden, siehe hierzu Kapitel 'r-Utillities' und 'SSH'. Unter Windows ist 'rsync' auf der Basis von 'Cygwin' möglich.

Datensicherung Windows-Clients

Die Datensicherung eines Windows-Rechners kann nur vom Linux-Rechner aus inszeniert aus erfolgen, dabei findet die Übertragung zur Sicherung über das SMB-Protokoll statt. Zum Sichern der Daten bieten sich die zum Samba-Paket gehörenden Programme: 'smbclient', 'smbmount', und 'smbtar' an.

Damit sich die 'smb'-Programme mit dem Windows-System verbinden können, ist eine Freigabe auf dem Windows-Rechner zu erstellen. Dabei sollte sich die Freigabe sich auf einen Benutzer mit Passwort beziehen. Der Benutzer kann z.B. wie folgt aussehen:

  

Hier handelt es sich um den Benutzer: 'Backup' und seine Mitgliedschaft ist in einer schon vorgefertigten Gruppe: 'Sicherungs-Operationen'.

Die Freigabe eines Ordners zu Datensicherung kann wie folgt aussehen:

  

In diesem Beispiel wird der Ordner: Daten freigegeben mit der Berechtigung, dass nur der Benutzer: 'Backup' darauf einen Vollzugriff hat. Einen Vollzugriff aus dem Grund, damit auch Daten wieder zurückgespielt werden können.

Das Programm 'smbclient' verfügt über eine so genannte 'tar'-Option (Option '-T') mit dem es möglich ist SMB-Freigaben 'tar'-ähnlich zu bearbeiten. Die Option '-T' verfügt wiederum über weitere Unteroptionen, mit dem das Sichern, Wiederherstellen, etc. gewährleistet ist. Hier zwei Beispiel-Aufrufe für das Sichern und Wiederherstellen mittels 'smbclient':

smbclient //ovation/Daten -U Backup%geheim -Tc /dev/tape

bzw.

smbclient //ovation/Daten -U Backup%geheim -Tx /dev/tape

In beiden Fällen wird auf dem Rechner: 'ovation' mit der Freigabe: Daten zugegriffen, dabei wird der Username: 'backup' und das Passwort: 'geheim' zu Authentifizierung am Shares übermittelt. Im ersten Fall wird eine Sicherung mit '-Tc' ('c' = create) auf das Bandlaufwerk: '/dev/tape' veranlasst. Im zweiten Fall werden die Daten vom Bandlaufwerk mit '-Tx' ('x' = extract) zurückgesichert. Eine Beschreibung weiterer Unteroptionen von '-T' ist der Dokumentation von 'smbclient' zu entnehmen.

Mit 'smbmount' kann ein unter Windows freigegebener Bereich auf dem Linux-Rechner 'ge-mountet' werden. Der nun 'ge-mountete' Bereich kann anschließend mit den schon vorgestellten Standardmethoden auf dem Linux-System erfolgen. Um einen freigegeben Bereich zu 'mounten' kann z.B. folgender Aufruf von 'smbmount' dienen:

smbmount //ovation/Daten /mnt -o username=Backup,password=geheim

oder alternativ auch mit:

mount -t smbfs -o username=Backup,password=geheim //ovation/Daten /mnt

In beiden Fällen wird der Rechner 'ovation' mit dem Share 'Daten' im Verzeichnis '/mnt' des Linux-Rechners 'ge-mountet'. Des weiteren wird der Username und Passwort mit übertragen.

'smbtar' ist ein Tool in  Shell-Script, mit dem ein SMB-Freigabe direkt auf ein Bandlaufwerk übertragen werden kann. Hier ein Beispiel-Aufruf zum Sichern eines Shares:

smbtar -s ovation -x Daten -u Backup -p geheim -t /dev/tape

Und als Gegenstück ein Beispiel zum Wiederherstellen der Daten:

smbtar -r -s ovation -x Daten -u Backup -p geheim -t /dev/tape

Auch hier wird das Windows-Share: '//ovation/Daten' mit der Option '-t' auf dem Bandlaufwerk: '/dev/tape' gesichert.

Sonstige zur Datensicherung Programme unter Linux

Im folgenden weitere kurz stichpunktartig Programme vorgestellt, die evtl. (bedingt) unter Linux zum Replizieren von Daten im Netzwerk genutzt werden können. Alle Programme sind Kommandozeilentauglich und daher für Script-Ablauf geeignet, zum Teil unterstützen diese Programme die Netzwerksicherung, unterschiedliche Betriebssysteme und Bandlaufwerke. Bei den

  • ftp
    Auch mit einer klassischen 'FTP'-Server/'FTP'-Client-Kombination kann man eine quasi Datensicherung betreiben.
  • wget (http://www.gnu.org/software/wget/)
    Bei 'wget' handelt es sich um ein Kommandozeilentool zum transferieren von Daten über ein Netzwerk. Unterstützt werden die Protokolle 'http', 'https' und 'ftp'.
  • unison (http://www.cis.upenn.edu/~bcpierce/unison/)
    Bei 'unison' handelt es sich um ein Synchronisationsprogramm auf Kommandozeile, ähnlich 'rsync', nur mit den Unterschied das 'unison' in beiden Richtungen zwischen zwei Systemen abgleichen kann.
  • flexbackup (http://www.flexbackup.org)
    Bei 'flexbackup'
    ist ein Perl basiertes Skript zum Sichern von Dateien und Verzeichnissen, dabei werden Inkrementelle-, Differentielle- und Voll-Backups unterstützt.
  • rsnapshot (http://www.rsnapshot.org/)
    Ist eine Software zur Erstellung von Datensicherungen von lokalen oder entfernten Systemen. 'rsnapshot' kann vollständigen Datensicherung (Full Backup) und auch inkrementelle Datensicherungen machen, wobei platzsparende Hardlinks zum Einsatz kommen. 'rsnapshot' basiert auf 'rsync'.
  • rdiff-backup (http://www.nongnu.org/rdiff-backup/)
    'rdiff-backup' ist ein in der Programmiersprache 'Python' geschriebenes Backupwerkzeuge welches auf dem 'rsync'-Algorithmus basiert. Es kann Daten effizient über ein Netzwerk kopieren und kann im Gegensatz zum normalen 'rsync' auch ältere Versionen abspeichern, dabei werden auch symbolische Links unterstützt. Die Idee bei 'rdiff-backup' ist eine Kombination aus einer Spiegelung und einer inkrementellen Sicherung.
  • dirvish (http://www.dirvish.org)
    Sehr interessant, gerade für Benutzer von 'rsync'. 'dirvish' ist Backup-System, das auf 'rsync' basiert, der Vorteil des Programms ist, dass sich automatisiert Backups anlegen lassen und nach einem Rotationsprinzip die ältesten Sicherungen wieder gelöscht werden. Auf unveränderte Dateien zum vorherigen Backup werden nur Hardlinks angelegt, so reduzieren sich sowohl der Datenverkehr als auch der benötigte Plattenplatz.
  • afbackup (http://www.afbackup.org/)
    Client-Server-Sicherungssystem, das mehreren Arbeitsstationen einen zentralen Speichermechanismus auf einem festgelegten Sicherungsserver bereitstellt.
  • Amanda (http://www.amanda.org)
    Bei Amanda handelt es sich um einen Backup-Server, der mehrere Workstation auf ein Bandlaufwerk sichern kann.
    Amanda wird im Verlauf dieses Kapitels separat vorgestellt.
  • BackupPC (http://backuppc.sourceforge.net/ )
    Zum Erstellen von Backups auf einen zentralen Netzwerkserver; mit 'Apache/CGI'-Benutzeroberfläche für Administratoren und User. Es werden Standard-Mechanismen für die Sicherung benutzt, auch können Clients unterschiedlicher Betriebssysteme gesichert werden. Eine detaillierte Vorstellung von 'BackupPC' erfolgt auf einer separaten Seite in diesem Kapitel.
  • tob ( http://tinyplanet.ca/projects/tob/ )
    'tob' (tape- oriented backup) eignet sich vor allem für Sicherungen auf Bandlaufwerke und ist einfach zu konfigurieren. Leider wird 'tob' nicht mehr weiter maintainiert.
  • Bacula ( http://www.bacula.org/ )
    Konsolenbasierte Server-Client Datensicherung. Eigentlich eine Sammlung mehrer Programme. Da es modular aufgebaut ist, kann es auch auf einem einzigen Rechner 'Ressourcen'-schonend eingesetzt werden. Die Sicherung kann auf viele Medien erfolgen, auch Bandlaufwerke werden unterstützt.
  • Partimage ( http://www.partimage.org/ )
    Erstellt Images ganzer Partitionen. Die Images können komprimiert und geteilt werden; ideal für 'Desaster Recovery'  von einzelnen Systemen.

Anmerkungen

Wenn der Windows-Rechner als Domäne-Client betrieben wird, so ist  bei dem 'smb'-Tools die 'Workgroup' mit anzugeben. Das 'smbmount'-Kommando sieht, bezogen auf das obige Beispiel wie folgt aus:

smbmount //ovation/Daten /mnt -o username=Backup,password=geheim,workgroup=eusterholz.smb

Grundsätzlich sollte keine Sicherung laufen, während an viele Clients gearbeitet wird, da das Backup eine erhebliche Last für die betroffenen Rechner und das Netzwerk darstellt.

Weitere Infos

Manualseiten zu: rdump, rrestore man rdump, man rrestore
Manualseite zu: smbclient, smbmount, smbtar man smbclient, man smbmount, man smbtar
Manualseiten zu: rsh, ssh man rsh, man ssh
Homepage: rsync http://samba.anu.edu.au/rsync/
Manualseiten zu: rsync man rsync
Easy Automated Snapshot-Style Backups with Linux and Rsync http://www.mikerubel.org/computers/rsync_snapshots/

Home ] Nach oben ] Grundlagen Backup ] Standard-Backup-Tools ] [ Backup im Netzwerk ] Bandlaufwerke ] rsnapshot / dirvish / rdiff-backup ] BackupPC ] Amanda ]

letzte Änderung: 08. Mai 2009

 

Copyright © 2004 Norbert Eusterholz