Thoughts on the new AFS Component

The AFS component will need to look after both clients and servers. The functionality for each is separate (a server may also be a client, but there is no requirement for it to do so)

Client configuration

  • The /usr/vice/etc/ThisCell file must be created with the name of the cell the client is in. If this is changed whilst the client is running, the file should be updated, and the client notified of the new cell by running the 'fs setcell' command [Turns out you cannot notify the client of a change to ThisCell]

  • /usr/vice/etc/CellServDB.local should contain any local additions to the distributed CellServDB file. Changes to this file whilst the client is running should also be performed through the 'fs newcell' command

  • /usr/vice/etc/cacheinfo should be populated with a string containing the AFS mountpoint (probably hardcoded to '/afs', the directory the AFS cache is in, and the size of the AFS cache). Changes to this file shouldn't be permitted whilst the client is running (or should result in a client restart)

  • The AFSD_ARGS variable should be set in /etc/sysconfig/openafs with the set of command line parameters to be used with afsd (the complete set of these is contained in the afsd manpage, we currently use -dynroot -afsdb -fakestat -stat 3600 -dcache 10001 -daemons 5 -volumes 200 -nosettime -chunksize 20). Note that many of those values should be changed!

  • The client can be started and stopped by using the /etc/rc.d/init.d/openafs-client script

  • It should be possible to specify whether the client runs with setcrypt on or off, and the component should run 'fs setcrypt' once its started the client.

Server configuration

All of the AFS daemons are managed via the bos client, and the bosserver server, which handle starting, stopping and configuration of all of the daemons. bos on localhost can be accessed as root by using the -localauth option

  • The component should refuse to configure a server if /usr/afs/etc/KeyFile is missing - this file is going to need to be manually copied for now (eventually, I think we'd stick this in wallet, but we can't do that yet)

  • /usr/afs/etc/CellServDB should be populated with the set of DB servers for the cell. If this changes once bos is started, the file should not be edited under bos, but the changes should be performed using the addhost, listhosts, removehost and setcellname options to bos.

  • /usr/afs/etc/ThisCell should contain the name of the cell this machine is a server for. Again, don't change this file under bos, use bos setcellname instead.

  • /usr/afs/etc/UserList contains a list of the users who are allowed to use priviledged bos and vos commands. Don't change under bos, use adduser, listusers and removeuser instead.

  • The BOSSERVER_ARGS variable in /etc/syconfig/openafs contains the command line options which bosserver is started and stopped with (we don't currently set any command line options)

  • /etc/rc.d/init.d/openafs-server will handle starting and stopping the bosserver

  • The set of services which bos runs should match the set configured by LCFG. create, delete and list are your friends here. Things are a little complex due to the complexity of command line paramaters for services - contrast the fs service (which has 3 sub services), and the db services. This appears to be the full list of possibilities we are ever likely to need:

    • buserver
    • fs (combines fileserver, volserver, and salvager)
    • ptserver
    • vlserver

  • The regular restart features of bos should be under LCFG control (primarily so we can disable the weekly restarts for services that don't require them) - getrestart and setrestart are the bos options

You shouldn't restart bos with LCFG configure events, as it will take down fileservers, which may take hours to salvage and come back up.

-- StephenQuinney - 27 Mar 2009

Topic revision: r4 - 03 Apr 2009 - 11:04:32 - StephenQuinney
 
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback
This Wiki uses Cookies