Adapted from the document:
Linux ADSM Mini-HowTo
by Thomas Kvnig, Thomas.Koenig AT ciw.uni-karlsruhe DOT de
$Date: 1997/01/15 20:36:34 $
This document describes how to install and use a client for the
commercial ADSM backup system for Linux/i386. This was tested on a
RedHat 4.2 Linux Intel (i386) system.
1. Introduction
ADSM is a network-based backup system, sold by IBM, in use at many
organizations. There are clients for a large variety of systems
(different UNIX brands, Windows, Novell, Mac, Windows NT).
Unfortunately, at the time of this writing, there is no native Linux
version.
You will have to use the SCO version ADSM binaries (which are in COFF
format), and install the iBCS2 binary emulator for running ADSM. The
present description is for ADSM v2r1. It would be possible to create
an RPM package out of the SCO binaries, but this would require IBM's
permission to distribute the ADSM files in a different format. It
would be much better if the ADSM developers created an RPM package
for Linux by themselves...
At the time if this writing, I am only aware of a version which works
with the i386 (Intel) version of Linux.
2. Installing the iBCS module
The iBCS package is summarized in the iBCS README:
The Intel Binary Compatibility Specification, or iBCS, specifies the
interfaces between application programs and the surrounding operating
system environment for i386 based systems. There are however several
flavors of iBCS in use - SVR4, SVR3 plus several vendor specific
extensions to SVR3 which are slightly different and incompatible. The
iBCS emulator for Linux supports all flavors known so far.
If you have RedHat Linux, check out if the iBCS package is installed:
# rpm -q iBCS
iBCS-2.0-6
If iBCS is found like this, skip to step 3. If you don't have iBCS,
get the iBCS package from ftp://ftp.redhat.com/pub/redhat/
redhat-4.2/i386/RedHat/RPMS/iBCS-2.0-6.i386.rpm or any of the mirror
sites and install it.
For Linux'es that don't use RPM packages:
The iBCS2 module is available from
ftp://tsx-11.mit.edu/pub/linux/BETA/ibcs2. If you are running kernel
version 1.2.13, get ibcs-1.2-950721.tar.gz, unpack it and apply the
patches ibcs-1.2-950808.patch1 and ibcs-1.2-950828.patch2. You can
then type "make" and install the iBCS module with "insmod".
For a 2.0 kernel version, get and unpack the latest 2.0 version
(currently ibcs-2.0-970513.tar.gz). No patches need to be applied
to this version.
Then, copy CONFIG.i386 to CONFIG, and change the following definitions:
SMP=no (for a single-CPU system, at least)
EMU_X286=no (needs extra packages installed)
Then type "make". As superuser, type "make install" to make the
necessary devices and the file /lib/modules/`uname -r`/misc/iBCS.
Check out the iBCS:
Load the iBCS emulator using "modprobe iBCS". If it fails to load
the most likely explanations are that you either got the CONFIG
wrong or you compiled against a different kernel from the one
you are running. If iBCS loads successfully and you are running
kerneld you can "rmmod iBCS" again - kerneld will load it as
needed.
3. Installing the ADSM client
The latest ADSM backup client software for SCO is available at
ftp://index.storsys.ibm.com/adsm/fixes/v2r1/sco/ . Currently, the
files are sco.v2r1m6.IP21086.* (ADSM version 2.1.0.6). The three
files sco.v2r1m6.IP21086.disk[1,2,3].dd are simply tar-files which
you extract by cd'in to the root and extracting the files from their
location <path>:
cd /
tar xvf <path>/sco.v2r1m6.IP21086.disk1.dd
tar xvf <path>/sco.v2r1m6.IP21086.disk2.dd
tar xvf <path>/sco.v2r1m6.IP21086.disk3.dd
Execute the installation script /tmp/init.adsm, but first you have to
insert a new first line in the script:
#!/bin/bash
Otherwise Linux may use the wrong shell to execute this script.
As with any ADSM client installation, you will then have to hand-edit
the configuration files /usr/adsm/dsm.sys and /usr/adsm/dsm.opt. In
dsm.sys, important lines to specify are:
Servername
The name of the server
TCPServeraddress
The fully qualified host name of the server
NODename
Your own hostname
A sample dsm.sys file from our site is:
Servername <name of ADSM server>
TCPPort 1500
TCPServeraddress <IP-address of ADSM server>
Passwordaccess Generate
Schedlogname /var/log/adsmlog
Schedlogretention 8
Schedmode prompted
INCLEXCL /usr/adsm/inclexcl.list
In dsm.opt, you will have to specify
Server
As before
Followsymbolic
Whether or not to follow symbolic links (not a good idea, in
general)
SUbdir
Whether to back up subdirectories (you usually want that)
domain
The file systems to back up
A sample dsm.opt file from our site is:
Servername <name of ADSM server>
Domain /
Errorlogretention 8
Tapeprompt no
Quiet
You will then have to create a SCO-compatible /etc/mnttab from your
/etc/fstab. You can use the following Perl script, fstab2mnttab, for
this. Rerun this script every time you change the filesystems in
/etc/fstab.
______________________________________________________________________
#!/usr/bin/perl
$mnttab_struct = "a32 a32 I L";
open(MTAB, "/etc/mtab") || die "Cannot open /etc/mtab: $!\n";
open(MNTTAB, ">/etc/mnttab") || die "Cannot open /etc/mnttab: $!\n";
while(<MTAB>) {
next if /pid/;
chop;
/^(\S*)\s(\S*)\s(\S*)\s.*$/;
$device = $1;
$mountpt = $2;
$fstype = $3;
if($fstype ne "nfs" && $fstype ne "proc") {
$mnttab_rec =
pack($mnttab_struct, $device, $mountpt, 0x9d2f, time());
syswrite(MNTTAB, $mnttab_rec, 72);
print "Made entry for: $device $mountpt $fstype\n";
}
}
close(MNTTAB);
exit 0;
______________________________________________________________________
You do not need to install any shared libraries for these clients;
everything is linked statically.
4. Running the client
There are two clients, dsm, which is an X11 interface, and dsmc, a
command-line interface. Try out either one. If Linux cannot execute
dsm or dsmc, this probably means that the iBCS package hasn't been
installed correctly.
The ADSM scheduler has to be running in order for the ADSM server to
contact the client for server-initiated backups. Some startup script
at boot, for example
/usr/adsm/dsmc schedule -quiet 2>&1 >/dev/null &
will probably be required, or this example in /etc/inittab:
# ADSM backup client
adsm::respawn:/usr/adsm/dsmc sched >/dev/null 2>&1 #ADSM scheduler
5. Known Problems
Unfortunately, SCO can only deal with hostnames no longer than eight
characters. If your hostname is longer, or fully qualified, you may
need to specify your hostname on the NODename line in
/usr/adsm/dsm.sys.
If you use the DISPLAY variable, you will have to supply the fully
qualified host name (i.e. DISPLAY=host.full.do.main:0 instead of
DISPLAY=host:0).
Ole Holm Nielsen
Department of Physics, Building 307
Technical University of Denmark, DK-2800 Lyngby, Denmark
E-mail: Ole.H.Nielsen AT fysik.dtu DOT dk
WWW URL: http://www.fysik.dtu.dk/persons/ohnielse.html
Telephone: (+45) 4525 3187
Telefax: (+45) 4593 2399
|