[OpenAFS] Adding Additional Fileserver to Cell

Russ Allbery rra@stanford.edu
Fri, 08 Sep 2006 11:26:42 -0700


Mike Bydalek <mbydalek@contentconnections.com> writes:

> I did some searching around, and tried to execute the same steps as
> setting up the first AFS server, minus creating the root.afs and
> root.cell volumes, but I'm not getting too far.  Does anyone have any
> instructions on how to expand an AFS cell?  Google'ing around didn't
> really get me too far except for setting up first time cells.

Here are the instructions from README.servers in the Debian package:

Adding Additional Servers

  If you decide one server is not enough, or if you're adding a server to
  an existing cell, here is roughly what you should do:

  1.  Copy securely (using scp, encrypted Kerberos rcp, or some other
      secure method) all of /etc/openafs/server to the new server.

  2.  Install the openafs-fileserver package on the new server.

  3.  If the machine is to be a file server, create an fs instance using
      bos create:

          bos create <host> fs fs -cmd /usr/lib/openafs/fileserver \
              -cmd /usr/lib/openafs/volserver \
              -cmd /usr/lib/openafs/salvager -localauth

      For a file server, this is all you have to do.  The above uses the
      default fileserver options, however, which are not particularly
      well-tuned for modern systems.  afs-newcell uses the following
      parameters from Harald Barth:

          -p 23 -busyat 600 -rxpck 400 -s 1200 -l 1200 -cb 65535
          -b 240 -vc 1200

      If you want to add any additional fileserver options, enclose
      /usr/lib/openafs/fileserver and the following options in double
      quotes when giving the bos create command.

  4.  For database servers, also install openafs-dbserver and then use bos
      addhost to add the new server to /etc/openafs/server/CellServDB:

          bos addhost <server> <new-server>

      for each db server <server> in your cell (including the new one).
      Then, restart the ptserver and vlserver instances on each of your
      existing servers with:

          bos restart <server> ptserver
          bos restart <server> vlserver

      It's best to wait a few seconds after doing this for each server
      before doing the next server so that voting finishes and you never
      lose a quorum.

      Only after ptserver and vlserver have been restarted on each of your
      existing servers, create ptserver and vlserver instances on the new
      server:

          bos create <host> ptserver simple /usr/lib/openafs/ptserver \
              -localauth
          bos create <host> vlserver simple /usr/lib/openafs/vlserver \
              -localauth

      The existing servers should then propagate the database to the new
      server.  If you are using buserver, you will need to do the same
      thing for it as with ptserver and vlserver.

      Note that you do not need to run a file server on a db server if you
      don't want to (and larger sites probably will not want to), but you
      always need to have the openafs-fileserver package installed on db
      servers.  It contains the bosserver binary and some of the shared
      infrastructure.

  5.  If you added a new db server, configure your clients to use it.  If
      you are using AFSDB records in DNS, you can just add a new record
      (see point 10 in the instructions for creating a new cell).
      Otherwise, clients will need to have the new server IP address added
      to their /etc/openafs/CellServDB file (or /usr/vice/etc/CellServDB
      for non-Debian clients using the standard AFS paths), and the client
      will have to be restarted before it will know about the new db
      server.

  The standard rule of thumb is that all of your database servers and file
  servers should ideally be running the same version of OpenAFS.  However,
  in practice OpenAFS is fairly good at backward compatibility and you can
  generally mix and match different versions.  Be careful, though, to
  ensure that all of your database servers are built the same when it
  comes to options like --enable-supergroups (enabled in the Debian
  packages).

-- 
Russ Allbery (rra@stanford.edu)             <http://www.eyrie.org/~eagle/>