openafs/doc/xml/AdminGuide/c8420.html
Chas Williams 52557c982e xml-docbook-documentation-first-pass-20060915
needs more massaging to make it fit the tree, but, get it here first
2006-09-16 01:13:22 +00:00

12981 lines
250 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML
><HEAD
><TITLE
>Managing Volumes</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
TITLE="AFS Administration Guide"
HREF="book1.html"><LINK
REL="UP"
TITLE="Managing File Server Machines"
HREF="p3023.html"><LINK
REL="PREVIOUS"
TITLE="Monitoring and Controlling Server Processes"
HREF="c6449.html"><LINK
REL="NEXT"
TITLE="Configuring the AFS Backup System"
HREF="c12776.html"></HEAD
><BODY
CLASS="chapter"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>AFS Administration Guide: Version 3.6</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="c6449.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="c12776.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="chapter"
><H1
><A
NAME="HDRWQ174"
></A
>Chapter 5. Managing Volumes</H1
><P
>This chapter explains how to manage the volumes stored on file server machines. The volume is the designated unit of
administration in AFS, so managing them is a large part of the administrator's duties.</P
><DIV
CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="HDRWQ175"
>Summary of Instructions</A
></H1
><P
>This chapter explains how to perform the following tasks by using the indicated commands:</P
><DIV
CLASS="informaltable"
><A
NAME="AEN8426"
></A
><TABLE
BORDER="0"
FRAME="void"
CLASS="CALSTABLE"
><COL
WIDTH="58*"><COL
WIDTH="42*"><TBODY
><TR
><TD
>Create read/write volume</TD
><TD
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos create</B
></SPAN
></TD
></TR
><TR
><TD
>Create read-only volume</TD
><TD
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos addsite</B
></SPAN
> <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>and</B
></SPAN
> <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos
release</B
></SPAN
></TD
></TR
><TR
><TD
>Create backup volume</TD
><TD
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos backup</B
></SPAN
></TD
></TR
><TR
><TD
>Create many backup volumes at once</TD
><TD
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos backupsys</B
></SPAN
></TD
></TR
><TR
><TD
>Examine VLDB entry</TD
><TD
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos listvldb</B
></SPAN
></TD
></TR
><TR
><TD
>Examine volume header</TD
><TD
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos listvol</B
></SPAN
></TD
></TR
><TR
><TD
>Examine both VLDB entry and volume header</TD
><TD
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos examine</B
></SPAN
></TD
></TR
><TR
><TD
>Display volume's name</TD
><TD
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs listquota</B
></SPAN
> <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>or</B
></SPAN
> <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs
examine</B
></SPAN
></TD
></TR
><TR
><TD
>Display volume's ID number</TD
><TD
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs examine</B
></SPAN
> <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>or</B
></SPAN
> <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos
examine</B
></SPAN
> <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>or</B
></SPAN
> <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos listvol</B
></SPAN
></TD
></TR
><TR
><TD
>Display partition's size and space available</TD
><TD
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos partinfo</B
></SPAN
></TD
></TR
><TR
><TD
>Display volume's location</TD
><TD
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs whereis</B
></SPAN
> <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>or</B
></SPAN
> <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos
examine</B
></SPAN
></TD
></TR
><TR
><TD
>Create mount point</TD
><TD
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs mkmount</B
></SPAN
></TD
></TR
><TR
><TD
>Remove mount point</TD
><TD
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs rmmount</B
></SPAN
></TD
></TR
><TR
><TD
>Display mount point</TD
><TD
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs lsmount</B
></SPAN
></TD
></TR
><TR
><TD
>Move read/write volume</TD
><TD
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos move</B
></SPAN
></TD
></TR
><TR
><TD
>Synchronize VLDB with volume headers</TD
><TD
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos syncvldb</B
></SPAN
> <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>and</B
></SPAN
> <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos
syncserv</B
></SPAN
></TD
></TR
><TR
><TD
>Set volume quota</TD
><TD
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs setvol</B
></SPAN
> <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>or</B
></SPAN
> <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs
setquota</B
></SPAN
></TD
></TR
><TR
><TD
>Display volume quota</TD
><TD
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs quota</B
></SPAN
> <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>or</B
></SPAN
> <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs
listquota</B
></SPAN
> <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>or</B
></SPAN
> <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs examine</B
></SPAN
></TD
></TR
><TR
><TD
>Display volume's current size</TD
><TD
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs listquota</B
></SPAN
> <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>or</B
></SPAN
> <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs
examine</B
></SPAN
></TD
></TR
><TR
><TD
>Display list of volumes on a machine/partition</TD
><TD
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos listvol</B
></SPAN
></TD
></TR
><TR
><TD
>Remove read/write volume</TD
><TD
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos remove</B
></SPAN
> <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>and</B
></SPAN
> <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs
rmmount</B
></SPAN
></TD
></TR
><TR
><TD
>Remove read-only volume</TD
><TD
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos remove</B
></SPAN
></TD
></TR
><TR
><TD
>Remove backup volume</TD
><TD
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos remove</B
></SPAN
> <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>and</B
></SPAN
> <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs
rmmount</B
></SPAN
></TD
></TR
><TR
><TD
>Remove volume; no VLDB change</TD
><TD
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos zap</B
></SPAN
></TD
></TR
><TR
><TD
>Remove read-only site definition</TD
><TD
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos remsite</B
></SPAN
></TD
></TR
><TR
><TD
>Remove VLDB entry; no volume change</TD
><TD
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos delentry</B
></SPAN
></TD
></TR
><TR
><TD
>Dump volume</TD
><TD
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos dump</B
></SPAN
></TD
></TR
><TR
><TD
>Restore dumped volume</TD
><TD
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos restore</B
></SPAN
></TD
></TR
><TR
><TD
>Rename volume</TD
><TD
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos rename</B
></SPAN
>, <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs rmmount</B
></SPAN
> <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>and</B
></SPAN
> <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs mkmount</B
></SPAN
></TD
></TR
><TR
><TD
>Unlock volume</TD
><TD
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos unlock</B
></SPAN
></TD
></TR
><TR
><TD
>Unlock multiple volumes</TD
><TD
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos unlockvldb</B
></SPAN
></TD
></TR
><TR
><TD
>Lock volume</TD
><TD
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos lock</B
></SPAN
></TD
></TR
></TBODY
></TABLE
></DIV
></DIV
><DIV
CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="HDRWQ177"
>About Volumes</A
></H1
><P
>An AFS <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>volume</I
></SPAN
> is a logical unit of disk space that functions like a container for the files in an AFS
directory, keeping them all together on one partition of a file server machine. To make a volume's contents visible in the
cell's file tree and accessible to users, you mount the volume at a directory location in the AFS filespace. The association
between the volume and its location in the filespace is called a <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>mount point</I
></SPAN
>, and because of AFS's internal
workings it looks and acts just like a standard directory element. Users can access and manipulate a volume's contents in the
same way they access and manipulate the contents of a standard UNIX directory. For more on the relationship between volumes and
directories, see <A
HREF="c8420.html#HDRWQ183"
>About Mounting Volumes</A
>.</P
><P
>Many of an administrator's daily activities involve manipulating volumes, since they are the basic storage and
administrative unit of AFS. For a discussion of some of the ways volumes can make your job easier, see <A
HREF="c8420.html#HDRWQ179"
>How Volumes Improve AFS Efficiency</A
>.</P
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="HDRWQ178"
>The Three Types of Volumes</A
></H2
><P
>There are three types of volumes in AFS, as described in the following list: <UL
><LI
><P
>The single <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>read/write</I
></SPAN
> version of a volume houses the modifiable versions of the files and
directories in that volume. It is often referred to as the <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>read/write</I
></SPAN
> source because volumes of the
other two types are derived from it by a copying procedure called <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>cloning</I
></SPAN
>. For instructions on
creating read/write volumes, see <A
HREF="c8420.html#HDRWQ185"
>Creating Read/write Volumes</A
>.</P
></LI
><LI
><P
>A <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>read-only</I
></SPAN
> volume is a copy of the read/write source volume and can exist at multiple
<SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>sites</I
></SPAN
> (a site is a particular partition on a particular file server machine). Placing the same data
at more than one site is called <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>replication</I
></SPAN
>; see <A
HREF="c8420.html#HDRWQ179"
>How Volumes Improve AFS
Efficiency</A
>. As the name suggests, a read-only volume's contents do not change automatically as the read/write
source changes, but only when an administrator issues the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos release</B
></SPAN
> command. For
users to have a consistent view of the AFS filespace, all copies of the read-only volume must match each other and their
read/write source. All read-only volumes share the same name, which is derived by adding the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>.readonly</B
></SPAN
> extension to the read/write source's name. For instructions on creating of read-only
volumes, see <A
HREF="c8420.html#HDRWQ192"
>Replicating Volumes (Creating Read-only Volumes)</A
>.</P
></LI
><LI
><P
>A <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>backup</I
></SPAN
> volume is a clone of the read/write source volume and is stored at the same site as
the source. A backup version is useful because it records the state of the read/write source at a certain time, allowing
recovery of data that is later mistakenly changed or deleted (for further discussion see <A
HREF="c8420.html#HDRWQ179"
>How
Volumes Improve AFS Efficiency</A
>). A backup volume's name is derived by adding the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>.backup</B
></SPAN
> extension to the read/write source's name. For instructions on creating of backup
volumes, see <A
HREF="c8420.html#HDRWQ201"
>Creating Backup Volumes</A
>.</P
><DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Note: </B
>A backup volume is not the same as the backup of a volume transferred to tape using the AFS Backup System,
although making a backup version of a volume is usually a stage in the process of backing up the volume to tape. For
information on backing up a volume using the AFS Backup System, see <A
HREF="c15383.html#HDRWQ296"
>Backing Up
Data</A
>.</P
></BLOCKQUOTE
></DIV
></LI
></UL
></P
><P
>As noted, the three types of volumes are related to one another: read-only and backup volumes are both derived from a
read/write volume through a process called cloning. Read-only and backup volumes are exact copies of the read/write source at
the time they are created.</P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="HDRWQ179"
>How Volumes Improve AFS Efficiency</A
></H2
><P
>Volumes make your cell easier to manage and more efficient in the following three ways: <UL
><LI
><P
>Volumes are easy to move between partitions, on the same or different machines, because they are by definition
smaller than a partition. Perhaps the most common reasons to move volumes are to balance the load among file server
machines or to take advantage of greater disk capacity on certain machines. You can move volumes as often as necessary
without disrupting user access to their contents, because the move procedure makes the contents unavailable for only a
few seconds. The automatic tracking of volume locations in the Volume Location Database (VLDB) assures that access
remains transparent. For instructions on moving volumes, see <A
HREF="c8420.html#HDRWQ226"
>Moving Volumes</A
>.</P
></LI
><LI
><P
>Volumes are the unit of replication in AFS. <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>Replication</I
></SPAN
> refers to creating a read-only clone
from the read/write source and distributing of the clone to one or more sites. Replication improves system efficiency
because more than one machine can fill requests for popular files. It also boosts system reliability by helping to keep
data available in the face of machine or server process outage. In general, volumes containing popular application
programs and other files that do not change often are the best candidates for replication, but you can replicate any
read/write volume. See <A
HREF="c8420.html#HDRWQ192"
>Replicating Volumes (Creating Read-only Volumes)</A
>.</P
></LI
><LI
><P
>Volumes are the unit of backup in AFS, in two senses. You can create a backup volume version to preserves the
state of a read/write source volume at a specified time. You can mount the backup version in the AFS filespace, enabling
users to restore data they have accidentally changed or deleted without administrator assistance, which frees you for
more important jobs. If you make a new backup version of user volumes once a day (presumably overwriting the former
backup), then users are always be able to retrieve the previous day's version of a file. For instructions, see <A
HREF="c8420.html#HDRWQ201"
>Creating Backup Volumes</A
>.</P
><P
>Backup also refers to using the AFS Backup System to store permanent copies of volume contents on tape or in a
special backup data. See <A
HREF="c12776.html"
>Configuring the AFS Backup System</A
>and <A
HREF="c15383.html"
>Backing Up and Restoring AFS Data</A
>.</P
></LI
></UL
></P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="HDRWQ180"
>Volume Information in the VLDB</A
></H2
><P
>The Volume Location Database (VLDB) includes entries for every volume in a cell. Perhaps the most important information
in the entry is the volume's location, which is key to transparent access to AFS data. When a user opens a file, the Cache
Manager consults the Volume Location (VL) Server, which maintains the VLDB, for a list of the file server machines that house
the volume containing the file. The Cache Manager then requests the file from the File Server running on one of the relevant
file server machines. The file location procedure is invisible to the user, who only needs to know the file's pathname.</P
><P
>The VLDB volume entry for a read/write volume also contains the pertinent information about the read-only and backup
versions, which do not have their own VLDB entries. (The rare exception is a read-only volume that has its own VLDB entry
because its read/write source has been removed.) A volume's VLDB entry records the volume's name, the unique volume ID number
for each version (read/write, read-only, backup, and releaseClone), a count of the number of sites that house a read/write or
read-only version, and a list of the sites.</P
><P
>To display the VLDB entry for one or more volumes, use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos listvldb</B
></SPAN
> command as
described in <A
HREF="c8420.html#HDRWQ218"
>To display VLDB entries</A
>. To display the VLDB entry for a single volume along with
its <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>volume header</I
></SPAN
>, use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos examine</B
></SPAN
> command as described in <A
HREF="c8420.html#HDRWQ222"
>To display one volume's VLDB entry and volume header</A
>. (See the following section for a description
of the volume header.)</P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="HDRWQ181"
>The Information in Volume Headers</A
></H2
><P
>Whereas all versions of a volume share one VLDB entry, each volume on an AFS server partition has its own volume header,
a data structure that maps the files and directories in the volume to physical memory addresses on the partition that stores
them. The volume header binds the volume's contents into a logical unit without requiring that they be stored in contiguous
memory blocks. The volume header also records the following information about the volume, some of it redundant with the VLDB
entry: name, volume ID number, type, size, status (online, offline, or busy), space quota, timestamps for creation date and
date of last modification, and number of accesses during the current day.</P
><P
>To display the volume headers on one or more partitions, use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos listvol</B
></SPAN
> command as
described in <A
HREF="c8420.html#HDRWQ220"
>To display volume headers</A
>. To display the VLDB entry for a single volume along
with its volume header, use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos examine</B
></SPAN
> command as described in <A
HREF="c8420.html#HDRWQ222"
>To display one volume's VLDB entry and volume header</A
>.</P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="HDRWQ182"
>Keeping the VLDB and Volume Headers Synchronized</A
></H2
><P
>It is vital that the information in the VLDB correspond to the status of the actual volumes on the servers (as recorded
in volume headers) as much of the time as possible. If a volume's location information in the VLDB is incorrect, the Cache
Manager cannot find access its contents. Whenever you issue a <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos</B
></SPAN
> command that changes a
volume's status, the Volume Server and VL Server cooperate to keep the volume header and VLDB synchronized. In rare cases, the
header and VLDB can diverge, for instance because a <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos</B
></SPAN
> operation halts prematurely. For
instructions on resynchronizing them, see <A
HREF="c8420.html#HDRWQ227"
>Synchronizing the VLDB and Volume Headers</A
>.</P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="HDRWQ183"
>About Mounting Volumes</A
></H2
><P
>To make a volume's contents visible in the cell's file tree and accessible to users, you mount the volume at a directory
location in the AFS filespace. The association between the volume and its location in the filespace is called a
<SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>mount point</I
></SPAN
>. An AFS mount point looks and functions like a regular UNIX file system directory, but
structurally it is more like a symbolic link that tells the Cache Manager the name of the volume associated with the
directory. A mount point looks and acts like a directory only because the Cache Manager knows how to interpret it.</P
><P
>Consider the common case where the Cache Manager needs to retrieve a file requested by an application program. The Cache
Manager traverses the file's complete pathname, starting at the AFS root (by convention mounted at the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/afs</B
></SPAN
> directory) and continuing to the file. When the Cache Manager encounters (or
<SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>crosses</I
></SPAN
>) a mount point during the traversal, it reads it to learn the name of the volume mounted at that
directory location. After obtaining location information about the volume from the Volume Location (VL) Server, the Cache
Manager fetches the indicated volume and opens its <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>root directory</I
></SPAN
>. The root directory of a volume lists
all the files, subdirectories, and mount points that reside in it. The Cache Manager scans the root directory listing for the
next element in the pathname. It continues down the path, using this method to interpret any other mount points it encounters,
until it reaches the volume that houses the requested file.</P
><P
>Mount points act as the glue that connects the AFS file space, creating the illusion of a single, seamless file tree
even when volumes reside on many different file server machines. A volume's contents are visible and accessible when the
volume is mounted at a directory location, and are not accessible at all if the volume is not mounted.</P
><P
>You can mount a volume at more than one location in the file tree, but this is not recommended for two reasons. First,
it distorts the hierarchical nature of the filespace. Second, the Cache Manager can become confused about which pathname it
followed to reach the file (causing unpredictable output from the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>pwd</B
></SPAN
> command, for example).
However, if you mount a volume at more than one directory, the access control list (ACL) associated with the volume's root
directory applies to all of the mount points.</P
><P
>There are several types of mount points, each of which the Cache Manager handles in a different way and each of which is
appropriate for a different purpose. See <A
HREF="c8420.html#HDRWQ208"
>Mounting Volumes</A
>.</P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="HDRWQ184"
>About Volume Names</A
></H2
><P
>A read/write volume's name can be up to 22 characters in length. The Volume Server automatically adds the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>.readonly</B
></SPAN
> and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>.backup</B
></SPAN
> extensions to read-only and backup volumes
respectively. Do not explicitly add the extensions to volume names, even if they are appropriate.</P
><P
>It is conventional for a volume's name to indicate the type of data it houses. For example, it is conventional to name
all user volumes <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>user</B
></SPAN
>.username where username is the user's login name. Similarly, many cells
elect to put system binaries in volumes with names that begin with the system type code. For a list of other naming
conventions, see <A
HREF="c667.html#HDRWQ44"
>Creating Volumes to Simplify Administration</A
>.</P
></DIV
></DIV
><DIV
CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="HDRWQ185"
>Creating Read/write Volumes</A
></H1
><P
>A read/write volume is the most basic type of volume, and must exist before you can create read-only or backup versions of
it. When you issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos create</B
></SPAN
> command to create a read/write volume, the VL Server creates
a VLDB entry for it which records the name you specify, assigns a read/write volume ID number, and reserves the next two
consecutive volume ID numbers for read-only and backup versions that possibly are to be created later. At the same time, the
Volume Server creates a volume header at the site you designate, allocating space on disk to record the name of the volume's
root directory. The name is filled in when you issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs mkmount</B
></SPAN
> command to mount the
volume, and matches the mount point name. The following is also recorded in the volume header: <UL
><LI
><P
>An initial ACL associated with the volume's root directory. By default it grants all seven AFS access permissions to
the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>system:administrators</B
></SPAN
> group. After you mount the volume, you can use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs setacl</B
></SPAN
> command to add other entries and to remove or change the entry for the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>system:administrators</B
></SPAN
> group. See <A
HREF="c31274.html#HDRWQ573"
>Setting ACL Entries</A
>.</P
></LI
><LI
><P
>A space quota, which limits the amount of disk space the read/write version of the volume can use on the file server
partition. The default is of 5000 kilobyte blocks, but you can use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-maxquota</B
></SPAN
> argument
to the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos create</B
></SPAN
> command to set a different quota.</P
><P
>To change the quota after creation, use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs setquota</B
></SPAN
> command as described in
<A
HREF="c8420.html#HDRWQ234"
>Setting and Displaying Volume Quota and Current Size</A
>.</P
></LI
></UL
></P
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="Header_212"
>To create (and mount) a read/write volume</A
></H2
><OL
TYPE="1"
><LI
><P
>Verify that you are listed in the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/usr/afs/etc/UserList</B
></SPAN
> file. If necessary, issue
the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos listusers</B
></SPAN
> command, which is fully described in <A
HREF="c32432.html#HDRWQ593"
>To
display the users in the UserList file</A
>. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos listusers</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>machine name</VAR
>&#62;
</PRE
></P
></LI
><LI
><P
>Verify that you have the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>a</B
></SPAN
>( <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>administer</B
></SPAN
>), <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>i</B
></SPAN
>( <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>insert</B
></SPAN
>), and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>l</B
></SPAN
>( <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>lookup</B
></SPAN
>) permissions on the ACL of the directory where you plan to mount the volume. If necessary,
issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs listacl</B
></SPAN
> command, which is fully described in <A
HREF="c31274.html#HDRWQ572"
>Displaying ACLs</A
>. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs listacl</B
></SPAN
> [&#60;<SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>dir/file path</I
></SPAN
>&#62;]</PRE
></P
><P
>Members of the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>system:administrators</B
></SPAN
> group always implicitly have the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>a</B
></SPAN
>( <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>administer</B
></SPAN
>) and by default also the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>l</B
></SPAN
>( <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>lookup</B
></SPAN
>) permission on every ACL and can use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs setacl</B
></SPAN
> command to grant other rights as necessary.</P
></LI
><LI
><P
><A
NAME="LIWQ186"
></A
>Select a site (disk partition on a file server machine) for the new volume. To verify that
the site has enough free space to house the volume (now, or if it grows to use its entire quota), issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos partinfo</B
></SPAN
> command.</P
><DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Note: </B
>The partition-related statistics in this command's output do not always agree with the corresponding values in the
output of the standard UNIX <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>df</B
></SPAN
> command. The statistics reported by this command can be
up to five minutes old, because the Cache Manager polls the File Server for partition information at that frequency.
Also, on some operating systems, the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>df</B
></SPAN
> command's report of partition size includes
reserved space not included in this command's calculation, and so is likely to be about 10% larger.</P
></BLOCKQUOTE
></DIV
><PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos partinfo</B
></SPAN
> &#60;<SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>machine name</I
></SPAN
>&#62; [&#60;<SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>partition name</I
></SPAN
>&#62;]</PRE
><P
>where <DIV
CLASS="variablelist"
><DL
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>p</B
></SPAN
></DT
><DD
><P
>Is the shortest acceptable abbreviation of <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>partinfo</B
></SPAN
>.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>machine name</B
></SPAN
></DT
><DD
><P
>Specifies the file server machine for which to display partition size and usage.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>partition name</B
></SPAN
></DT
><DD
><P
>Names one partition for which to display partition size and usage. If you omit it, the output displays the
size and space available for all partitions on the machine.</P
></DD
></DL
></DIV
></P
></LI
><LI
><P
><A
NAME="LIWQ187"
></A
>Select a volume name, taking note of the information in <A
HREF="c8420.html#HDRWQ184"
>About Volume
Names</A
>.</P
></LI
><LI
><P
><A
NAME="LIWQ188"
></A
>Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos create</B
></SPAN
> command to create the volume.
<PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos create</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>machine name</VAR
>&#62; &#60;<VAR
CLASS="replaceable"
>partition name</VAR
>&#62; &#60;<VAR
CLASS="replaceable"
>volume name</VAR
>&#62; \
[<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-maxquota</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>initial quota (KB)</VAR
>&#62;]
</PRE
></P
><P
>where <DIV
CLASS="variablelist"
><DL
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>cr</B
></SPAN
></DT
><DD
><P
>Is the shortest acceptable abbreviation of <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>create</B
></SPAN
>.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>machine name</B
></SPAN
></DT
><DD
><P
>Specifies the file server machine on which to place the volume.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>partition name</B
></SPAN
></DT
><DD
><P
>Specifies the disk partition on which to place the volume.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>volume name</B
></SPAN
></DT
><DD
><P
>Names the volume. It can be up to 22 alphanumeric and punctuation characters in length. Your cell possibly
has naming conventions for volumes, such as beginning user volume names with the string <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>user</B
></SPAN
> and using the period to separate parts of the name.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-maxquota</B
></SPAN
></DT
><DD
><P
>Sets the volume's quota, as a number of kilobyte blocks. If you omit this argument, the quota is set to 5000
kilobyte blocks.</P
></DD
></DL
></DIV
></P
></LI
><LI
><A
NAME="LIWQ189"
></A
><P
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>(Optional)</B
></SPAN
> Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs mkmount</B
></SPAN
> command to mount
the volume in the filespace. For complete syntax, see <A
HREF="c8420.html#HDRWQ212"
>To create a regular or read/write mount
point</A
>. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs mkmount</B
></SPAN
> &#60;<SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>directory</I
></SPAN
>&#62; &#60;<SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>volume name</I
></SPAN
>&#62;</PRE
></P
></LI
><LI
><P
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>(Optional)</B
></SPAN
> Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs lsmount</B
></SPAN
> command to verify
that the mount point refers to the correct volume. Complete instructions appear in <A
HREF="c8420.html#HDRWQ211"
>To display a
mount point</A
>. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs lsmount</B
></SPAN
> &#60;<SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>directory</I
></SPAN
>&#62;</PRE
></P
></LI
><LI
><P
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>(Optional)</B
></SPAN
> Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs setvol</B
></SPAN
> command with the
<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-offlinemsg</B
></SPAN
> argument to record auxiliary information about the volume in its volume
header. For example, you can record who owns the volume or where you have mounted it in the filespace. To display the
information, use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs examine</B
></SPAN
> command. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs setvol</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>dir/file path</VAR
>&#62; <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-offlinemsg </B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>offline message</VAR
>&#62;
</PRE
></P
><P
>where <DIV
CLASS="variablelist"
><DL
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>sv</B
></SPAN
></DT
><DD
><P
>Is an acceptable alias for <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>setvol</B
></SPAN
>(and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>setv</B
></SPAN
>
the shortest acceptable abbreviation).</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>dir/file path</B
></SPAN
></DT
><DD
><P
>Names the mount point of the volume with which to associate the message. Partial pathnames are interpreted
relative to the current working directory.</P
><P
>Specify the read/write path to the mount point, to avoid the failure that results when you attempt to change
a read-only volume. By convention, you indicate the read/write path by placing a period before the cell name at
the pathname's second level (for example, <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/afs/.abc.com</B
></SPAN
>). For further discussion
of the concept of read/write and read-only paths through the filespace, see <A
HREF="c8420.html#HDRWQ209"
>The Rules of
Mount Point Traversal</A
>.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-offlinemsg</B
></SPAN
></DT
><DD
><P
>Specifies up to 128 characters of auxiliary information to record in the volume header.</P
></DD
></DL
></DIV
></P
></LI
></OL
></DIV
></DIV
><DIV
CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="HDRWQ190"
>About Clones and Cloning</A
></H1
><P
>To create a backup or read-only volume, the Volume Server begins by <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>cloning</I
></SPAN
> the read/write source
volume to create a <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>clone</I
></SPAN
>. The Volume Server creates the clone automatically when you issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos backup</B
></SPAN
> or <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos backupsys</B
></SPAN
> command (for a backup volume) or the
<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos release</B
></SPAN
> command (for a read-only volume). No special action is required on your
part.</P
><P
>A clone is not a copy of the data in the read/write source volume, but rather a copy of the read/write volume's
<SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>vnode index</I
></SPAN
>. The vnode index is a table of pointers between the files and directories in the volume and the
physical disk blocks on the partition where the data resides. From the clone, backup and read-only volumes are created in the
following manner: <UL
><LI
><P
>A read-only volume that occupies the same partition as its read/write source (also known as a <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>read-only
clone</I
></SPAN
>), and a backup volume, are created by attaching a volume header to the clone. These volumes initially
consume very little disk space, because the clone portion (the vnode index) points to exactly the same files as the
read/write volume, as illustrated in <A
HREF="c8420.html#FIGWQ191"
>Figure 1</A
>. The file sharing is possible only because
the clone is on the same partition as the read/write source volume. When a file in the read/write volume is deleted, it is
not actually removed from the partition, because the backup or read-only clone still points to it. Similarly, when a file
in the read/write is changed, the entire original file is preserved on disk because the clone still points to it, and the
read/write volume's vnode index changes to point to newly space for the changed file. When this happens, the backup or
read-only volume is said to grow or start occupying actual disk space.</P
></LI
><LI
><P
>A read-only volume that does not occupy the same site as the read/write source is a copy of the clone and of all of
the data in the read/write source volume. It occupies the same amount of disk space as the read/write volume did at the
time the read-only volume was created.</P
></LI
></UL
></P
><DIV
CLASS="figure"
><A
NAME="FIGWQ191"
></A
><DIV
CLASS="mediaobject"
><P
><IMG
SRC="vnode.png"></P
></DIV
><P
><B
>Figure 1. File Sharing Between the Read/write Source and a Clone Volume</B
></P
></DIV
></DIV
><DIV
CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="HDRWQ192"
>Replicating Volumes (Creating Read-only Volumes)</A
></H1
><P
><SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>Replication</I
></SPAN
> refers to creating a read-only copy of a read/write volume and distributing the copy to
one or more additional file server machines. Replication makes a volume's contents accessible on more than one file server
machine, which increases data availability. It can also increase system efficiency by reducing load on the network and File
Server. Network load is reduced if a client machine's server preference ranks lead the Cache Manager to access the copy of a
volume stored on the closest file server machine. Load on the File Server is reduced because it issues only one callback for all
data fetched from a read-only volume, as opposed to a callback for each file fetched from a read/write volume. The single
callback is sufficient for an entire read-only volume because the volume does not change except in response to administrator
action, whereas each read/write file can change at any time.</P
><P
>Replicating a volume requires issuing two commands. First, use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos addsite</B
></SPAN
> command to
add one or more read-only site definitions to the volume's VLDB entry (a <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>site</I
></SPAN
> is a particular partition on
a file server machine). Then use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos release</B
></SPAN
> command to clone the read/write source volume
and distribute the clone to the defined read-only sites. You issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos addsite</B
></SPAN
> only once
for each read-only site, but must reissue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos release</B
></SPAN
> command every time the read/write
volume's contents change and you want to update the read-only volumes.</P
><P
>For users to have a consistent view of the file system, the release of updated volume contents to read-only sites must be
atomic: either all read-only sites receive the new version of the volume, or all sites keep the version they currently have. The
<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos release</B
></SPAN
> command is designed to ensure that all copies of the volume's read-only version
match both the read/write source and each other. In cases where problems such as machine or server process outages prevent
successful completion of the release operation, AFS uses two mechanisms to alert you.</P
><P
>First, the command interpreter generates an error message on the standard error stream naming each read-only site that did
not receive the new volume version. Second, during the release operation the Volume Location (VL) Server marks site definitions
in the VLDB entry with flags (<SAMP
CLASS="computeroutput"
>New release</SAMP
> and <SAMP
CLASS="computeroutput"
>Old release</SAMP
>)
that indicate whether or not the site has the new volume version. If any flags remain after the operation completes, it was not
successful. The Cache Manager refuses to access a read-only site marked with the <SAMP
CLASS="computeroutput"
>Old release</SAMP
>
flag, which potentially imposes a greater load on the sites marked with the <SAMP
CLASS="computeroutput"
>New release</SAMP
> flag.
It is important to investigate and eliminate the cause of the failure and then to issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos
release</B
></SPAN
> command as many times as necessary to complete the release without errors.</P
><P
>The pattern of site flags remaining in the volume's VLDB entry after a failed release operation can help determine the
point at which the operation failed. Use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos examine</B
></SPAN
> or <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos
listvldb</B
></SPAN
> command to display the VLDB entry. The VL Server sets the flags in concert with the Volume Server's
operations, as follows: <OL
TYPE="1"
><LI
><P
>Before the operation begins, the VL Server sets the <SAMP
CLASS="computeroutput"
>New release</SAMP
> flag on the
read/write site definition in the VLDB entry and the <SAMP
CLASS="computeroutput"
>Old release</SAMP
> flag on read-only site
definitions (unless the read-only site has been defined since the last release operation and has no actual volume, in
which case its site flag remains <SAMP
CLASS="computeroutput"
>Not released</SAMP
>).</P
></LI
><LI
><P
>If necessary, the Volume Server creates a temporary copy (a <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>clone</I
></SPAN
>) of the read/write source
called the ReleaseClone (see the following discussion of when the Volume Server does or does not create a new
ReleaseClone.) It assigns the ReleaseClone its own volume ID number, which the VL Server records in the
<SAMP
CLASS="computeroutput"
>RClone</SAMP
> field of the source volume's VLDB entry.</P
></LI
><LI
><P
>The Volume Server distributes a copy of the ReleaseClone to each read-only site defined in the VLDB entry. As the
site successfully receives the new clone, the VL Server sets the site's flag in the VLDB entry to <SAMP
CLASS="computeroutput"
>New
release</SAMP
>.</P
></LI
><LI
><P
>When all the read-only copies are successfully released, the VL Server clears all the <SAMP
CLASS="computeroutput"
>New
release</SAMP
> site flags. The ReleaseClone is no longer needed, so the Volume Server deletes it and the VL
Server erases its ID from the VLDB entry.</P
></LI
></OL
></P
><P
>By default, the Volume Server determines automatically whether or not it needs to create a new ReleaseClone: <UL
><LI
><P
>If there are no flags (<SAMP
CLASS="computeroutput"
>New release</SAMP
>, <SAMP
CLASS="computeroutput"
>Old release</SAMP
>,
or <SAMP
CLASS="computeroutput"
>Not released</SAMP
>) on site definitions in the VLDB entry, the previous <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos release</B
></SPAN
> command completed successfully and all read-only sites currently have the same volume.
The Volume Server infers that the current <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos release</B
></SPAN
> command was issued because the
read/write volume has changed. The Volume Server creates a new ReleaseClone and distributes it to all of the read-only
sites.</P
></LI
><LI
><P
>If any site definition in the VLDB entry is marked with a flag, either the previous release operation did not
complete successfully or a new read-only site was defined since the last release. The Volume Server does not create a new
ReleaseClone, instead distributing the existing ReleaseClone to sites marked with the <SAMP
CLASS="computeroutput"
>Old
release</SAMP
> or <SAMP
CLASS="computeroutput"
>Not released</SAMP
> flag. As previously noted, the VL Server marks
each VLDB site definition with the <SAMP
CLASS="computeroutput"
>New release</SAMP
> flag as the site receives the
ReleaseClone, and clears all flags after all sites successfully receive it.</P
></LI
></UL
></P
><P
>To override the default behavior, forcing the Volume Server to create and release a new ReleaseClone to the read-only
sites, include the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-f</B
></SPAN
> flag. This is appropriate if, for example, the data at the read/write
site has changed since the existing ReleaseClone was created during the previous release operation.</P
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="HDRWQ193"
>Using Read-only Volumes Effectively</A
></H2
><P
>For maximum effectiveness, replicate only volumes that satisfy two criteria: <UL
><LI
><P
>The volume's contents are heavily used. Examples include a volume housing binary files for text editors or other
popular application programs, and volumes mounted along heavily traversed directory paths such as the paths leading to
user home directories. It is an inefficient use of disk space to replicate volumes for which the demand is low enough
that a single File Server can easily service all requests.</P
></LI
><LI
><P
>The volume's contents change infrequently. As noted, file system consistency demands that the contents of
read-only volumes must match each other and their read/write source at all times. Each time the read/write volume
changes, you must issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos release</B
></SPAN
> command to update the read-only volumes. This
can become tedious (and easy to forget) if the read/write volume changes frequently.</P
></LI
></UL
></P
><P
>Explicitly mounting a read-only volume (creating a mount point that names a volume with a <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>.readonly</B
></SPAN
> extension) is not generally necessary or appropriate. The Cache Manager has a built-in bias
to access the read-only version of a replicated volume whenever possible. As described in more detail in <A
HREF="c8420.html#HDRWQ209"
>The Rules of Mount Point Traversal</A
>, when the Cache Manager encounters a mount point it reads the
volume name inside it and contacts the VL Server for a list of the sites that house the volume. In the normal case, if the
mount point resides in a read-only volume and names a read/write volume (one that does not have a <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>.readonly</B
></SPAN
> or <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>.backup</B
></SPAN
> extension), the Cache Manager always attempts to
access a read-only copy of the volume. Thus there is normally no reason to force the Cache Manager to access a read-only
volume by mounting it explicitly.</P
><P
>It is a good practice to place a read-only volume at the read/write site, for a couple of reasons. First, the read-only
volume at the read/write site requires only a small amount of disk space, because it is a clone rather a copy of all of the
data (see <A
HREF="c8420.html#HDRWQ190"
>About Clones and Cloning</A
>). Only if a large number of files are removed or changed in
the read/write volume does the read-only copy occupy much disk space. That normally does not happen because the appropriate
response to changes in a replicated read/write volume is to reclone it. The other reason to place a read-only volume at the
read/write site is that the Cache Manager does not attempt to access the read/write version of a replicated volume if all
read-only copies become inaccessible. If the file server machine housing the read/write volume is the only accessible machine,
the Cache Manager can access the data only if there is a read-only copy at the read/write site.</P
><P
>The number of read-only sites to define depends on several factors. Perhaps the main trade-off is between the level of
demand for the volume's contents and how much disk space you are willing to use for multiple copies of the volume. Of course,
each prospective read-only site must have enough available space to accommodate the volume. The limit on the number of
read-only copies of a volume is determined by the maximum number of site definitions in a volume's VLDB entry, which is
defined in the <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
> IBM AFS Release Notes</I
></SPAN
>. The site housing the read/write and backup versions of the volume
counts as one site, and each read-only site counts as an additional site (even the read-only site defined on the same file
server machine and partition as the read/write site counts as a separate site). Note also that the Volume Server permits only
one read-only copy of a volume per file server machine.</P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="Header_216"
>Replication Scenarios</A
></H2
><P
>The instructions in the following section explain how to replicate a volume for which no read-only sites are currently
defined. However, you can also use the instructions in other common situations: <UL
><LI
><P
>If you are releasing a new clone to sites that already exist, you can skip Step <A
HREF="c8420.html#LIWQ196"
>2</A
>.
It can still be useful to issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos examine</B
></SPAN
> command, however, to verify that the
desired read-only sites are defined.</P
></LI
><LI
><P
>If you are adding new read-only sites to existing ones, perform all of the steps. In Step <A
HREF="c8420.html#LIWQ197"
>3</A
>, issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos addsite</B
></SPAN
> command for the new sites
only.</P
></LI
><LI
><P
>If you are defining sites but do not want to release a clone to them yet, stop after Step <A
HREF="c8420.html#LIWQ197"
>3</A
>and continue when you are ready.</P
></LI
><LI
><P
>If you are removing one or more sites before releasing a new clone to the remaining sites, follow the instructions
for site removal in <A
HREF="c8420.html#HDRWQ235"
>Removing Volumes and their Mount Points</A
>and then start with Step
<A
HREF="c8420.html#LIWQ198"
>4</A
>.</P
></LI
></UL
></P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="HDRWQ194"
>To replicate a read/write volume (create a read-only volume)</A
></H2
><OL
TYPE="1"
><LI
><P
><A
NAME="LIWQ195"
></A
>Verify that you are listed in the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/usr/afs/etc/UserList</B
></SPAN
>
file. If necessary, issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos listusers</B
></SPAN
> command, which is fully described in <A
HREF="c32432.html#HDRWQ593"
>To display the users in the UserList file</A
>. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos listusers</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>machine name</VAR
>&#62;
</PRE
></P
></LI
><LI
><P
><A
NAME="LIWQ196"
></A
>Select one or more sites at which to replicate the volume. There are several factors to
consider: <UL
><LI
><P
>How many sites are already defined. As previously noted, it is usually appropriate to define a read-only site
at the read/write site. Also, the Volume Server permits only one read-only copy of a volume per file server machine.
To display the volume's current sites, issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos examine</B
></SPAN
> command, which is
described fully in <A
HREF="c8420.html#HDRWQ221"
>Displaying One Volume's VLDB Entry and Volume Header</A
>.
<PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos examine</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>volume name or ID</VAR
>&#62;
</PRE
></P
><P
>The final lines of output display the volume's site definitions from the VLDB.</P
></LI
><LI
><P
>Whether your cell dedicates any file server machines to housing read-only volumes only. In general, only very
large cells use read-only server machines.</P
></LI
><LI
><P
>Whether a site has enough free space to accommodate the volume. A read-only volume requires the same amount of
space as the read/write version (unless it is at the read/write site itself). The first line of output from the
<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos examine</B
></SPAN
> command displays the read/write volume's current size in kilobyte
blocks, as shown in <A
HREF="c8420.html#HDRWQ221"
>Displaying One Volume's VLDB Entry and Volume Header</A
>.</P
><P
>To display the amount of space available on a file server machine's partitions, use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos partinfo</B
></SPAN
> command, which is described fully in <A
HREF="c8420.html#HDRWQ185"
>Creating
Read/write Volumes</A
>.</P
><PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos partinfo</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>machine name</VAR
>&#62; [&#60;<VAR
CLASS="replaceable"
>partition name</VAR
>&#62;]
</PRE
></LI
></UL
></P
></LI
><LI
><P
><A
NAME="LIWQ197"
></A
>Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos addsite</B
></SPAN
> command to define each new read-only
site in the VLDB. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos addsite</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>machine name</VAR
>&#62; &#60;<VAR
CLASS="replaceable"
>partition name</VAR
>&#62; &#60;<VAR
CLASS="replaceable"
>volume name or ID</VAR
>&#62;
</PRE
></P
><P
>where <DIV
CLASS="variablelist"
><DL
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>ad</B
></SPAN
></DT
><DD
><P
>Is the shortest acceptable abbreviation of <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>addsite</B
></SPAN
>.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>machine name</B
></SPAN
></DT
><DD
><P
>Defines the file server machine for the new site.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>partition name</B
></SPAN
></DT
><DD
><P
>Names a disk partition on the machine machine name.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>volume name or ID</B
></SPAN
></DT
><DD
><P
>Identifies the read/write volume to be replicated, either by its complete name or its volume ID
number.</P
></DD
></DL
></DIV
></P
></LI
><LI
><P
><A
NAME="LIWQ198"
></A
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>(Optional)</B
></SPAN
> Verify that the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs</B
></SPAN
> process (which incorporates the Volume Server) is functioning normally on each file server
machine where you have defined a read-only site, and that the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vlserver</B
></SPAN
> process (the
Volume Location Server) is functioning correctly on each database server machine. Knowing that they are functioning
eliminates two possible sources of failure for the release. Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos status</B
></SPAN
> command
on each file server machine housing a read-only site for this volume and on each database server machine. The command is
described fully in <A
HREF="c6449.html#HDRWQ158"
>Displaying Process Status and Information from the BosConfig File</A
>.
<PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos status</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>machine name</VAR
>&#62; <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs vlserver</B
></SPAN
>
</PRE
></P
></LI
><LI
><P
><A
NAME="LIWQ199"
></A
>Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos release</B
></SPAN
> command to clone the read/write source
volume and distribute the clone to each read-only site. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos release</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>volume name or ID</VAR
>&#62; [<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-f</B
></SPAN
>]
</PRE
></P
><P
>where <DIV
CLASS="variablelist"
><DL
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>rel</B
></SPAN
></DT
><DD
><P
>Is the shortest acceptable abbreviation of <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>release</B
></SPAN
>.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>volume name or ID</B
></SPAN
></DT
><DD
><P
>Identifies the read/write volume to clone, either by its complete name or volume ID number. The read-only
version is given the same name with a <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>.readonly</B
></SPAN
> extension. All read-only copies
share the same read-only volume ID number.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-f</B
></SPAN
></DT
><DD
><P
>Creates and releases a brand new clone.</P
></DD
></DL
></DIV
></P
></LI
><LI
><A
NAME="LIWQ200"
></A
><P
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>(Optional)</B
></SPAN
> Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos examine</B
></SPAN
> command to verify
that no site definition in the VLDB entry is marked with an <SAMP
CLASS="computeroutput"
>Old release</SAMP
> or
<SAMP
CLASS="computeroutput"
>New release</SAMP
> flag. The command is described fully in <A
HREF="c8420.html#HDRWQ221"
>Displaying
One Volume's VLDB Entry and Volume Header</A
>. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos examine</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>volume name or ID</VAR
>&#62;
</PRE
></P
></LI
></OL
><P
>If any flags appear in the output from Step <A
HREF="c8420.html#LIWQ200"
>6</A
>, repeat Steps <A
HREF="c8420.html#LIWQ198"
>4</A
>and <A
HREF="c8420.html#LIWQ199"
>5</A
>until the Volume Server does not produce any error messages
during the release operation and the flags no longer appear. Do not issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos release</B
></SPAN
>
command when you know that the read/write site or any read-only site is inaccessible due to network, machine or server process
outage.</P
></DIV
></DIV
><DIV
CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="HDRWQ201"
>Creating Backup Volumes</A
></H1
><P
>A <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>backup volume</I
></SPAN
> is a clone that resides at the same site as its read/write source (to review the
concept of cloning, see <A
HREF="c8420.html#HDRWQ190"
>About Clones and Cloning</A
>). Creating a backup version of a volume has two
purposes: <UL
><LI
><P
>It is by convention the first step when dumping a volume's contents to tape with the AFS Backup System. A volume is
inaccessible while it is being dumped, so instead of dumping the read/write volume, you create and dump a backup version.
Users do not normally access the backup version, so it is unlikely that the dump will disturb them. For more details, see
<A
HREF="c15383.html#HDRWQ296"
>Backing Up Data</A
>.</P
></LI
><LI
><P
>It enables users to restore mistakenly deleted or changed data themselves, freeing you for more crucial tasks. The
backup version captures the state of its read/write source at the time the backup is made, and its contents cannot change.
Mount the backup version in the filespace so that users can restore a file to its state at the time you made the backup.
See <A
HREF="c8420.html#HDRWQ204"
>Making the Contents of Backup Volumes Available to Users</A
>.</P
></LI
></UL
></P
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="HDRWQ202"
>Backing Up Multiple Volumes at Once</A
></H2
><P
>The <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos backupsys</B
></SPAN
> command creates a backup version of many read/write volumes at once.
This command is useful when preparing for large-scale backups to tape using the AFS Backup System.</P
><P
>To clone every read/write volume listed in the VLDB, omit all of the command's options. Otherwise, combine the command's
options to clone various groups of volumes. The options use one of two basic criteria to select volumes: location (the
<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-server</B
></SPAN
> and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-partition</B
></SPAN
> arguments) or presence in the volume
name of one of a set of specified character strings (the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-prefix</B
></SPAN
>, <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-exclude</B
></SPAN
>, and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-xprefix</B
></SPAN
> options).</P
><P
>To clone only volumes that reside on one file server machine, include the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-server</B
></SPAN
>
argument. To clone only volumes that reside on one partition, combine the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-server</B
></SPAN
> and
<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-partition</B
></SPAN
> arguments. The <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-partition</B
></SPAN
> argument can also be
used alone to clone volumes that reside on the indicated partition on every file server machine. These arguments can be
combined with those that select volumes based on their names.</P
><P
>Combine the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-prefix</B
></SPAN
>, <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-exclude</B
></SPAN
>, and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-xprefix</B
></SPAN
> options (with or without the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-server</B
></SPAN
> and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-partition</B
></SPAN
> arguments) in the indicated ways to select volumes based on character strings contained in
their names: <UL
><LI
><P
>To clone every read/write volume at the specified location whose name includes one of a set of specified character
strings (for example, begins with <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>user.</B
></SPAN
> or includes the string <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>afs</B
></SPAN
>), use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-prefix</B
></SPAN
> argument or combine the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-xprefix</B
></SPAN
> and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-exclude</B
></SPAN
> options.</P
></LI
><LI
><P
>To clone every read/write volume at the specified location except those whose name includes one of a set of
specified character strings, use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-xprefix</B
></SPAN
> argument or combine the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-prefix</B
></SPAN
> and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-exclude</B
></SPAN
> options.</P
></LI
><LI
><P
>To clone every read/write volume at the specified location whose name includes one of one of a set of specified
character strings, except those whose names include one of a different set of specified character strings, combine the
<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-prefix</B
></SPAN
> and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-xprefix</B
></SPAN
> arguments. The command creates a
list of all volumes that match the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-prefix</B
></SPAN
> argument and then removes from the list the
volumes that match the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-xprefix</B
></SPAN
> argument. For effective results, the strings specified
by the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-xprefix</B
></SPAN
> argument must designate a subset of the volumes specified by the
<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-prefix</B
></SPAN
> argument.</P
><P
>If the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-exclude</B
></SPAN
> flag is combined with the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-prefix</B
></SPAN
> and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-xprefix</B
></SPAN
> arguments, the command creates a list of
all volumes that do not match the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-prefix</B
></SPAN
> argument and then adds to the list any
volumes that match the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-xprefix</B
></SPAN
> argument. As when the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-exclude</B
></SPAN
> flag is not used, the result is effective only if the strings specified by the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-xprefix</B
></SPAN
> argument designate a subset of the volumes specified by the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-prefix</B
></SPAN
> argument.</P
></LI
></UL
></P
><P
>The <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-prefix</B
></SPAN
> and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-xprefix</B
></SPAN
> arguments both accept
multiple values, which can be used to define disjoint groups of volumes. Each value can be one of two types: <OL
TYPE="1"
><LI
><P
>A simple character string, which matches volumes whose name begin with the string. All characters are interpreted
literally (that is, characters that potentially have special meaning to the command shell, such as the period, have only
their literal meaning).</P
></LI
><LI
><P
>A regular expression, which matches volumes whose names contain the expressions. Place a caret ( <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>^</B
></SPAN
>) at the beginning of the expression, and enclose the entire string in single quotes ( <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>'</B
></SPAN
> <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>'</B
></SPAN
>). Explaining regular expressions is outside the scope of
this reference page; see the UNIX manual page for <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>regexp(5)</B
></SPAN
> or (for a brief
introduction) <A
HREF="c12776.html#HDRWQ265"
>Defining and Displaying Volume Sets and Volume Entries</A
>. As an example, the
following expression matches volumes that have the string <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>aix</B
></SPAN
> anywhere in their names:
<PRE
CLASS="programlisting"
>&#13; <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-prefix '^.*aix'</B
></SPAN
>
</PRE
></P
></LI
></OL
></P
><P
>To display a list of the volumes to be cloned, without actually cloning them, include the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-dryrun</B
></SPAN
> flag. To display a statement that summarizes the criteria being used to select volume, include
the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-verbose</B
></SPAN
> flag.</P
><P
>To back up a single volume, use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos backup</B
></SPAN
> command, which employs a more
streamlined technique for finding a single volume.</P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="HDRWQ203"
>Automating Creation of Backup Volumes</A
></H2
><P
>Most cells find that it is best to make a new backup version of relevant volumes each day. It is best to create the
backup versions at a time when usage is low, because the backup operation causes the read/write volume to be unavailable
momentarily.</P
><P
>You can either issue the necessary the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos backupsys</B
></SPAN
> or <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos
backup</B
></SPAN
> commands at the console or create a <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>cron</B
></SPAN
> entry in the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>BosConfig</B
></SPAN
> file on a file server machine, which eliminates the need for an administrator to initiate the
backup operation.</P
><P
>The following example command creates a <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>cron</B
></SPAN
> process called <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>backupusers</B
></SPAN
> in the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/usr/afs/local/BosConfig</B
></SPAN
> file on the machine
<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs3.abc.com</B
></SPAN
>. The process runs every day at 1:00 a.m. to create a backup version of every
volume in the cell whose name starts with the string <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>user</B
></SPAN
>. The <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-localauth</B
></SPAN
> flag enables the process to invoke the privileged <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos
backupsys</B
></SPAN
> command while unauthenticated. Note that the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-cmd</B
></SPAN
> argument specifies a
complete pathname for the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos</B
></SPAN
> binary, because the PATH environment variable for the BOS
Server (running as the local superuser <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>root</B
></SPAN
>) generally does not include the path to AFS
binaries. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos create fs3.abc.com backupusers cron</B
></SPAN
>\
<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-cmd "/usr/afs/bin/vos backupsys -prefix user -localauth" "1:00"</B
></SPAN
>
</PRE
></P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="HDRWQ204"
>Making the Contents of Backup Volumes Available to Users</A
></H2
><P
>As noted, a backup volume preserves the state of the read/write source at the time the backup is created. Many cells
choose to mount backup volumes so that users can access and restore data they have accidentally deleted or changed since the
last backup was made, without having to request help from administrators. The most sensible place to mount the backup version
of a user volume is at a subdirectory of the user's home directory. Suitable names for this directory include <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>OldFiles</B
></SPAN
> and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>Backup</B
></SPAN
>. The subdirectory looks just like the user's own
home directory as it was at the time the backup was created, with all files and subdirectories in the same relative
positions.</P
><P
>If you do create and mount backup volumes for your users, inform users of their existence. The <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
> IBM AFS User
Guide</I
></SPAN
> does not mention backup volumes because making them available to users is optional. Explain to users how
often you make a new backup, so they know what they can recover. Remind them also that the data in their backup volume cannot
change; however, they can use the standard UNIX <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>cp</B
></SPAN
> command to copy it into their home volume
and modify it there. Reassure users that the data in their backup volumes does not count against their read/write volume
quota.</P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="HDRWQ205"
>To create and mount a backup volume</A
></H2
><OL
TYPE="1"
><LI
><P
>Verify that you are listed in the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/usr/afs/etc/UserList</B
></SPAN
> file. If necessary, issue
the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos listusers</B
></SPAN
> command, which is fully described in <A
HREF="c32432.html#HDRWQ593"
>To
display the users in the UserList file</A
>. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos listusers</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>machine name</VAR
>&#62;
</PRE
></P
></LI
><LI
><P
>Verify that you have the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>insert</B
></SPAN
>( <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>i</B
></SPAN
>) and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>administer</B
></SPAN
>( <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>a</B
></SPAN
>) permissions on the ACL of the directory in which
you wish to mount the volume. If necessary, issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs listacl</B
></SPAN
> command, which is fully
described in <A
HREF="c31274.html#HDRWQ572"
>Displaying ACLs</A
>. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs listacl</B
></SPAN
> [&#60;<VAR
CLASS="replaceable"
>dir/file path</VAR
>&#62;]
</PRE
></P
><P
>Members of the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>system:administrators</B
></SPAN
> group always implicitly have the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>a</B
></SPAN
>( <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>administer</B
></SPAN
>) and by default also the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>l</B
></SPAN
>( <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>lookup</B
></SPAN
>) permission on every ACL and can use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs setacl</B
></SPAN
> command to grant other rights as necessary.</P
></LI
><LI
><P
><A
NAME="LIWQ206"
></A
>Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos backup</B
></SPAN
> command to create a backup version of a
read/write source volume. The message shown confirms the success of the backup operation. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos backup</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>volume name or ID</VAR
>&#62; Created backup volume for volume name or ID
</PRE
></P
><P
>where <DIV
CLASS="variablelist"
><DL
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>backup</B
></SPAN
></DT
><DD
><P
>Must be typed in full.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>volume name or ID</B
></SPAN
></DT
><DD
><P
>Identifies the read/write volume to back up, either by its complete name or volume ID number. The backup
volume has the same name with the addition of the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>.backup</B
></SPAN
> extension. It has its
own volume ID number.</P
></DD
></DL
></DIV
></P
></LI
><LI
><P
><A
NAME="LIWQ207"
></A
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>(Optional)</B
></SPAN
> Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs
mkmount</B
></SPAN
> to mount the backup volume. While this step is optional, Cache Managers cannot access the volume's
contents if it is not mounted. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs mkmount</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>directory</VAR
>&#62; &#60;<VAR
CLASS="replaceable"
>volume name</VAR
>&#62; <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>.backup</B
></SPAN
>
</PRE
></P
><P
>where <DIV
CLASS="variablelist"
><DL
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>mk</B
></SPAN
></DT
><DD
><P
>Is the shortest acceptable abbreviation of <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>mkmount</B
></SPAN
>.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>directory</B
></SPAN
></DT
><DD
><P
>Names the mount point to create. Do not create a file or directory of the same name beforehand. Partial
pathnames are interpreted relative to the current working directory. For the backup version of a user volume, the
conventional location is the user's home directory.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>volume name</B
></SPAN
>.backup</DT
><DD
><P
>Is the full name of the backup volume.</P
></DD
></DL
></DIV
></P
></LI
><LI
><P
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>(Optional)</B
></SPAN
> Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs lsmount</B
></SPAN
> command to verify
that the mount point refers to the correct volume. Complete instructions appear in <A
HREF="c8420.html#HDRWQ211"
>To display a
mount point</A
>. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs lsmount</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>directory</VAR
>&#62;
</PRE
></P
></LI
></OL
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="Header_223"
>To create multiple backup volumes at once</A
></H2
><OL
TYPE="1"
><LI
><P
>Verify that you are listed in the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/usr/afs/etc/UserList</B
></SPAN
> file. If necessary, issue
the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos listusers</B
></SPAN
> command, which is fully described in <A
HREF="c32432.html#HDRWQ593"
>To
display the users in the UserList file</A
>. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos listusers</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>machine name</VAR
>&#62;
</PRE
></P
></LI
><LI
><P
>Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos backupsys</B
></SPAN
> command to create a backup version of every read/write
volume that shares the same prefix or site. The effects of combining the three arguments are described in <A
HREF="c8420.html#HDRWQ202"
>Backing Up Multiple Volumes at Once</A
>. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos backupsys</B
></SPAN
> [<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-prefix</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>common prefix on volume(s)</VAR
>&#62;+] \
[<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-server</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>machine name</VAR
>&#62;] [<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-partition</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>partition name</VAR
>&#62;] \
[<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-exclude</B
></SPAN
>] [<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-xprefix</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>negative prefix on volume(s)</VAR
>&#62;+] \
[<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-dryrun</B
></SPAN
>] [<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-verbose</B
></SPAN
>]
</PRE
></P
><P
>where <DIV
CLASS="variablelist"
><DL
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>backups</B
></SPAN
></DT
><DD
><P
>Is the shortest acceptable abbreviation of <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>backupsys</B
></SPAN
>.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-prefix</B
></SPAN
></DT
><DD
><P
>Specifies one or more simple character strings or regular expressions of any length; a volume whose name
includes the string is placed on the list of volumes to be cloned. Include field separators (such as periods) if
appropriate. This argument can be combined with any combination of the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-server</B
></SPAN
>,
<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-partition</B
></SPAN
>, <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-exclude</B
></SPAN
>, and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-xprefix</B
></SPAN
> options.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-server</B
></SPAN
></DT
><DD
><P
>Specifies the file server machine housing the volumes to backup. Can be combined with any combination of the
<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-prefix</B
></SPAN
>, <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-partition</B
></SPAN
>, <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-exclude</B
></SPAN
>, and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-xprefix</B
></SPAN
> options.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-partition</B
></SPAN
></DT
><DD
><P
>Specifies the partition housing the volumes you wish to backup. Can be combined with any combination of the
<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-prefix</B
></SPAN
>, <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-server</B
></SPAN
>, <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-exclude</B
></SPAN
>, and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-xprefix</B
></SPAN
> options.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-exclude</B
></SPAN
></DT
><DD
><P
>Indicates that all volumes except those indicated with the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-prefix</B
></SPAN
> argument
are to be backed up. The <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-prefix</B
></SPAN
> argument must be provided along with this one.
Can also be combined with any combination of the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-prefix</B
></SPAN
>, <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-server</B
></SPAN
>, and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-partition</B
></SPAN
> arguments; or with both the
<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-prefix</B
></SPAN
> and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-xprefix</B
></SPAN
> arguments, but not with the
<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-xprefix</B
></SPAN
> argument alone.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-xprefix</B
></SPAN
></DT
><DD
><P
>Specifies one or more simple character strings or regular expressions of any length; a volume whose name
does not include the string is placed on the list of volumes to be cloned. Can be combined with any combination of
the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-prefix</B
></SPAN
>, <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-server</B
></SPAN
>, and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-partition</B
></SPAN
> arguments; in addition, it can be combined with both the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-prefix</B
></SPAN
> and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-exclude</B
></SPAN
> options, but not with the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-exclude</B
></SPAN
> flag alone.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-dryrun</B
></SPAN
></DT
><DD
><P
>Displays on the standard output stream a list of the volumes to be cloned, without actually cloning
them.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-verbose</B
></SPAN
></DT
><DD
><P
>Displays on the standard output stream a statement that summarizes the criteria being used to select
volumes, if combined with the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-dryrun</B
></SPAN
> flag; otherwise, traces the cloning
operation for each volume.</P
></DD
></DL
></DIV
></P
></LI
></OL
></DIV
></DIV
><DIV
CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="HDRWQ208"
>Mounting Volumes</A
></H1
><P
>Mount points make the contents of AFS volumes visible and accessible in the AFS filespace, as described in <A
HREF="c8420.html#HDRWQ183"
>About Mounting Volumes</A
>. This section discusses in more detail how the Cache Manager handles mount
points as it traverses the filespace. It describes the three types of mount points, their purposes, and how to distinguish
between them, and provides instructions for creating, removing, and examining mount points.</P
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="HDRWQ209"
>The Rules of Mount Point Traversal</A
></H2
><P
>The Cache Manager observes three basic rules as it traverses the AFS filespace and encounters mount points:
<UL
><LI
><P
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>Rule 1:</B
></SPAN
> Access Backup and Read-only Volumes When Specified</P
><P
>When the Cache Manager encounters a mount point that specifies a volume with either a <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>.readonly</B
></SPAN
> or a <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>.backup</B
></SPAN
> extension, it accesses that type of
volume only. If a mount point does not have either a <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>.backup</B
></SPAN
> or <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>.readonly</B
></SPAN
> extension, the Cache Manager uses Rules 2 and 3.</P
><P
>For example, the Cache Manager never accesses the read/write version of a volume if the mount point names the
backup version. If the specified version is inaccessible, the Cache Manager reports an error.</P
></LI
><LI
><P
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>Rule 2:</B
></SPAN
> Follow the Read-only Path When Possible</P
><P
>If a mount point resides in a read-only volume and the volume that it references is replicated, the Cache Manager
attempts to access a read-only copy of the volume; if the referenced volume is not replicated, the Cache Manager
accesses the read/write copy. The Cache Manager is thus said to prefer a <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>read-only</I
></SPAN
> path through the
filespace, accessing read-only volumes when they are available.</P
><P
>The Cache Manager starts on the read-only path in the first place because it always accesses a read-only copy of
the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>root.afs</B
></SPAN
> volume if it exists; the volume is mounted at the root of a cell's AFS
filespace (named <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/afs</B
></SPAN
> by convention). That is, if the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>root.afs</B
></SPAN
> volume is replicated, the Cache Manager attempts to access a read-only copy of it rather
than the read/write copy. This rule then keeps the Cache Manager on a read-only path as long as each successive volume
is replicated. The implication is that both the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>root.afs</B
></SPAN
> and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>root.cell</B
></SPAN
> volumes must be replicated for the Cache Manager to access replicated volumes mounted
below them in the AFS filespace. The volumes are conventionally mounted at the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/afs</B
></SPAN
> and
<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/afs/</B
></SPAN
><VAR
CLASS="replaceable"
>cellname</VAR
> directories, respectively.</P
></LI
><LI
><P
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>Rule 3:</B
></SPAN
> Once on a Read/write Path, Stay There</P
><P
>If a mount point resides in a read/write volume and the volume name does not have a <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>.readonly</B
></SPAN
> or a <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>.backup</B
></SPAN
> extension, the Cache Manager attempts to
access only the a read/write version of the volume. The access attempt fails with an error if the read/write version is
inaccessible, even if a read-only version is accessible. In this situation the Cache Manager is said to be on a
<SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>read/write path</I
></SPAN
> and cannot switch back to the read-only path unless mount point explicitly names a
volume with a <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>.readonly</B
></SPAN
> extension. (Cellular mount points are an important exception to
this rule, as explained in the following discussion.</P
></LI
></UL
></P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="HDRWQ210"
>The Three Types of Mount Points</A
></H2
><P
>AFS uses three types of mount points, each appropriate for a different purpose because of how the Cache Manager handles
them. <UL
><LI
><P
>When the Cache Manager crosses a <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>regular</I
></SPAN
> mount point, it obeys all three of the mount point
traversal rules previously described.</P
><P
>AFS performs best when the vast majority of mount points in the filespace are regular, because the mount point
traversal rules promote the most efficient use of both replicated and nonreplicated volumes. Because there are likely to
be multiple read-only copies of a replicated volume, it makes sense for the Cache Manager to access one of them rather
than the single read/write version, and the second rule leads it to do so. If a volume is not replicated, the third rule
means that the Cache Manager still accesses the read/write volume when that is the only type available. In other words,
a regular mount point does not force the Cache Manager always to access read-only volumes (it is explicitly not a
"read-only mount point").</P
><P
>To create a regular mount point, use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs mkmount</B
></SPAN
> command as described in <A
HREF="c8420.html#HDRWQ212"
>To create a regular or read/write mount point</A
>.</P
><DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Note: </B
>To enable the Cache Manager to access the read-only version of a replicated volume named by a regular mount
point, all volumes that are mounted above it in the pathname must also be replicated. That is the only way the Cache
Manager can stay on a read-only path to the target volume.</P
></BLOCKQUOTE
></DIV
></LI
><LI
><P
>When the Cache Manager crosses a <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>read/write</I
></SPAN
> mount point, it attempts to access only the
volume version named in the mount point. If the volume name is the base (read/write) form, without a <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>.readonly</B
></SPAN
> or <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>.backup</B
></SPAN
> extension, the Cache Manager accesses the
read/write version of the volume, even if it is replicated. In other words, the Cache Manager disregards the second
mount point traversal rule when crossing a read/write mount point: it switches to the read/write path through the
filespace.</P
><P
>It is conventional to create only one read/write mount point in a cell's filespace, using it to mount the cell's
<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>root.cell</B
></SPAN
> volume just below the AFS filespace root (by convention, <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/afs/.</B
></SPAN
><VAR
CLASS="replaceable"
>cellname</VAR
>). As indicated, it is conventional to place a period at
the start of the read/write mount point's name (for example, <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/afs/.abc.com</B
></SPAN
>). The period
distinguishes the read/write mount point from the regular mount point for the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>root.cell</B
></SPAN
>
volume at the same level. This is the only case in which it is conventional to create two mount points for the same
volume. A desirable side effect of this naming convention for this read/write mount point is that it does not appear in
the output of the UNIX <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>ls</B
></SPAN
> command unless the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-a</B
></SPAN
> flag
is included, essentially hiding it from regular users who have no use for it.</P
><P
>The existence of a single read/write mount point at this point in the filespace provides access to the read/write
version of every volume when necessary, because it puts the Cache Manager on a read/write path right at the top of the
filespace. At the same time, the regular mount point for the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>root.cell</B
></SPAN
> volume puts the
Cache Manager on a read-only path most of the time.</P
><P
>Using a read/write mount point for a read-only or backup volume is acceptable, but unnecessary. The first rule of
mount point traversal already specifies that the Cache Manager accesses them if the volume name in a regular mount point
has a <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>.readonly</B
></SPAN
> or <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>.backup</B
></SPAN
> extension.</P
><P
>To create a read/write mount point, use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-rw</B
></SPAN
> flag on the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs mkmount</B
></SPAN
> command as described in <A
HREF="c8420.html#HDRWQ212"
>To create a regular or read/write
mount point</A
>.</P
></LI
><LI
><P
>When the Cache Manager crosses a <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>cellular</I
></SPAN
> mount point, it accesses the indicated volume in
the specified cell, which is normally a foreign cell. (If the mount point does not name a cell along with the volume,
the Cache Manager accesses the volume in the cell where the mount point resides.) When crossing a regular cellular mount
point, the Cache Manager disregards the third mount point traversal rule. Instead, it accesses a read-only version of
the volume if it is replicated, even if the volume that houses the mount point is read/write.</P
><P
>It is inappropriate to circumvent this behavior by creating a read/write cellular mount point, because traversing
the read/write path imposes an unfair load on the foreign cell's file server machines. The File Server must issue a
callback for each file fetched from the read/write volume, rather than single callback required for a read-only volume.
In any case, only a cell's own administrators generally need to access the read/write versions of replicated
volumes.</P
><P
>It is conventional to create cellular mount points only at the second level in a cell's filespace, using them to
mount foreign cells' <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>root.cell</B
></SPAN
> volumes just below the AFS filespace root (by
convention, at <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/afs/</B
></SPAN
><VAR
CLASS="replaceable"
>foreign_cellname</VAR
>). The mount point
enables local users to access the foreign cell's filespace, assuming they have the necessary permissions on the ACL of
the volume's root directory and that there is an entry for the foreign cell in each local client machine's <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/usr/vice/etc/CellServDB</B
></SPAN
> file, as described in <A
HREF="c21473.html#HDRWQ406"
>Maintaining Knowledge of
Database Server Machines</A
>.</P
><P
>Creating cellular mount points at other levels in the filespace and mounting foreign volumes other than the
<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>root.cell</B
></SPAN
> volume is not generally appropriate. It can be confusing to users if the
Cache Manager switches between cells at various points in a pathname.</P
><P
>To create a regular cellular mount point, use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-cell</B
></SPAN
> argument to specify the
cell name, as described in <A
HREF="c8420.html#HDRWQ213"
>To create a cellular mount point</A
>.</P
></LI
></UL
></P
><P
>To examine a mount point, use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs lsmount</B
></SPAN
> command as described in <A
HREF="c8420.html#HDRWQ211"
>To display a mount point</A
>. The command's output uses distinct notation to identify regular,
read/write, and cellular mount points. To remove a mount point, use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs rmmount</B
></SPAN
> command as
described in <A
HREF="c8420.html#HDRWQ215"
>To remove a mount point</A
>.</P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="Header_227"
>Creating a mount point in a foreign cell</A
></H2
><P
>Creating a mount point in a foreign cell's filespace (as opposed to mounting a foreign volume in the local cell) is
basically the same as creating a mount point in the local filespace. The differences are that the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs
mkmount</B
></SPAN
> command's directory argument specifies a pathname in the foreign cell rather than the local cell, and you
must have the required permissions on the ACL of the foreign directory where you are creating the mount point. The <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs mkmount</B
></SPAN
> command's <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-cell</B
></SPAN
> argument always specifies the cell in which
the volume resides, not the cell in which to create the mount point.</P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="HDRWQ211"
>To display a mount point</A
></H2
><OL
TYPE="1"
><LI
><P
>Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs lsmount</B
></SPAN
> command. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs lsmount</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>directory</VAR
>&#62;
</PRE
></P
><P
>where <DIV
CLASS="variablelist"
><DL
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>ls</B
></SPAN
></DT
><DD
><P
>Is the shortest acceptable abbreviation of <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>lsmount</B
></SPAN
>.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>directory</B
></SPAN
></DT
><DD
><P
>Names the mount point to display.</P
></DD
></DL
></DIV
></P
></LI
></OL
><P
>If the specified directory is a mount point, the output is of the following form:</P
><PRE
CLASS="programlisting"
>&#13; 'directory' is a mount point for volume 'volume name'
</PRE
><P
>For a regular mount point, a number sign (<SAMP
CLASS="computeroutput"
>#</SAMP
>) precedes the volume name string, as in the
following example command issued on a client machine in the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>abc.com</B
></SPAN
> cell.</P
><PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs lsmount /afs/abc.com/usr/terry</B
></SPAN
>
'/afs/abc.com/usr/terry' is a mount point for volume '#user.terry'
</PRE
><P
>For a read/write mount point, a percent sign (<SAMP
CLASS="computeroutput"
>%</SAMP
>) precedes the volume name string, as in
the following example command issued on a client machine in the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>abc.com</B
></SPAN
> cell. The cell's
administrators have followed the convention of preceding the read/write mount point's name with a period.</P
><PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs lsmount /afs/.abc.com</B
></SPAN
>
'/afs/.abc.com' is a mount point for volume '%root.cell'
</PRE
><P
>For a cellular mount point, a cell name and colon (<SAMP
CLASS="computeroutput"
>:</SAMP
>) follow the number or percent sign
and precede the volume name string, as in the following example command issued on a client machine in the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>abc.com</B
></SPAN
> cell.</P
><PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs lsmount /afs/ghi.gov</B
></SPAN
>
'/afs/ghi.gov' is a mount point for volume '#ghi.gov:root.cell'
</PRE
><P
>For a symbolic link to a mount point, the output is of the form shown in the following example command issued on a
client machine in the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>abc.com</B
></SPAN
> cell.</P
><PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs lsmount /afs/abc</B
></SPAN
>
'/afs/abc' is a symbolic link, leading to a mount point for volume '#root.cell'
</PRE
><P
>If the directory is not a mount point or is not in AFS, the output reads as follows.</P
><PRE
CLASS="programlisting"
>&#13; 'directory' is not a mount point.
</PRE
><P
>If the output is garbled, it is possible that the mount point has become corrupted in the local cache. Use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs flushmount</B
></SPAN
> command as described in <A
HREF="c21473.html#HDRWQ413"
>To flush one or more mount
points</A
>. This forces the Cache Manager to refetch the mount point.</P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="HDRWQ212"
>To create a regular or read/write mount point</A
></H2
><OL
TYPE="1"
><LI
><P
>Verify that you have the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>i</B
></SPAN
>( <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>insert</B
></SPAN
>) and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>a</B
></SPAN
>( <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>administer</B
></SPAN
>) permissions on the ACL of the directory where you
are placing the mount point. If necessary, issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs listacl</B
></SPAN
> command, which is fully
described in <A
HREF="c31274.html#HDRWQ572"
>Displaying ACLs</A
>. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs listacl</B
></SPAN
> [&#60;<VAR
CLASS="replaceable"
>dir/file path</VAR
>&#62;]
</PRE
></P
></LI
><LI
><P
>Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs mkmount</B
></SPAN
> command to create the mount point. Include the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-rw</B
></SPAN
> flag if creating a read/write mount point. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs mkmount</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>directory</VAR
>&#62; &#60;<VAR
CLASS="replaceable"
>volume name</VAR
>&#62; [<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-rw</B
></SPAN
>]
</PRE
></P
><P
>where <DIV
CLASS="variablelist"
><DL
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>mk</B
></SPAN
></DT
><DD
><P
>Is the shortest acceptable abbreviation for <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>mkmount</B
></SPAN
>.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>directory</B
></SPAN
></DT
><DD
><P
>Names the mount point to create. A file or directory with the same name cannot already exist. A partial
pathname is interpreted relative to the current working directory.</P
><P
>Specify the read/write path to the mount point, to avoid the failure that results when you attempt to create
a new mount point in a read-only volume. By convention, you indicate the read/write path by placing a period
before the cell name at the pathname's second level (for example, <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/afs/.abc.com</B
></SPAN
>).
For further discussion of the concept of read/write and read-only paths through the filespace, see <A
HREF="c8420.html#HDRWQ209"
>The Rules of Mount Point Traversal</A
>.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>volume name</B
></SPAN
></DT
><DD
><P
>Specifies the volume's full name, including the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>.backup</B
></SPAN
> or <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>.readonly</B
></SPAN
> extension for a backup or read-only volume, if appropriate.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-rw</B
></SPAN
></DT
><DD
><P
>Creates a read/write mount point.</P
></DD
></DL
></DIV
></P
></LI
></OL
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="HDRWQ213"
>To create a cellular mount point</A
></H2
><OL
TYPE="1"
><LI
><P
>Verify that you have the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>i</B
></SPAN
>( <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>insert</B
></SPAN
>) and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>a</B
></SPAN
>( <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>administer</B
></SPAN
>) permissions on the ACL of the directory where you
are placing the mount point. If necessary, issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs listacl</B
></SPAN
> command, which is fully
described in <A
HREF="c31274.html#HDRWQ572"
>Displaying ACLs</A
>. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs listacl</B
></SPAN
> [&#60;<VAR
CLASS="replaceable"
>dir/file path</VAR
>&#62;]
</PRE
></P
></LI
><LI
><P
><A
NAME="LIWQ214"
></A
>If you are mounting one or more foreign cells' <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>root.cell</B
></SPAN
>
volume at the second level in your filespace and your cell's <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>root.afs</B
></SPAN
> volume is
replicated, you must create a temporary mount point for the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>root.afs</B
></SPAN
> volume's read/write
version in a directory on which the ACL grants you the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>i</B
></SPAN
> and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>a</B
></SPAN
> permissions. The following command creates a mount point called <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>new_cells</B
></SPAN
> in your cell's <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/afs/.</B
></SPAN
><VAR
CLASS="replaceable"
>cellname</VAR
>
directory (the entry point to the read/write path in your cell).</P
><P
>Substitute your cell's name for cellname.</P
><PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>cd /afs/.</B
></SPAN
><VAR
CLASS="replaceable"
>cellname</VAR
>
% <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs mkmount new_cells root.afs</B
></SPAN
>
% <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>cd new_cells</B
></SPAN
>
</PRE
></LI
><LI
><P
>Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs mkmount</B
></SPAN
> command with the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-cell</B
></SPAN
>
argument to create a cellular mount point. Repeat the command for each cellular mount point as required. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs mkmount</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>directory</VAR
>&#62; &#60;<VAR
CLASS="replaceable"
>volume name</VAR
>&#62; <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-cell</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>cell name</VAR
>&#62;
</PRE
></P
><P
>where <DIV
CLASS="variablelist"
><DL
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>mk</B
></SPAN
></DT
><DD
><P
>Is the shortest acceptable abbreviation for <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>mkmount</B
></SPAN
>.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>directory</B
></SPAN
></DT
><DD
><P
>Names the mount point to create. A file or directory with the same name cannot already exist. A partial
pathname is interpreted relative to the current working directory. If you are mounting a foreign cell's <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>root.cell</B
></SPAN
> volume, the standard value for this argument is the cell's complete Internet
domain name.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>volume name</B
></SPAN
></DT
><DD
><P
>Specifies the volume's full name, usually <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>root.cell</B
></SPAN
> for a cellular mount
point.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-cell</B
></SPAN
></DT
><DD
><P
>Specifies the complete Internet domain name of the cell in which the volume resides.</P
></DD
></DL
></DIV
></P
></LI
><LI
><P
>If you performed the instructions in Step <A
HREF="c8420.html#LIWQ214"
>2</A
>, issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos
release</B
></SPAN
> command to release the new version of the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>root.afs</B
></SPAN
> volume to its
read-only sites. (This command requires that you be listed in your cell's <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/usr/afs/etc/UserList</B
></SPAN
> file. If necessary, verify by issuing the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos
listusers</B
></SPAN
> command, which is fully described in <A
HREF="c32432.html#HDRWQ593"
>To display the users in the UserList
file</A
>.)</P
><P
>Also issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs checkvolumes</B
></SPAN
> command to force the local Cache Manager to access
the new replica of the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>root.afs</B
></SPAN
> volume. If desired, you can also remove the temporary
<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>new_cells</B
></SPAN
> mount point from the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/afs/.</B
></SPAN
><VAR
CLASS="replaceable"
>cellname</VAR
> directory.</P
><PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos release root.afs</B
></SPAN
>
% <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs checkvolumes</B
></SPAN
>
% <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>cd /afs/.</B
></SPAN
><VAR
CLASS="replaceable"
>cellname</VAR
>
% <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs rmmount new_cells</B
></SPAN
>
</PRE
><P
>For your users to access a newly mounted foreign cell, you must also create an entry for it in each client machine's
local <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/usr/vice/etc/CellServDB</B
></SPAN
> file and either reboot the machine or use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs newcell</B
></SPAN
> command to insert the entry directly into its kernel memory. See the instructions in
<A
HREF="c21473.html#HDRWQ406"
>Maintaining Knowledge of Database Server Machines</A
>.</P
></LI
></OL
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="HDRWQ215"
>To remove a mount point</A
></H2
><OL
TYPE="1"
><LI
><P
>Verify that you have the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>d</B
></SPAN
>( <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>delete</B
></SPAN
>) permission on
the ACL of the directory from which you are removing the mount point. If necessary, issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs
listacl</B
></SPAN
> command, which is fully described in <A
HREF="c31274.html#HDRWQ572"
>Displaying ACLs</A
>. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs listacl</B
></SPAN
> [&#60;<VAR
CLASS="replaceable"
>dir/file path</VAR
>&#62;]
</PRE
></P
><P
>Members of the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>system:administrators</B
></SPAN
> group always implicitly have the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>a</B
></SPAN
>( <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>administer</B
></SPAN
>) and by default also the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>l</B
></SPAN
>( <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>lookup</B
></SPAN
>) permission on every ACL and can use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs setacl</B
></SPAN
> command to grant other rights as necessary.</P
></LI
><LI
><P
>Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs rmmount</B
></SPAN
> command to remove the mount point. The volume still exists,
but its contents are inaccessible if this is the only mount point for it. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs rmmount</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>directory</VAR
>&#62;
</PRE
></P
><P
>where <DIV
CLASS="variablelist"
><DL
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>rm</B
></SPAN
></DT
><DD
><P
>Is the shortest acceptable abbreviation of <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>rmmount</B
></SPAN
>.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>directory</B
></SPAN
></DT
><DD
><P
>Names the mount point to remove. A partial pathname is interpreted relative to the current working
directory.</P
><P
>Specify the read/write path to the mount point, to avoid the failure that results when you attempt to delete
a mount point from a read-only volume. By convention, you indicate the read/write path by placing a period before
the cell name at the pathname's second level (for example, <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/afs/.abc.com</B
></SPAN
>). For
further discussion of the concept of read/write and read-only paths through the filespace, see <A
HREF="c8420.html#HDRWQ209"
>The Rules of Mount Point Traversal</A
>.</P
></DD
></DL
></DIV
></P
></LI
></OL
></DIV
></DIV
><DIV
CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="HDRWQ216"
>Displaying Information About Volumes</A
></H1
><P
>This section explains how to display information about volumes. If you know a volume's name or volume ID number, there are
commands for displaying its VLDB entry, its volume header, or both. Other commands display the name or location of the volume
that contains a specified file or directory.</P
><P
>For instructions on displaying a volume's quota, see <A
HREF="c8420.html#HDRWQ234"
>Setting and Displaying Volume Quota and
Current Size</A
>.</P
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="HDRWQ217"
>Displaying VLDB Entries</A
></H2
><P
>The <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos listvldb</B
></SPAN
> command displays the VLDB entry for the volumes indicated by the
combination of arguments you provide. The possibilities are listed here from most to least inclusive: <UL
><LI
><P
>To display every entry in the VLDB, provide no arguments. It can take a long time to generate the output,
depending on the number of entries.</P
></LI
><LI
><P
>To display every VLDB entry that mentions a specific file server machine as the site of a volume, specify the
machine's name with the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-server</B
></SPAN
> argument.</P
></LI
><LI
><P
>To display every VLDB entry that mentions a certain partition on any file server machine as the site of a volume,
specify the partition name with the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-partition</B
></SPAN
> argument.</P
></LI
><LI
><P
>To display every VLDB entry that mentions a certain partition on a certain file server machine as the site of a
volume, combine the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-server</B
></SPAN
> and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-partition</B
></SPAN
>
arguments.</P
></LI
><LI
><P
>To display a single VLDB entry, specify a volume name or ID number with the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-name</B
></SPAN
>
argument.</P
></LI
><LI
><P
>To display the VLDB entry only for volumes with locked VLDB entries, use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-locked</B
></SPAN
> flag with any of the site definitions mentioned previously.</P
></LI
></UL
></P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="HDRWQ218"
>To display VLDB entries</A
></H2
><OL
TYPE="1"
><LI
><P
>Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos listvldb</B
></SPAN
> command. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos listvldb</B
></SPAN
> [<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-name</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>volume name or ID</VAR
>&#62;] [<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-server</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>machine name</VAR
>&#62;] \
[<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-partition</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>partition name</VAR
>&#62;] [<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-locked</B
></SPAN
>]
</PRE
></P
><P
>where <DIV
CLASS="variablelist"
><DL
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>listvl</B
></SPAN
></DT
><DD
><P
>Is the shortest acceptable abbreviation of <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>listvldb</B
></SPAN
>.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-name</B
></SPAN
></DT
><DD
><P
>Identifies one volume either by its complete name or volume ID number. Do not combine this argument with the
<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-server</B
></SPAN
> or <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-partition</B
></SPAN
> arguments.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-server</B
></SPAN
></DT
><DD
><P
>Specifies a file server machine. Combine this argument with the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-partition</B
></SPAN
>
argument if desired, but not with the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-name</B
></SPAN
> argument.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-partition</B
></SPAN
></DT
><DD
><P
>Specifies a partition. Combine this argument with the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-server</B
></SPAN
> argument if
desired, but not with the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-name</B
></SPAN
> argument.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-locked</B
></SPAN
></DT
><DD
><P
>Displays only locked VLDB entries. Combine this flag with any of the other options.</P
></DD
></DL
></DIV
></P
></LI
></OL
><P
>The VLDB entry for each volume includes the following information: <UL
><LI
><P
>The base (read/write) volume name. The read-only and backup versions have the same name with a <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>.readonly</B
></SPAN
> and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>.backup</B
></SPAN
> extension, respectively.</P
></LI
><LI
><P
>The volume ID numbers allocated to the versions of the volume that actually exist, in fields labeled
<SAMP
CLASS="computeroutput"
>RWrite</SAMP
> for the read/write, <SAMP
CLASS="computeroutput"
>ROnly</SAMP
> for the read-only,
<SAMP
CLASS="computeroutput"
>Backup</SAMP
> for the backup, and <SAMP
CLASS="computeroutput"
>RClone</SAMP
> for the
ReleaseClone. (If a field does not appear, the corresponding version of the volume does not exist.) The appearance of
the <SAMP
CLASS="computeroutput"
>RClone</SAMP
> field normally indicates that a release operation did not complete
successfully; the <SAMP
CLASS="computeroutput"
>Old release</SAMP
> and <SAMP
CLASS="computeroutput"
>New release</SAMP
> flags
often also appear on one or more of the site definition lines described just following.</P
></LI
><LI
><P
>The number of sites that house a read/write or read-only copy of the volume, following the string
<SAMP
CLASS="computeroutput"
>number of sites -&#62;</SAMP
>.</P
></LI
><LI
><P
>A line for each site that houses a read/write or read-only copy of the volume, specifying the file server machine,
partition, and type of volume (<SAMP
CLASS="computeroutput"
>RW</SAMP
> for read/write or <SAMP
CLASS="computeroutput"
>RO</SAMP
>
for read-only). If a backup version exists, it is understood to share the read/write site. Several flags can appear with
a site definition: <DIV
CLASS="variablelist"
><DL
><DT
><SAMP
CLASS="computeroutput"
>Not released</SAMP
></DT
><DD
><P
>Indicates that the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos release</B
></SPAN
> command has not been issued since the
<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos addsite</B
></SPAN
> command was used to define the read-only site.</P
></DD
><DT
><SAMP
CLASS="computeroutput"
>Old release</SAMP
></DT
><DD
><P
>Indicates that a <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos release</B
></SPAN
> command did not complete successfully,
leaving the previous, obsolete version of the volume at this site.</P
></DD
><DT
><SAMP
CLASS="computeroutput"
>New release</SAMP
></DT
><DD
><P
>Indicates that a <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos release</B
></SPAN
> command did not complete successfully, but
that this site did receive the correct new version of the volume.</P
></DD
></DL
></DIV
></P
></LI
><LI
><P
>If the VLDB entry is locked, the string <SAMP
CLASS="computeroutput"
>Volume is currently LOCKED</SAMP
>.</P
></LI
></UL
></P
><P
>For further discussion of the <SAMP
CLASS="computeroutput"
>New release</SAMP
> and <SAMP
CLASS="computeroutput"
>Old
release</SAMP
> flags, see <A
HREF="c8420.html#HDRWQ192"
>Replicating Volumes (Creating Read-only Volumes)</A
>.</P
><P
>An example of this command and its output for a single volume:</P
><PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos listvldb user.terry</B
></SPAN
>
user.terry
RWrite: 50489902 Backup: 50489904
number of sites -&#62; 1
server fs3.abc.com partition /vicepc RW Site
</PRE
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="HDRWQ219"
>Displaying Volume Headers</A
></H2
><P
>The <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos listvol</B
></SPAN
> command displays the volume header for every volume on one or all
partitions on a file server machine. The <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos</B
></SPAN
> command interpreter obtains the information from
the Volume Server on the specified machine. You can control the amount of information displayed by including one of the
<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-fast</B
></SPAN
>, the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-long</B
></SPAN
>, or the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-extended</B
></SPAN
> flags described following the instructions in <A
HREF="c8420.html#HDRWQ220"
>To display volume
headers</A
>.</P
><P
>To display a single volume's volume header of one volume only, use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos examine</B
></SPAN
>
command as described in <A
HREF="c8420.html#HDRWQ221"
>Displaying One Volume's VLDB Entry and Volume Header</A
>.</P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="HDRWQ220"
>To display volume headers</A
></H2
><OL
TYPE="1"
><LI
><P
>Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos listvol</B
></SPAN
> command. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos listvol</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>machine name</VAR
>&#62; [&#60;<VAR
CLASS="replaceable"
>partition name</VAR
>&#62;] [<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-fast</B
></SPAN
>] [<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-long</B
></SPAN
>] [<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-extended</B
></SPAN
>]
</PRE
></P
><P
>where <DIV
CLASS="variablelist"
><DL
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>listvo</B
></SPAN
></DT
><DD
><P
>Is the shortest acceptable abbreviation of <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>listvol</B
></SPAN
>.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>machine name</B
></SPAN
></DT
><DD
><P
>Names the file server machine for which to display volume headers. Provide this argument alone or with the
partition name argument.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>partition name</B
></SPAN
></DT
><DD
><P
>Names one partition on the file server machine named by the machine name argument, which must be provided
along with this one.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-fast</B
></SPAN
></DT
><DD
><P
>Displays only the volume ID numbers of relevant volumes. Do not combine this flag with the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-long</B
></SPAN
> or <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-extended</B
></SPAN
> flag.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-long</B
></SPAN
></DT
><DD
><P
>Displays more detailed information about each volume. Do not combine this flag with the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-fast</B
></SPAN
> or <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-extended</B
></SPAN
> flag.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-extended</B
></SPAN
></DT
><DD
><P
>Displays all of the information displayed by the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-long</B
></SPAN
> flag, plus tables of
statistics about reads and writes to the files in the volume. Do not combine this flag with the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-fast</B
></SPAN
> or <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-long</B
></SPAN
> flag.</P
></DD
></DL
></DIV
></P
></LI
></OL
><P
>The output is ordered alphabetically by volume name and by default provides the following information on a single line
for each volume: <UL
><LI
><P
>Name</P
></LI
><LI
><P
>Volume ID number</P
></LI
><LI
><P
>Type (the flag is <SAMP
CLASS="computeroutput"
>RW</SAMP
> for read/write, <SAMP
CLASS="computeroutput"
>RO</SAMP
> for
read-only, <SAMP
CLASS="computeroutput"
>BK</SAMP
> for backup)</P
></LI
><LI
><P
>Size in kilobytes (<SAMP
CLASS="computeroutput"
>1024</SAMP
> equals a megabyte)</P
></LI
><LI
><P
>Number of files in the volume, if the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-extended</B
></SPAN
> flag is provided</P
></LI
><LI
><P
>Status on the file server machine, which is one of the following: <DIV
CLASS="variablelist"
><DL
><DT
><SAMP
CLASS="computeroutput"
>On-line</SAMP
></DT
><DD
><P
>The volume is completely accessible to Cache Managers.</P
></DD
><DT
><SAMP
CLASS="computeroutput"
>Off-line</SAMP
></DT
><DD
><P
>The volume is not accessible to Cache Managers, but does not seem to be corrupted. This status appears
while a volume is being dumped, for example.</P
></DD
><DT
><SAMP
CLASS="computeroutput"
>Off-line**needs salvage**</SAMP
></DT
><DD
><P
>The volume is not accessible to Cache Managers, because it seems to be corrupted. Use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos salvage</B
></SPAN
> or <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>salvager</B
></SPAN
> command to repair the
corruption.</P
></DD
></DL
></DIV
></P
></LI
></UL
></P
><P
>If the following message appears instead of the previously listed information, it indicates that a volume is not
accessible to Cache Managers or the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos</B
></SPAN
> command interpreter, for example because a clone is
being created.</P
><PRE
CLASS="programlisting"
>&#13; **** Volume volume_ID is busy ****
</PRE
><P
>If the following message appears instead of the previously listed information, it indicates that the File Server is
unable to attach the volume, perhaps because it is seriously corrupted. The <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>FileLog</B
></SPAN
> and
<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>VolserLog</B
></SPAN
> log files in the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/usr/afs/logs</B
></SPAN
> directory on the
file server machine possibly provide additional information; use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos getlog</B
></SPAN
> command to
display them.</P
><PRE
CLASS="programlisting"
>&#13; **** Could not attach volume volume_ID ****
</PRE
><P
>(For instructions on salvaging a corrupted or unattached volume, see <A
HREF="c8420.html#HDRWQ232"
>Salvaging
Volumes</A
>.)</P
><P
>The information about individual volumes is bracketed by summary lines. The first line of output specifies the number of
volumes in the listing. The last line of output summarizes the number of volumes that are online, offline, and busy, as in the
following example:</P
><PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos listvol fs2.abc.com /vicepb</B
></SPAN
>
Total number of volumes on server fs2.abc.com \
partition /vicepb : 66
sys 1969534847 RW 1582 K On-line
sys.backup 1969535105 BK 1582 K On-line
. . . . . .
. . . . . .
user.pat 1969534536 RW 17518 K On-line
user.pat.backup 1969534538 BK 17537 K On-line
Total volumes onLine 66 ; Total volumes offLine 0 ; Total busy 0
</PRE
><P
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>Output with the -fast Flag</B
></SPAN
></P
><P
>If you include the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-fast</B
></SPAN
> flag displays only the volume ID number of each volume,
arranged in increasing numerical order, as in the following example. The final line (which summarizes the number of on-line,
off-line, and busy volumes) is omitted.</P
><PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos listvol fs3.abc.com /vicepa -f</B
></SPAN
>
Total number of volumes on server fs3.abc.com \
partition /vicepa: 37
50489902
50489904
.
.
35970325
49732810
</PRE
><P
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>Output with the -long Flag</B
></SPAN
></P
><P
>When you include the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-long</B
></SPAN
> flag, , the output for each volume includes all of the
information in the default listing plus the following. Each item in this list corresponds to a separate line of output:
<UL
><LI
><P
>The file server machine and partition that house the volume, as determined by the command interpreter as the
command runs, rather than derived from the VLDB or the volume header.</P
></LI
><LI
><P
>The volume ID numbers associated with the various versions of the volume: read/write
(<SAMP
CLASS="computeroutput"
>RWrite</SAMP
>), read-only (<SAMP
CLASS="computeroutput"
>ROnly</SAMP
>), backup
(<SAMP
CLASS="computeroutput"
>Backup</SAMP
>), and ReleaseClone (<SAMP
CLASS="computeroutput"
>RClone</SAMP
>). One of them
matches the volume ID number that appears on the first line of the volume's output. If the value in the
<SAMP
CLASS="computeroutput"
>RWrite</SAMP
>, <SAMP
CLASS="computeroutput"
>ROnly</SAMP
>, or
<SAMP
CLASS="computeroutput"
>Backup</SAMP
> field is <SAMP
CLASS="computeroutput"
>0</SAMP
> (zero), there is no volume of that
type. If there is currently no ReleaseClone, the <SAMP
CLASS="computeroutput"
>RClone</SAMP
> field does not appear at
all.</P
></LI
><LI
><P
>The maximum space quota allotted to the read/write copy of the volume, expressed in kilobyte blocks in the
<SAMP
CLASS="computeroutput"
>MaxQuota</SAMP
> field.</P
></LI
><LI
><P
>The date and time the volume was created, in the <SAMP
CLASS="computeroutput"
>Creation</SAMP
> field. If the volume
has been restored with the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>backup diskrestore</B
></SPAN
>, <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>backup
volrestore</B
></SPAN
>, or <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos restore</B
></SPAN
> command, this is the restore time.</P
></LI
><LI
><P
>The date and time when the contents of the volume last changed, in the <SAMP
CLASS="computeroutput"
>Last
Update</SAMP
> field. For read-only and backup volumes, it matches the timestamp in the
<SAMP
CLASS="computeroutput"
>Creation</SAMP
> field.</P
></LI
><LI
><P
>The number of times the volume has been accessed for a fetch or store operation since the later of the two
following times: <UL
><LI
><P
>12:00 a.m. on the day the command is issued</P
></LI
><LI
><P
>The last time the volume changed location</P
></LI
></UL
></P
></LI
></UL
></P
><P
>An example of the output when the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-long</B
></SPAN
> flag is included:</P
><PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos listvol fs2.abc.com b -long</B
></SPAN
>
Total number of volumes on server fs2.abc.com
partition /vicepb: 66
. . . . . .
. . . . . .
user.pat 1969534536 RW 17518 K On-line
fs2.abc.com /vicepb
RWrite 1969534536 ROnly 0 Backup 1969534538
MaxQuota 20000 K
Creation Mon Jun 12 09:02:25 1989
Last Update Thu Jan 4 17:39:34 1990
1573 accesses in the past day (i.e., vnode references)
user.pat.backup 1969534538 BK 17537 K On-line
fs2.abc.com /vicepb
RWrite 1969534536 ROnly 0 Backup 1969534538
MaxQuota 20000 K
Creation Fri Jan 5 06:37:59 1990
Last Update Fri Jan 5 06:37:59 1990
0 accesses in the past day (i.e., vnode references)
. . . . .
. . . . .
Total volumes onLine 66 ; Total volumes offLine 0 ; Total busy 0
</PRE
><P
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>Output with the -extended Flag</B
></SPAN
></P
><P
>When you include the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-extended</B
></SPAN
> flag, the output for each volume includes all of the
information reported with the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-long</B
></SPAN
> flag, plus two tables of statistics: <UL
><LI
><P
>The table labeled <SAMP
CLASS="computeroutput"
>Raw Read/Write Stats</SAMP
> table summarizes the number of times the
volume has been accessed for reading or writing.</P
></LI
><LI
><P
>The table labeled <SAMP
CLASS="computeroutput"
>Writes Affecting Authorship</SAMP
> table contains information on
writes made to files and directories in the specified volume.</P
></LI
></UL
></P
><P
>An example of the output when the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-extended</B
></SPAN
> flag is included:</P
><PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos listvol fs3.abc.com a -extended</B
></SPAN
>
common.bboards 1969535592 RW 23149 K used 9401 files On-line
fs3.abc.com /vicepa
RWrite 1969535592 ROnly 0 Backup 1969535594
MaxQuota 30000 K
Creation Mon Mar 8 14:26:05 1999
Last Update Mon Apr 26 09:20:43 1999
11533 accesses in the past day (i.e., vnode references)
Raw Read/Write Stats
|-------------------------------------------|
| Same Network | Diff Network |
|----------|----------|----------|----------|
| Total | Auth | Total | Auth |
|----------|----------|----------|----------|
Reads | 151 | 151 | 1092 | 1068 |
Writes | 3 | 3 | 324 | 324 |
|-------------------------------------------|
Writes Affecting Authorship
|-------------------------------------------|
| File Authorship | Directory Authorship|
|----------|----------|----------|----------|
| Same | Diff | Same | Diff |
|----------|----------|----------|----------|
0-60 sec | 92 | 0 | 100 | 4 |
1-10 min | 1 | 0 | 14 | 6 |
10min-1hr | 0 | 0 | 19 | 4 |
1hr-1day | 1 | 0 | 13 | 0 |
1day-1wk | 1 | 0 | 1 | 0 |
&#62; 1wk | 0 | 0 | 0 | 0 |
|-------------------------------------------|
</PRE
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="HDRWQ221"
>Displaying One Volume's VLDB Entry and Volume Header</A
></H2
><P
>The <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos examine</B
></SPAN
> command displays information from both the VLDB and the volume header
for a single volume. There is some redundancy in the information from the two sources, which allows you to compare the VLDB
and volume header.</P
><P
>Because the volume header for each version of a volume (read/write, read-only, and backup) is different, you can specify
which one to display. Include the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>.readonly</B
></SPAN
> or <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>.backup</B
></SPAN
>
extension on the volume name or ID argument as appropriate. The information from the VLDB is the same for all three
versions.</P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="HDRWQ222"
>To display one volume's VLDB entry and volume header</A
></H2
><OL
TYPE="1"
><LI
><P
>Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos examine</B
></SPAN
> command. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos examine</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>volume name or ID</VAR
>&#62;
</PRE
></P
><P
>where <DIV
CLASS="variablelist"
><DL
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>e</B
></SPAN
></DT
><DD
><P
>Is the shortest acceptable abbreviation of <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>examine</B
></SPAN
>.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>volume name or ID</B
></SPAN
></DT
><DD
><P
>Identifies one volume either by its complete name or volume ID number. It can be a read/write, read-only, or
backup type. Use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>.backup</B
></SPAN
> or <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>.readonly</B
></SPAN
>
extension if appropriate.</P
></DD
></DL
></DIV
></P
></LI
></OL
><P
>The top part of the output displays the same information from a volume header as the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos
listvol</B
></SPAN
> command with the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-long</B
></SPAN
> flag, as described following the instructions in
<A
HREF="c8420.html#HDRWQ220"
>To display volume headers</A
>. If you specify the read-only version of the volume and it exists at
more than one site, the output includes all of them. The bottom part of the output lists the same information from the VLDB as
the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos listvldb</B
></SPAN
> command, as described following the instructions in <A
HREF="c8420.html#HDRWQ218"
>To display VLDB entries</A
>.</P
><P
>Below is an example for a volume whose VLDB entry is currently locked.</P
><PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos examine user.terry</B
></SPAN
>
user.terry 536870981 RW 3459 K On-line
fs3.abc.com /vicepa
Write 5360870981 ROnly 0 Backup 536870983
MaxQuota 40000 K
Creation Mon Jun 12 15:22:06 1989
Last Update Fri Jun 16 09:34:35 1989
5719 accesses in the past day (i.e., vnode references)
RWrite: 5360870981 Backup: 536870983
number of sites -&#62; 1
server fs3.abc.com partition /vicepa RW Site
Volume is currently LOCKED
</PRE
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="HDRWQ223"
>Displaying the Name or Location of the Volume that Contains a File</A
></H2
><P
>This section explains how to learn the name, volume ID number, or location of the volume that contains a file or
directory.</P
><P
>You can also use one piece of information about a volume (for example, its name) to obtain other information about it
(for example, its location). The following list points you to the relevant instructions: <UL
><LI
><P
>To use a volume's name to learn the volume ID numbers of all its existing versions, use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos examine</B
></SPAN
> command as described in <A
HREF="c8420.html#HDRWQ222"
>To display one volume's VLDB entry
and volume header</A
>.</P
><P
>You can also use the command to learn a volume's name by providing its ID number.</P
></LI
><LI
><P
>To use a volume's name or ID number to learn its location, use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos listvldb</B
></SPAN
>
command as described in <A
HREF="c8420.html#HDRWQ218"
>To display VLDB entries</A
>.</P
></LI
></UL
></P
><DIV
CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="HDRWQ224"
>To display the name of the volume that contains a file</A
></H3
><OL
TYPE="1"
><LI
><P
>Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs listquota</B
></SPAN
> command. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs listquota</B
></SPAN
> [&#60;<VAR
CLASS="replaceable"
>dir/file path</VAR
>&#62;]
</PRE
></P
><P
>where <DIV
CLASS="variablelist"
><DL
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>lq</B
></SPAN
></DT
><DD
><P
>Is an acceptable alias for <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>listquota</B
></SPAN
>(and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>listq</B
></SPAN
> the shortest acceptable abbreviation).</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>dir/file path</B
></SPAN
></DT
><DD
><P
>Names a directory or file housed in the volume for which to display the name. Partial pathnames are
interpreted relative to the current working directory, which is the default if this argument is omitted.</P
></DD
></DL
></DIV
></P
></LI
></OL
><P
>The following is an example of the output:</P
><PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs listquota /afs/abc.com/usr/terry</B
></SPAN
>
Volume Name Quota Used % Used Partition
user.terry 15000 5071 34% 86%
</PRE
></DIV
><DIV
CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="HDRWQ225"
>To display the ID number of the volume that contains a file</A
></H3
><OL
TYPE="1"
><LI
><P
>Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs examine</B
></SPAN
> command. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs examine</B
></SPAN
> [&#60;<VAR
CLASS="replaceable"
>dir/file path</VAR
>&#62;]
</PRE
></P
><P
>where <DIV
CLASS="variablelist"
><DL
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>exa</B
></SPAN
></DT
><DD
><P
>Is the shortest acceptable abbreviation of <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>examine</B
></SPAN
>.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>dir/file path</B
></SPAN
></DT
><DD
><P
>Names a directory or file housed in the volume for which to display the volume ID. Partial pathnames are
interpreted relative to the current working directory, which is the default if this argument is omitted.</P
></DD
></DL
></DIV
></P
></LI
></OL
><P
>The following example illustrates how the output reports the volume ID number in the
<SAMP
CLASS="computeroutput"
>vid</SAMP
> field.</P
><PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs examine /afs/abc.com/usr/terry</B
></SPAN
>
Volume status for vid = 50489902 named user.terry
Current maximum quota is 15000
Current blocks used are 5073
The partition has 46383 blocks available out of 333305
</PRE
><DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Note: </B
>The partition-related statistics in this command's output do not always agree with the corresponding values in the
output of the standard UNIX <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>df</B
></SPAN
> command. The statistics reported by this command can be up
to five minutes old, because the Cache Manager polls the File Server for partition information at that frequency. Also, on
some operating systems, the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>df</B
></SPAN
> command's report of partition size includes reserved space
not included in this command's calculation, and so is likely to be about 10% larger.</P
></BLOCKQUOTE
></DIV
></DIV
><DIV
CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="Header_242"
>To display the location of the volume that contains a file</A
></H3
><OL
TYPE="1"
><LI
><P
>Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs whereis</B
></SPAN
> command to display the name of the file server machine that
houses the volume containing a file or directory. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs whereis</B
></SPAN
> [&#60;<VAR
CLASS="replaceable"
>dir/file path</VAR
>&#62;]
</PRE
></P
><P
>where <DIV
CLASS="variablelist"
><DL
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>whe</B
></SPAN
></DT
><DD
><P
>Is the shortest acceptable abbreviation of <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>whereis</B
></SPAN
>.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>dir/file path</B
></SPAN
></DT
><DD
><P
>Names a directory or file for which to report the location. Partial pathnames are interpreted relative to
the current working directory, which is the default if this argument is omitted.</P
></DD
></DL
></DIV
></P
><P
>The output displays the file server machine that houses the volume containing the file, as in the following
example:</P
><PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs whereis /afs/abc.com/user/terry</B
></SPAN
>
File /afs/abc.com/usr/terry is on host fs2.abc.com
</PRE
></LI
><LI
><P
>If you also want to know which partition houses the volume, first issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs
listquota</B
></SPAN
> command to display the volume's name. For complete syntax, see <A
HREF="c8420.html#HDRWQ224"
>To display
the name of the volume that contains a file</A
>. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs listquota</B
></SPAN
> [&#60;<VAR
CLASS="replaceable"
>dir/file path</VAR
>&#62;]
</PRE
></P
><P
>Then issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos listvldb</B
></SPAN
> command, providing the volume name as the volume name
or ID argument. For complete syntax and a description of the output, see <A
HREF="c8420.html#HDRWQ218"
>To display VLDB
entries</A
>.</P
><PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos listvldb</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>volume name or ID</VAR
>&#62;
</PRE
></LI
></OL
></DIV
></DIV
></DIV
><DIV
CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="HDRWQ226"
>Moving Volumes</A
></H1
><P
>There are three main reasons to move volumes: <UL
><LI
><P
>To place volumes on other partitions or machines temporarily while repairing or replacing a disk or file server
machine.</P
></LI
><LI
><P
> To free space on a partition that is becoming overcrowded. One symptom of overcrowding is that users cannot
to save files even though the relevant volume is below its quota. The following error message confirms the problem:
<PRE
CLASS="programlisting"
>&#13; afs: failed to store file (partition full)
</PRE
></P
><P
>You can track available space on AFS server partitions by using the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>scout</B
></SPAN
> or
<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>afsmonitor</B
></SPAN
> programs described in <A
HREF="c18360.html"
>Monitoring and Auditing AFS
Performance</A
>.</P
></LI
><LI
><P
>A file server machine is becoming overloaded because it houses many more volumes than other machines of the same
size, or has volumes with more popular files in them.</P
></LI
></UL
></P
><P
>To move a read/write volume, use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos move</B
></SPAN
> command as described in the following
instructions. Before attempting to move the volume, the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos</B
></SPAN
> command interpreter verifies that
there is enough free space for it on the destination partition. If not, it does not attempt the move operation and prints the
following message.</P
><PRE
CLASS="programlisting"
>&#13; vos: no space on target partition destination_part to move volume volume
</PRE
><P
>To move a read-only volume, you actually remove the volume from the current site by issuing the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos
remove</B
></SPAN
> command as described in <A
HREF="c8420.html#HDRWQ236"
>To remove a volume and unmount it</A
>. Then define a new
site and release the volume to it by issuing the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos addsite</B
></SPAN
> and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos
release</B
></SPAN
> commands as described in <A
HREF="c8420.html#HDRWQ194"
>To replicate a read/write volume (create a read-only
volume)</A
>.</P
><P
>A backup volume always resides at the same site as its read/write source volume, so you cannot move a backup volume except
as part of moving the read/write source. The <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos move</B
></SPAN
> command automatically deletes the backup
version when you move a read/write volume. To create a new backup volume at the new site as soon as the move operation
completes, issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos backup</B
></SPAN
> command as described in <A
HREF="c8420.html#HDRWQ205"
>To create and
mount a backup volume</A
>.</P
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="Header_244"
>To move a read/write volume</A
></H2
><OL
TYPE="1"
><LI
><P
>Verify that you are listed in the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/usr/afs/etc/UserList</B
></SPAN
> file. If necessary, issue
the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos listusers</B
></SPAN
> command, which is fully described in <A
HREF="c32432.html#HDRWQ593"
>To
display the users in the UserList file</A
>. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos listusers</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>machine name</VAR
>&#62;
</PRE
></P
></LI
><LI
><P
>Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos move</B
></SPAN
> command to move the volume. Type it on a single line; it appears
on multiple lines here only for legibility. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos move</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>volume name or ID</VAR
>&#62; \ &#60;<VAR
CLASS="replaceable"
>machine name on source</VAR
>&#62;
&#60;<VAR
CLASS="replaceable"
>partition name on source </VAR
>&#62; \ &#60;<VAR
CLASS="replaceable"
>machine name on destination</VAR
>&#62; &#60;partition name on
destination&#62;
</PRE
></P
><P
>where <DIV
CLASS="variablelist"
><DL
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>m</B
></SPAN
></DT
><DD
><P
>Is the shortest acceptable abbreviation of <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>move</B
></SPAN
>.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>volume name or ID</B
></SPAN
></DT
><DD
><P
>Specifies the name or volume ID number of the read/write volume to move.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>machine name on source</B
></SPAN
></DT
><DD
><P
>Names the file server machine currently housing the volume.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>partition name on source</B
></SPAN
></DT
><DD
><P
>Names the partition currently housing the volume.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>machine name on destination</B
></SPAN
></DT
><DD
><P
>Names the file server machine to which to move the volume.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>partition name on destination</B
></SPAN
></DT
><DD
><P
>Names the partition to which to move the volume.</P
></DD
></DL
></DIV
></P
><DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Note: </B
>It is best not to halt a <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos move</B
></SPAN
> operation before it completes, because parts of
the volume can be left on both the source and destination machines. For more information, see the command's reference
page in the <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
> IBM AFS Administration Reference</I
></SPAN
>.</P
></BLOCKQUOTE
></DIV
></LI
><LI
><P
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>(Optional)</B
></SPAN
> Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos listvldb</B
></SPAN
> command to
confirm the success of the move. Complete instructions appear in <A
HREF="c8420.html#HDRWQ218"
>To display VLDB entries</A
>.
<PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos listvldb</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>volume name or ID</VAR
>&#62;
</PRE
></P
></LI
><LI
><P
>If a backup version existed at the read/write volume's previous site, create a new backup at the new site by issuing
the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos backup</B
></SPAN
> command, which is fully described in <A
HREF="c8420.html#HDRWQ205"
>To create
and mount a backup volume</A
>. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos backup</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>volume name or ID</VAR
>&#62;
</PRE
></P
></LI
></OL
></DIV
></DIV
><DIV
CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="HDRWQ227"
>Synchronizing the VLDB and Volume Headers</A
></H1
><P
>AFS can provide transparent file access because the Volume Location Database (VLDB) constantly tracks volume locations.
When the Cache Manager needs a file, it contacts the Volume Location (VL) Server, which reads the VLDB for the current location
of the volume containing the file. Therefore, the VLDB must accurately reflect the state of volumes on the file server machines
at all times. The Volume Server and VL Server automatically update a volume's VLDB entry when its status changes during a
<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos</B
></SPAN
> operation, by performing the following series of steps. <OL
TYPE="1"
><LI
><P
><A
NAME="LIWQ228"
></A
>The VL Server locks the VLDB entry. The lock advises other operations not to manipulate any
of the volume versions (read/write, read-only, or backup), which prevents the inconsistency that can result from multiple
simultaneous operations.</P
></LI
><LI
><P
> <A
NAME="LIWQ229"
></A
>The VL Server sets an <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>intention flag</I
></SPAN
> in the VLDB entry that
indicates the kind of operation to be performed. This flag never appears in VLDB listings because it is for internal use
only. In case the operation terminates prematurely, this flag tells the Salvager which operation was interrupted. (The
Salvager then determines the steps necessary either to complete the operation or return the volume to a previous
consistent state. For more information on salvaging, see <A
HREF="c8420.html#HDRWQ232"
>Salvaging Volumes</A
>.)</P
></LI
><LI
><P
><A
NAME="LIWQ230"
></A
>The Volume Server manipulates the volume. It usually sets the
<SAMP
CLASS="computeroutput"
>Off-line</SAMP
> flag in the volume header, which makes the volume inaccessible to the File
Server and other Volume Server operations during the manipulation. When the operation completes, the volume is again
marked <SAMP
CLASS="computeroutput"
>On-line</SAMP
>.</P
></LI
><LI
><P
><A
NAME="LIWQ231"
></A
>The VL Server records any changes resulting from the operation in the VLDB entry. Once the
operation is complete, it removes the intention flag set in Step <A
HREF="c8420.html#LIWQ229"
>2</A
>and releases the lock set
in Step <A
HREF="c8420.html#LIWQ228"
>1</A
>.</P
></LI
></OL
></P
><P
>If a <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos</B
></SPAN
> operation fails while the Volume Server is manipulating the volume
(corresponding to Step <A
HREF="c8420.html#LIWQ230"
>3</A
>), the volume can be left in an intermediate state, which is termed
<SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>corruption</I
></SPAN
>. In this case, the <SAMP
CLASS="computeroutput"
>Off-line</SAMP
> or <SAMP
CLASS="computeroutput"
>Off-line**needs
salvage**</SAMP
> marker usually appears at the end of the first line of output from the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos
examine</B
></SPAN
> command. To repair the corruption, run the Salvager before attempting to resynchronize the VLDB and volume
headers. For salvaging instructions, see <A
HREF="c8420.html#HDRWQ232"
>Salvaging Volumes</A
>.</P
><P
>More commonly, an interruption while flags are being set or removed (corresponding to Step <A
HREF="c8420.html#LIWQ228"
>1</A
>, Step <A
HREF="c8420.html#LIWQ229"
>2</A
>, or Step <A
HREF="c8420.html#LIWQ231"
>4</A
>) causes a
discrepancy between the VLDB and volume headers. To resynchronize the VLDB and volumes, use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos
syncvldb</B
></SPAN
> and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos syncserv</B
></SPAN
> commands. To achieve complete VLDB consistency, it is best
to run the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos syncvldb</B
></SPAN
> command on all file server machines in the cell, and then run the
<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos syncserv</B
></SPAN
> command on all file server machines in the cell.</P
><P
>There are several symptoms that indicate a volume operation failed: <UL
><LI
><P
>Error messages on the standard error stream or in server process log files indicate that an operation terminated
abnormally. Perhaps you had to halt the operation before it completed (for instance, by using a signal such as <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>Ctrl-c</B
></SPAN
>), or a file server machine or server process was not functioning when the operation ran. To
determine if a machine or process is still not functioning, issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos status</B
></SPAN
> command
as described in <A
HREF="c6449.html#HDRWQ158"
>Displaying Process Status and Information from the BosConfig File</A
>.</P
></LI
><LI
><P
>A subsequent <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos</B
></SPAN
> operation fails because a previous failure left a VLDB entry
locked. Sometimes an error message reports that a volume is locked. To display a list of locked volumes, use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-locked</B
></SPAN
> flag on the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos listvldb</B
></SPAN
> command as described in <A
HREF="c8420.html#HDRWQ217"
>Displaying VLDB Entries</A
>.</P
><P
>If the only problem with a volume is that its VLDB entry is locked, you probably do not need to synchronize the
entire VLDB. Instead use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos unlock</B
></SPAN
> or <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos
unlockvldb</B
></SPAN
> command to unlock the entry, as described in <A
HREF="c8420.html#HDRWQ247"
>Unlocking and Locking VLDB
Entries</A
>.</P
></LI
><LI
><P
>A subsequent <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos</B
></SPAN
> operation fails because a previous failure left a volume marked as
offline. To check a volume's current status, check the first line of output from the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos
examine</B
></SPAN
> command as described in <A
HREF="c8420.html#HDRWQ221"
>Displaying One Volume's VLDB Entry and Volume
Header</A
>.</P
></LI
></UL
></P
><P
>The <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos syncvldb</B
></SPAN
> command corrects the information in the Volume Location Database (VLDB)
either about all volumes housed on a file server machine, about the volumes on just one partition, or about a single volume. If
checking about one or more partitions, the command contacts the Volume Server to obtain a list of the volumes that actually
reside on each partition. It then obtains the VLDB entry for each volume from the VL Server. It changes the VLDB entry as
necessary to reflect the state of the volume on the partition. For example, it creates or updates a VLDB entry when it finds a
volume for which the VLDB entry is missing or incomplete. However, if there is already a VLDB entry that defines a different
location for the volume, or there are irreconcilable conflicts with other VLDB entries, it instead writes a message about the
conflict to the standard error stream. The command never removes volumes from the file server machine.</P
><P
>When checking a single volume's VLDB entry, the command also automatically performs the operations invoked by the
<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos syncserv</B
></SPAN
> command: it not only verifies that the VLDB entry is correct for the specified
volume type (read/write, backup, or read-only), but also checks that any related volume types mentioned in the VLDB entry
actually exist at the site listed in the entry.</P
><P
>The <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos syncserv</B
></SPAN
> command verifies that each volume type (read/write, read-only, and
backup) mentioned in a VLDB entry actually exists at the site indicated in the entry. It checks all VLDB entries that mention a
site either on any of a file server machine's partitions or on one partition. Note that command can end up inspecting sites
other than on the specified machine or partition, if there are read-only versions of the volume at sites other than the
read/write site.</P
><P
>The command alters any incorrect information in the VLDB, unless there is an irreconcilable conflict with other VLDB
entries. In that case, it writes a message to the standard error stream instead. The command never removes volumes from their
sites.</P
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="Header_246"
>To synchronize the VLDB with volume headers</A
></H2
><OL
TYPE="1"
><LI
><P
>Verify that you are listed in the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/usr/afs/etc/UserList</B
></SPAN
> file. If necessary, issue
the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos listusers</B
></SPAN
> command, which is fully described in <A
HREF="c32432.html#HDRWQ593"
>To
display the users in the UserList file</A
>. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos listusers</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>machine name</VAR
>&#62;
</PRE
></P
></LI
><LI
><P
><A
NAME="LIVOL-SYNCVL"
></A
>Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos syncvldb</B
></SPAN
> command to make the VLDB reflect
the true state of all volumes on a machine or partition, or the state of one volume.</P
><DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Note: </B
>To synchronize the VLDB completely, issue the command repeatedly, substituting each file server machine in your
cell for the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-server</B
></SPAN
> argument in turn and omitting the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-partition</B
></SPAN
> and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-volume</B
></SPAN
> arguments, before proceeding to Step
<A
HREF="c8420.html#LIVOL-SYNCSR"
>3</A
>.</P
></BLOCKQUOTE
></DIV
><PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos syncvldb -server</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>machine name</VAR
>&#62; [<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-partition</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>partition name</VAR
>&#62;] \
[<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-volume</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>volume name or ID</VAR
>&#62;] [<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-verbose &#62;&#62;</B
></SPAN
> file]
</PRE
><P
>where <DIV
CLASS="variablelist"
><DL
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>syncv</B
></SPAN
></DT
><DD
><P
>Is the shortest acceptable abbreviation of <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>syncvldb</B
></SPAN
>.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-server</B
></SPAN
></DT
><DD
><P
>Names the file server machine housing the volumes for which to verify VLDB entries. If you are also
providing the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-volume</B
></SPAN
> argument, this argument must name the machine where the
volume actually resides.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-partition</B
></SPAN
></DT
><DD
><P
>Identifies the partition (on the file server machine specified by the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-server</B
></SPAN
> argument) housing the volumes for which to verify VLDB entries. In general, it is
best to omit this argument so that either the VLDB entries for all volumes on a server machine are corrected (if
you do not provide the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-volume</B
></SPAN
> argument), or so that you do not need to guarantee
that the partition actually houses the volume named by the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-volume</B
></SPAN
>
argument.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-volume</B
></SPAN
></DT
><DD
><P
>Specifies the name or volume ID number of a single volume for which to verify the VLDB entry.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-verbose &#62;&#62; file</B
></SPAN
></DT
><DD
><P
>Directs a detailed trace to the file called file, which can be either in AFS or on the local disk of the
machine on which you are issuing the command. The command often writes a large amount of output to the standard
output stream; writing it to a file enables you to examine the output more carefully.</P
></DD
></DL
></DIV
></P
></LI
><LI
><P
><A
NAME="LIVOL-SYNCSR"
></A
>Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos syncserv</B
></SPAN
> command to inspect each volume
for which the VLDB lists a version at the specified site.</P
><DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Note: </B
>To synchronize the VLDB completely, issue the command repeatedly, substituting each file server machine in your
cell for the machine name argument in turn and omitting the partition name argument.</P
></BLOCKQUOTE
></DIV
><PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos syncserv</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>machine name</VAR
>&#62; [&#60;<VAR
CLASS="replaceable"
>partition name</VAR
>&#62;] [<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-v &#62;&#62;</B
></SPAN
> file]
</PRE
><P
>where <DIV
CLASS="variablelist"
><DL
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>syncs</B
></SPAN
></DT
><DD
><P
>Is the shortest acceptable abbreviation of <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>syncserv</B
></SPAN
>.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>machine name</B
></SPAN
></DT
><DD
><P
>Names the file server machine mentioned in each VLDB entry to check.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>partition name</B
></SPAN
></DT
><DD
><P
>Identifies the partition mentioned in each VLDB entry to check. If synchronizing the entire VLDB, omit this
argument.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-v &#62;&#62; file</B
></SPAN
></DT
><DD
><P
>Directs a detailed trace to the file called file, which can be either in AFS or on the local disk of the
machine on which you are issuing the command. The command often writes a large amount of output to the standard
output stream; writing it to a file enables you to examine the output more carefully.</P
></DD
></DL
></DIV
></P
></LI
></OL
></DIV
></DIV
><DIV
CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="HDRWQ232"
>Salvaging Volumes</A
></H1
><P
>An unexpected interruption while the Volume Server or File Server is manipulating the data in a volume can leave the
volume in an intermediate state (<SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>corrupted</I
></SPAN
>), rather than just creating a discrepancy between the
information in the VLDB and volume headers. For example, the failure of the operation that saves changes to a file (by
overwriting old data with new) can leave the old and new data mixed together on the disk.</P
><P
>If an operation halts because the Volume Server or File Server exits unexpectedly, the BOS Server automatically shuts down
all components of the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs</B
></SPAN
> process and invokes the Salvager. The Salvager checks for and repairs
any inconsistencies it can. Sometimes, however, there are symptoms of the following sort, which indicate corruption serious
enough to create problems but not serious enough to cause the File Server component to fail. In these cases you can invoke the
Salvager yourself by issuing the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos salvage</B
></SPAN
> command. <UL
><LI
><P
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>Symptom:</B
></SPAN
> A file appears in the output of the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>ls</B
></SPAN
>
command, but attempts to access the file fail with messages indicating that it does not exist.</P
><P
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>Possible cause:</B
></SPAN
> The Volume Server or File Server exited in the middle of a
file-creation operation, after changing the directory structure, but before actually storing data. (Other possible causes
are that the ACL on the directory does not grant the permissions you need to access the file, or there is a process,
machine, or network outage. Check for these causes before assuming the file is corrupted.)</P
><P
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>Salvager's solution:</B
></SPAN
> Remove the file's entry from the directory structure.</P
></LI
><LI
><P
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>Symptom:</B
></SPAN
> A volume is marked <SAMP
CLASS="computeroutput"
>Off-line</SAMP
> in the output
from the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos examine</B
></SPAN
> and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos listvol</B
></SPAN
> commands, or
attempts to access the volume fail.</P
><P
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>Possible cause:</B
></SPAN
> Two files or versions of a file are sharing the same disk blocks
because of an interrupted operation. The File Server and Volume Server normally refuse to attach volumes that exhibit this
type of corruption, because it can be very dangerous. If the Volume Server or File Server do attach the volume but are
unsure of the status of the affected disk blocks, they sometimes try to write yet more data there. When they cannot
perform the write, the data is lost. This effect can cascade, causing loss of all data on a partition.</P
><P
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>Salvager's solution:</B
></SPAN
> Delete the data from the corrupted disk blocks in preference
to losing an entire partition.</P
></LI
><LI
><P
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>Symptom:</B
></SPAN
> There is less space available on the partition than you expect based on
the size statistic reported for each volume by the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos listvol</B
></SPAN
> command.</P
><P
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>Possible cause:</B
></SPAN
> There are orphaned files and directories. An
<SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>orphaned</I
></SPAN
> element is completely inaccessible because it is not referenced by any directory that can
act as its parent (is higher in the file tree). An orphaned element is not counted in the calculation of a volume's size
(or against its quota), even though it occupies space on the server partition.</P
><P
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>Salvager's solution:</B
></SPAN
> By default, print a message to the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/usr/afs/logs/SalvageLog</B
></SPAN
> file reporting how many orphans were found and the approximate number of
kilobytes they are consuming. You can use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-orphans</B
></SPAN
> argument to remove or attach
orphaned elements instead. See <A
HREF="c8420.html#HDRWQ233"
>To salvage volumes</A
>.</P
></LI
></UL
></P
><P
>When you notice symptoms such as these, use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos salvage</B
></SPAN
> command to invoke the
Salvager before corruption spreads. (Even though it operates on volumes, the command belongs to the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos</B
></SPAN
> suite because the BOS Server must coordinate the shutdown and restart of the Volume Server and File
Server with the Salvager. It shuts them down before the Salvager starts, and automatically restarts them when the salvage
operation finishes.)</P
><P
>All of the AFS data stored on a file server machine is inaccessible during the salvage of one or more partitions. If you
salvage just one volume, it alone is inaccessible.</P
><P
>When processing one or more partitions, the command restores consistency to corrupted read/write volumes where possible.
For read-only or backup volumes, it inspects only the volume header: <UL
><LI
><P
>If the volume header is corrupted, the Salvager removes the volume completely and records the removal in its log
file, <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/usr/afs/logs/SalvageLog</B
></SPAN
>. Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos release</B
></SPAN
> or
<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos backup</B
></SPAN
> command to create the read-only or backup volume again.</P
></LI
><LI
><P
>If the volume header is intact, the Salvager skips the volume (does not check for corruption in the contents).
However, if the File Server notices corruption as it initializes, it sometimes refuses to attach the volume or bring it
online. In this case, it is simplest to remove the volume by issuing the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos remove</B
></SPAN
> or
<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos zap</B
></SPAN
> command. Then issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos release</B
></SPAN
> or <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos backup</B
></SPAN
> command to create it again.</P
></LI
></UL
></P
><P
>Combine the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos salvage</B
></SPAN
> command's arguments as indicated to salvage different numbers of
volumes: <UL
><LI
><P
>To salvage all volumes on a file server machine, combine the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-server</B
></SPAN
> argument and
the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-all</B
></SPAN
> flag.</P
></LI
><LI
><P
>To salvage all volumes on one partition, combine the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-server</B
></SPAN
> and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-partition</B
></SPAN
> arguments.</P
></LI
><LI
><P
>To salvage only one read/write volume, combine the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-server</B
></SPAN
>, <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-partition</B
></SPAN
>, and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-volume</B
></SPAN
> arguments. Only that volume is
inaccessible to Cache Managers, because the BOS Server does not shutdown the File Server and Volume Server processes
during the salvage of a single volume. Do not name a read-only or backup volume with the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-volume</B
></SPAN
> argument. Instead, remove the volume, using the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos remove</B
></SPAN
>
or <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos zap</B
></SPAN
> command. Then create a new copy of the volume with the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos release</B
></SPAN
> or <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos backup</B
></SPAN
> command.</P
></LI
></UL
></P
><P
>The Salvager always writes a trace to the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/usr/afs/logs/SalvageLog</B
></SPAN
> file on the file
server machine where it runs. To record the trace in another file as well (either in AFS or on the local disk of the machine
where you issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos salvage</B
></SPAN
> command), name the file with the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-file</B
></SPAN
> argument. Or, to display the trace on the standard output stream as it is written to the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/usr/afs/logs/SalvageLog</B
></SPAN
> file, include the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-showlog</B
></SPAN
> flag.</P
><P
>By default, multiple Salvager subprocesses run in parallel: one for each partition up to four, and four subprocesses for
four or more partitions. To increase or decrease the number of subprocesses running in parallel, provide a positive integer
value for the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-parallel</B
></SPAN
> argument.</P
><P
>If there is more than one server partition on a physical disk, the Salvager by default salvages them serially to avoid the
inefficiency of constantly moving the disk head from one partition to another. However, this strategy is often not ideal if the
partitions are configured as logical volumes that span multiple disks. To force the Salvager to salvage logical volumes in
parallel, provide the string <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>all</B
></SPAN
> as the value for the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-parallel</B
></SPAN
> argument. Provide a positive integer to specify the number of subprocesses to run in parallel
(for example, <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-parallel 5all</B
></SPAN
> for five subprocesses), or omit the integer to run up to four
subprocesses, depending on the number of logical volumes being salvaged.</P
><P
>The Salvager creates temporary files as it runs, by default writing them to the partition it is salvaging. The number of
files can be quite large, and if the partition is too full to accommodate them, the Salvager terminates without completing the
salvage operation (it always removes the temporary files before exiting). Other Salvager subprocesses running at the same time
continue until they finish salvaging all other partitions where there is enough disk space for temporary files. To complete the
interrupted salvage, reissue the command against the appropriate partitions, adding the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-tmpdir</B
></SPAN
>
argument to redirect the temporary files to a local disk directory that has enough space.</P
><P
>The <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-orphans</B
></SPAN
> argument controls how the Salvager handles orphaned files and directories
that it finds on server partitions it is salvaging. An orphaned element is completely inaccessible because it is not referenced
by the vnode of any directory that can act as its parent (is higher in the filespace). Orphaned objects occupy space on the
server partition, but do not count against the volume's quota.</P
><P
>During the salvage, the output of the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos status</B
></SPAN
> command reports the following auxiliary
status for the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs</B
></SPAN
> process:</P
><PRE
CLASS="programlisting"
>&#13; Salvaging file system
</PRE
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="HDRWQ233"
>To salvage volumes</A
></H2
><OL
TYPE="1"
><LI
><P
>Verify that you are listed in the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/usr/afs/etc/UserList</B
></SPAN
> file. If necessary, issue
the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos listusers</B
></SPAN
> command, which is fully described in <A
HREF="c32432.html#HDRWQ593"
>To
display the users in the UserList file</A
>. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos listusers</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>machine name</VAR
>&#62;
</PRE
></P
></LI
><LI
><P
>Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos salvage</B
></SPAN
> command to salvage one or more volumes. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos salvage -server</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>machine name</VAR
>&#62; [<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-partition</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>salvage partition</VAR
>&#62;] \
[<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-volume</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>salvage volume number or volume name</VAR
>&#62;] \
[<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-file</B
></SPAN
> salvage log output file] [<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-all</B
></SPAN
>] [<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-showlog</B
></SPAN
>] \
[<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-parallel</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
># of max parallel partition salvaging</VAR
>&#62;] \
[<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-tmpdir</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>directory to place tmp files</VAR
>&#62;] \
[<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-orphans</B
></SPAN
> &#60;<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>ignore</B
></SPAN
> | <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>remove</B
></SPAN
> | <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>attach</B
></SPAN
> &#62;]
</PRE
></P
><P
>where <DIV
CLASS="variablelist"
><DL
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-server</B
></SPAN
></DT
><DD
><P
>Names the file server machine on which to salvage volumes. This argument can be combined either with the
<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-all</B
></SPAN
> flag, the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-partition</B
></SPAN
> argument, or both the
<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-partition</B
></SPAN
> and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-volume</B
></SPAN
> arguments.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-partition</B
></SPAN
></DT
><DD
><P
>Names a single partition on which to salvage all volumes. The <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-server</B
></SPAN
>
argument must be provided along with this one.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-volume</B
></SPAN
></DT
><DD
><P
>Specifies the name or volume ID number of one read/write volume to salvage. Combine this argument with the
<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-server</B
></SPAN
> and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-partition</B
></SPAN
> arguments.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-file</B
></SPAN
></DT
><DD
><P
>Specifies the complete pathname of a file into which to write a trace of the salvage operation, in addition
to the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/usr/afs/logs/SalvageLog</B
></SPAN
> file on the server machine. If the file pathname
is local, the trace is written to the specified file on the local disk of the machine where the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos salvage</B
></SPAN
> command is issued. If the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-volume</B
></SPAN
> argument is
included, the file can be in AFS, though not in the volume being salvaged. Do not combine this argument with the
<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-showlog</B
></SPAN
> flag.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-all</B
></SPAN
></DT
><DD
><P
>Salvages all volumes on all of the partitions on the machine named by the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-server</B
></SPAN
> argument.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-showlog</B
></SPAN
></DT
><DD
><P
>Displays the trace of the salvage operation on the standard output stream, as well as writing it to the
<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/usr/afs/logs/SalvageLog</B
></SPAN
> file.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-parallel</B
></SPAN
></DT
><DD
><P
>Specifies the maximum number of Salvager subprocesses to run in parallel. Provide one of three values:
<UL
><LI
><P
>An integer from the range <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>1</B
></SPAN
> to <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>32</B
></SPAN
>. A
value of <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>1</B
></SPAN
> means that a single Salvager process salvages the partitions
sequentially.</P
></LI
><LI
><P
>The string <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>all</B
></SPAN
> to run up to four Salvager subprocesses in parallel on
partitions formatted as logical volumes that span multiple physical disks. Use this value only with such
logical volumes.</P
></LI
><LI
><P
>The string <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>all</B
></SPAN
> followed immediately (with no intervening space) by an
integer from the range <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>1</B
></SPAN
> to <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>32</B
></SPAN
>, to run the
specified number of Salvager subprocesses in parallel on partitions formatted as logical volumes. Use this
value only with such logical volumes.</P
></LI
></UL
></P
><P
>The BOS Server never starts more Salvager subprocesses than there are partitions, and always starts only one
process to salvage a single volume. If this argument is omitted, up to four Salvager subprocesses run in
parallel.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-tmpdir</B
></SPAN
></DT
><DD
><P
>Specifies the full pathname of a local disk directory to which the Salvager process writes temporary files
as it runs. By default, it writes them to the partition it is currently salvaging.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-orphans</B
></SPAN
></DT
><DD
><P
>Controls how the Salvager handles orphaned files and directories. Choose one of the following three values:
<DIV
CLASS="variablelist"
><DL
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>ignore</B
></SPAN
></DT
><DD
><P
>Leaves the orphaned objects on the disk, but prints a message to the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/usr/afs/logs/SalvageLog</B
></SPAN
> file reporting how many orphans were found and the
approximate number of kilobytes they are consuming. This is the default if you omit the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-orphans</B
></SPAN
> argument.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>remove</B
></SPAN
></DT
><DD
><P
>Removes the orphaned objects, and prints a message to the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/usr/afs/logs/SalvageLog</B
></SPAN
> file reporting how many orphans were removed and the
approximate number of kilobytes they were consuming.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>attach</B
></SPAN
></DT
><DD
><P
>Attaches the orphaned objects by creating a reference to them in the vnode of the volume's root
directory. Since each object's actual name is now lost, the Salvager assigns each one a name of the
following form: <TABLE
BORDER="0"
><TBODY
><TR
><TD
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>_ _ORPHANFILE_ _.</B
></SPAN
> index for files</TD
></TR
><TR
><TD
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>_ _ORPHANDIR_ _.</B
></SPAN
> index for directories</TD
></TR
></TBODY
></TABLE
></P
><P
>where index is a two-digit number that uniquely identifies each object. The orphans are charged
against the volume's quota and appear in the output of the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>ls</B
></SPAN
> command
issued against the volume's root directory.</P
></DD
></DL
></DIV
></P
></DD
></DL
></DIV
></P
></LI
></OL
></DIV
></DIV
><DIV
CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="HDRWQ234"
>Setting and Displaying Volume Quota and Current Size</A
></H1
><P
>Every AFS volume has an associated quota which limits the volume's size. The default quota for a newly created volume is
5,000 kilobyte blocks (slightly less that 5 MB). When a volume reaches its quota, the File Server rejects attempts to create new
files or directories in it. If an application is writing data into an existing file in a full volume, the File Server allows a
defined overage (by default, 1 MB). (You can use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fileserver</B
></SPAN
> command's <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-spare</B
></SPAN
> or <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-pctspare</B
></SPAN
> argument to change the default overage; see the
command's reference page in the <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
> IBM AFS Administration Reference</I
></SPAN
>.)</P
><P
>To set a quota other than 5000 KB as you create a volume, include the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-maxquota</B
></SPAN
> argument
to the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos create</B
></SPAN
> command, as described in <A
HREF="c8420.html#HDRWQ185"
>Creating Read/write
Volumes</A
>. To modify an existing volume's quota, issue either the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs setquota</B
></SPAN
> or the
<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs setvol</B
></SPAN
> command as described in the following instructions. Do not set an existing volume's
quota lower than its current size.</P
><P
>In general, smaller volumes are easier to administer than larger ones. If you need to move volumes, say for load-balancing
purposes, it is easier to find enough free space on other partitions for small volumes. Move operations complete more quickly
for small volumes, reducing the potential for outages or other errors to interrupt the move. AFS supports a maximum volume size,
which can vary for different AFS releases; see the <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
> IBM AFS Release Notes</I
></SPAN
> for the version you are using.
Also, the size of a partition or logical places an absolute limit on volume size, because a volume cannot span multiple
partitions or logical volumes.</P
><P
>It is generally safe to overpack partitions by putting more volumes on them than can actually fit if all the volumes reach
their maximum quota. However, only experience determines to what degree overpacking works in your cell. It depends on what kind
of quota you assign to volumes (particularly user volumes, which are more likely than system volumes to grow unpredictably) and
how much information people generate and store in comparison to their quota.</P
><P
>There are several commands that display a volume's quota, as described in the following instructions. They differ in how
much related information they produce.</P
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="Header_250"
>To set quota for a single volume</A
></H2
><OL
TYPE="1"
><LI
><P
>Verify that you belong to the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>system:administrators</B
></SPAN
> group. If necessary, issue the
<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>pts membership</B
></SPAN
> command, which is fully described in <A
HREF="c32432.html#HDRWQ587"
>To display
the members of the system:administrators group</A
>. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>pts membership system:administrators</B
></SPAN
>
</PRE
></P
></LI
><LI
><P
>Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs setquota</B
></SPAN
> command to set the volume's maximum quota. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs setquota</B
></SPAN
> [&#60;<VAR
CLASS="replaceable"
>dir/file path</VAR
>&#62;] <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-max</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>max quota in kbytes</VAR
>&#62;
</PRE
></P
><P
>where <DIV
CLASS="variablelist"
><DL
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>sq</B
></SPAN
></DT
><DD
><P
>Is an acceptable alias for <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>setquota</B
></SPAN
>.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>dir/file path</B
></SPAN
></DT
><DD
><P
>Names a file or directory in the volume for which to set the indicated quota. Partial pathnames are
interpreted relative to the current working directory, which is the default if you omit this argument.</P
><P
>Specify the read/write path to the file or directory, to avoid the failure that results when you attempt to
change a read-only volume. By convention, you indicate the read/write path by placing a period before the cell
name at the pathname's second level (for example, <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/afs/.abc.com</B
></SPAN
>). For further
discussion of the concept of read/write and read-only paths through the filespace, see <A
HREF="c8420.html#HDRWQ209"
>The Rules of Mount Point Traversal</A
>.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>max quota in kbytes</B
></SPAN
></DT
><DD
><P
>Sets the volume's quota, expressed in kilobyte blocks ( <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>1024</B
></SPAN
> equals a
megabyte). A value of <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>0</B
></SPAN
> grants an unlimited quota, but the size of the partition
imposes an absolute limit. You must include the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-max</B
></SPAN
> switch if omitting the
dir/file path argument (to set the quota on the volume that houses the current working directory).</P
></DD
></DL
></DIV
></P
></LI
></OL
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="Header_251"
>To set maximum quota on one or more volumes</A
></H2
><OL
TYPE="1"
><LI
><P
>Verify that you belong to the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>system:administrators</B
></SPAN
> group. If necessary, issue the
<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>pts membership</B
></SPAN
> command, which is fully described in <A
HREF="c32432.html#HDRWQ587"
>To display
the members of the system:administrators group</A
>. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>pts membership system:administrators</B
></SPAN
>
</PRE
></P
></LI
><LI
><P
>Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs setvol</B
></SPAN
> command to set the quota on one or more volumes.
<PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs setvol</B
></SPAN
> [&#60;<VAR
CLASS="replaceable"
>dir/file path</VAR
>&#62;+] <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-max</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>disk space quota in 1K units</VAR
>&#62;
</PRE
></P
><P
>where <DIV
CLASS="variablelist"
><DL
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>sv</B
></SPAN
></DT
><DD
><P
>Is an acceptable alias for <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>setvol</B
></SPAN
>.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>dir/file path</B
></SPAN
></DT
><DD
><P
>Names one file or directory that resides in each volume for which to set the indicated quota. Partial
pathnames are interpreted relative to the current working directory, which is the default if you omit this
argument.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>disk space quota in 1K units</B
></SPAN
></DT
><DD
><P
>Sets the maximum quota on each volume, expressed in kilobytes blocks ( <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>1024</B
></SPAN
>
equals a megabyte). A value of <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>0</B
></SPAN
> grants an unlimited quota, but the size of the
partition does impose an absolute limit.</P
></DD
></DL
></DIV
></P
></LI
></OL
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="Header_252"
>To display percent quota used</A
></H2
><OL
TYPE="1"
><LI
><P
>Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs quota</B
></SPAN
> command. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs quota</B
></SPAN
> [&#60;<VAR
CLASS="replaceable"
>dir/file path</VAR
>&#62;+]
</PRE
></P
><P
>where <DIV
CLASS="variablelist"
><DL
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>q</B
></SPAN
></DT
><DD
><P
>Is the shortest acceptable abbreviation of <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>quota</B
></SPAN
>.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>dir/file path</B
></SPAN
></DT
><DD
><P
>Names a directory or file in each volume for which to display percent quota used. Partial pathnames are
interpreted relative to the current working directory, which is the default if you omit this argument.</P
></DD
></DL
></DIV
></P
></LI
></OL
><P
>The following example illustrates the output produced by this command:</P
><PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs quota /afs/abc.com/usr/terry</B
></SPAN
>
34% of quota used.
</PRE
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="Header_253"
>To display quota, current size, and other information</A
></H2
><OL
TYPE="1"
><LI
><P
>Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs listquota</B
></SPAN
> command. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs listquota</B
></SPAN
> [&#60;<VAR
CLASS="replaceable"
>dir/file path</VAR
>&#62;+]
</PRE
></P
><P
>where <DIV
CLASS="variablelist"
><DL
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>lq</B
></SPAN
></DT
><DD
><P
>Is an alias for <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>listquota</B
></SPAN
>.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>dir/file path</B
></SPAN
></DT
><DD
><P
>Names a directory or file in each volume for which to display quota along with volume name and current space
usage. Partial pathnames are interpreted relative to the current working directory, which is the default if you
omit this argument.</P
></DD
></DL
></DIV
></P
></LI
></OL
><P
>As illustrated in the following example, the output reports the volume's name, its quota and current size (both in
kilobyte units), the percent quota used, and the percentage of space on the volume's host partition that is used.</P
><PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs listquota /afs/abc.com/usr/terry</B
></SPAN
>
Volume Name Quota Used % Used Partition
user.terry 15000 5071 34% 86%
</PRE
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="Header_254"
>To display quota, current size, and more partition information</A
></H2
><OL
TYPE="1"
><LI
><P
>Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs examine</B
></SPAN
> command. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs examine</B
></SPAN
> [&#60;<VAR
CLASS="replaceable"
>dir/file path</VAR
>&#62;+]
</PRE
></P
><P
>where <DIV
CLASS="variablelist"
><DL
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>exa</B
></SPAN
></DT
><DD
><P
>Is the shortest acceptable abbreviation of <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>examine</B
></SPAN
>.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>dir/file path</B
></SPAN
></DT
><DD
><P
>Names a directory or file in each volume for which to display quota information and information about the
host partition. Partial pathnames are interpreted relative to the current working directory, which is the default
if you omit this argument.</P
></DD
></DL
></DIV
></P
></LI
></OL
><P
>As illustrated in the following example, the output displays the volume's volume ID number and name, its quota and
current size (both in kilobyte units), and the free and total number of kilobyte blocks on the volume's host partition.</P
><PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs examine /afs/abc.com/usr/terry</B
></SPAN
>
Volume status for vid = 50489902 named user.terry
Current maximum quota is 15000
Current blocks used are 5073
The partition has 46383 blocks available out of 333305
</PRE
><DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Note: </B
>The partition-related statistics in this command's output do not always agree with the corresponding values in the
output of the standard UNIX <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>df</B
></SPAN
> command. The statistics reported by this command can be up
to five minutes old, because the Cache Manager polls the File Server for partition information at that frequency. Also, on
some operating systems, the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>df</B
></SPAN
> command's report of partition size includes reserved space
not included in this command's calculation, and so is likely to be about 10% larger.</P
></BLOCKQUOTE
></DIV
></DIV
></DIV
><DIV
CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="HDRWQ235"
>Removing Volumes and their Mount Points</A
></H1
><P
>To remove a volume from its site and its record from the VLDB, use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos remove</B
></SPAN
>
command. Use it to remove any of the three types of volumes; the effect depends on the type. <UL
><LI
><P
> If you indicate the read/write volume by specifying the volume's base name without a <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>.readonly</B
></SPAN
> or <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>.backup</B
></SPAN
> extension, the command removes both the
read/write and associated backup volume from the partition that houses them. You do not need to provide the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-server</B
></SPAN
> and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-partition</B
></SPAN
> arguments, because there can be only one
read/write site. The site information is also removed from the VLDB entry, and the site count (reported by the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos examine</B
></SPAN
> and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos listvldb</B
></SPAN
> commands as <SAMP
CLASS="computeroutput"
>number of
sites</SAMP
>) decrements by one. The read/write and backup volume ID numbers no longer appear in the output from
the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos examine</B
></SPAN
> and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos listvldb</B
></SPAN
> commands, but they are
preserved internally. Read-only sites, if any, are not affected, but cannot be changed unless a read/write site is again
defined. The entire VLDB entry is removed if there are no read-only sites.</P
><P
>If there are no read-only copies left, it is best to remove the volume's mount point to prevent attempts to access
the volume's contents. Do not remove the mount point if copies of the read-only volume remain.</P
></LI
><LI
><P
>If you indicate a read-only volume by including the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>.readonly</B
></SPAN
> extension on its
name, it is removed from the partition that houses it, and the corresponding site information is removed from the VLDB
entry. The site count reported by the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos examine</B
></SPAN
> and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos
listvldb</B
></SPAN
> commands as <SAMP
CLASS="computeroutput"
>number of sites</SAMP
> decrements by one for each volume you
remove.</P
><P
>If there is more than one read-only site, you must include the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-server</B
></SPAN
> argument
(and optionally <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-partition</B
></SPAN
> argument) to specify the site from which to remove the volume.
If there is only one read-only site, the volume name is sufficient; if no read/write volume exists in this case, the
entire VLDB entry is removed.</P
><P
>It is not generally appropriate to remove the volume's mount point when removing a read-only volume, especially if
the read/write version of the volume still exists. If the read/write version no longer exists, remove the mount point as
described in Step <A
HREF="c8420.html#LIWQ239"
>5</A
>of <A
HREF="c8420.html#HDRWQ236"
>To remove a volume and unmount
it</A
>.</P
></LI
><LI
><P
>If you indicate a backup volume by including the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>.backup</B
></SPAN
> extension on its name, it
is removed from the partition that houses it and its site information is removed from the VLDB entry. You do not need to
provide the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-server</B
></SPAN
> and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-partition</B
></SPAN
> arguments, because
there can be only one backup site. The backup volume ID number no longer appears in the output from the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos examine</B
></SPAN
> or <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos listvldb</B
></SPAN
> command, but is preserved
internally.</P
><P
>In the standard configuration, there is a separate mount point for the backup version of a user volume. Remember to
remove the mount point to prevent attempt to access the nonexistent volume's contents.</P
></LI
></UL
></P
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="Header_256"
>Other Removal Commands</A
></H2
><P
>The <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos remove</B
></SPAN
> command is almost always the appropriate way to remove a volume, because
it automatically removes a volume's VLDB entry and both the volume header and all data from the partition. If either the VLDB
entry or volume header does not exist, it is sometimes necessary to use other commands that remove only the remaining element.
Do not use these commands in the normal case when both the VLDB entry and the volume header exist, because by definition they
create discrepancies between them. For details on the commands' syntax, see their reference pages in the <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
> IBM AFS
Administration Reference</I
></SPAN
>.</P
><P
>The <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos zap</B
></SPAN
> command removes a volume from its site by removing the volume header and
volume data for which a VLDB entry no longer exists. You can tell a VLDB entry is missing if the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos
listvol</B
></SPAN
> command displays the volume header but the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos examine</B
></SPAN
> or <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos listvldb</B
></SPAN
> command cannot locate the VLDB entry. You must run this command to correct the
discrepancy, because the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos syncvldb</B
></SPAN
> and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos syncserv</B
></SPAN
>
commands never remove volume headers.</P
><P
>The <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos remsite</B
></SPAN
> command removes a read-only site definition from the VLDB without
affecting the volume on the file server machine. Use this command when you have mistakenly issued the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos addsite</B
></SPAN
> command to define a read-only site, but have not yet issued the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos
release</B
></SPAN
> command to release the volume to the site. If you have actually released a volume to the site, use the
<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos remove</B
></SPAN
> command instead.</P
><P
>The <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos delentry</B
></SPAN
> command removes the entire VLDB entry that mentions the volume you
specify. If versions of the volume actually exist on file server machines, they are not affected. This command is useful if
you know for certain that a volume removal was not recorded in the VLDB (perhaps you used the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos
zap</B
></SPAN
> command during an emergency), and do not want to take the time to resynchronize the entire VLDB with the
<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos syncvldb</B
></SPAN
> and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos syncserv</B
></SPAN
> commands.</P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="HDRWQ236"
>To remove a volume and unmount it</A
></H2
><OL
TYPE="1"
><LI
><P
>Verify that you are listed in the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/usr/afs/etc/UserList</B
></SPAN
> file. If necessary, issue
the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos listusers</B
></SPAN
> command, which is fully described in <A
HREF="c32432.html#HDRWQ593"
>To
display the users in the UserList file</A
>. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos listusers</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>machine name</VAR
>&#62;
</PRE
></P
></LI
><LI
><P
>If removing the volume's mount point, verify that you have the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>d</B
></SPAN
>( <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>delete</B
></SPAN
>) permission on its parent directory's ACL. If necessary, issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs
listacl</B
></SPAN
> command, which is fully described in <A
HREF="c31274.html#HDRWQ572"
>Displaying ACLs</A
>. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs listacl</B
></SPAN
> [&#60;<VAR
CLASS="replaceable"
>dir/file path</VAR
>&#62;]
</PRE
></P
><P
>Members of the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>system:administrators</B
></SPAN
> group always implicitly have the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>a</B
></SPAN
>( <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>administer</B
></SPAN
>) and by default also the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>l</B
></SPAN
>( <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>lookup</B
></SPAN
>) permission on every ACL and can use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs setacl</B
></SPAN
> command to grant other rights as necessary.</P
></LI
><LI
><A
NAME="LIWQ237"
></A
><P
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>(Optional)</B
></SPAN
> Dump the volume to a file or to tape, in case you want to restore it
later. To copy the volume's contents to a file, use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos dump</B
></SPAN
> command as instructed in
<A
HREF="c8420.html#HDRWQ240"
>Dumping and Restoring Volumes</A
>. You can then copy the file to tape using a third-party
backup utility or an archiving utility such as the UNIX <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>tar</B
></SPAN
> command.</P
><P
>Alternatively, use the AFS Backup System to create a tape copy. In this case, it can be convenient to create a
temporary volume set that includes only the volume of interest. Temporary volume sets are not recorded in the Backup
Database, and so do not clutter database with records for volume sets that you use only once. For instructions, see <A
HREF="c15383.html#HDRWQ301"
>To create a dump</A
>.</P
></LI
><LI
><P
><A
NAME="LIWQ238"
></A
>Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos remove</B
></SPAN
> command to remove the volume. If
removing a read-only volume from multiple sites, repeat the command for each one. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos remove</B
></SPAN
> [<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-server</B
></SPAN
> machine name&#62;] [<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-partition</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>partition name</VAR
>&#62;] \
<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-id</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>volume name or ID</VAR
>&#62;
</PRE
></P
><P
>where <DIV
CLASS="variablelist"
><DL
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>remo</B
></SPAN
></DT
><DD
><P
>Is the shortest acceptable abbreviation of <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>remove</B
></SPAN
>.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-server</B
></SPAN
></DT
><DD
><P
>Specifies the file server machine on which the volume resides. It is necessary only when the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-id</B
></SPAN
> argument names a read-only volume that exists at multiple sites.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-partition</B
></SPAN
></DT
><DD
><P
>Specifies the partition on machine name where the volume resides. It is necessary only when the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-id</B
></SPAN
> argument names a read-only volume that exists at multiple sites. Provide the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-server</B
></SPAN
> argument along with this one.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-id</B
></SPAN
></DT
><DD
><P
>Identifies the volume to remove, either by its complete name or volume ID number. If identifying a read-only
or backup volume by name, include the appropriate extension ( <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>.readonly</B
></SPAN
> or
<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>.backup</B
></SPAN
>).</P
></DD
></DL
></DIV
></P
></LI
><LI
><P
><A
NAME="LIWQ239"
></A
>If you are removing the last existing version of the volume, issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs rmmount</B
></SPAN
> command remove the corresponding mount point. Complete instructions appear in <A
HREF="c8420.html#HDRWQ236"
>To remove a volume and unmount it</A
>.</P
><P
>If you are removing a backup volume that is mounted in the conventional way (at a subdirectory of its read/write
volume's root directory), then removing the source volume's mount point in this step is sufficient to remove the backup
volume's mount point. If you mounted the backup at a completely separate directory, you need to repeat this step for the
backup volume's mount point.</P
><PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs rmmount</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>directory</VAR
>&#62;
</PRE
></LI
><LI
><P
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>(Optional)</B
></SPAN
> If you created a dump file in Step <A
HREF="c8420.html#LIWQ237"
>3</A
>,
transfer it to tape. The preferred method is to use the AFS Backup System, which is described in <A
HREF="c12776.html"
>Configuring the AFS Backup System</A
>and <A
HREF="c15383.html"
>Backing Up and Restoring AFS
Data</A
>.</P
></LI
></OL
></DIV
></DIV
><DIV
CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="HDRWQ240"
>Dumping and Restoring Volumes</A
></H1
><P
><SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>Dumping</I
></SPAN
> a volume with the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos dump</B
></SPAN
> command converts its contents
into ASCII format and writes them to the file you specify. The <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos restore</B
></SPAN
> command places a
dump file's contents into a volume after converting them into the volume format appropriate for the indicated file server
machine.</P
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="Header_259"
>About Dumping Volumes</A
></H2
><P
>Dumping a volume can be useful in several situations, including the following: <UL
><LI
><P
>You want to back it up to tape, perhaps by using a third-party backup utility. To facilitate this type of backup
operation, the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos dump</B
></SPAN
> command can write to a named pipe. To learn about using the AFS
Backup System instead, see <A
HREF="c12776.html"
>Configuring the AFS Backup System</A
>and <A
HREF="c15383.html"
>Backing Up and Restoring AFS Data</A
>.</P
></LI
><LI
><P
>You are removing the volume from your cell (perhaps because its owner is leaving your cell). The <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos dump</B
></SPAN
> command enables you to create a copy for safekeeping without incurring the overhead of
the Backup System. For complete instructions on removing a volume, see <A
HREF="c8420.html#HDRWQ235"
>Removing Volumes and
their Mount Points</A
>.</P
></LI
><LI
><P
>You want to create a copy of the volume for safekeeping on a non-AFS server partition, perhaps while you move the
actual volume to another machine or perform maintenance tasks on the partition that houses the volume.</P
></LI
><LI
><P
>You need to replace a corrupted read/write volume. If an uncorrupted read-only or backup version of the volume
exists, dump it and restore the data into the read/write volume, overwriting the corrupted contents.</P
></LI
><LI
><P
>You want to copy or transfer the contents of the volume to another cell. You cannot use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos move</B
></SPAN
> command, because AFS supports volume moves only between file server machines that belong
to the same cell.</P
></LI
><LI
><P
>You want to have another read/write copy of the volume's contents. The second volume must have a different name
than the original one. If you want the contents of the two volumes to remain identical, you must update them both
manually. AFS provides no facility for keeping read/write volumes synchronized in this way.</P
></LI
><LI
><P
>You want a copy of only the files and directories in the volume with modification time stamps after a certain
date. The <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos dump</B
></SPAN
> command can create an incremental dump file as described in Step
<A
HREF="c8420.html#LIWQ241"
>3</A
>of the following instructions.</P
></LI
></UL
></P
><P
>You can use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos dump</B
></SPAN
> command to create a <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>full dump</I
></SPAN
>, which
contains the complete contents of the volume at the time you issue the command, or an <SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>incremental dump</I
></SPAN
>,
which contains only those files and directories with modification timestamps (as displayed by the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>ls
-l</B
></SPAN
> command) that are later than a date and time you specify. See Step <A
HREF="c8420.html#LIWQ241"
>3</A
>of the
following instructions.</P
><P
>Dumping a volume does not change its VLDB entry or permanently affect its status on the file server machine, but the
volume's contents are inaccessible during the dump operation. To avoid interrupting access to the volume, it is generally best
to dump the volume's backup version, just after using the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos backup</B
></SPAN
> or <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos backupsys</B
></SPAN
> command to create a new backup version.</P
><P
>If you do not provide a filename into which to write the dump, the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos dump</B
></SPAN
> command
directs the output to the standard output stream. You can pipe it directly to the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos restore</B
></SPAN
>
command if you wish.</P
><P
>Because a volume dump file is in ASCII format, you can read its contents using a text editor or a command such as the
<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>cat</B
></SPAN
> command. However, dump files sometimes contain special characters that do not have
alphanumeric correlates, which can cause problems for some display programs.</P
><P
>By default, the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos</B
></SPAN
> command interpreter consults the Volume Location Database (VLDB) to
learn the volume's location, so the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-server</B
></SPAN
> and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-partition</B
></SPAN
>
arguments are not required. If the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-id</B
></SPAN
> argument identifies a read-only volume that resides at
multiple sites, then the command dumps the version from just one of them (normally, the one listed first in the volume's VLDB
entry as reported by the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos examine</B
></SPAN
> or <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos listvldb</B
></SPAN
>
command). To dump the read-only volume from a particular site, use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-server</B
></SPAN
> and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-partition</B
></SPAN
> arguments to specify the site. To bypass the VLDB lookup entirely, provide a volume ID
number (rather than a volume name) as the value for the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-id</B
></SPAN
> argument, along with the
<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-server</B
></SPAN
> and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-partition</B
></SPAN
> arguments. This makes it possible to
dump a volume for which there is no VLDB entry.</P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="Header_260"
>To dump a volume</A
></H2
><OL
TYPE="1"
><LI
><P
>Verify that you are listed in the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/usr/afs/etc/UserList</B
></SPAN
> file. If necessary, issue
the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos listusers</B
></SPAN
> command, which is fully described in <A
HREF="c32432.html#HDRWQ593"
>To
display the users in the UserList file</A
>. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos listusers</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>machine name</VAR
>&#62;
</PRE
></P
></LI
><LI
><P
>Verify that you have the permissions necessary to create the dump file. If placing it in AFS, you must have the
<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>i</B
></SPAN
>( <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>insert</B
></SPAN
>) permission on the ACL of the file's
directory. If necessary, issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs listacl</B
></SPAN
> command, which is fully described in <A
HREF="c31274.html#HDRWQ572"
>Displaying ACLs</A
>. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs listacl</B
></SPAN
> [&#60;<VAR
CLASS="replaceable"
>dir/file path</VAR
>&#62;]
</PRE
></P
><P
>Members of the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>system:administrators</B
></SPAN
> group always implicitly have the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>a</B
></SPAN
>( <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>administer</B
></SPAN
>) and by default also the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>l</B
></SPAN
>( <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>lookup</B
></SPAN
>) permission on every ACL and can use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs setacl</B
></SPAN
> command to grant other rights as necessary.</P
></LI
><LI
><P
><A
NAME="LIWQ241"
></A
>Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos dump</B
></SPAN
> command to dump the volume.
<PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos dump -id</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>volume name or ID</VAR
>&#62; [<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-time</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>dump from time</VAR
>&#62;] [<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-file</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>arg</VAR
>&#62;] [<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-server</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>server</VAR
>&#62;] [<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-partition</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>partition</VAR
>&#62;]
</PRE
></P
><P
>where <DIV
CLASS="variablelist"
><DL
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-id</B
></SPAN
></DT
><DD
><P
>Identifies the volume to be dumped by its complete name or volume ID number. If you want to dump the
read-only or backup version, specify its volume ID number or add the appropriate extension ( <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>.readonly</B
></SPAN
> or <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>.backup</B
></SPAN
>) to the name.</P
><P
>To bypass the normal VLDB lookup of the volume's location, provide the volume ID number and combine this
argument with the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-server</B
></SPAN
> and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-partition</B
></SPAN
>
arguments.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-time</B
></SPAN
></DT
><DD
><P
>Specifies whether the dump is full or incremental. Omit this argument to create a full dump, or provide one
of three acceptable values: <UL
><LI
><P
>The value <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>0</B
></SPAN
>(zero) to create a full dump.</P
></LI
><LI
><P
>A date in the format mm <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/</B
></SPAN
> dd <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/</B
></SPAN
> yyyy
(month, day and year) to create an incremental dump that includes only files and directories with
modification timestamps later than midnight (12:00 a.m.) on the indicated date. Valid values for the year
range from <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>1970</B
></SPAN
> to <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>2037</B
></SPAN
>; higher values are
not valid because the latest possible date in the standard UNIX representation is in 2038. The command
interpreter automatically reduces later dates to the maximum value. An example is <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>01/13/1999</B
></SPAN
>.</P
></LI
><LI
><P
>A date and time in the format <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>"</B
></SPAN
> mm <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/</B
></SPAN
>
dd <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/</B
></SPAN
> yyyy hh <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>:</B
></SPAN
> MM <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>"</B
></SPAN
> to create an incremental dump that includes only files and directories with
modification timestamps later than the specified date and time. The date format is the same as for a date
alone. Express the time as hours and minutes (hh:MM) in 24-hour format (for example, <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>20:30</B
></SPAN
> is 8:30 p.m.). Surround the entire expression with double quotes (" ") because
it contains a space. An example is <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>"01/13/1999 22:30"</B
></SPAN
>.</P
></LI
></UL
></P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-file</B
></SPAN
></DT
><DD
><P
>Specifies the pathname of the file to which to write the dump. The file can be in AFS, but not in the volume
being dumped. A partial pathname is interpreted relative to the current working directory. Omit this argument to
direct the dump to the standard output stream.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-server</B
></SPAN
></DT
><DD
><P
>Specifies the file server machine on which the volume resides. Provide the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-partition</B
></SPAN
> argument along with this one.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-partition</B
></SPAN
></DT
><DD
><P
>Specifies the partition on which the volume resides. Provide the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-server</B
></SPAN
>
argument along with this one.</P
></DD
></DL
></DIV
></P
></LI
></OL
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="Header_261"
>About Restoring Volumes</A
></H2
><P
>Although you can dump any of the three types of volumes (read/write, read-only, or backup), you can restore a dump file
to the file system only as a read/write volume, using the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos restore</B
></SPAN
> command. The command
automatically translates the dump file's contents from ASCII back into the volume format appropriate for the file server
machine that stores the restored version. As with the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos dump</B
></SPAN
> command, you can restore a
dump file via a named pipe, which facilitates interoperation with third-party backup utilities.</P
><P
>You can restore the contents of a dump file in one of two basic ways. In either case, you must restore a full dump of
the volume before restoring any incremental dumps. Any incremental dumps that you then restore must have been created after
the full dump. If there is more than one incremental dump, you must restore them in the order they were created. <UL
><LI
><P
>You can restore volume data into a brand new volume with a new name and at a location that you specify. See <A
HREF="c8420.html#HDRWQ242"
>To restore a dump into a new volume and mount it</A
>.</P
><P
>You can assign a volume ID number as you restore the volume, though it is best to have the Volume Server allocate
a volume number automatically. The most common reason for specifying the volume ID is that a volume's VLDB entry has
disappeared for some reason, but you know the former read/write volume ID number and want to reuse it.</P
></LI
><LI
><P
>You can restore volume data into an existing volume (usually the one that was previously dumped), overwriting its
current contents. This is convenient if the current contents are corrupted or otherwise incorrect, because it allows you
to replace them with a coherent version from the past or from one of the volume's clones. See <A
HREF="c8420.html#HDRWQ244"
>To restore a dump file, overwriting an existing volume</A
>.</P
><P
>Provide the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-overwrite</B
></SPAN
> argument to preconfirm that you wish to overwrite the
volume's contents, and to specify whether you are restoring a full or incremental dump. If you omit the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-overwrite</B
></SPAN
> argument, the Volume Server generates the following prompt to confirm that you want to
overwrite the existing volume with either a full ( <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>f</B
></SPAN
>) or incremental ( <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>i</B
></SPAN
>) dump:</P
><PRE
CLASS="programlisting"
>&#13; Do you want to do a full/incremental restore or abort? [fia](a):
</PRE
><P
>If you pipe in the dump file via the standard input stream instead of using the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-file</B
></SPAN
> argument to name it, you must include the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-overwrite</B
></SPAN
>
argument because there is nowhere for the Volume Server to display the prompt in this case.</P
><P
>You can move the volume to a new site as you overwrite it with a full dump, by using the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-server</B
></SPAN
> and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-partition</B
></SPAN
> arguments to specify the new site. You
cannot move the volume when restoring an incremental dump.</P
></LI
></UL
></P
><P
>The <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos restore</B
></SPAN
> command sets the restored volume's creation date in the volume header
to the time of the restore operation, as reported in the <SAMP
CLASS="computeroutput"
>Creation</SAMP
> field in the output from
the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos examine</B
></SPAN
> and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos listvol</B
></SPAN
> commands.</P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="HDRWQ242"
>To restore a dump into a new volume and mount it</A
></H2
><OL
TYPE="1"
><LI
><P
>Verify that you are listed in the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/usr/afs/etc/UserList</B
></SPAN
> file. If necessary, issue
the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos listusers</B
></SPAN
> command, which is fully described in <A
HREF="c32432.html#HDRWQ593"
>To
display the users in the UserList file</A
>. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos listusers</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>machine name</VAR
>&#62;
</PRE
></P
></LI
><LI
><P
>Verify that you have permissions needed to read the dump file and to mount the new volume. If the dump file resides
in AFS, you need the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>r</B
></SPAN
>( <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>read</B
></SPAN
>) permission on the ACL of
its directory. You need the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>i</B
></SPAN
>( <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>insert</B
></SPAN
>) and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>a</B
></SPAN
>( <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>administer</B
></SPAN
>) permissions on the ACL of the directory where you
are mounting the new volume. If necessary, issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs listacl</B
></SPAN
> command, which is fully
described in <A
HREF="c31274.html#HDRWQ572"
>Displaying ACLs</A
>. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs listacl</B
></SPAN
> [&#60;<VAR
CLASS="replaceable"
>dir/file path</VAR
>&#62;]
</PRE
></P
><P
>Members of the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>system:administrators</B
></SPAN
> group always implicitly have the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>a</B
></SPAN
>( <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>administer</B
></SPAN
>) and by default also the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>l</B
></SPAN
>( <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>lookup</B
></SPAN
>) permission on every ACL and can use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs setacl</B
></SPAN
> command to grant other rights as necessary.</P
></LI
><LI
><P
>Select a site (disk partition on a file server machine) for the new volume. If your cell groups different types of
volumes onto different file server machines, that can guide your decision. It often makes sense to put the volume on the
emptiest partition that meets your other criteria. To display how much space is available on a file server machine's
partitions, use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos partinfo</B
></SPAN
> command, which is described fully in <A
HREF="c8420.html#HDRWQ185"
>Creating Read/write Volumes</A
>. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos partinfo</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>machine name</VAR
>&#62; [&#60;<VAR
CLASS="replaceable"
>partition name</VAR
>&#62;]
</PRE
></P
></LI
><LI
><P
><A
NAME="LIWQ243"
></A
>Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos restore</B
></SPAN
> command to create a new volume and
restore the dump file into it. Type it on a single line; it appears on multiple lines here only for legibility.
<PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos restore</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>machine name</VAR
>&#62; &#60;<VAR
CLASS="replaceable"
>partition name</VAR
>&#62; \
&#60;<VAR
CLASS="replaceable"
>name of volume to be restored</VAR
>&#62; \
[<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-file</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>dump file</VAR
>&#62;] [<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-id</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>volume ID</VAR
>&#62;]
</PRE
></P
><P
>where <DIV
CLASS="variablelist"
><DL
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>res</B
></SPAN
></DT
><DD
><P
>Is the shortest acceptable abbreviation of <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>restore</B
></SPAN
>.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>machine name</B
></SPAN
></DT
><DD
><P
>Names the file server machine on which to create the new volume.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>partition name</B
></SPAN
></DT
><DD
><P
>Names the partition on which to create the new volume.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>name of volume to be restored</B
></SPAN
></DT
><DD
><P
>Names the new read/write volume, which must not already have a VLDB entry. It can be up to 22 characters in
length.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-file</B
></SPAN
></DT
><DD
><P
>Is the dump file to restore. Partial pathnames are interpreted with respect to the current working
directory. Omit this argument if using a pipe to read in the dump file from the standard input stream.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-volume</B
></SPAN
></DT
><DD
><P
>Specifies the new volume's ID number. It is appropriate only if you are restoring a volume that no longer
exists and want to use the volume ID number it had previously.</P
></DD
></DL
></DIV
></P
></LI
><LI
><P
>Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs mkmount</B
></SPAN
> command to mount the new volume, making its contents
accessible. Complete instructions appear in <A
HREF="c8420.html#HDRWQ212"
>To create a regular or read/write mount point</A
>.
<PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs mkmount</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>directory</VAR
>&#62; &#60;<VAR
CLASS="replaceable"
>volume name</VAR
>&#62;
</PRE
></P
></LI
><LI
><P
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>(Optional)</B
></SPAN
> Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs lsmount</B
></SPAN
> command to verify
that the mount point refers to the correct volume. Complete instructions appear in <A
HREF="c8420.html#HDRWQ211"
>To display a
mount point</A
>. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs lsmount</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>directory</VAR
>&#62;
</PRE
></P
></LI
></OL
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="HDRWQ244"
>To restore a dump file, overwriting an existing volume</A
></H2
><OL
TYPE="1"
><LI
><P
>Verify that you are listed in the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/usr/afs/etc/UserList</B
></SPAN
> file. If necessary, issue
the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos listusers</B
></SPAN
> command, which is fully described in <A
HREF="c32432.html#HDRWQ593"
>To
display the users in the UserList file</A
>. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos listusers</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>machine name</VAR
>&#62;
</PRE
></P
></LI
><LI
><P
>Verify that you have permissions needed to read the dump file. If it resides in AFS, you need the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>r</B
></SPAN
>( <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>read</B
></SPAN
>) permission on the ACL of its directory. If necessary,
issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs listacl</B
></SPAN
> command, which is fully described in <A
HREF="c31274.html#HDRWQ572"
>Displaying ACLs</A
>. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs listacl</B
></SPAN
> [&#60;<VAR
CLASS="replaceable"
>dir/file path</VAR
>&#62;]
</PRE
></P
><P
>Members of the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>system:administrators</B
></SPAN
> group always implicitly have the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>a</B
></SPAN
>( <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>administer</B
></SPAN
>) and by default also the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>l</B
></SPAN
>( <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>lookup</B
></SPAN
>) permission on every ACL and can use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs setacl</B
></SPAN
> command to grant other rights as necessary.</P
></LI
><LI
><P
>Restore the contents of the dump file into a read/write volume, overwriting the current contents. The volume retains
its current volume ID number. Type it on a single line; it appears on multiple lines here only for legibility.
<PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos restore</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>machine name</VAR
>&#62; &#60;<VAR
CLASS="replaceable"
>partition name</VAR
>&#62; \
&#60;<VAR
CLASS="replaceable"
>name of volume to be restored</VAR
>&#62; \
[<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-file</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>dump file</VAR
>&#62;] [<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-id</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>volume ID</VAR
>&#62;]
</PRE
></P
><P
>where <DIV
CLASS="variablelist"
><DL
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>res</B
></SPAN
></DT
><DD
><P
>Is the shortest acceptable abbreviation of <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>restore</B
></SPAN
>.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>machine name</B
></SPAN
></DT
><DD
><P
>Names the file server machine where the volume already exists, or the machine to which to move it. In the
latter case, the value for the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-overwrite</B
></SPAN
> argument must be <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>full</B
></SPAN
>.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>partition name</B
></SPAN
></DT
><DD
><P
>Names the partition where the volume already exists, or the partition to which to move it. In the latter
case, the value for the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-overwrite</B
></SPAN
> argument must be <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>full</B
></SPAN
>.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>name of volume to be restored</B
></SPAN
></DT
><DD
><P
>Names the read/write volume to overwrite with the contents of the dump file.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-file</B
></SPAN
></DT
><DD
><P
>Is the dump file to restore. Partial pathnames are interpreted with respect to the current working
directory. Omit this argument if using a pipe to read in the dump file from the standard input stream; in this
case, you must provide the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-overwrite</B
></SPAN
> argument.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-overwrite</B
></SPAN
></DT
><DD
><P
>Preconfirms that you want to overwrite the existing volume and specifies which type of dump file you are
restoring. Provide one of the following values: <UL
><LI
><P
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>f</B
></SPAN
> or <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>full</B
></SPAN
> if restoring a full dump
file</P
></LI
><LI
><P
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>i</B
></SPAN
> or <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>incremental</B
></SPAN
> if restoring an
incremental dump file. This value is not acceptable if you are moving the volume while restoring it.</P
></LI
><LI
><P
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>a</B
></SPAN
> to terminate the restore operation</P
></LI
></UL
></P
></DD
></DL
></DIV
></P
></LI
><LI
><P
>If the volume is replicated, issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos release</B
></SPAN
> command to release the newly
restored contents to read-only sites. Complete instructions appear in <A
HREF="c8420.html#HDRWQ192"
>Replicating Volumes
(Creating Read-only Volumes)</A
>. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos release</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>volume name or ID</VAR
>&#62;
</PRE
></P
></LI
><LI
><P
>Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos backup</B
></SPAN
> command to create a new backup version of the volume. Complete
instructions appear in <A
HREF="c8420.html#HDRWQ201"
>Creating Backup Volumes</A
>. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos backup</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>volume name or ID</VAR
>&#62;
</PRE
></P
></LI
></OL
></DIV
></DIV
><DIV
CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="HDRWQ245"
>Renaming Volumes</A
></H1
><P
>You can use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos rename</B
></SPAN
> command to rename a volume. For example, it is appropriate to
rename a user's home volume if you use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>user.</B
></SPAN
> username convention for user volume names and
you change the username. (For complete instructions for changing usernames, see <A
HREF="c27596.html#HDRWQ518"
>Changing
Usernames</A
>.)</P
><P
>The <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos rename</B
></SPAN
> command accepts only read/write volume names, but automatically changes
the names of the associated read-only and backup volumes. As directed in the following instructions, you need to replace the
volume's current mount point with a new one that reflects the name change.</P
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="HDRWQ246"
>To rename a volume</A
></H2
><OL
TYPE="1"
><LI
><P
>Verify that you are listed in the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/usr/afs/etc/UserList</B
></SPAN
> file. If necessary, issue
the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos listusers</B
></SPAN
> command, which is fully described in <A
HREF="c32432.html#HDRWQ593"
>To
display the users in the UserList file</A
>. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos listusers</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>machine name</VAR
>&#62;
</PRE
></P
></LI
><LI
><P
>Verify that you have the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>a</B
></SPAN
>( <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>administer</B
></SPAN
>), <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>d</B
></SPAN
>( <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>delete</B
></SPAN
>), and <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>i</B
></SPAN
>( <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>insert</B
></SPAN
>) access permissions for the directory in which you are replacing the volume's mount point.
If necessary, issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs listacl</B
></SPAN
> command, which is fully described in <A
HREF="c31274.html#HDRWQ572"
>Displaying ACLs</A
>. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs listacl</B
></SPAN
> [&#60;<VAR
CLASS="replaceable"
>dir/file path</VAR
>&#62;]
</PRE
></P
><P
>Members of the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>system:administrators</B
></SPAN
> group always implicitly have the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>a</B
></SPAN
>( <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>administer</B
></SPAN
>) and by default also the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>l</B
></SPAN
>( <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>lookup</B
></SPAN
>) permission on every ACL and can use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs setacl</B
></SPAN
> command to grant other rights as necessary.</P
></LI
><LI
><P
><A
NAME="LIVOL-REN"
></A
>Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos rename</B
></SPAN
> command to rename the volume.
<PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos rename</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>old volume name</VAR
>&#62; &#60;<VAR
CLASS="replaceable"
>new volume name</VAR
>&#62;
</PRE
></P
><P
>where <DIV
CLASS="variablelist"
><DL
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>ren</B
></SPAN
></DT
><DD
><P
>Is the shortest acceptable abbreviation of <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>rename</B
></SPAN
>.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>old volume name</B
></SPAN
></DT
><DD
><P
>Is the current name of a read/write volume.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>new volume name</B
></SPAN
></DT
><DD
><P
>Is the new name for the volume. It cannot be more than 22 characters in length.</P
></DD
></DL
></DIV
></P
><P
>If there is no Volume Location Database (VLDB) entry for the specified current volume name, the command fails with
the following error message:</P
><PRE
CLASS="programlisting"
>&#13; vos: Could not find entry for volume old_volume_name.
</PRE
></LI
><LI
><P
>Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs rmmount</B
></SPAN
> command to remove the mount point that refers to the volume's
old name. Complete instructions appear in <A
HREF="c8420.html#HDRWQ215"
>To remove a mount point</A
>. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs rmmount</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>directory</VAR
>&#62;
</PRE
></P
></LI
><LI
><P
>Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs mkmount</B
></SPAN
> to create a mount point that indicates the volume's new name.
Complete instructions appear in <A
HREF="c8420.html#HDRWQ212"
>To create a regular or read/write mount point</A
>.
<PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>fs mkmount</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>directory</VAR
>&#62; &#60;<VAR
CLASS="replaceable"
>volume name</VAR
>&#62; [<SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-rw</B
></SPAN
>]
</PRE
></P
></LI
></OL
></DIV
></DIV
><DIV
CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="HDRWQ247"
>Unlocking and Locking VLDB Entries</A
></H1
><P
>As detailed in <A
HREF="c8420.html#HDRWQ227"
>Synchronizing the VLDB and Volume Headers</A
>, The Volume Location (VL) Server
locks the Volume Location Database (VLDB) entry for a volume before the Volume Server executes any operation on it. No other
operation can affect a volume with a locked VLDB entry, so the lock prevents the inconsistency or corruption that can result
from multiple simultaneous operations on a volume.</P
><P
>To verify that a VLDB entry is locked, issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos listvldb</B
></SPAN
> command as described in
<A
HREF="c8420.html#HDRWQ218"
>To display VLDB entries</A
>. The command has a <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>-locked</B
></SPAN
> flag that
displays locked entries only. If the VLDB entry is locked, the string <SAMP
CLASS="computeroutput"
>Volume is currently
LOCKED</SAMP
> appears on the last line of the volume's output.</P
><P
>To lock a VLDB entry yourself, use the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos lock</B
></SPAN
> command. This is useful when you suspect
something is wrong with a volume and you want to prevent any changes to it while you are investigating the problem.</P
><P
>To unlock a locked VLDB entry, issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos unlock</B
></SPAN
> command, which unlocks a single VLDB
entry, or the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos unlockvldb</B
></SPAN
> command, which unlocks potentially many entries. This is useful
when a volume operation fails prematurely and leaves a VLDB entry locked, preventing you from acting to correct the problems
resulting from the failure.</P
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="Header_267"
>To lock a VLDB entry</A
></H2
><OL
TYPE="1"
><LI
><P
>Verify that you are listed in the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/usr/afs/etc/UserList</B
></SPAN
> file. If necessary, issue
the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos listusers</B
></SPAN
> command, which is fully described in <A
HREF="c32432.html#HDRWQ593"
>To
display the users in the UserList file</A
>. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos listusers</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>machine name</VAR
>&#62;
</PRE
></P
></LI
><LI
><P
>Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos lock</B
></SPAN
> to lock the entry. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos lock</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>volume name or ID</VAR
>&#62;
</PRE
></P
><P
>where <DIV
CLASS="variablelist"
><DL
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>lo</B
></SPAN
></DT
><DD
><P
>Is the shortest acceptable abbreviation of <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>lock</B
></SPAN
>.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>volume name or ID</B
></SPAN
></DT
><DD
><P
>Identifies the volume to be locked, either by its complete name or volume ID number. It can be any of the
three versions of the volume.</P
></DD
></DL
></DIV
></P
></LI
></OL
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="Header_268"
>To unlock a single VLDB entry</A
></H2
><OL
TYPE="1"
><LI
><P
>Verify that you are listed in the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/usr/afs/etc/UserList</B
></SPAN
> file. If necessary, issue
the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos listusers</B
></SPAN
> command, which is fully described in <A
HREF="c32432.html#HDRWQ593"
>To
display the users in the UserList file</A
>. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos listusers</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>machine name</VAR
>&#62;
</PRE
></P
></LI
><LI
><P
>Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos unlock</B
></SPAN
> command to unlock the entry. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos unlock</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>volume name or ID</VAR
>&#62;
</PRE
></P
><P
>where <DIV
CLASS="variablelist"
><DL
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>unlock</B
></SPAN
></DT
><DD
><P
>Must be typed in full.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>volume name or ID</B
></SPAN
></DT
><DD
><P
>Identifies the volume to be unlocked, either by its complete name or volume ID number. It can be any of the
three versions of the volume.</P
></DD
></DL
></DIV
></P
></LI
></OL
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="Header_269"
>To unlock multiple VLDB entries</A
></H2
><OL
TYPE="1"
><LI
><P
>Verify that you are listed in the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>/usr/afs/etc/UserList</B
></SPAN
> file. If necessary, issue
the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos listusers</B
></SPAN
> command, which is fully described in <A
HREF="c32432.html#HDRWQ593"
>To
display the users in the UserList file</A
>. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>bos listusers</B
></SPAN
> &#60;<VAR
CLASS="replaceable"
>machine name</VAR
>&#62;
</PRE
></P
></LI
><LI
><P
>Issue the <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos unlockvldb</B
></SPAN
> command to unlock the desired entries. <PRE
CLASS="programlisting"
>&#13; % <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>vos unlockvldb</B
></SPAN
> [&#60;<VAR
CLASS="replaceable"
>machine name</VAR
>&#62;] [&#60;<VAR
CLASS="replaceable"
>partition name</VAR
>&#62;]
</PRE
></P
><P
>where <DIV
CLASS="variablelist"
><DL
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>unlockv</B
></SPAN
></DT
><DD
><P
>Is the shortest acceptable abbreviation of <SPAN
CLASS="bold"
><B
CLASS="emphasis"
>unlockvldb</B
></SPAN
>.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>machine name</B
></SPAN
></DT
><DD
><P
>Specifies a file server machine. Provide this argument alone to unlock all VLDB entries that mention the
machine in a site definition. Omit both this argument and the partition name argument to unlock all VLDB
entries.</P
></DD
><DT
><SPAN
CLASS="bold"
><B
CLASS="emphasis"
>partition name</B
></SPAN
></DT
><DD
><P
>Specifies a partition. Provide this argument alone to unlock all VLDB entries that mention the partition (on
any machine) in a site definition. Omit both this argument and the machine name argument to unlock all VLDB
entries.</P
></DD
></DL
></DIV
></P
></LI
></OL
></DIV
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="c6449.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="c12776.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Monitoring and Controlling Server Processes</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="p3023.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Configuring the AFS Backup System</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>