[: Re: [Infrastructures] how to build an internal (local) file structure?]

Ivan Popov pin@konvalo.org
Wed, 30 Mar 2005 15:40:43 +0200


Hi Rudy,

On Wed, Mar 30, 2005 at 02:42:25PM +0200, Rudy Gevaert wrote:
> I see it like this (or rather a way to do it would be):
> 
> company/
> `-- apps
>     |-- app1_v1
>     |   |-- bin.i386
>     |   |-- bin.sparc
>     |   |-- etc
>     |   |-- lib.i386
>     |   |-- lib.sparc
>     |   |-- sbin.i386
>     |   |-- sbin.sparc
>     |   |-- share
>     |   `-- src
>     |-- app1_v2
>     `-- app2_v1

as you wrote that, I think we have similar standpoints.
You may find it reasonable how we place software on /coda/konvalo.org

> I do have some questions:
> 
> - AFS seems a very good way to set up the fileserver put everything in
>   /afs/comanpy.com/  

Sure. I would definitely go AFS or Coda.

> - what with NFS?  It isn't good practice to mount NFS shares on top of
>   each other. It is clear that you can't keep /company on one machine
>   for ever.  

Of course, NFS does not scale.

> - do mount the whole /company on each machine?  With AFS you can set
>   up the right rights.  But NFS is trickier.

You can imitate a global file name space with NFS, but it will
need a lot of care, while you get it almost for granted with AFS
(unless you destroy that yourself, with shortcuts in /afs ...)

> - how do implement the symlink farm?  CFengine seems good to me.  

One side of the problems - trivial symlink farms do not really scale.
You will face other issues, like [maintaining different versions of]
shared libraries and others.

> /bin/app1 -> /company/apps/app1_v2/bin.i386/app1
> /etc/app1/ -> /company/apps/app1_v2/etc/

You don't need/want these links. Seriously.

Then, you do not need cfengine either as soon as you have a global
filesystem view.
You will be able to create the necessary objects (including symlink trees)
via one machine and they will be equally valid for all hosts at once.

Regards,
--
Ivan