Soeben habe ich den Tivoli Storage Manager Client unter Debian Linux installiert. Hier eine kurze Anleitung, um die wenigen Fallstricke gekonnt zu umschiffen:
Binaries
Zuerst benötigt man die Binaries. In meinem Fall hiess die gesuchte Datei TSM534C_LINUX86.tar und war satte 76MB gross. Diese wird freundlicherweise im Intranet bereitgestellt.
Man bezieht das Ding am Besten so:
cd /tmp wget "http://www.domain.ch/TSM534C_LINUX86.tar" tar xvf TSM534C_LINUX86.tar
Do you speak RPM? No!
Nun sollte man im /tmp-Verzeichnis einige Files rumliegen haben:
server:/tmp# ls -l total 102239 -rw-r----- 1 root bin 186681 2006-04-26 10:01 LICENSE.TXT -rw-r--r-- 1 root bin 27011 2006-04-26 10:01 README_api_enu.htm -rw-r--r-- 1 root bin 92708 2006-04-26 10:01 README_enu.htm -rw-r--r-- 1 root bin 59366 2006-04-26 10:01 README_hsm_enu.htm -rwxr----- 1 root bin 16846 2006-04-26 10:01 README.NEWDSMSCOUTD -rw-r--r-- 1 root bin 2195792 2006-04-26 10:05 TIVsm-API64.i386.rpm -rw-r--r-- 1 root bin 5324235 2006-04-26 09:59 TIVsm-API.i386.rpm -rw-r--r-- 1 root bin 16593919 2006-04-26 09:59 TIVsm-BA.i386.rpm -rw-r--r-- 1 root bin 55224942 2006-04-26 10:00 TIVsm-HSM.i386.rpm
Da schlägt doch des Debian-Aficionados Herz höher – wer liebt sie nicht, die RPMs? RHEL – das ist was für fehlgelenkte Windows-Admins! Hier im Debian-Land spricht man apt-get, dpkg und .deb.
alien, daher!
Glücklicherweise hat sich die Entwickler-Community diesem Problem angenommen:
apt-get install alien
und danach:
alien -d TIVsm-API.i386.rpm alien -d TIVsm-BA.i386.rpm
Im /tmp liegen nun zwei neue Dateien herum:
server:/tmp# ls -l | grep .deb total 102239 -rw-r--r-- 1 root root 5313996 2006-09-14 20:10 tivsm-api_5.3.4-1_i386.deb -rw-r--r-- 1 root root 16580418 2006-09-14 20:10 tivsm-ba_5.3.4-1_i386.deb
Jetzt geht’s los!
Jetzt wird wieder in die Hände gespuckt, denn wir installieren uns das IBM-Produkt … *sing*
dpkg -i tivsm-api_5.3.4-1_i386.deb dpkg -i tivsm-ba_5.3.4-1_i386.deb
Konfigurationsdateien
Unter /opt/tivoli/tsm/client/ba/bin erstellt man nun noch die zwei Konfigurationsdateien dsm.opt und dsm.sys mit folgendem Inhalt:
cat dsm.opt SERVERNAME xxx.yyy.ch
… und …
cat dsm.sys SERVERNAME xxx.yyy.ch TCPSERVERADDRESS 10.0.6.70 PASSWORDACCESS GENERATE SCHEDLOGNAME /var/log/tsm/schedule.log ERRORLOGNAME /var/log/tsm/error.log
Der Sinn eines korrekten Hostnamens
Als ich dsmc nun starten wollte, gab es diese blöde Fehlermeldung:
ANS1353E Session rejected: Unknown or incorrect ID entered
Auch das setzen der Variable NODENAME in dsm.opt resp. dsm.sys brachte nicht den gewünschten Effekt:
ANS1036S Invalid option 'NODENAME' found in options file '/opt/tivoli/tsm/client/ba/bin/dsm.opt'
… weshalb ich nicht darum herum kam, dem Server endlich den richtigen Hostnamen zu verpassen:
echo xxx.yyy.ch > /etc/hostname /bin/hostname -F /etc/hostname
Als ich nun dsmc ausführte, war ich nach der Eingabe des Passwortes drin! Heureka.
Ohne Scheduler läuft nichts!
Deshalb nun noch der obligatorische Eintrag in /etc/inittab:
itsm::once:/usr/bin/dsmc sched > /dev/null 2>&1
… und beim nächsten Neustart sollte der Scheduler geladen werden (hoffentlich, ausprobiert habe ich es nicht – diese Datei war mir bisher unbekannt).
Um den Scheduler ohne Neustart zu laden, genügt folgender Shell-Befehl:
nohup dsmc schedule 2> /dev/null &
Drei Probleme und Lösungen
Fehler 1: Beim Starten von dmsc erscheint folgende Fehlermeldung:
dsmc: error while loading shared libraries: libgpfs.so: cannot open shared object file: No such file or directory
Es ist nötig, die Datei /etc/ld.so.conf zu erstellen (wenn sie noch nicht existiert) und folgende Zeile einzufügen:
/opt/tivoli/tsm/client/api/bin/
Danach müssen die „shared objects“ neu eingelesen werden:
ldconfig
Fehler 2: Beim Starten von dmsc erscheint folgende Fehlermeldung:
dsmc: error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory
Es fehlt das Debian-Paket libstdc++5:
apt-get install libstdc++5
Fehler 3: Beim Starten von dmsc erscheint folgende Fehlermeldung:
ANS9999E amsgrtrv.cpp(3087): Message No 11000 could not be found. ANS9999E amsgrtrv.cpp(3087): Message No 11000 could not be found. ANS0101E Unable to open English message repository 'dsmclientV3.cat'.
Ein symbolischer Link fehlt:
server:/opt/tivoli/tsm/client/ba/bin# ln -s ../../lang/en_US/
/etc/init.d/tsm
Zieht man statt der inittab ein Start-Script unter /etc/init.d/ vor, sollte dies ungefähr folgendermassen aussehen (Dank: Reto):
#!/bin/sh if [ $1 = "start" ]; then /usr/bin/nohup /usr/bin/dsmc schedule 2> /dev/null & echo "Starting ADSM scheduler" else if [ $1 = "stop" ]; then pid=`/bin/ps -e | /bin/grep dsmc | /bin/sed -e 's/^ *//' -e 's/ .*//'` if [ "${pid}" != "" ]; then echo "Stopping ADSM scheduler" /usr/bin/kill ${pid} fi fi fi