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.

1. Introductie

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.

2. Installeren van de iBCS module

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 apparaatbestanden 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

3. Installeren van de ADSM client

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.

4. Uitvoeren van de client

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 &

5. Bekende problemen

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