Thomas.Koenig@ciw.uni-karlsruhe.de
ADSM est un système de sauvegarde en réseau vendu par IBM que l'on retrouve dans de nombreuses organisations. Les programmes clients existent pour une large palette de systèmes : différents Unix, Windows, Novell, Mac, Windows NT. Malheureusement, à la date de rédaction de ce document, aucune version spécifique à Linux n'existe.
L'utilisation d'ADSM implique donc le recours au binaire SCO et à l'émulateur iBCS2. Il est ici question d'ADSM v2r1.
A ce jour, je ne connais qu'une version fonctionnant sous Linux, et uniquement sur plate-forme i386.
Le module iBCS est disponible à l'adresse suivante :
ftp://tsx-11.mit.edu/pub/linux/BETA/ibcs2.
[NdT : un miroir français ftp://ftp.lip6.fr/pub/linux/tsx-11/BETA/ibcs2
] Si vous employez une version 1.2.13 du noyau, récupérez
ibcs-1.2-950721.tar.gz
, décompactez-le et appliquez
les patches ibcs-1.2-950808.patch1
et
ibcs-1.2-950828.patch2
. Vous pouvez alors invoquer
"make
" et insérer le module iBCS via
"insmod
".
Pour un noyau 2.0, récupérez
ibcs-2.0-960610.tar.gz
, décompressez-le dans un
répertoire adéquat, allez dans ce répertoire et appliquez le patch
ci-dessous :
--- 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)Copiez ensuite
CONFIG.i386
en CONFIG
et
invoquez make
.
S'ils ne sont pas déjà présents, créez les périphériques requis en exécutant :
# cd /dev # ln -s null XOR # ln -s null X0R # mknod socksys c 30 0 # mknod spx c 30 1
Le binaire SCO est divisé en trois fichiers tar
.
Positionnez-vous à la racine de votre système de fichiers, vérifiez
la valeur de umask et décompactez-les en tant qu'utilisateur
root
. Un script d'installation apparaîtra dans votre
répertoire /tmp
. Invoquez-le.
Éditez ensuite /usr/adsm/dsm.sys
et
/usr/adsm/dsm.opt
. Certaines lignes du fichier
dsm.sys
requièrent une attention
particulière :
le nom du serveur
le nom complet du serveur (FQDN)
le nom de votre station
dsm.opt
:
comme précédemment
s'il faut suivre les liens symboliques (c'est rarement une bonne idée)
faut-il sauvegarder les sous-répertoires ? (généralement oui)
le système de fichiers à archiver
Créez ensuite un fichier /etc/mnttab
à la mode SCO
à partir de votre /etc/fstab
. Le script Perl suivant,
fstab2mnttab
, le fera pour vous.
Le client ne réclame aucune bibliothèque dynamique : il est lié statiquement.
#!/usr/bin/perl $mnttab_struct = "a32 a32 I L"; open(MTAB, "/etc/mtab") || die "Impossible d'ouvrir /etc/mtab: $!\n"; open(MNTTAB, ">/etc/mnttab") || die "Impossible d'ouvrir /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 "Entrée créée pour : $device $mountpt $fstype\n"; } } close(MNTTAB); exit 0;
Il existe deux clients. dsm
propose une interface
X11 tandis que dsmc
reste en ligne de commande. Votre
service informatique vous en dira davantage à leur sujet. Un script
de démarrage du style :
dsmc schedule -quiet 2>&1 >/dev/null &s'avèrera vraisemblablement nécessaire.
SCO se révèle malheureusement incapable de supporter les noms de
machines dépassant les 8 caractères. Si le nom de votre machine
dépasse cette limite ou qu'il inclut le nom de domaine, vous devrez
le préciser dans la ligne NODename
du
/usr/adsm/dsm.sys
.
Le recours à la variable DISPLAY requiert de la part de celle-ci
qu'elle comprenne le nom complet de votre machine, c'est à dire
DISPLAY=maMachine.monDomaine:0
au lieu de
DISPLAY=maMachine:0
.