Inhaltsverzeichnis
Backup mit TSM für Linux
Installations- und Konfigurations-Hinweise für das Backup mit dem TSM Tivoli-Storage-Manager unter Linux
Diese Anleitung wurde nach bestem Wissen und Gewissen erstellt. Für enthaltene Fehler kann aber keine Haftung übernommen werden. Es wird vorausgesetzt, dass der Nutzer dieser Anleitung mit grundlegenden Kenntnissen der Systemadministration unter Linux vertraut ist. Da sowohl die Installation als auch die Konfiguration, i.d.R. dann auch die Anwendung mit „root“-Super-User-Rechten durchgeführt wird, sollte entsprechend umsichtig verfahren werden.
Terminologie und kleine Einführung
TSM steht für Tivoli Storage Manager und ist ein Backup-System ( = Sicherungs-System) von IBM. Mit einem TSM-Klienten kann man seine Daten auf einen TSM-Server sichern und bei Bedarf – z.B. wenn man eine Datei gelöscht hat – wieder zurückholen. TSM steht für die gängigsten Betriebssysteme zur Verfügung. Es gibt (Stand 2011) eine Landeslizenz für die Nutzung in allen staatlichen Hochschulen des Landes Baden-Württemberg.
Ein Knoten (oder auch „Node“) ist ein Computer im Netz (LAN, Internet), der mit seiner TSM-Client-Software über das Netz auf den TSM-Server sichern will. Dabei ist es egal, ob es sich um einen „PC“ oder um ein Server-System handelt.
Beim Backup (Sicherung) werden Daten – im Wesentlichen Dateien und Verzeichnisse – vom Klienten auf den Server übertragen und dort gesichert bzw. bereit gehalten, solange die Daten auf dem Knoten (noch) existieren … dazu später mehr.
Beim Restore (Wiederherstellung) können Daten zurückgeholt werden. Es existieren bis zu zwei Versionen jeder Datei: eine aktuelle und eine inaktive … auch dazu später mehr.
Es gibt weiter noch die Funktionen Archive und Retrieve; der wesentliche Unterschied zu Backup und Restore besteht darin, dass ein Backup nach einem Sicherungslauf dem Benutzer die Möglichkeit geben soll, sein System wieder so herzustellen wie es zum Zeitpunk des Sicherungslaufs war. D.h. die Dateien werden (mehr oder weniger) 1:1 abgebildet, gelöschte Dateien auf dem Knoten auch auf dem Server wieder gelöscht. Im Gegensatz dazu können nach dem Archivieren die lokalen Dateien auf dem Klienten gelöscht werden, die Archive verbleiben auf dem TSM-Server.
Bei einem Sicherungslauf (Backup) werden also auf dem Knoten nicht mehr vorhandene Dateien auf dem TSM-Server ebenfalls entfernt oder genauer als „inaktiv“ markiert; erst nach einer gewissen Zeit (derzeit nach 30 Tagen) werden diese inaktiven Dateien ganz gelöscht. Innerhalb dieser Frist kann man sie also auch wieder restaurieren.
Aus der zuvor beschriebenen TSM-Arbeitsweise beim „Backup“ ergibt sich folgende WARNUNG:
Nach einem Platten-Crash oder nach versehentlichen Lösch-Aktionen sollte als allererste Reaktion jegliche automatisch oder manuell initiierte Sicherung unterbunden werden, damit der Zustand der letzten Sicherung auf dem TSM-Sicherungssystem nicht mehr verändert wird ! Also TSM-Scheduler oder TSM-relevante Cron-Jobs anhalten bzw. deaktivieren ! Auch wird dringend empfohlen, nach ersten Backups ein Restore zu erproben bzw. zu üben, damit man im Notfall sein System bzw. seine Daten schnellstmöglich wieder verfügbar machen kann.
Nicht vergessen: nach Restaurierung der Daten die automatische Sicherung wieder aktivieren.
Vor einem Betriebssystemwechsel sollte bedacht werden, dass ein Zugang zu den bestehenden Sicherungs- und Archiv-Dateien nach dem Wechsel nur bedingt möglich ist. Bei einem Wechsel von Windows nach Unix/Linux oder umgekehrt erscheint dies selbstverständlich, aber auch die Interoperabilität verschiedener Unix- und Linux-Systeme ist nicht gewährleistet. Ein TSM-Restore-Funktionstest sollte deshalb immer erfolgen, bevor ein altes System ganz außer Betrieb genommen wird.
Bitte bedenken Sie auch die Restaurierungszeit größerer Datenmengen, und richten Sie die (lokale) Redundanz Ihrer Daten entsprechend der maximal akzeptierten Restaurierungsdauer ein. Bei einer 100-MBit-Netzwerkanbindung benötigt die Übertragung eines Gigabytes (109 Byte) ca. zwei Minuten, ein Terabyte (1012 Byte) schon mehr als 32 Stunden …. und das auch nur bei optimalsten Bedingungen; d.h. unter der Voraussetzung, dass die (geteilten) Resourcen des TSM-Servers ausreichen, um Ihre Netzwerkverbindung auszulasten, wobei Letztere auch nicht immer exklusiv zur Verfügung stehen wird. Vermutlich wird man also ein Mehrfaches der genannten Zeiten einrechnen müssen.
Auch ein RAID-System verbschiedet sich hier und da gerne mal von jetzt auf nachher, insbesonders wenn bei nicht permanent überwachten Systemen mehrere Festplatten gleichzeitig oder sehr zeitnah Fehler bringen, und keine oder zu wenig „hot spare“-Platten installiert sind, oder auch ein Fehler in der Elektronik auftritt. Bei mehreren Terabytes an Daten ist es deshalb nicht nur sinnvoll sondern anbetracht möglicherweise zu langer Restaurierungszeiten zwingend notwendig, lokale Redundanz, z.B. in Form eines zweiten, parallelen Fileservers zu installieren, sodass ein „full restore“ via TSM hoffentlich niemals notwendig werden wird. Idealerweise unterstützen die Fileserver dann auch noch "Snapshot"-mechanismen, sodass Benutzungsfehler leichter zu beheben sind.
Vorbereitung
Registrierung eines Knotens
Zunächst mal ist eine Registrierung der zu sichernden Maschine hier erforderlich, was in der TSM-Anleitung ausführlich beschrieben wird. Dort wird auch das weitere Vorgehen für Windows-Betriebssystem beschrieben.
Eine weitere Lizenzierung ist derzeit nicht nötig. Allerdings heißt das nicht, dass die Nutzung „kostenfrei“ wären. Im Rahmen der Landeslizenz werden die Kosten dieser nach einem komplizierten Schlüssel abhängig von der Nutzung auf die Hochschulen verteilt. Diese Kosten werden derzeit aber *nicht* auf die einzelnen Nutzer umgelegt.
Großverbrauchern mit Backupvolumen im Terabyte-Bereich werden allerdings die notwendigen Kassetten in Rechnung gestellt. Die jeweils aktuellen Preise können bei Herrn Gehring ulrich.gehring@rz.uni-freiburg.de erfragt werden.
Download der TSM-Client-Software
Die TSM-Client-Software kann man beim KIT in Karlsruhe herunterladen. Dort findet man verschiedene TSM-Versions-Verzeichnisse und darin die Betriebssystem-Versionen; i.d.R. sollte man die neueste Version nehmen (Stand Juli 203: Version 8.1.19). Aus dem entsprechenden Unterverzeichnis wird mindestens das enthaltene Tar-Archiv und je nach Wunsch noch ein Sprachpaket benötigt. Die Pakete sind in folgender Form benannt (am Beispiel der Version 8.1.19, die im Folgenden als Beispiel dient):
- 8.1.19.x-TIV-TSMBAC-LinuxX86.tar
- TIVsm-msg.DE_DE.i386.rpm
Bitte beachten Sie, daß Client Versionen < 7.1.14 nicht mehr unterstützt werden!
Dokumentation
Aktuelle Dokus zu Tivoli TSM (Stand Januar 2011) gibt's bei IBM.
Einrichtung
Abhängigkeiten bei alten Versionen (bis TSM-Version 6.1.x.x)
Erst ab TSM Version 6.3 (vermutlich auch schon 6.2 – aber nicht getestet) wird TSM als echte 64-Bit-Version ausgeliefert. Bis Version 6.1 muss man die folgend beschriebenen Abhängigkeiten beachten.
64 Bit
Zunächst muss auf 64-Bit Systemen sichergestellt werden, dass die entsprechenden 32-Bit-Versionen der libstdc++
installiert sind, andernfalls kommt es bei der Installation zu dieser oder einer ähnlichen Fehlermeldung:
error: Failed dependencies: libstdc++.so.5 is needed by TIVsm-API-6.1.0-0.i586 libstdc++.so.5(CXXABI_1.2) is needed by TIVsm-API-6.1.0-0.i586 libstdc++.so.5(GLIBCPP_3.2) is needed by TIVsm-API-6.1.0-0.i586
Die benötigten Pakete tragen je nach Distribution unterschiedliche Namen, hier eine Auswahl:
Distribution | Version | Paketname | Installationsbefehl |
---|---|---|---|
openSUSE | 11.1 | libstdc++33-32bit-3.3.3-7.10 | zypper in libstdc++33-32bit |
Red Hat Enterprise Linux | 5.4 | libstdc++.i386 | yum install libstdc++.i386 |
Debian GNU/Linux | 5.0 (Lenny) | lib32stdc++6 | aptitude install lib32stdc++6 |
Auspacken
Sind alle Abhängigkeiten erfüllt, kann man in einer Shell das Tar-Archiv entpacken:
tar xvpf 8.1.19.0-TIV-TSMBAC-LinuxX86.tar
Man erhält die RPM-Pakete
TIVsm-API.i386.rpm
TIVsm-API64.i386.rpm
TIVsm-BA.i386.rpm
TIVsm-HSM.i386.rpm
sowie einige ReadMe-Dateien.
Installation
64 und 32 Bit
Zum Installieren mit „rpm
“ als root in einer Shell ausführen, Reihenfolge beachten:
rpm -U TIVsm-API.i386.rpm # die TSM-Basisbibliotheken rpm -U TIVsm-BA.i386.rpm # der TSM Backup Archive Client rpm -U TIVsm-msg.DE_DE.i386.rpm # das deutsche Sprachpaket
64 Bit
rpm -U TIVsm-API64.i386.rpm # die TSM-Basisbibliotheken fuer 64-Bit Systeme
Ergänzung zur neueren 6.2-Version: Ab der 6.2-Version werden je zwei weitere RPMs für 32 und 64 Bit im „tar“-File mitgeliefert, welche zur Erfüllung der Abhängigkeiten notwendig sind:
gskcrypt32-8.0.13.3.linux.x86.rpm
gskssl32-8.0.13.3.linux.x86.rpm
und für 64-Bit zusätzlich:
gskcrypt64-8.0.13.3.linux.x86_64.rpm
gskssl64-8.0.13.3.linux.x86_64.rpm
Ergänzung zur aktuellen TSM-6.3-Version: Für eine Installation auf einem 64-bit-System reicht es aus, neben den „gskrypt64“-RPM's das Paket TIVsm-API64.x86_64.rpm sowie TIVsm-BA.x86_64.rpm zu installieren, letzteres jedoch ggf. mit „–nodeps“ :
rpm -v -U gskcrypt64-8.0.14.11.linux.x86_64.rpm gskssl64-8.0.14.11.linux.x86_64.rpm rpm -v -U TIVsm-API64.x86_64.rpm rpm -v -U --nodeps TIVsm-BA.x86_64.rpm # zunaechst bitte ohne --nodeps-Option ausführen/ausprobieren !
Im Versions-Paket TSM-6.2.4.0 befinden sich noch parallel 32- und 64-bit Pakete. Für 32-bit-Systems ist es deshalb die vielleicht besser geeignete Version.
Wenn alles geklappt hat, findet sich alles Notwendige unterhalb von
/opt/tivoli/tsm/
insbesondere die Client-Anwendung im Verzeichnis
/opt/tivoli/tsm/client/ba/bin/
Konfiguration (Vorbereitung)
Dort sind dann auch die Vorlagen für Konfigurations-Dateien zu finden, die von der Anwendung standardmäßig in diesem Verzeichnis gesucht werden:
- dsm.sys(.smp)
- dsm.opt(.smp)
Da der TSM-Client diverse Einstellungen im Verzeichnis „/etc/adsm/
“ ablegt, ist es aber sinnvoll diese beiden Dateien ebenfalls dort zu speichern und im Anwendungsverzeichnis die entsprechenden symbolischen Links anzulegen:
cd /opt/tivoli/tsm/client/ba/bin/ mkdir /etc/adsm/ cp dsm.sys.smp /etc/adsm/dsm.sys cp dsm.opt.smp /etc/adsm/dsm.opt ln -s /etc/adsm/dsm.sys ln -s /etc/adsm/dsm.opt
Konfiguration: dsm.sys
So könnte Ihre (Minimal-)dsm.sys-Datei aussehen:
servername ARCH2 COMMmethod TCPip TCPPort 1503 TCPServeraddress arch2.uni-freiburg.de Passwordaccess generate inclexcl /etc/adsm/inclexcl compression off nodename myhost.mydomain.uni-freiburg.de passworddir /etc/adsm/security
Zu den o.a. Parametern:
- Der
Servername
(hier „ARCH2
“) ist ein Alias für den daran anschliessenden TSM-Server-Definitionsblock für einen unserer (derzeit) vier TSM-Server, der Ihnen bzw. Ihrem Knoten bei der Registrierung zugewiesen wird. Dieser Definitionsblock beinhaltet zwingend die Kommunikations-Parameter zum TSM Server: COMMmethod
muss auf das Protokoll „TCPip
“ gesetzt werdenTCPServeraddress
benötigt die IP-Adresse oder den DNS-Namen des TSM-Servers (hier „arch2.uni-freiburg.de
“)TCPPort
gibt den den serverseitigen Port an (hier im Beispiel „1503
“)
Passwordaccess generate
empfiehlt sich für „multi user clients“: dadurch wird sichergestellt, dass jeder Benutzer auf dem System auf seine gesicherten Dateien im TSM zugreifen kann, ohne das TSM-Passwort beim TSM-Server zu wissen.
Die Server unterscheiden sich konfigurationsseitig aus Sicht der Clients lediglich in der IP-Adresse und dem Port. Zum Zeitpunkt der Erstellung dieser Dokumentation sind dies:
Server | TCP-Port |
---|---|
adsm.uni-freiburg.de | 1500 |
arch.uni-freiburg.de | 1501 |
adsm2.uni-freiburg.de | 1502 |
arch2.uni-freiburg.de | 1503 |
Die weiteren global gültigen Parameter:
inclexcl
(eine Datei mit bei der Sicherung auszuschließenden Datei- und Verzeichnis-Namen)compression
„off“ oder alternativ auch „on“ bei langsamen Verbindungen- Der
nodename
ist optional, wenn der Linux-HOSTNAME diesem entspricht; der Knotenname wird bei der Registrierung angegeben und muss dem FQDN (Full Qualified Domain Name), also dem vollständigen DNS-Namen Ihres Knoten entsprechen. Diese Vorgabe macht es uns leichter, einen Knoten zuzuordnen sowie einen eindeutigen Namensraum zu nutzen. passworddir
legt ein Verzeichnis fest, in dem die bei „passwordaccess generate“ automatisch erzeugten Passwörter verschlüsselt abgelegt werden.
Konfiguration: dsm.opt
Nun zur dsm.opt - Datei:
Servername ARCH2 domain ALL-LOCAL * oder alternativ z.B. domain / /home /data /nfs/nfsserver/directory
Servername
ist optional, insbesondere wenn nur ein Server-Alias in „dsm.sys“ definiert ist. Sind mehrere definiert, wird der erste verwendet.domain
definiert die zu sichernden Dateisysteme, bei „ALL-LOCAL
“ werden alle lokalen gesichert, ggf. kann man auch explizit auswählen, wie oben gezeigt.
Optional dazu z.B.
dateformat 4 timeformat 1 numberformat 5 verbose
Die Parameter sind alle in der Dokumentation für Version 6.1 bzw. der Dokumentation für die 5er-Versionen beschrieben. Ggf. helfen auch die hier erläuterten Fehlermeldungen weiter.
Verwendung
Zum Sichern, Zurückholen, Abfragen, etc. gibt es verschiedene Klienten:
Aufruf | Beschreibung | Wo (Pfad) |
---|---|---|
dsmj | auf Java basierende graphischer Klient | /opt/tivoli/tsm/client/ba/bin/ |
dsmc | Kommandozeilen-Klient | /opt/tivoli/tsm/client/ba/bin/ |
Wie oft üblich lässt sich der graphische Client dsmj einfacher bzw. intuitiver bedienen, wogegen der Kommandozeilen-Klient dsmc mehr Optionen kennt und sich (besser) automatisieren lässt. Im Web finden sich viele Publikationen und Wiki's, die die Bedienung erklären, u.a. die Seiten unserer Heidelberger Kooperationspartner oder die Orginal-Seiten von Tivoli (s.u.).
Initialisierung
Bevor eine automatische Sicherung funktionieren kann, muss der TSM-Client initialisiert werden, d.h. das zuvor in MyAccount vergebene Passwort muss ihm bekannt gemacht werden. Dies kann beispielsweise mit dem Befehl zur Abfrage der vorhandenen (gesicherten) Dateien auf dem Backupserver erfolgen:
/opt/tivoli/tsm/client/ba/bin/dsmc query files
Der Client fragt dann zunächst nach der zu verwendenden Benutzer-ID, dies sollte idR. dem „NodeName“, also dem vollqualifizierten DNS-Namen (FQDN) des Rechners entsprechen:
IBM Tivoli Storage Manager Command Line Backup-Archive Client Interface Client Version 6, Release 1, Level 3.0 Client date/time: 01/29/10 13:39:19 (c) Copyright by IBM Corporation and other(s) 1990, 2009. All Rights Reserved. Node Name: MYHOST.MYDOMAIN.UNI-FREIBURG.DE Please enter your user id <MYHOST.MYDOMAIN.UNI-FREIBURG.DE>:
hier kann man normalerweise einfach mit <Enter> bestätigen. Im nächsten Schritt wird man dann nach dem Passwort gefragt, das man über MyAccount zugewiesen hat:
Please enter password for user id "MYHOST.MYDOMAIN.UNI-FREIBURG.DE":
Im Erfolgsfall erhält man dann eine Meldung, die den Verbindungsaufbau bestätigt und besagt, dass noch keine gesicherten Dateien vorhanden sind:
Session established with server ADSM2: AIX-RS/6000 Server Version 5, Release 5, Level 2.0 Server date/time: 01/29/10 13:41:33 Last access: 01/29/10 13:39:43 No file spaces for node 'MYHOST.MYDOMAIN.UNI-FREIBURG.DE' were found on the server
Backup/Sicherung (manuell initiert)
Die wesentlichen Befehle zum (manuell initierten) Sichern im TSM sind:
Befehl | Erläuterung | Anmerkung |
---|---|---|
dsmc incr … | Sichert „incrementell“, also nur neue bzw. geänderte Dateien | bevorzugte (manuelle) Sicherungsart |
dsmc backup … | Backup ohne Berücksichtigung schon gesicherter Daten | normalerweise nicht zuempfehlen |
Im Allgemeinen wird aber die automatische Sicherung per „Scheduler“ empfohlen, wie im nächsten Abschnitt beschrieben.
Backup/Sicherung (zentral gesteuert)
Üblicherweise kontaktiert der zentrale TSM-Backup-Server einen Client, um eine Sicherung zu starten. Dies hat vor allem den Grund, dass der Server so selbst eine sinnvolle Lastverteilung vornehmen kann, indem er einfach nur dann neue Clients kontaktiert, wenn ausreichend Ressourcen vorhanden sind. Dazu muss natürlich auf jedem Backup-Client ein entsprechender Dienst laufen, der die Verbindung vom Server annimmt und dann die lokalen Aktionen ausführt.
Vor dem Start dieses Dienstes sollte man die Effekte der definierten Include/Exclude-Liste überprüfen. Dies wird durch folgenden Befehl erreicht, der die Resultate der Überprüfung standardmäßig im aktuellen Verzeichnis in einer Datei namens „dsmprev.txt
“ ablegt.
/opt/tivoli/tsm/client/ba/bin/dsmc preview backup /
TSM als Dienst starten
Unter GWDG sind weiterführende Links zum Starten des TSM-Client als Service (Daemon) aufgeführt. Bitte noch prüfen !
Wenn das Linux-Betriebssystem den Initialisierungsdienst systemd ausführt, führen Sie die folgenden Schritte aus, um dsmcad zu starten und zur Systemstartzeit auszuführen:
cp /opt/tivoli/tsm/client/ba/bin/dsmcad.service /etc/systemd/system/
Führen Sie den folgenden Befehl aus, um die Liste der systemd-Einheiten zu aktualisieren:
systemctl daemon-reload
Führen Sie den folgenden Befehl aus, um den Client-Akzeptor beim Systemstart zu starten:
systemctl enable dsmcad.service
Führen Sie den folgenden Befehl aus, um den Client-Akzeptor zu starten:
systemctl start dsmcad.service
Restore (Wiederherstellung)
Die wesentlichen Befehle zum Abfragen und zurückholen im TSM gesicherter Dateien sind:
Befehl | Beipiel-Aufruf mit Parametern | oft benötigte Optionen |
---|---|---|
dsmc query backup … | dsmc query backup '/home/*/Documents/*' | -inactive=yes |
dsmc restore … | dsmc restore '/home/*/Documents/*' | -inactive=yes |
Hier sei weiter auf andere Web-Seiten und Wiki's hingewiesen (s.u.). Ein Detail soll hier aber hervorgehoben werden, weil manchmal ein Problem:
Dateien werden grundsätzlich mit vollem Pfad gesichert. Wenn nun Dateien (oft nicht bewusst) in „symbolc linked“ Verzeichnissen abgelegt werden, werden diese aber an ihrem Orginal-„Filespace“ im TSM abgelegt bzw. gesichert. Dies ist beim Suchen bzw. Zurückholen von Dateien aus dem TSM zu berücksichtigen.
Ein Beispiel: Ist z.B. das /home - Verzeichnis verlinkt auf /part2/home werden dieses Verzeichnnis und darin befindliche Dateien auch beim Sichern entsprechend abgelegt.
# ls -l /home lrwxrwxrwx 1 root root 1 Mar 26 16:46 /home -> /part2/home
Beim Abfragen bzw. Zurückholen ist das zu berücksichtigen:
dsmc query backup '/home/*' dsmc restore '/home/*'
wird einen Fehler bringen:
ANS1092W No files matching search criteria were found
Richtig wäre :
dsmc query backup '/part2/home/*' dsmc restore '/part2/home/*'
Weitere Doku
Tivoli / IBM
(die Anleitungen sind nur teilweise in deutsch verfügbar)
TSM-Version 6.1:
- Dokumentation zu IBM Tivoli Storage Manager Version 6.1 als Einstiegspunkt
TSM-Version 5.5
- IBM Tivoli Storage Manager Backup-Archive Clients als Einstiegspunkt und die
GWDG (für Debian/Ubuntu)
Im Wiki der GWDG wird die Einrichtung des TSM-Clients unter Debian/Ubuntu beschrieben, insbesondere wird auch auf die Fallstricke bei 64-Bit eingegangen:
TSM-Client unter Debian/Ubuntu einrichten
Bemerkung:
Nach dem Erstellen und Installieren der deb-Pakete, wie unter der o.g. Seite beschrieben ist, sollen die Pfade in der Datei /etc/ld.so.conf.d/dsmlib.conf auch mit den abschliessenden „/„ eingetragen werden, z.B.:
/opt/tivoli/tsm/client/api/bin/
/opt/tivoli/tsm/client/api/bin/
/usr/local/ibm/gsk8/lib/
(nicht vergessen „ldconfig“ danach auszuführen)