Re: FS: hardlinks on directories

Herbert Pötzl
2003-08-04T16:54:33Z

On Mon, Aug 04, 2003 at 06:35:45PM +0200, Stephan von Krawczynski wrote:
> On Mon, 4 Aug 2003 18:16:57 +0200
> Herbert Pötzl <herbert@13thfloor.at> wrote:
>
> > on the other hand, if you want somebody to implement
> > this stuff for you, you'll have to provide convincing
> > arguments for it, I for example, would be glad if
> > hardlinks where removed from unix altogether ...
>
> Huh, hard stuff!
>
> Explain your solution for a very common problem:
>
> You have a _big_ fileserver, say some SAN or the like with Gigs.
> Your data on it is organized according to your basic user
> structure, because it is very handy to have all data from one
> user altogether in one directory.

I already do something like this, although not for thousands
of users, but I guess this would scale well ...

consider a storage device (maybe a partition) for each
category of data you want to store/provide/serve

/mnt/webspace, /mnt/database, /mnt/email, /mnt/wossname ...

now each data space gets subdirectories for logical
groupings (optional) and a second level for the actual
users ... there could be other layers like domains for
example too ...

/mnt/webspace/customer/charlie
/mnt/webspace/customer/jack
/mnt/webspace/customer/wossname

and, if required, the same structure for database, email, ...

so you end up with totally separate storage trees, which
can be easily mounted/exported/shared with the apropriate
servers, now for the conceptional grouping, where the
customer wants to have all the data in one place ...

on the access server (where the customer maintains the data)
you'll end up mounting all the storage categories, required
for access and you do an additional restructuring for each
customer (which of course is automated)

/home/customer/charlie is populated with symlinks to
/mnt/*/customer/charlie named by category

/home/customer/charlie/webspace -> /mnt/webspace/customer/charlie
/home/customer/charlie/email -> /mnt/email/customer/charlie
...

this also has the advantage that any kind of service change
(for example changing the webspace) can be simply done by
modifying the symlinks ...

> if you managed to link all web-data together in one directory and
> exported that to your webservers and they are hacked, you just
> blew up all your web-data but nothing more.
> This is a remarkable risk reduction.
> And now? Name your idea to export only the data needed to
> the servers that need it. And keep in mind, we are talking of
> Gigs and tenthousands of users.

this is covered by the suggested approach.

> You definitely don't want one mount per user per service.

no, I don't ...

> Can you think of a more elegant way to solve such a problem
> than hardlinking all web in one single webtree, all sql in one
> single sql tree ... and then export this single tree (with its
> artificial structure) to the corresponding server?
> I am curiously listening...

best,
Herbert

> Regards,
> Stephan
>