Section 1.1: Introduction
- This document describes the architecture and interfaces for two of the important agents of the AFS distributed file system, the Volume Server and the Volume Location Server. The Volume Server allows operations affecting entire AFS volumes to be executed, while the Volume Location Server provides a lookup service for volumes, identifying the server or set of servers on which volume instances reside.
Section 1.2: Volumes
Section 1.2.1: Definition
- The underlying concept manipulated by the two AFS servers examined by this document is the volume. Volumes are the basic mechanism for organizing the data stored within the file system. They provide the foundation for addressing, storing, and accessing file data, along with serving as the administrative units for replication, backup, quotas, and data motion between File Servers.
- Specifically, a volume is a container for a hierarchy of files, a connected file system subtree. In this respect, a volume is much like a traditional unix file system partition. Like a partition, a volume can be mounted in the sense that the root directory of the volume can be named within another volume at an AFS mount point. The entire file system hierarchy is built up in this manner, using mount points to glue together the individual subtrees resident within each volume. The root of this hierarchy is then mounted by each AFS client machine using a conventional unix mount point within the workstation's local file system. By convention, this entryway into the AFS domain is mounted on the /afs local directory. From a user's point of view, there is only a single mount point to the system; the internal mount points are generally transparent.
Section 1.2.2: Volume Naming
- There are two methods by which volumes may be named. The first is via a human-readable string name, and the second is via a 32-bit numerical identifier. Volume identifiers, whether string or numerical, must be unique within any given cell. AFS mount points may use either representation to specify the volume whose root directory is to be accessed at the given position. Internally, however, AFS agents use the numerical form of identification exclusively, having to translate names to the corresponding 32-bit value.
Section 1.2.3: Volume Types
- There are three basic volume types: read-write, read-only, and backup volumes.
- Read-write: The data in this volume may be both read and written by those clients authorized to do so.
- Read-only: It is possible to create one or more read-only snapshots of read-write volumes. The read-write volume serving as the source image is referred to as the parent volume. Each read-only clone, or child, instance must reside on a different unix disk partition than the other clones. Every clone instance generated from the same parent read-write volume has the identical volume name and numerical volume ID. This is the reason why no two clones may appear on the same disk partition, as there would be no way to differentiate the two. AFS clients are allowed to read files and directories from read-only volumes, but cannot overwrite them individually. However, it is possible to make changes to the read-write parent and then release the contents of the entire volume to all the read-only replicas. The release operation fails if it does not reach the appropriate replication sites.
- Backup: A backup volume is a special instance of a read-only volume. While it is also a read-only snapshot of a given read-write volume, only one instance is allowed to exist at any one time. Also, the backup volume must reside on the same partition as the parent read-write volume from which it was created. It is from a backup volume that the AFS backup system writes file system data to tape. In addition, backup volumes may be mounted into the file tree just like the other volume types. In fact, by convention, the backup volume for each user's home directory subtree is typically mounted as OldFiles in that directory. If a user accidentally deletes a file that resides in the backup snapshot, the user may simply copy it out of the backup directly without the assistance of a system administrator, or any kind of tape restore operation. Backup volume are implemented in a copy-on-write fashion. Thus, backup volumes may be envisioned as consisting of a set of pointers to the true data objects in the base read-write volume when they are first created. When a file is overwritten in the read-write version for the first time after the backup volume was created, the original data is physically written to the backup volume, breaking the copyon-write link. With this mechanism, backup volumes maintain the image of the read-write volume at the time the snapshot was taken using the minimum amount of additional disk space.
Section 1.3: Scope
- This paper is a member of a documentation suite providing specifications of the operation and interfaces offered by the various AFS servers and agents. The scope of this work is to provide readers with a sufficiently detailed description of the Volume Location Server and the Volume Server so that they may construct client applications which call their RPC interface routines.
Section 1.4: Document Layout
- After this introductory portion of the document, Chapters 2 and 3 examine the architecture and RPC interface of the Volume Location Server and its replicated database. Similarly, Chapters 4 and 5 describe the architecture and RPC interface of the Volume Server.