[OpenAFS] Selecting a configuration file format for OpenAFS Services

David Boyes dboyes@sinenomine.net
Sun, 17 May 2009 12:06:02 -0400



On 5/16/09 7:06 PM, "Russ Allbery" <rra@stanford.edu> wrote:

> David Boyes <dboyes@sinenomine.net> writes:
>=20
>> Rather than scattering configuration around in files, I'd like to see a
>> configuration daemon that maintained the configurations for the various
>> pieces. A single command line argument identifying a set of addresses to
>> contact a config daemon would make this very simple to implement, and th=
e
>> config daemon could be a simple "connect, id yourself, receive your conf=
ig,
>> disconnect" operation. Would make configuration management a lot simpler=
.
>=20
> This sounds like a bad idea to me.  It adds a lot of complexity in a
> direction where I don't think we need complexity, and it isn't how
> pretty much all other UNIX software works.  I don't think it's common on
> Windows either.

On the other hand, it doesn't bake configuration information into a specifi=
c
location ON a server instance. If we want to consider stateless systems,
there's a chicken/egg problem if the instance has to have a file to tell it
where to get the file to tell it.... Etc. The idea of keeping configuration
information outside a specific instance is useful for evolving toward a
cloud or other advanced architecture. With the config server, the startup o=
f
a daemon could happen on any node, anywhere in the network, and the scripts
are identical no matter where you are. There is no need to coordinate file
distribution, and there are no leftover copies on systems to provide
unexpected results down the line after three people have screwed with it
over time.=20

It seems odd that a distributed file system would depend on a fixed local
file to tell it what it should be doing.
=20
>> If you insist on files, then all configuration should be possible
>> within the files, and the command line args should be frozen as is for
>> backward compatibility. The Kerberos file format is as good as any,
>> although not really friendly for complex parms.
>=20
> Lots of other servers support both configuration files and command-line
> arguments without trouble.  I don't see any reason why we can't.

Technically, you *can*, but the point is more along the line of addressing
complexity. One of the major complaints about AFS is the additional
complexity of managing it. If you have both command line AND config file,
which do you use, and how do you explain to a newbie where to look? Having
one or the other and clearly deprecating one is both less complex to manage
and document. Remember, you have to document both if you have both. Why mak=
e
more work for yourself?

Also, is it any more complicated to modify a file and restart than restart
with a very long command string? I don't think so.