Amanda-Users

RE: nfs mounted executable

2004-02-19 15:10:30
Subject: RE: nfs mounted executable
From: Jason Brooks <jason.brooks AT windriver DOT com>
To: DK Smith <dks AT mediaweb DOT com>, amanda-users AT amanda DOT org
Date: Thu, 19 Feb 2004 12:08:37 -0800
Hello,

I assume you mean the client side programs? That is to say, inetd calls amandad on an nfs mount? If so, setting of an environment variable for your library search path might do it. If this works, the only mod you will need to do to your system is to change your xinetd.conf file. But you had to do that anyway to make amanda work... You really want to use shared libraries.

Please see ld.so(8) <-- man page

- run "ldd" on the executable to find out what libraries it's looking for.
- set LD_LIBRARY_PATH=<insert path name here to libraries>
- export this variable to the environment so it's not just a shell variable
- run "ldd" again, to see if the library is now found.  It should be.

According to redhat 9's man page on ld.so, several things are searched for the libaries in question. First, the executable itself might know precisely where the libraries are located. second the paths in LD_LIBRARY_PATH are searched, then third the /etc/ld.so.cache file is searched. You don't want to add this to the cache file as EVERY library search done by the system for every executable will search your nfs mounts.

it is not clear if xinetd will source any of the shell configs, therefore it's not likely you can just put this environment variable in your backup user's .bashrc or .cshrc. with xinetd you can use the following sample entry. Please note, this is from the xinetd man page: I haven't tested it. Please also note though: the man page states you can't have any spaces in your variable.

service amanda
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = bv-amanda
        group                   = bv-backup
        server                  = 
/net/jetstream/jetstream1/amanda-2.4.4p2client/libexec/amandad
        env                     = 
LD_LIBRARY_PATH=/net/jetstream/jetstream1/amanda-2.4.4p2client/lib

}



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jason Brooks ~ (503) 641-3440 x1861
      Direct ~ (503) 924-1861
Email to: jason.brooks AT windriver DOT com
Twiki: http://twiki.wrs.com/do/view/Main/JasonBrooks

Senior Systems Administration Analyst
Wind River Systems
8905 SW Nimbus ~ Suite 255      
Beaverton, Or 97008


-----Original Message-----
From: owner-amanda-users AT amanda DOT org [mailto:owner-amanda-users AT amanda DOT org] On Behalf Of DK Smith
Sent: Wednesday, February 18, 2004 2:30 PM
To: amanda-users AT amanda DOT org
Subject: nfs mounted executable

Hello all,

I was experimenting with a different installation strategy... That is, in order to not install amanda on every host... I am attempting to place a single amanda installation on a file server; making it available via an NFS share. The nfs-clients of the same architecture (in this case Linux RH8.0) mount this NFS share and run the amanda programs... (the tape server and the amanda clients).

The first problem I hit when running amcheck on the tape server was that of the shared libraries. (so this is quickly turning into NOT an amanda question <grin>)

amcheck: error while loading shared libraries: libamserver-2.4.4p2.so:
         cannot open shared object file: No such file or directory

Maybe someone that has been down this road before can tell me, "stop now" as this is not practical, or something similar? Or is there a config option to not build shared libraries and hence another host would not look for them at the same hard-coded path (in which the particular binary was built)

thanks!
DK

PS: I am not intending to back-up NFS mounted data.



<Prev in Thread] Current Thread [Next in Thread>
  • RE: nfs mounted executable, Jason Brooks <=