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.

ACHTUNG: Vorsicht nach einem Platten-Crash oder versehentlichen Lösch-Aktionen !

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.

ACHTUNG: Probleme mit Restore nach Betriebssystemwechsel !

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.

ACHTUNG: Warnung an alle Fileserver-Betreiber !

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, Installation und Konfiguration der Tivoli TSM-Client-Software wird im Folgenden beispielhaft für openSuSE 11.1 beschrieben. Für zusätzliche Hinweise zu Debian/Ubuntu siehe http://www.rz.uni-konstanz.de/dienste/backup/installation-und-konfiguration/tivoli-unter-linux/installation/ oder Links unter „Weitere Doku“

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 werden

TCPServeraddress 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.

Je nach Konfiguration und vorhandenen Dateien kann der Befehl eine sehr lange Ausführungsdauer haben!

/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
Die Datei-Spezifikation ist auf Grund möglicher „Shell-Expansion“ i.d.R. in Hochkommata zu setzen

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

TSM-(Fehler)-Meldungen

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

http://wiki.gwdg.de/index.php/TSM:debian

http://wiki.gwdg.de/index.php/TSM_Client_unter_Ubuntu_Server_64-Bit_installieren

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)