Linux ADSM Mini-Howto
Thomas König, Thomas.Koenig@ciw.uni-karlsruhe.de
Vertaald door: Ellen Bokhorst, bokkie@nl.linux.org
v, 15 jan 1997
In dit document wordt beschreven
hoe een client te installeren en gebruiken voor het commerciële
ADSM backupsysteem onder Linux/i386.
ADSM is een op het netwerk gebaseerd
backupsysteem, het wordt verkocht door IBM, en is door
veel organisaties in gebruik. Er zijn clients voor een
grote diversiteit aan systemen (verschillende UNIX merken,
Windows, Novell, Mac, Windows NT). Helaas is er tijdens
dit schrijven geen versie voor Linux.
Je zal gebruik moeten maken van
de SCO binary, en de iBCS2-emulator moeten installeren
voor het draaien van ADSM. Deze beschrijving is voor
ADSM v2r1.
Tijdens dit schrijven, ben ik
me alleen bewust van een versie die met de i386 versie
van Linux werkt.
De iBCS2 module is beschikbaar
vanaf ftp://tsx-11.mit.edu/pub/linux/BETA/ibcs2.
Gebruik voor kernelversie 1.2.13 ibcs-1.2-950721.tar.gz,
pak het uit en pas de patches ibcs-1.2-950808.patch1
en ibcs-1.2-950828.patch2 toe. Je kunt
dan "make" intikken en de iBCS
modules installeren met "insmod".
Haal voor een 2.0 kernelversie ibcs-2.0-960610.tar.gz
op, pak het uit naar een geschikte plaats, chdir naar
die directory, en pas de volgende patch toe:
--- iBCSemul/ipc.c.orig Wed Jan 15 21:32:15 1997
+++ iBCSemul/ipc.c Wed Jan 15 21:32:31 1997
@@ -212,7 +212,7 @@
switch (command) {
case U_SEMCTL:
cmd = ibcs_sem_trans(arg3);
- arg4 = (union semun *)get_syscall_parameter (regs, 4);
+ arg4 = (union semun *)(((unsigned long *) regs->esp) + (5));
is_p = (struct ibcs_semid_ds *)get_fs_long(arg4->buf);
#ifdef IBCS_TRACE
if ((ibcs_trace & TRACE_API) || ibcs_func_p->trace)
Kopieer vervolgens CONFIG.i386
naar CONFIG, en typ make. Maak
de benodigde devicebestanden aan als je die nog niet hebt
door het uitvoeren van
# cd /dev
# ln -s null XOR
# ln -s null X0R
# mknod socksys c 30 0
# mknod spx c 30 1
De SCO-binary wordt in drie tar-bestanden,
of op disks geleverd. Ga naar de root-directory, stel
je umask in overeenkomstig je beleid, en pak ze vanuit
daar (als root) uit. In de Directory /tmp, vind je een
installatie-script; voer dat uit.
Je zal met de hand /usr/adsm/dsm.sys
en /usr/adsm/dsm.opt moeten wijzigen. In
dsm.sys, zijn de van belang zijnde op te
geven regels:
- Servername
-
De naam van de server
- TCPServeraddress
-
De fully qualified hostnaam
van de server
- NODename
-
Je eigen hostnaam
In dsm.opt, moet
je opgeven
- Server
-
Als hiervoor
- Followsymbolic
-
Of je wel of niet symbolische
links wilt volgen (in het algemeen niet verstandig)
- SUbdir
-
Of je een backup wilt maken
van subdirectory's (meestal wil je dat wel)
- domain
-
De bestandssystemen waarvan
je een backup wilt
Je zal dan een SCO-compatibel
/etc/mnttab aan moeten maken vanuit je
/etc/fstab. Je kunt hiervoor het volgende
Perl-script fstab2mnttab gebruiken.
#!/usr/bin/perl
$mnttab_struct = "a32 a32 I L";
open(MTAB, "/etc/mtab") || die "Kan /etc/mtab niet openen: $!\n";
open(MNTTAB, ">/etc/mnttab") || die "Kan /etc/mnttab niet openen: $!\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 "Entry gemaakt voor: $device $mountpt $fstype\n";
}
}
close(MNTTAB);
exit 0;
Je hoeft voor deze clients geen
shared library's te installeren, alles is statisch gelinkt.
Er zijn twee clients, dsm,
een X11-interface, en dsmc, een opdrachtregel
interface. De werknemers in het computercentrum zullen
je aangeven hoe het te activeren. Waarschijnlijk zal
een opstartscript dat tijdens het booten wordt uitgevoerd
nodig zijn:
dsmc schedule -quiet 2>&1 >/dev/null &
Helaas kan SCO alleen omgaan
met hostnamen die uit niet meer dan acht tekens bestaan.
Als je hostnaam langer is, of fully qualified, dan kan
het zijn dat je de hostnaam in de NODename
regel in /usr/adsm/dsm.sys op moet geven.
Als je gebruik maakt van de variabele
DISPLAY , zan zal je de qualified hostnaam aan moeten
leveren (d.w.z. DISPLAY=host.full.do.main:0
in plaats van DISPLAY=host:0).
|