The elements of fileserver infrastructure

June 24, 2010

As I sort of mentioned in an aside in the last entry, pretty much any sort of fileserver infrastructure does a number of other things besides just serving files. In turn this means that hooking a machine into your fileserver environment generally involves a lot more than just some mount commands.

For the purposes of this entry, let's ignore all of the services that only care about the fileservers themselves; backup, monitoring, and so on. We'll only look at the services that a client has to be tied into. My experience is that there are three major components:

  • the actual fileservice itself, generally NFS on Unix machines. By now this generally just works.

  • some way of propagating around information about what filesystems to mount from where and of getting them mounted when necessary. Some form of automounter is the traditional Unix answer, although we built our own (as have other people). Even with an automounter you still need some mechanism to propagate the automounter maps around.

  • some way to propagate account and password information around to all of the clients and to let users change their password once instead of separately on every machine. This gets you into semi-policy areas such as dealing with systems that have different ideas of what system accounts exist and what UIDs they have.

At one point NIS was the usual way to propagate both account and automounter map information around, and there were basically turnkey solutions to handle it all; you could just follow the vendor's manual when configuring your Unix machines and be done with it. I'm out of touch with the modern usual way is, but I believe it's LDAP for distributing account information and I don't know what people do for automounter maps. My impression is that an LDAP setup is a lot less turnkey than the old NIS approach.

(Locally we have never been very fond of NIS, so we have always rolled our own distribution and account management systems. And as I mentioned, we've replaced automounter entirely.)

In theory you don't need to have an infrastructure at all, because you can just do all of these things by hand. This approach is not recommended and trying it out generally results in you building an infrastructure after all. And post-facto infrastructures are generally more painful than an infrastructure that you think about while you're setting up the whole environment.

Written on 24 June 2010.
« The advantages of separate machines for separate things
Python class definitions can be nested »

Page tools: View Source, Add Comment.
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Thu Jun 24 00:40:05 2010
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.