Chapter 1: Overview

Section 1.1: Introduction

One of the important duties of an AFS system administrator is to insure that processes on file server machines are properly installed and kept running. The BOS Server was written as a tool for assisting administrators in these tasks. An instance of the BOS Server runs on each AFS server machine, and has the following specific areas of responsibility:
  • Definition of the set of processes that are to be run on the machine on which a given BOS Server executes. This definition may be changed dynamically by system administrators. Programs may be marked as continuously or periodically runnable.
  • Automatic startup and restart of these specified processes upon server bootup and program failure. The BOS Server also responds to administrator requests for stopping and starting one or more of these processes. In addition, the BOS Server is capable of restarting itself on command.
  • Collection of information regarding the current status, command line parameters, execution history, and log files generated by the set of server programs.
  • Management of the security information resident on the machine on which the BOS Server executes. Such information includes the list of administratively privileged people associated with the machine and the set of AFS File Server encryption keys used in the course of file service.
  • Management of the cell configuration information for the server machine in question. This includes the name of the cell in which the server resides, along with the list and locations of the servers within the cell providing AFS database services (e.g., volume location, authentication, protection). Installation of server binaries on the given machine. The BOS Server allows several "generations" of server software to be kept on its machine. Installation of new software for one or more server agents is handled by the BOS Server, as is "rolling back" to a previous version should it prove more stable than the currently-installed image.
Execution of commands on the server machine. An administrator may execute arbitrary unix commands on a machine running the BOS Server.
Unlike many other AFS server processes, the BOS Server does not maintain a cell-wide, replicated database. It does, however, maintain several databases used exclusively on every machine on which it runs.

Section 1.2: Scope

This paper describes the design and structure of the AFS-3 BOS Server. The scope of this work is to provide readers with a sufficiently detailed description of the BOS Server so that they may construct client applications that call the server's RPC interface routines.

Section 1.3: Document Layout

The second chapter discusses various aspects of the BOS Server's architecture. First, one of the basic concepts is examined, namely the bnode. Providing the complete description of a program or set of programs to be run on the given server machine, a bnode is the generic definitional unit for the BOS Server's duties. After bnodes have been explained, the set of standard directories on which the BOS Server depends is considered. Also, the set of well-known files within these directories is explored. Their uses and internal formats are presented. After these sections, a discussion of BOS Server restart times follows. The BOS Server has special support for two commonly-used restart occasions, as described by this section. Finally, the organization and behavior of the bosserver program itself is presented.
The third and final chapter provides a detailed examination of the programmer-visible BOS Server constants and structures, along with a full specification of the API for the RPC-based BOS Server functionality.

Section 1.4: Related Documents

This document is a member of a documentation suite providing programmer-level specifications for the operation of the various AFS servers and agents, and the interfaces they export, as well as the underlying RPC system they use to communicate. The full suite of related AFS specification documents is listed below:
  • AFS-3 Programmer's Reference: Architectural Overview: This paper provides an architectual overview of the AFS distributed file system, describing the full set of servers and agents in a coherent way, illustrating their relationships to each other and examining their interactions.
  • AFS-3 Programmer's Reference: File Server/Cache Manager Interface: This document describes the File Server and Cache Manager agents, which provide the backbone file managment services for AFS. The collection of File Servers for a cell supply centralized file storage for that site, and allow clients running the Cache Manager component to acces those files in a high-performance, secure fashion.
  • AFS-3 Programmer's Reference:Volume Server/Volume Location Server Interface: This document describes the services through which "containers" of related user data are located and managed.
  • AFS-3 Programmer's Reference: Protection Server Interface: This paper describes the server responsible for mapping printable user names to and from their internal AFS identifiers. The Protection Server also allows users to create, destroy, and manipulate "groups" of users, which are suitable for placement on ACLs.
  • AFS-3 Programmer's Reference: Specification for the Rx Remote Procedure Call Facility: This document specifies the design and operation of the remote procedure call and lightweight process packages used by AFS.
In addition to these papers, the AFS 3.1 product is delivered with its own user, administrator, installation, and command reference documents.