# 管理の手引き

# ボリュームの管理

この章では、ファイル・サーバー・マシンに保管されているボリュームを管理する方法について説明します。このボリュームは、AFS 内の指定管理ユニットであるため、その管理は管理者の仕事の大部分を占めます。

## 命令の一覧

本章では、次に示されるコマンドを使用したタスクの実行方法について説明します。

読み取り / 書き込みボリュームの作成 | vos create
読み取り専用ボリュームの作成 | vos addsite および vos release
バックアップ・ボリュームの作成 | vos backup
多くのバックアップ・ボリュームの同時作成 | vos backupsys
VLDB 項目の検査 | vos listvldb
ボリューム・ヘッダーの検査 | vos listvol
VLDB 項目およびボリューム・ヘッダーの検査 | vos examine
ボリューム名の表示 | fs listquota または fs examine
ボリューム ID 番号の表示 | fs examine または vos examine または vos listvol
使用可能なパーティションのサイズおよびスペースの表示 | vos partinfo
ボリュームの位置表示 | fs whereis または vos examine
マウント・ポイントの作成 | fs mkmount
マウント・ポイントの取り外し | fs rmmount
マウント・ポイントの表示 | fs lsmount
読み取り / 書き込みボリュームの移動 | vos move
ボリューム・ヘッダーとの VLDB の同期化 | vos syncvldb および vos syncserv
ボリューム割り当て量の設定 | fs setvol または fs setquota
ボリューム割り当て量の表示 | fs quota または fs listquota または fs examine
ボリュームの現行サイズ表示 | fs listquota または fs examine
マシン / パーティション上のボリュームのリスト表示 | vos listvol
読み取り / 書き込みボリュームの削除 | vos remove および fs rmmount
読み取り専用ボリュームの削除 | vos remove
バックアップ・ボリュームの削除 | vos remove および fs rmmount
ボリュームの削除。VLDB 変更なし。 | vos zap
読み取り専用サイト定義の削除 | vos remsite
VLDB 項目の削除。ボリューム変更なし。 | vos delentry
ボリュームのダンプ | vos dump
ダンプ済みボリュームの復元 | vos restore
ボリュームの名前変更 | vos rename、fs rmmount および fs mkmount
ボリュームのロック解除 | vos unlock
複数ボリュームのロック解除 | vos unlockvldb
ボリュームのロック | vos lock

## ボリュームについて

AFS ボリューム は、ディスク・スペースの論理装置で、 AFS ディレクトリー内のファイル用のコンテナーのように機能し、ファイル・サーバー・マシンの 1 つのパーティション上にそれらのすべてのファイルを保持します。ボリュームの内容をセルのファイル・ツリー内に表示させて、ユーザーがアクセスできるようにするには、 AFS ファイル・スペース内のディレクトリーの位置にそのボリュームを取り付けます。ファイル・スペース内のボリュームとそのロケーション間の関連は、 マウント・ポイント と呼ばれます。また、AFS の内部の動作により、それは標準ディレクトリー要素と全く同じように見え、同じように機能します。したがって、ユーザーは標準 UNIX ディレクトリーの内容にアクセスして操作するのと同じように、ボリュームの内容にアクセスし操作することができます。ボリュームおよびディレクトリー間の関連についての詳細は、 ボリュームの取り付けについて を参照してください。

ボリュームは、AFS の基本記憶機構および管理ユニットであるため、管理者は日常的な活動のなかで、ボリュームを操作することがよくあります。ボリュームを使用してジョブを容易にする方法については、 ボリュームを使用して AFS 効率性を向上させる方法 を参照してください。

### 3 つのタイプのボリューム

AFS には、以下に示す 3 つのタイプのボリュームがあります。

- 単一の 読み取り / 書き込み バージョンのボリュームは、ファイルおよびディレクトリーの変更可能なバージョンを格納します。

  このバージョンは、読み取り / 書き込みソース と呼ばれます。 複製と呼ばれるコピー手順によって別の 2 つのタイプのボリュームが、そこから派生するからです。読み取り / 書き込みボリュームの作成に関する説明は、読み取り / 書き込みボリュームの作成 を参照してください

- 読み取り専用 ボリュームは、読み取り / 書き込みソース・ボリュームのコピーで、複数のサイトで存在する可能性があります (サイトは、特定のファイル・サーバー・マシン上の特定のパーティションです)。

  複数のサイトに同じデータを配置することは、複写と呼ばれます。詳細は、ボリュームを使用して AFS 効率性を向上させる方法 を参照してください。名前のとおり、読み取り専用ボリュームの内容は、読み取り / 書き込みソースが変更されるときに自動的に変更されませんが、管理者が vos release コマンドを発行するときのみ変更されます。 AFS ファイル・スペースの一貫したビューを保持するには、読み取り専用ボリュームのすべてのコピーがお互いに一致、かつ、それらの読み取り / 書き込みソースと一致しなければなりません。すべての読み取り専用ボリュームは、読み取り / 書き込みソースの名前に .readonly の拡張子が付いた同じ名前を共用します。読み取り専用ボリュームの作成に関する説明は、ボリュームの複写 (読み取り専用ボリュームの作成) を参照してください。

- バックアップ・ボリュームは、読み取り / 書き込みソース・ボリュームの複製で、ソースと同じサイトに格納されています。

  バックアップ・バージョンは、特定の時間の読み取り / 書き込みソースの状態を記録します。これは、間違って変更または削除したデータを回復することができるため便利です (詳細は、ボリュームを使用して AFS 効率性を向上させる方法 を参照してください)。バックアップ・ボリューム名は、読み取り / 書き込みソースの名前に .backup 拡張子を付けたものです。バックアップ・ボリュームの作成に関する説明は、バックアップ・ボリュームの作成 を参照してください。

  注: | 通常、ボリュームのバックアップ・バージョンの作成は、ボリュームをテープにバックアップするプロセスのステージの 1 つですが、バックアップ・ボリュームは、AFS バックアップ・システムを使用してテープに転送されるボリュームのバックアップと同じではありません。 AFS バックアップ・システムを使用したボリュームのバックアップについては、データのバックアップ を参照してください。

既述のとおり、3 つのタイプのボリュームは互いに関連しています。読み取り専用およびバックアップのボリュームは、どちらも複製という処理を介して読み取り / 書き込みボリュームから派生しています。作成時点での読み取り専用およびバックアップのボリュームは、読み取り / 書き込みソースの同一コピーです。

### ボリュームを使用して AFS 効率性を向上させる方法

ボリュームを使用して、セルの管理を容易にし、効率的にするには、次の 3 つの方法があります。

- ボリュームは、パーティションよりも小さいと定義されるため、同じマシンでも異なるマシンでもパーティション間で移動することが簡単です。

  おそらく、ボリュームを移動させる最も一般的な理由は、ファイル・サーバー・マシンの間でのロードのバランスを取るためか、または、特定のマシン上でより大きなディスク容量を利用するためだと思われます。移動過程によって数秒の間だけボリュームの内容は使用不能になるため、ユーザーが内容にアクセスするのを中断させることなく、必要なだけ何度もボリュームを移動させることができます。ボリューム・ロケーション・データベース (VLDB) 内のボリューム・ロケーションの自動トラッキング機能により、アクセスは透過的のまま残ります。ボリュームの移動に関する説明は、 ボリュームの移動 を参照してください。

- ボリュームは、AFS の複写ユニットです。

  複写 とは、読み取り / 書き込みソースから読み取り専用の複製を作成すること、および 1 つまたはそれ以上のサイトへ複製を配布することを指します。複写によって、一般的なファイルに対する要求を複数のマシンによって埋めることができるため、システム効率が向上します。また、複写によって、マシンやサーバー・プロセスの障害が起きた場合にもデータを使用可能にしておけるため、システムの信頼性も高まります。通常、あまり変更しない一般的なアプリケーション・プログラムおよび他のファイルを含むボリュームが複製には最適な候補ですが、どの読み取り / 書き込みボリュームでも複製することができます。 ボリュームの複写 (読み取り専用ボリュームの作成) を参照してください。

- ボリュームは、AFS のバックアップ・ユニットであり、2 つの意味があります。

  バックアップ・ボリューム・バージョンを作成すると、指定時間に読み取り / 書き込みソース・ボリュームの状態を保存することができます。 AFS ファイル・スペースにバックアップ・バージョンを取り付けると、ユーザーは管理者の援助なしで誤って変更または削除したデータを復元することができ、これによってより重要なジョブを実行する余裕ができます。 1 日に 1 回ユーザー・ボリュームの新規バックアップ・バージョンを作成する (おそらく以前のバックアップに上書きする) 場合、ユーザーは常に前日のバージョンのファイルを検索することができます。これについての詳細は、バックアップ・ボリュームの作成 を参照してください。

  バックアップはまた、AFS バックアップ・システムを使用して、テープ上または特別なバックアップ・データ内にボリュームの内容の永久版を保存する場合にも当てはまります。 AFS バックアップ・システムの構成 および AFS データのバックアップと復元を参照してください。

### VLDB のボリューム情報

ボリューム・ロケーション・データベース (VLDB) には、セル内のすべてのボリュームに関する項目が含まれています。おそらく、項目の内で最も重要な情報は、ボリュームの位置であり、これは AFS データへの透過的アクセスへの鍵となるものです。ユーザーがファイルをオープンしたら、キャッシュ・マネージャーは、 VLDB を保守するボリューム・ロケーション (VL) サーバーに相談して、そのファイルを含むボリュームを格納するファイル・サーバー・マシンのリストを探します。次に、キャッシュ・マネージャーは、関連するファイル・サーバー・マシンのうちの 1 つで実行されているファイル・サーバーからファイルを要求します。このファイル・ロケーションの手順は、ファイルのパス名しか知る必要のないユーザーには見えません。

読み取り / 書き込みボリュームの VLDB ボリューム項目には、読み取り専用およびバックアップ・バージョンに関する持続情報も含まれますが、独自の VLDB 項目自体は含まれません (まれに例外として、読み取り / 書き込みソースが削除されたために、読み取り専用ボリュームが独自の VLDB 項目を持つ場合があります)。ボリュームの VLDB 項目は、ボリューム名、バージョン (読み取り / 書き込み、読み取り専用、バックアップ、および releaseClone) ごとの固有なボリューム ID 番号、読み取り / 書き込みバージョンまたは読み取り専用バージョンを収納するサイト数カウント、およびサイトのリストを記録します。

1 つまたは複数のボリュームの VLDB 項目を表示するには、 VLDB 項目の表示 で説明する vos listvldb コマンドを使用します。ボリューム・ヘッダーとともに単一のボリュームの VLDB 項目を表示するには、 1 つのボリュームの VLDB 項目およびボリューム・ヘッダーの表示 で説明する vos examine コマンドを使用します (ボリューム・ヘッダーについての説明は、以下のセクションを参照してください)。

### ボリューム・ヘッダーの情報

すべてのバージョンのボリュームが 1 つの VLDB 項目を共有するのに対し、AFS サーバー・パーティション上の各ボリュームは、独自の ボリューム・ヘッダーを保持しています。これは、ボリューム内のファイルおよびディレクトリーを、それらを保管するパーティション上の物理メモリー・アドレスへマップさせるデータ構造です。ボリューム・ヘッダーは、ボリュームの内容を論理装置へ結合するため、隣接するメモリー・ブロックに内容を保管する必要はありません。ボリューム・ヘッダーはまた、ボリュームについての情報を記録します。たとえば、名前、ボリューム ID番号、タイプ、サイズ、状態 (オンライン、オフライン、またはビジー)、スペース割り当て量、作成日付および最終変更日付のタイム・スタンプ、およびその終日のアクセス数を記録し、いくつかの VLDB 項目 と重複するボリュームもあります。

1 つまたは複数のパーティション上でボリューム・ヘッダーを表示するには、 ボリューム・ヘッダーの表示 で説明する vos listvol コマンドを使用します。ボリューム・ヘッダーとともに単一のボリュームの VLDB 項目を表示するには、1 つのボリュームの VLDB 項目およびボリューム・ヘッダーの表示 で説明する vos examine コマンドを使用します。

### VLDB およびボリューム・ヘッダーの同期化を保持する

VLDB の情報が、(ボリューム・ヘッダーに記録された) サーバー上の実際のボリュームの状況に、可能な限り長時間対応することが重要です。 VLDB 内のボリューム位置情報が誤っていると、キャッシュ・マネージャーはその内容が見つけられずアクセスできません。ボリュームの状況を変更する vos コマンドを発行する度に、ボリューム・サーバーと VL サーバーは、ボリューム・ヘッダーおよび VLDB の同期化を維持するために協力します。まれに、vos 操作が早期に停止する場合などに、ヘッダーおよび VLDB が分かれてしまう可能性があります。再び同期化させるための詳細は、VLDB およびボリューム・ヘッダーの同期化 を参照してください。

### ボリュームの取り付けについて

ボリュームの内容をセルのファイル・ツリー内に表示させて、ユーザーがアクセスできるようにするには、AFS ファイル・スペース内のディレクトリーの位置に、そのボリュームを取り付けます。ファイル・スペース内のボリュームとそのロケーション間の関連は、 マウント・ポイント と呼ばれます。 AFS マウント・ポイントは、通常の UNIX ファイル・システム・ディレクトリーのように見え、そのように機能します。しかし、構造的にはむしろ記号のリンクであり、ディレクトリーに関連するボリューム名をキャッシュ・マネージャーに伝える働きをします。キャッシュ・マネージャーがその解釈方法を知っているというだけの理由で、マウント・ポイントは、ディレクトリーのように見えそのように作用します。

アプリケーション・プログラムが要求するファイルをキャッシュ・マネージャーが検索しなければならない、という一般的な場合について考慮します。キャッシュ・マネージャーは、ファイルの完全なパス名を考慮し、 AFS ルート ( /afs ディレクトリーに取り付けられた規則) からスタートしてそのファイルまで横断します。横断中に、キャッシュ・マネージャーがマウント・ポイントに出会う ( 交差する) と、そのマウント・ポイントを読み取って、そのディレクトリー・ロケーションに取り付けられたボリューム名を入手します。ボリューム・ロケーション (VL) サーバーからボリュームの位置情報を入手したら、キャッシュ・マネージャーは、指示されたボリュームを取り出して、そのルート・ディレクトリーをオープンします。ボリュームの ルート・ディレクトリー は、ボリューム内に常駐するすべてのファイル、サブディレクトリー、およびマウント・ポイントをリストします。キャッシュ・マネージャーは、パス名の次のエレメントをリストするルート・ディレクトリーを走査します。キャッシュ・マネージャーは、出会う他のマウント・ポイントの解釈を続ける方法を使用して要求されたファイルを格納するボリュームに達するまでそのパスを走査し続けます。

マウント・ポイントは、ボリュームが異なる多くのファイル・サーバー・マシン上に常駐する場合でも、単一のシームレス・ファイル・ツリーのような錯覚を起こさせる AFS ファイル・スペースを接続するグルーのような役割を果たします。ボリュームがディレクトリー位置に取り付けられると、その内容を表示して、アクセスすることができます。ボリュームが取り付けられない場合、その内容には全くアクセスすることができません。

ボリュームを、ファイル・ツリー内の 1 つ以上の位置に取り付けることができますが、これは次の 2 つの理由でお勧めできません。まず、ファイル・スペースの階層特性が変更してしまいます。次に、ファイルに達するために従うパス名について、キャッシュ・マネージャーが混乱する可能性があります (たとえば、pwd コマンドから予想できない出力を起こす原因となります)。しかし、複数のディレクトリーでボリュームを取り付けた場合、ボリュームのルート・ディレクトリーに関連付けられたアクセス制御リスト (ACL) は、そのすべてのマウント・ポイントに適用されます。

マウント・ポイントには幾つかのタイプがあります。キャッシュ・マネージャーは、各タイプを異なる目的に適するものとして、異なる方法で処理します。 ボリュームの取り付け を参照してください。

### ボリューム名について

読み取り / 書き込みボリューム名の長さは、最大 22 文字までとします。ボリューム・サーバーは、読み取り専用およびバックアップのボリュームそれぞれに .readonly および .backup の拡張子を自動的に追加します。たとえその拡張子が適切な場合であっても、拡張子を明示的にボリューム名に追加してはいけません。

規則として、ボリューム名は収納するデータのタイプを示します。たとえば、すべてのユーザー・ボリューム名を user.username (username はユーザーのログイン名) とすることは規則です。同様に、多くのセルはシステム・タイプ・コードから開始する名前を持つボリュームにシステム・バイナリーを入れることを選択します。その他の命名規則のリストについては、 管理を簡単にするためのボリュームの作成 を参照してください。

## 読み取り / 書き込みボリュームの作成

読み取り / 書き込みボリュームは、最も基本的なボリューム・タイプです。読み取り専用またはバックアップ・バージョンを作成するには、このボリュームがすでに存在していなければなりません。 vos createコマンドを発行して読み取り / 書き込みボリュームを作成したら、 VL サーバーはボリューム用の VLDB 項目を作成します。この項目では、ユーザーが指定する名前を記録し、読み取り / 書き込みボリューム ID番号を割り当て、次の 2 つの連続するボリューム ID 番号を、後に作成される可能性のある読み取り専用およびバックアップの各バージョン用に予約します。同時に、ボリューム・サーバーは、ユーザーが指示するサイトにボリューム・ヘッダーを作成し、ボリュームのルート・ディレクトリーの名前を記録するためにディスク上にスペースを割り振ります。ボリュームを取り付けるために fs mkmount コマンドを発行したら、その名前が埋められます。この名前はマウント・ポイント名と一致します。ボリューム・ヘッダーには、以下のものも記録されます。

- ボリュームのルート・ディレクトリーに関連付けられた初期の ACL。デフォルトでは、その ACL は、7 つの AFS アクセス権すべてを system:administrators グループに許可します。ボリュームを取り付けたら、fs setacl コマンドを使用して、 system:administrators グループの他の項目の追加および項目の削除または変更を行うことができます。ACL 項目の設定を参照してください。
- ボリュームがファイル・サーバー・パーティション上で使用できるディスク・スペースの量を制限するスペース割り当て量。デフォルトは 5000 K バイト・ブロックですが、-maxquota 引き数から vos create コマンドを使用して、異なる割り当て量を設定することができます。

  作成後に割り当て量を変更するには、ボリューム割り当て量および現行サイズの設定および表示 で説明する fs setquota コマンドを使用します。

### 読み取り / 書き込みボリュームの作成 (取り付け)

1. ユーザーが、/usr/afs/etc/UserList ファイルにリストされているかどうかを検証します。必要な場合には、bos listusers コマンドを発行します。このコマンドについては、UserList ファイルのユーザーの表示で詳しく説明しています。

          % bos listusers <machine name>

2. ボリュームを取り付ける予定のディレクトリーの ACL 上に a (管理)、 i (挿入)、および l (ルックアップ) アクセス権があることを検証します。必要に応じて、fs listacl コマンドを発行します。これについては、ACL の表示 で詳しく説明しています。

          % fs listacl [<dir/file path>]

   system:administrators グループのメンバーは、a (管理)、および、デフォルトで l (検索) アクセス権を、常にすべての ACL に暗黙的に持っています。また、必要に応じて fs setacl コマンドを使用して、他の権限を付与することができます。

3. 新規ボリュームに対してサイト (ファイル・サーバー・マシン上のディスク・パーティション) を選択します。サイトがボリュームを格納するのに十分な空きスペースがあることを検証するには (現在、または割り当て量全体を使用するほど成長した場合) 、 vos partinfo コマンドを発行します。

   注: | このコマンドの出力に含まれる区画関連の統計は、標準 UNIX の df コマンドの出力に含まれる対応する値と常に一致するとは限りません。キャッシュ・マネージャーは 5 分間隔でファイル・マネージャーをポーリングして区画情報を得るので、このコマンドによって報告される統計は 5 分前のものである可能性があります。また、オペレーティング・システムによっては、df コマンドの区画サイズ報告には、このコマンドによる計算には含まれない予約済みのスペースが含まれるので、約 10% 大きくなることがあります。

          % vos partinfo <machine name> [<partition name>]

   ここで、

   p
     は、partinfo の受け入れ可能な省略形です。

   machine name
     区画サイズおよび使用量を表示するファイル・サーバー・マシンを指定します。

   partition name
     区画サイズおよび使用量を表示するパーティションの名前です。これを省略すると、出力はマシンのすべてのパーティションで使用可能なサイズおよびスペースを表示します。
4. ボリューム名について を参照してボリューム名を選択します。
5. vos create コマンドを発行して、ボリュームを作成します。

          % vos create <machine name> <partition name> <volume name>  \
                       [-maxquota <initial quota (KB)>]

   ここで、

   cr
     create の受け入れ可能な最も短い省略形です。

   machine name
     ボリュームを配置するファイル・サーバー・マシンを指定します。

   partition name
     ボリュームを配置するディスク・パーティションを指定します。

   volume name
     ボリューム名。長さは 22 文字の英数字および句読文字までとします。セルには、ユーザー名がストリング user で始まる、または名前の部分を分離させるのにピリオドを使用するといった、ボリュームの命名規則がある場合があります。

   -maxquota
     ボリュームの割り当て量を K バイト・ブロックの数として設定します。この引き数を省略すると、割り当て量は 5000 K バイト・ブロックに設定されます。
6. (オプション) fs mkmount コマンドを発行して、ボリュームをファイル・スペースに取り付けます。完全な構文は、正規または読み取り / 書き込みの各マウント・ポイントの作成 を参照してください。

          % fs mkmount <directory> <volume name>

7. (オプション) fs lsmount コマンドを発行して、マウント・ポイントが正しいボリュームを参照しているか検証します。詳細な説明が マウント・ポイントの表示方法 に示されています。

          % fs lsmount <directory>

8. (オプション)。fs setvol コマンドを、-offlinemsg 引き数を併用して発行し、ボリューム・ヘッダー内のボリュームに関する補助情報を記録します。たとえば、ボリュームの所有者またはファイル・スペース内の取り付け場所を記録することができます。この情報を表示するには、fs examine コマンドを使用します。

          % fs setvol <dir/file path> -offlinemsg <offline message>

   ここで、

   sv
     は、setvol の受け入れ可能な別名です (setv は受け入れ可能な最も短い省略形です)。

   dir/file path
     メッセージに関連するボリュームのマウント・ポイントを指定します。パス名の一部は、現行作業ディレクトリーとの関連で解釈されます。

     マウント・ポイントへの読み取り / 書き込みパスを指定し、読み取りボリュームの変更時に生じる障害を回避してください。通例、読み取り / 書き込みパスを指定するには、パス名の第 2 レベルのセル名の前にピリオドを挿入します (たとえば /afs/.example.com)。ファイル・スペースにおける読み取り / 書き込みおよび読み取り専用パスの概念の詳細は、マウント・ポイント横断の規則 を参照してください。

   -offlinemsg
     ボリューム・ヘッダーに記録する補助情報を、最大 128 文字まで指定します。

## 複製について

バックアップまたは読み取り専用のボリュームを作成するには、ボリューム・サーバーは、まず、読み取り / 書き込みソース・ファイルを 複製して、 複製 を作成します。ボリューム・サーバーは、ユーザーが vos backup または vos backupsys の各コマンド (バックアップ・ボリューム用)、もしくは vos release コマンド (読み取り専用ボリューム用) を発行するときに自動的に複製を作成します。ユーザー側では特別な処置は必要ありません。

複製は、読み取り / 書き込みソース・ボリューム内のデータのコピーではなく、読み取り / 書き込みボリュームの vnode インデックス のコピーです。 vnode インデックスは、ボリューム内のファイルおよびディレクトリーと、パーティション上でそのデータが常駐する物理ディスク・ブロックとの間のポインター表です。複製から、次の方法でバックアップおよび読み取り専用の各ボリュームが作成されます。

- 読み取り / 書き込みソース ( 読み取り専用複製とも呼ばれる) と同じパーティションを使用する読み取り専用ボリューム、およびバックアップ・ボリュームは、ボリューム・ヘッダーを複製へ付加することによって作成されます。これらのボリュームは、複製部分 (vnode 索引) が読み取り / 書き込みボリュームと全く同じファイルを指しているために、最初はほとんどディスク・スペースを消費しません。詳細は、図 1 を参照してください。読み取り / 書き込みソース・ボリュームと同じパーティションに複製があれば、ファイル共用が可能です。読み取り / 書き込みボリューム内のファイルが削除される場合、バックアップまたは読み取り専用の複製がまだそれを指しているため、読み取り / 書き込みボリュームはパーティションから実際には除去されません。同じように、読み取り / 書き込みボリューム内のファイルが変更される場合、複製がまだそれを指しているため元のファイル全体がディスク上に保存されます。そして、読み取り / 書き込みボリュームの vnode 索引は、変更済みファイルの新規スペースを指すように変更されます。これが実行されると、増大して実ディスク・スペースを使用するように、バックアップまたは読み取り専用のボリュームに指示されます。
- 読み取り / 書き込みソースと同じサイトを使用しない読み取り専用ボリュームは、複製および読み取り / 書き込みソース・ボリューム内のすべてのデータのコピーです。これは、読み取り専用ボリュームが作成された時点で読み取り / 書き込みボリュームが行ったディスク・スペースと同じ量を使用します。

図 1. 読み取り / 書き込みソースと複製ボリュームとの間のファイル共用

## ボリュームの複写 (読み取り専用ボリュームの作成)

複写とは、読み取り / 書き込みボリュームの読み取り専用コピーを作成し、そのコピーを 1 つまたは複数の追加のファイル・サーバー・マシンへ配布するということを指します。複写によって、ボリュームの内容が複数のファイル・サーバー・マシン上でアクセス可能になるため、データ使用可能性が向上します。また、ネットワーク上およびファイル・サーバー上でロードを削減することによってシステム効率性が上がります。クライアント・マシンのサーバー設定の変更ランクにより、キャッシュ・マネージャーが、最も近いファイル・サーバー・マシン上に保管されたボリュームのコピーにアクセスする場合、ネットワーク・ロードは削減されます。読み取り / 書き込みボリュームから取り出されたファイルごとに 1 つのコールバックを発するのとは異なり、ファイル・サーバーは、読み取り専用ボリュームから取り出されたすべてのデータにただ 1 つのコールバックを発するため、ファイル・サーバー上のロードは削減されます。ボリュームは管理者の処置に応答する場合以外は変更されないため、単一のコールバックは読み取り専用ボリューム全体にとって重要です。それに対して、それぞれの読み取り / 書き込みファイルは任意の時間に変更される可能性があります。

ボリュームを複写するには、2 つのコマンドを発行する必要があります。最初に、vos addsite コマンドを使用して、 1 つまたは複数の読み取り専用サイト定義をボリュームの VLDB 項目へ追加します (サイトは、ファイル・サーバー・マシン上の特定部分です)。次に、vos release コマンドを発行して、読み取り / 書き込みソース・ボリュームの複製を作成し、定義されたサイトに複製を配布します。読み取り専用サイトに対して 1 度だけ vos addsite を発行しますが、読み取り / 書き込みボリューム内容が変更されたために読み取り専用ボリュームを更新したいときは、その都度、vos release コマンドを再発行しなければなりません。

ファイル・システムの一貫したビューを表示するには、読み取り専用サイトへ更新したボリューム内容のリリースがアトミックでなければなりません。つまり、すべての読み取り専用サイトがボリュームの新規バージョンを受け取るか、すべてのサイトが現在保持するバージョンを維持する必要があります。 vos release コマンドは、ボリュームの読み取り専用バージョンのすべてのコピーがお互いに一致し、かつ、読み取り / 書き込みソースと一致することを保証するように設計されています。マシンまたはサーバーのプロセス停止などの問題によってリリース操作が正常に完了しない場合は、 AFS は 2 つのマシンを使用してユーザーに警告を出します。

最初に、コマンド・インタープリターは、新規ボリューム・バージョンを受け取らなかったそれぞれの読み取り専用サイトを指名している標準エラー・ストリーム上で、エラー・メッセージを生成します。次に、リリース操作中に、ボリューム・ロケーション (VL)・サーバーは、サイトが新規ボリューム・バージョンを持っているかどうかを示すフラグ (`New release` および `Old release`) を使用して、 VLDB 項目内のサイト定義をマークします。操作が完了してもフラグが残される場合は、成功しなかったということです。キャッシュ・マネージャーは、`Old release` フラグでマークされた読み取り専用サイトにアクセスすることを拒否します。このフラグは、`New release` フラグでマークされたサイトよりも大きなロードが必要になる可能性があるためです。失敗の原因を調査して取り除き、エラーなしでリリースを完了するために、必要なだけ何度でも vos release コマンドを発行することが大切です。

失敗したリリース操作の後にボリュームの VLDB 項目内に残されるサイト・フラグのパターンは、操作が失敗したポイントを決定する助けとなります。 VLDB 項目を表示するには、vos examine または vos listvldb コマンドを使用します。 VL サーバーは、ボリューム・サーバーの操作と調和して、以下のようにフラグを設定します。

1. 操作が始まる前に、VL サーバーは、VLDB 項目内の読み取り / 書き込みサイトの定義上に `New release` フラグを、読み取り専用サイトの定義上には `Old release` フラグを設定します (最後のリリース操作以来、読み取り専用サイトが定義されておらず実ボリュームがない場合、そのサイト・フラグは `Not released` になります)。
2. 必要ならば、ボリューム・サーバーは、ReleaseClone と呼ばれる読み取り / 書き込みソースの一時的なコピー (複製) を作成します (ボリューム・サーバーが新規の ReleaseClone を作成または作成しない場合の説明は、以下を参照してください)。そして、ReleaseClone に独自のボリューム ID 番号を割り当てます。この番号は、VL サーバーがソース・ボリュームの VLDB 項目の `RClone`フィールドに記録します。
3. ボリューム・サーバーは、VLDB 項目で定義されたそれぞれの読み取り専用サイトへ ReleaseClone のコピーを配布します。サイトが正常に新規複製を受け取ったら、VL サーバーは VLDB 項目内のサイトのフラグを `New release` に設定します。
4. すべての読み取り専用コピーが正常にリリースされたら、VL サーバーは、すべての `New release` サイト・フラグを消去します。 ReleaseClone は必要なくなるため、ボリューム・サーバーはこれを削除し、その ID を VLDB 項目から消去します。

デフォルトでは、ボリューム・サーバーは、新規の ReleaseClone を作成する必要があるかどうかを、以下のように自動的に判別します。

- VLDB 項目内のサイト定義上にフラグ (`New release`、`Old release`、または `Not released`) がない場合は、直前の vos release コマンドは正常に完了し、すべての読み取り専用サイトが現在同じボリュームを持っています。ボリューム・サーバーは、読み取り / 書き込みボリュームが変更されたために、現行の vos release コマンドが発行されたと推論します。ボリューム・サーバーは新規の ReleaseClone を作成し、すべての読み取り専用サイトへそれを配布します。
- VLDB 項目内の任意のサイト定義がフラグでマークされている場合は、直前のリリース操作が正常に完了しなかったか、または最後のリリース以来新規の読み取り専用サイトが定義されていたかのどちらかを意味します。この場合、ボリューム・サーバーは新規の ReleaseClone を作成しません。その代わりに、既存の ReleaseClone を `Old release` または `Not released` フラグでマークされたサイトへ配布します。既に述べたとおり、VL サーバーは、サイトが ReleaseClone を受け取ったら、それぞれの VLDB サイト定義を `New release` フラグでマークします。そして、すべてのサイトが正常にそれを受け取ったら、すべてのフラグを消去します。

デフォルトの動作を上書きして、ボリューム・サーバーに強制的に新規の ReleaseClone を作成させ、読み取り専用サイトへリリースさせるには、-f フラグを組み込みます。これは、たとえば、直前の操作で既存の ReleaseClone が作成されてから、読み取り / 書き込みサイトのデータが変更された場合などに適します。

### 効果的な読み取り専用ボリュームの使用

最も効率を高めるためには、以下の 2 つの基準を満たすボリュームのみを複製します。

- 内容が頻繁に使用されているボリューム。たとえば、テキスト・エディターまたはその他のアプリケーション・プログラム用のバイナリー・ファイルを収納するボリューム、およびユーザーのホーム・ディレクトリーへ導くパスなどの、頻繁に横断があるディレクトリー・パスに沿って取り付けたボリュームなどです。単一のファイル・サーバーで簡単にすべての要求に応じられるくらい要求が少ないボリュームを複製することは、ディスク・スペースを非効率に使用することになります。
- 内容が頻繁に変更されないボリューム。すでに述べたとおり、ファイル・システムが一貫性を保つには、読み取り専用ボリュームの内容がお互いに一致し、かつ、それらの読み取り / 書き込みソースと一致する必要があります。読み取り / 書き込みボリュームが変更されるたびに、 vos release コマンドを使用して読み取り専用ボリュームを更新する必要があります。このように、読み取り / 書き込みボリュームが頻繁に変更される場合には、時間がかかり、また忘れやすくなります。

明示的に読み取り専用ボリュームを取り付ける (.readonly 拡張子の付いたボリュームのマウント・ポイントを作成する) ことは、普通は不要であり適当ではありません。キャッシュ・マネージャーには、可能な場合にいつでも複製したボリュームの読み取り専用バージョンにアクセスできる組み込まれたバイアスがあります。 マウント・ポイント横断の規則 で説明するとおり、キャッシュ・マネージャーはマウント・ポイントに出会うとその中のボリューム名を読み取り、そのボリュームを収納するサイトのリストを求めて VL サーバーと交信します。通常、マウント・ポイントが読み取り専用ボリューム内に常駐し読み取り / 書き込みボリュームを指定すると (.readonly または .backup の拡張子の付かない名前)、キャッシュ・マネージャーは常に、そのボリュームの読み取り専用コピーにアクセスしようと試みます。このため、普通、読み取り専用ボリュームにアクセスするために、キャッシュ・マネージャーを明示的にそのボリュームを取り付けるよう強制しなければならない理由はありません。

次にあげるいくつかの理由で、読み取り専用ボリュームを読み取り / 書き込みサイトに配置することは有益です。まず、読み取り / 書き込みサイトの読み取り専用ボリュームは、すべてのデータのコピーではなく 1 つの複製であるため、ディスク・スペースを少ししか必要としません (複製について を参照)。読み取り / 書き込みボリューム内で多数のファイルが削除され変更された場合にのみ、読み取り専用コピーは多くのディスク・スペースをとります。しかし、複写した読み取り / 書き込みボリューム内に変更を行う場合は、それを再複製することが適切な処置であるため、こういうケースはあまり起こりません。読み取り専用ボリュームを読み取り / 書き込みサイトに配置するもう 1 つの理由は、すべての読み取り専用コピーがアクセス不能になった場合に、キャッシュ・マネージャーは、複写したボリュームの読み取り / 書き込みバージョンにアクセスしようと試みないからです。読み取り / 書き込みボリュームを収納しているファイル・サーバー・マシンが唯一のアクセス可能マシンである場合、キャッシュ・マネージャーは、読み取り / 書き込みサイトに読み取り専用コピーがある場合にのみ、データにアクセスすることができます。

定義する読み取り専用サイト数は、いくつかの要因によって決まります。おそらく、主なトレードオフは、ボリューム内容の要求レベルと、ボリュームの複数のコピー用に使用しようとしているディスク・スペースの量との間にあります。もちろん、定義しようとする読み取り専用サイトにはそれぞれ、ボリュームを収納するために使用できる十分なスペースがなければなりません。ボリュームの読み取り専用コピーの制限数は、 AFS Release Notes で定義されるボリュームの VLDB 項目内のサイト定義最大数によって決まります。ボリュームの読み取り / 書き込みおよびバックアップのバージョンを収容するサイトは 1 つのサイトとして数えられ、読み取り専用サイトはそれぞれが追加のサイトとして数えられます (読み取り / 書き込みサイトと同じファイル・サーバー・マシンおよびパーティション上に定義された読み取り専用サイトでも別々のサイトとして数えます)。また、ボリューム・サーバーは、ファイル・サーバー・マシンごとにボリュームの読み取り専用コピーを 1 つしか許可しないということに注意してください。

### 複写シナリオ

次のセクションでは、読み取り専用サイトが現在定義されていないボリュームを複写する方法について説明します。しかし、その他の共通な場合にもこの説明を使用できます。

- 新規の複製をすでに存在するサイトへリリースする場合、 2 のステップをスキップしても構いません。スキップしても vos examine コマンドを発行することは有益ですが、希望する読み取り専用サイトが定義されていることを確かめるようにしてください。
- 新規の読み取り専用サイトを既存のサイトに追加する場合は、すべてのステップを実行してください。3 のステップでは、新規のサイトにのみ vos addsite コマンドを発行します。
- サイトを定義しても複製のリリースは行いたくない場合、 3 のステップの後に停止して、準備が整えば継続します。
- 残りのサイトに新規の複製をリリースする前に 1 つ以上のサイトを除去する場合、 ボリュームおよびそのマウント・ポイントの除去 のサイトの除去についての指示に従い、 4 のステップから開始します。

### 読み取り / 書き込みボリュームの複写 (読み取り専用ボリュームの作成)

1. ユーザーが、/usr/afs/etc/UserListファイルにリストされているかどうかを検証します。必要な場合には、bos listusers コマンドを発行します。このコマンドについては、UserList ファイルのユーザーの表示で詳しく説明しています。

          % bos listusers <machine name>

2. ボリュームを複写する 1 つまたは複数のサイトを選択します。以下に示すとおり、考慮すべきいくつかの要因があります。
   - すでに定義しているサイト数。既述のとおり、通常は読み取り / 書き込みサイトにおいて読み取り専用サイトを定義することが適切です。また、ボリューム・サーバーは、ファイル・サーバー・マシンごとにボリュームの読み取り専用コピーを 1 つしか許可しないということに注意してください。ボリュームの現行サイトを表示するには、 vos examine コマンドを発行します。これについては、 1 つのボリュームの VLDB 項目およびボリューム・ヘッダーの表示 で詳しく説明されています。

            % vos examine <volume name or ID>

     出力の最終行は、VLDB からのボリュームのサイト定義を表示します。

   - セル内の任意のファイル・サーバー・マシンを、読み取り専用ボリュームのみを収容するためのものにするかどうか。一般的に、非常に大きなセルのみがこのようなサーバー・マシンを使用します。
   - ボリュームを収容するだけの十分な空きスペースがサイトにあるかどうか。読み取り専用ボリュームは、読み取り / 書き込みバージョンと同じ量のスペースを必要とします (読み取り専用ボリュームが読み取り / 書き込みサイトにない場合)。 vos examine コマンドによる最初の出力行では、読み取り / 書き込みボリュームの現行サイズを K バイト・ブロック単位で示します。出力例は 1 つのボリュームの VLDB 項目およびボリューム・ヘッダーの表示 に示されています。

     ファイル・サーバー・マシンのパーティション上で使用可能なスペース容量を表示するには、 vos partinfo コマンドを使用します。このコマンドの完全な説明は、読み取り / 書き込みボリュームの作成 を参照してください。

            % vos partinfo <machine name> [<partition name>]

3. vos addsite コマンドを発行して、 VLDB 内にそれぞれ新規の読み取り専用サイトを定義します。

          % vos addsite <machine name> <partition name> <volume name or ID>

   ここで、

   ad
     は、addsite の受け入れ可能な省略形です。

   machine name
     新規のサイトに対するファイル・サーバー・マシンを定義します。

   partition name
     マシン machine name 上のディスク・パーティションの名前です。

   volume name or ID
     複写する読み取り / 書き込みボリュームを、その完全名またはボリューム ID 番号によって識別します。
4. (オプション) fs プロセス (ボリューム・サーバーに組み込み) が、読み取り専用サイトを定義したそれぞれのファイル・サーバー・マシン上で正常に機能しているかどうか、および vlserver プロセス (ボリューム・ロケーション・サーバー) が各データベース・サーバー・マシン上で正しく機能しているかどうかを検査します。これらが機能していることが認識されると、リリースの失敗を引き起こす可能性がある 2 つの要因が除かれます。このボリューム用の読み取り専用サイトを収容する各ファイル・サーバー・マシン上、および各データベース・サーバー・マシン上で bos status コマンドを発行します。このコマンドについての詳細は、BosConfig ファイルのプロセス状況および情報の表示 を参照してください。

          % bos status <machine name> fs vlserver

5. vos release コマンドを発行して、読み取り / 書き込みソース・ボリュームを複製し、それぞれの読み取り専用サイトへ複製を配布します。

          % vos release <volume name or ID> [-f]

   ここで、

   rel
     は、release の受け入れ可能な省略形です。

   volume name or ID
     複製する読み取り / 書き込みボリュームを、その完全名またはボリューム ID 番号によって識別します。読み取り専用バージョンは、 .readonly 拡張子が付いた同じ名前が付きます。すべての読み取り専用コピーは、同じ読み取り専用ボリューム ID 番号を共用します。

   -f
     完全に新規の複製を作成しリリースします。
6. (オプション) vos examine コマンドを発行して、VLDB 項目内のサイト定義が、 `Old release` または `New release` のフラグでマークされていないことを検査します。このコマンドについての詳細は、1 つのボリュームの VLDB 項目およびボリューム・ヘッダーの表示 を参照してください

          % vos examine <volume name or ID>

6 のステップからの出力にフラグが表示される場合、ボリューム・サーバーがリリース操作中にエラー・メッセージを出さなくなり、フラグが表示されなくなるまで、 4 のステップおよび 5 を繰り返します。ネットワーク、マシン、またはサーバー・プロセス障害のために、読み取り / 書き込みサイトまたは読み取り専用サイトがアクセス不能だと分かっている場合には、 vos release コマンドを発行しないでください。

## バックアップ・ボリュームの作成

バックアップ・ボリュームは、読み取り / 書き込みソースと同じサイトに常駐する複製です (複製の概念については、 複製について を参照)。ボリュームのバックアップ・バージョンを作成することには、次の 2 つの目的があります。

- 規則では、AFS バックアップ・システムを使用してテープに記録するために、ボリューム内容をダンプすることが最初のステップです。ダンプ処理中には、ボリュームにアクセスできません。したがって、読み取り / 書き込みボリュームをダンプするのではなく、バックアップ・バージョンを作成してそれをダンプします。通常、ユーザーはバックアップ・バージョンにアクセスしないため、ダンプによって妨害されることはありません。詳しくは、データのバックアップ を参照してください。
- 誤って削除または変更してしまったデータ自体を復元することができるため、より重要なタスクが処理できるようになります。バックアップ・バージョンは、バックアップ作成時の読み取り / 書き込みソースの状態を取り込み、その内容を変更することはできません。バックアップ作成時の状態にファイルを復元することができるように、ファイル・スペースにバックアップ・バージョンを取り付けます。詳細は、ユーザーが使用可能なバックアップ・ボリュームを参照してください。

### 複数のボリュームを同時にバックアップする

vos backupsys コマンドにより、多数の読み取り / 書き込みボリュームのバックアップ・バージョンが一度に作成できます。このコマンドは、 AFS バックアップ・システムを使用してテープに記録する大規模なバックアップを準備する場合に役立ちます。

VLDB にリストされた読み取り / 書き込みボリュームを複製するには、すべてのコマンド・オプションを省略してください。また、さまざまなグループのボリュームを複製するには、コマンド・オプションを結合してください。オプションでは、ボリュームを選択するために 2 つある基本的基準のうちの 1 つを使用します。つまり、ロケーション (-server および -partition引き数)、または指定文字ストリングのセットのうちの 1 つの指定文字ストリングによるボリューム名の表示 (-prefix、-exclude、および -xprefix オプション)です。

1 つのファイル・サーバー・マシン上にあるボリュームのみを複製するには、-server 引き数を組み込みます。1 つのパーティション上にあるボリュームのみを複製するには、-server および -partition 引き数を組み合わせます。また、-partition 引き数だけを使用して、すべてのファイル・サーバー・マシン上の指示されたパーティションに常駐するボリュームを複製することもできます。これらの引き数は、名前に基づいてボリュームを選択する引き数と結合することができます。

名前に含まれる文字ストリングに基づいてボリュームを選択するには、以下に指示する方法で -prefix、 -exclude、および -xprefix の各オプション (-server および -partition 引き数を使用または不使用) を結合します。

- 指定した文字ストリング (user. で始まる、または afs を含むなど)のセットのうちの 1 つが名前に含まれているすべての読み取り / 書き込みボリュームを指定ロケーションで複製する場合は、-prefix 引き数を使用、または -xprefix および -excludeオプションを結合します。
- 指定した文字ストリングのセットのうちの 1 つが名前に含まれていないすべての読み取り / 書き込みボリュームを指定ロケーションで複製するには、 -xprefix 引き数を使用、または -prefix および -exclude オプションを結合します。
- 指定した文字ストリングのセットの 1 つが名前に含まれ、指定した文字ストリングとは異なるセットの 1 つが名前に含まれていないすべての読み取り / 書き込みボリュームを、指定した位置において複製するには、 -prefix および -xprefix 引き数を結合します。このコマンドにより、-prefix 引き数に一致するすべてのボリュームのリストが作成され、そのリストから -xprefix 引き数に一致するボリュームが取り除かれます。効果的な結果を得るには、-xprefix 引き数によって指定されるストリングが、 -prefix 引き数によって指定されるボリュームのサブセットを指定する必要があります。

  -exclude フラグが -prefix および -xprefix 引き数と結合する場合、コマンドは、-prefix 引き数と一致しないすべてのボリュームのリストを作成し、そのリストに -xprefix 引き数と一致するすべてのボリュームを追加します。 -exclude フラグが使用されていない場合、結果は、 -xprefix 引き数によって指定されるストリングが、 -prefix 引き数によって指定されるボリュームのサブセットを指定している場合にのみ有効です。

-prefix および -xprefix の引き数は両方とも、複数の値を受け入れます。これらの値は、互いに共通元を持たないボリュームのグループを定義するために使用できます。それぞれの値は、以下の 2 つのタイプのうちのいずれかです。

1. 簡単な文字ストリング。ストリングで始まる名前を持つボリュームと突き合わせます。すべての文字は、文字どおり解釈されます (つまり、ピリオドなど、コマンド・シェルへの特別な意味を持つ可能性のある文字は、文字どおりの意味しか持ちません）。
2. 正規の式。式を含む名前を持つボリュームと突き合わせます。式の先頭に脱字記号 ( ^ ) を置き、単一引用符 (' ') でストリング全体を囲みます。正規の式についての説明は、この解説ページの範囲外です。 UNIX 解説書ページの regexp(5) または (簡単な説明の場合は) ボリューム・セットおよびボリューム項目の定義および表示 を参照してください。たとえば、以下の式は、名前に aix を含むストリングを持つボリュームを見つける場合の例です。

          -prefix  '^.*aix'

実際には複製を行わずに、複製するボリュームのリストを表示するには、 -dryrun フラグを組み込みます。ボリューム選択の際に使用されている基準の要約文を表示するには、 -verbose フラグを組み込みます。

単一のボリュームをバックアップするには、単一のボリュームを検索するためにさらに高い能率の技法を用いる vos backupコマンドを使用します。

### バックアップ・ボリュームを自動的に作成する

ほとんどのセルにとって、関連ボリュームの新規のバックアップ・バージョンを毎日作成することが最適の方法です。バックアップ・バージョンの作成には、使用頻度が少ないときが最適です。これは、バックアップ操作によって、読み取り / 書き込みボリュームが一時的に使用不可になるためです。

必要な vos backupsys または vos backup コマンドをコンソールで発行するか、ファイル・サーバー上の BosConfig ファイルに cron 項目を作成することができます。これによって、管理者はバックアップ操作を開始する必要がなくなります。

次のコマンド例では、 backupusers というcron プロセスを、 fs3.example.com マシン上の /usr/afs/local/BosConfig ファイルに作成します。このプロセスは、毎日午前 1 時に実行され、 user というストリングで始まる名前が付いたセルに、すべてのボリュームのバックアップ・バージョンが作成されます。 -localauth フラグによって、未認証でもプロセスは特権の vos backupsys コマンドを呼び出すことができます。 -cmd 引き数には、 vos バイナリー用の完全なパス名を指定することに注意してください。これは、BOS サーバー (ローカルなスーパーユーザー root として稼働) の PATH 環境変数に、通常 AFS バイナリーへのパスが含まれないためです。

       % bos  create fs3.example.com backupusers cron  \
         -cmd "/usr/afs/bin/vos backupsys  -prefix user -localauth" "1:00"

### ユーザーが使用可能なバックアップ・ボリューム

既述のとおり、バックアップ・ボリュームは、その作成時における読み取り / 書き込みソースの状態を保存します。多くのセルはバックアップ・ボリュームの取り付けを選択します。これによって、管理者からヘルプを要求しなくても、最終バックアップを作成してから誤って削除または変更したデータにもアクセスでき、それを復元することができます。ユーザー・ボリュームのバックアップ・バージョンを取り付ける最も正しい位置は、ユーザーのホーム・ディレクトリーのサブディレクトリーです。このディレクトリーに対する適切な名前は、OldFiles および Backup などです。サブディレクトリーは、バックアップが作成された時点で、同じ相対的位置にすべてのファイルおよびサブディレクトリーを持つユーザーのホーム・ディレクトリーのように見えます。

ユーザーのバックアップ・ボリュームを作成して取り付ける場合、その存在をユーザーに知らせます。バックアップ・ボリュームを使用可能にするかどうかはオプションであるため、 AFS 使用者の手引き では、バックアップ・ボリュームについて記載していません。新規のバックアップを作成する頻度をユーザーに説明して、回復できる範囲が分かるようにします。また、バックアップ・ボリュームのデータが変更できないことについても念を押しておく必要があります。ただし、標準 UNIX cp コマンドを使用してデータをホーム・ボリュームにコピーして、そこで変更することは可能です。また、バックアップ・ボリュームのデータが、読み取り / 書き込みボリューム割り当て量に不利に作用したりしないことを、ユーザーに再度確認します。

### バックアップ・ボリュームの作成および取り付け

1. ユーザーが、/usr/afs/etc/UserList ファイルにリストされているかどうかを検証します。必要な場合には、bos listusers コマンドを発行します。このコマンドについては、UserList ファイルのユーザーの表示で詳しく説明しています。

          % bos listusers <machine name>

2. ボリュームを取り付けるディレクトリーの ACL 上に 挿入 (i) および 管理 (a) アクセス権があることを検証します。必要に応じて、fs listacl コマンドを発行します。これについては、ACL の表示 で詳しく説明しています。

          % fs listacl [<dir/file path>]

   system:administrators グループのメンバーは、a (管理)、および、デフォルトで l (検索) アクセス権を、常にすべての ACL に暗黙的に持っています。また、必要に応じて fs setacl コマンドを使用して、他の権限を付与することができます。

3. vos backup コマンドを発行して、読み取り / 書き込みボリュームのバックアップ・バージョンを作成します。表示されるメッセージが、バックアップ操作の成功を確認します。

          % vos backup <volume name or ID>
          Created backup volume for volume name or ID

   ここで、

   backup
     完全な形式で入力する必要があります。

   volume name or ID
     バックアップする読み取り / 書き込みボリュームを、その完全名またはボリューム ID 番号によって識別します。バックアップ・ボリュームは、同じ名前に .backup 拡張子を付けたものです。これには、独自のボリューム ID番号が付いています。
4. (オプション) fs mkmountコマンドを発行して、バックアップ・ボリュームを取り付けます。このステップはオプションであり、ボリュームが取り付けられていない場合には、キャッシュ・マネージャーはボリュームの内容にアクセスできません。

          % fs mkmount <directory> <volume name>.backup

   ここで、

   mk
     は、mkmount の受け入れ可能な省略形です。

   directory
     作成するマウント・ポイントを指定します。前もって同じ名前のファイルまたはディレクトリーを作成してはなりません。パス名の一部は、現行作業ディレクトリーとの関連で解釈されます。ユーザー・ボリュームのバックアップ・バージョンを取り付ける位置は、通常、ユーザーのホーム・ディレクトリーです。

   volume name.backup
     バックアップ・ボリュームのフルネームです。
5. (オプション) fs lsmount コマンドを発行して、マウント・ポイントが正しいボリュームを参照しているか検証します。詳細な説明が マウント・ポイントの表示方法 に示されています。

          % fs lsmount <directory>

### 複数のバックアップ・ボリュームの同時作成

1. ユーザーが、/usr/afs/etc/UserList ファイルにリストされているかどうかを検証します。必要な場合には、bos listusers コマンドを発行します。このコマンドについては、UserList ファイルのユーザーの表示で詳しく説明しています。

          % bos listusers <machine name>

2. vos backupsys コマンドを発行して、同じ接頭部またはサイトを共用するすべての読み取り / 書き込みボリュームのバックアップ・バージョンを作成します。 3 つの引き数を結合した場合の影響については、複数のボリュームを同時にバックアップするで説明しています。

          % vos backupsys [-prefix < common prefix on volume(s)>+]   \
               [-server <machine name>] [-partition <partition name>]  \
               [-exclude]   [-xprefix < negative prefix on volume(s)>+]
               [-dryrun]  [-verbose]

   ここで、

   backups
     は、backupsys の受け入れ可能な省略形です。

   -prefix
     任意の長さの 1 つまたは複数の簡単な文字ストリングまたは正規式を指定します。名前にストリングが含まれるボリュームは、複製するボリュームのリストに配置されます。適切な場合は、フィールド区切り記号 (ピリオドなど) を含めます。この引き数は、-server、-partition、-exclude、および -xprefix オプションの組み合わせと結合することができます。

   -server
     バックアップするボリュームを格納するファイル・サーバー・マシンを指定します。この引き数は、-prefix、-partition、 -exclude、および -xprefix オプションの組み合わせと結合することができます。

   -partition
     バックアップするボリュームを格納するパーティションを指定します。この引き数は、-prefix、-server、 -exclude、および -xprefix オプションの組み合わせと結合することができます。

   -exclude
     -prefix 引き数によって示されるボリュームを除くすべてのボリュームがバックアップされることを示します。 -prefix 引き数は、これとともに使用する必要があります。これは、-prefix、-server、および -partition の引き数の組み合わせと結合、または、 -prefix および -xprefix の引き数両方と結合することができますが、 -xprefix 引き数だけと結合することはできません。

   -xprefix
     任意の長さの 1 つまたは複数の簡単な文字ストリングまたは正規式を指定します。名前にストリングが含まれないボリュームは、複製するボリュームのリストに配置されます。これは、-prefix、-server、および -partition の引き数の組み合わせと結合できます。さらに、-prefix および -exclude のオプションとも結合できますが、 -exclude フラグのみとは結合できません。

   -dryrun
     実際には複製を行わずに、複製されるボリュームのリストを標準出力ストリーム上に表示します。

   -verbose
     -dryrun フラグと結合すると、標準出力ストリーム上に、ボリューム選択の際に使用される基準を要約した文を表示します。 -dryrun フラグと結合しない場合は、各ボリュームの複製操作をトレースします。

## ボリュームの取り付け

ボリュームの取り付けについて で説明するとおり、マウント・ポイントによって、 AFS ファイル・スペース内で AFS ボリュームの内容が見え、アクセス可能になります。このセクションでは、キャッシュ・マネージャーがファイル・スペースを横断するときのマウント・ポイントの取扱方法について詳しく説明します。このセクションには、3 つのタイプのマウント・ポイントについての説明、それらの目的と識別方法、およびマウント・ポイントの作成、除去、検査に関する指示が含まれています。

### マウント・ポイント横断の規則

キャッシュ・マネージャーは、次の 3 つの基本規則を守りながら AFS ファイル・スペースを走査し、マウント・ポイントに遭遇します。

- 規則 1: 指定されている場合はバックアップおよび読み取り専用ボリュームにアクセスする

  キャッシュ・マネージャーは、.readonly または .backup 拡張子が付いたボリュームを指定するマウント・ポイントに出会うと、そのタイプのボリュームにのみアクセスします。マウント・ポイントに .backup または .readonly 拡張子が付いている場合、キャッシュ・マネージャーは規則 2 および 3 を使用します。

  たとえば、マウント・ポイントがバックアップ・バージョンを指定している場合は、キャッシュ・マネージャーは読み取り / 書き込みバージョンにアクセスすることはありません。指定されたバージョンがアクセス不能の場合、キャッシュ・マネージャーはエラーを報告します。

- 規則 2: 可能であれば読み取り専用パスをたどる。

  マウント・ポイントが読み取り専用ボリュームに常駐し、そのマウント・ポイントが参照するボリュームが複写されている場合、キャッシュ・マネージャーはそのボリュームの読み取り専用コピーにアクセスしようとします。参照されたボリュームが複写されていない場合は、キャッシュ・マネージャーは読み取り / 書き込みコピーにアクセスします。したがってキャッシュ・マネージャーは、ファイル・スペースでは読み取り専用パス を優先するといわれ、読み取り専用ボリュームが使用可能であれば、それにアクセスします。

  キャッシュ・マネージャーはまず最初に読み取り専用パスからスタートします。それは、キャッシュ・マネージャーは常に root.afs ボリュームの読み取り専用のコピーが存在する場合はそれにアクセスするからです。このボリュームはセルの AFS ファイル・スペースのルート (通例 /afs という名前) に取り付けられます。すなわち、root.afs ボリュームが複写されていると、キャッシュ・マネージャーは、読み取り / 書き込みコピーではなく、読み取り専用コピーにアクセスしようとします。したがって、この規則は、各ボリュームが続けて複写される限り、キャッシュ・マネージャーを読み取り専用パスに保持します。これが言外に意味するところは、root.afs および root.cell ボリュームは、AFS ファイル・スペースのそれらのボリュームの下にマウントされた複写されたボリュームにキャッシュ・マネージャーがアクセスするためには、複写されなければならないということです。ボリュームは /afs および /afs/cellname ディレクトリーにそれぞれマウントされるのが通例です。

- 規則 3: 一度読み取り / 書き込みパス上にくれば、そこに留まる。

  マウント・ポイントが読み取り / 書き込みボリュームに常駐し、ボリューム名が .readonly または .backup 拡張子を持っていない場合、キャッシュ・マネージャーは、そのボリュームの読み取り / 書き込みバージョンだけにアクセスしようとします。読み取り / 書き込みバージョンがアクセス不可の場合、読み取り専用バージョンがたとえアクセス可能であっても、そのアクセス試行は失敗し、エラーが発生します。このような状態の場合、キャッシュ・マネージャーは読み取り / 書き込みパス上にいるといわれ、マウント・ポイントが明示的に .readonly 拡張子を持つボリュームを指定しない限り、読み取り専用パスに切り換わることはできません。 (セルラー・マウント・ポイントは、この規則の重要な例外です。これについては以下で説明します。)

### 3 つのタイプのマウント・ポイント

AFS は、キャッシュ・マネージャーのマウント・ポイントの取扱方法に応じて、目的別に適切な 3 つのタイプマウント・ポイントを使用します。

- キャッシュ・マネージャーが正規マウント・ポイントと交差する場合、キャッシュ・マネージャーは既述の 3 つのマウント・ポイント規則のすべてに従います。

  AFS は、ファイル・スペース内のマウント・ポイントの大部分が正規である場合に、最大の力を発揮します。これは、マウント・ポイント横断規則によって、複写および非複写のボリューム双方が最大限に使用されるためです。 1 つの複写ボリュームに複数の読み取り専用コピーが存在する可能性があるため、キャッシュ・マネージャーが単一の読み取り / 書き込みバージョンよりも読み取り専用コピーの 1 つにアクセスすることは意味がとおります。そして、第 2 の規則でこれを実行します。ボリュームが複写されておらず、使用可能なタイプが読み取り / 書き込みボリュームただ 1 つである場合は、第 3 の規則により、キャッシュ・マネージャーはそのボリュームにアクセスします。言い換えると、正規マウント・ポイントは、キャッシュ・マネージャーに、読み取り専用ボリュームにアクセスするようにいつも強制するわけではありません (これは明示的に「読み取り専用マウント・ポイント」ではありません)。

  正規マウント・ポイントを作成するには、 正規または読み取り / 書き込みの各マウント・ポイントの作成 の説明に従って、 fs mkmount コマンドを使用してください。

  注: | 正規マウント・ポイントが指名する複写ボリュームの読み取り専用バージョンに、キャッシュ・マネージャーがアクセスできるようにするためには、パス名でそのポイントより上に取り付けられるすべてのボリュームも複写されていなければなりません。これは、キャッシュ・マネージャーが、ターゲットのボリュームへの読み取り専用パス上に残ることができる唯一の方法です。

- キャッシュ・マネージャーが 読み取り / 書き込みマウント・ポイントと交差する場合、そのマウント・ポイントで指名されたボリューム・バージョンのみにアクセスしようと試みます。ボリューム名が、 .readonly または .backup 拡張子を持たない基本 (読み取り / 書き込み) 形式である場合、キャッシュ・マネージャーは、ボリュームの読み取り / 書き込みバージョンが複写されていてもそれにアクセスします。言い換えれば、キャッシュ・マネージャーは読み取り / 書き込みマウント・ポイントと交差する場合は、第 2 のマウント・ポイント横断規則を無視し、ファイル・スペースを通じて読み取り / 書き込みパスへ切り替えます。

  規則として、セルのファイル・スペースごとにただ 1 つの読み取り / 書き込みマウント・ポイントを作成します。このマウント・ポイントを使用して、 AFS ファイル・スペースのルート (規則では /afs/.cellname) のすぐ下に、そのセルの root.cell ボリュームを取り付けます。示されるとおり、読み取り / 書き込みマウント・ポイント名の先頭にピリオドを付けることが規則です (たとえば、/afs/.example.com)。ピリオドによって、読み取り / 書き込みマウント・ポイントを、同じレベルにある root.cell ボリューム用の正規マウント・ポイントと区別します。これは、同じボリューム用に 2 つのマウント・ポイントを作成するのが規則である唯一の場合です。読み取り / 書き込みマウント・ポイント用のこの命名規則の望ましい副次作用は、 -a フラグが含まれていない場合には UNIX ls コマンドの出力内に表示されず、これを必要としない正規ユーザーから本質的に隠すということです。

  ファイル・スペースでのこのポイントに単一の読み取り / 書き込みマウント・ポイントが存在することによって、必要な場合にはすべてのボリュームの読み取り / 書き込みバージョンへのアクセスが提供されます。これは、そのマウント・ポイントがキャッシュ・マネージャーをファイル・スペース上部の読み取り / 書き込みパス上に置くためです。同様に、root.cell ボリュームの正規マウント・ポイントは、大抵の時間キャッシュ・マネージャーを読み取り専用パス上に置きます。

  読み取り専用またはバックアップのボリューム用に読み取り / 書き込みマウント・ポイントを使用することは受け入れられますが、必要ではありません。マウント・ポイント横断規則の第 1 の規則では、正規のマウント・ポイント内のボリューム名に .readonly または .backup 拡張子が付く場合は、キャッシュ・マネージャーはそれらにアクセスするように指定されています。

  読み取り / 書き込みマウント・ポイントを作成するには、正規または読み取り / 書き込みの各マウント・ポイントの作成で説明する fs mkmount コマンド上で -rw フラグを使用します。

- キャッシュ・マネージャーが セルラー・マウント・ポイントと交差する場合、指定されたセル内に示されるボリュームにアクセスします。このセルは通常は外部セルです。 (マウント・ポイントがボリュームとともにセルを指定しない場合、キャッシュ・マネージャーは、マウント・ポイントが常駐するセル内のボリュームにアクセスします。) 正規のセルラー・マウント・ポイントと交差すると、キャッシュ・マネージャーはマウント・ポイント横断規則の第 3 の規則を無視します。つまり、マウント・ポイントを収容するボリュームが読み取り / 書き込みボリュームであっても、ボリュームの読み取り専用バージョンが複写されていればそれにアクセスします。

  この振る舞いを回避するために、読み取り / 書き込みセルラー・マウント・ポイントを作成することは適切でありません。これは、読み取り / 書き込みパスを横断すると外部セルのファイル・サーバー・マシン上に不公平なロードがかかるためです。つまり、ファイル・サーバーは、読み取り専用ボリュームに必要となる単一のコールバックではなく、読み取り / 書き込みボリュームから取り出したファイルごとにコールバックを発行する必要があります。どのような場合でも、通常、セルの固有の管理者だけが複写ボリュームの読み取り / 書き込みバージョンにアクセスする必要があります。

  規則として、セルのファイル・スペース内の第 2 レベルのみにおいてセルラー・マウント・ポイントを作成し、そのマウント・ポイントを使用して、 AFS ファイル・スペース・ルートのすぐ下 (規則では /afs/foreign_cellname) の外部セルの root.cell ボリュームを取り付けます。ボリュームのルート・ディレクトリーの ACL 上に必要なアクセス権がユーザーにあり、ローカルのクライアント・マシンの /usr/vice/etc/CellServDB ファイルごとに外部セルの入り口が 1 つあると想定すると、ローカル・ユーザーは、マウント・ポイントを使用して、外部セルのファイル・スペースにアクセスすることができます。これについての詳細は、データベース・サーバー・マシンの情報を保持する を参照してください。

  セルラー・マウント・ポイントをファイル・スペース内のほかのレベルで作成し、 root.cell ボリューム以外の外部ボリュームを取り付けることは通常適切ではありません。キャッシュ・マネージャーが 1 つのパス名でさまざまなポイントにおいてセルからセルへ切り替えると、ユーザーに混乱をきたす可能性があります。

  正規のセルラー・マウント・ポイントを作成するには、 -cell 引き数を使用してセル名を指定します。詳細は、セルラー・マウント・ポイントを作成する方法 を参照してください。

マウント・ポイントを検査するには、マウント・ポイントの表示方法 で説明する fs lsmount コマンドを使用します。コマンドの出力では、正規、読み取り / 書き込み、およびセルラー・マウント・ポイントを識別するために独特な表記を使用します。マウント・ポイントを削除するには、 マウント・ポイントを除去する方法 で説明する fs rmmount コマンドを使用します。

### 外部セルでのマウント・ポイントの作成

マウント・ポイントを外部セルのファイル・スペースに作成する (外部ボリュームをローカル・セルに取り付けるのと反対) には、基本的にマウント・ポイントをローカル・ファイル・スペースに作成する場合と同じ方法を使用します。これらの違いは、 fs mkmount コマンドの directory 引き数がローカル・セルではなく外部セル内のパス名を指定すること、および、マウント・ポイントを作成する場所である外部ディレクトリーの ACL 上に必要なアクセス権がなければならないということです。 fs mkmount コマンドの -cell 引き数は、マウント・ポイントを作成するためのセルではなく、ボリュームが常駐するセルを常に指定します。

### マウント・ポイントの表示方法

1. fs lsmount コマンドを発行します。

          % fs lsmount <directory>

   ここで、

   ls
     は、lsmount の受け入れ可能な省略形です。

   directory
     表示させるマウント・ポイントを指定します。

指定したディレクトリーがマウント・ポイントである場合は、以下の形式で出力されます。

       'directory' is a mount point for volume 'volume name'

正規マウント・ポイントの場合は、以下のコマンド例のように、 volume name ストリングの前に番号記号 (`#`) が表示されます。以下は、example.com セル内のクライアント・マシン上で発行されたコマンド例です。

       % fs lsmount /afs/example.com/usr/terry
       '/afs/example.com/usr/terry' is a mount point for volume '#user.terry'

読み取り / 書き込みマウント・ポイントの場合は、以下のコマンド例のように、 volume name ストリングの前にパーセント記号 (`%`) が表示されます。以下は、example.com セル内のクライアント・マシン上で発行されたコマンド例です。セルの管理者は、読み取り / 書き込みマウント・ポイント名の前にピリオドを置く規則に従っています。

       % fs lsmount /afs/.example.com
       '/afs/.example.com' is a mount point for volume '%root.cell'

セルラー・マウント・ポイントの場合は、セル名およびコロン (`:`) が、番号記号またはパーセント記号の後、かつ、 volume name ストリングの前に置かれます。以下は、 example.com セル内のクライアント・マシン上で発行されたコマンド例です。

        % fs lsmount /afs/example.org
       '/afs/example.org' is a mount point for volume '#example.org:root.cell'

マウント・ポイントへつながる記号リンクの場合、 example.com セル内のクライアント・マシン上で発行された以下のコマンド例で示される形式で出力されます。

       % fs lsmount /afs/example
       '/afs/example' is a symbolic link, leading to a mount point for volume '#root.cell'

ディレクトリーがマウント・ポイントではない、または AFS にない場合、その出力は以下のようになります。

       'directory' is not a mount point.

出力が混同している場合は、マウント・ポイントがローカル・キャッシュ内で破壊された可能性があります。 1 つ以上のマウント・ポイントをフラッシュする を参照して、 fs flushmount コマンドを使用してください。これによって、キャッシュ・マネージャーはマウント・ポイントを再び取って来るよう強制されます。

### 正規または読み取り / 書き込みの各マウント・ポイントの作成

1. マウント・ポイントを配置するディレクトリーの ACL 上に i (挿入) および a (管理)アクセス権があることを検査します。必要に応じて、fs listacl コマンドを発行します。これについては、ACL の表示 で詳しく説明しています。

          % fs listacl [<dir/file path>]

2. マウント・ポイントを作成するには、fs mkmountコマンドを発行します。読み取り / 書き込みマウント・ポイントを作成するには、-rwフラグを組み込みます。

          % fs mkmount <directory> <volume name> [-rw]

   ここで、

   mk
     は、mkmount の受け入れ可能な省略形です。

   directory
     作成するマウント・ポイントを指定します。同じ名前のファイルまたはディレクトリーが存在してはいけません。部分的なパス名は、現行作業ディレクトリーに対する相対として解釈されます。

     マウント・ポイントへの読み取り / 書き込みパスを指定します。こうすると、読み取り専用ボリューム内に新規マウント・ポイントを作成しようとする際に生じる障害を回避することができます。規則では、パス名の第 2 レベルでセル名の前にピリオドを置いて、読み取り / 書き込みパスを示します (たとえば、/afs/.example.com)。読み取り / 書き込みパスおよび読み取り専用パスの概念についての詳細は、 マウント・ポイント横断の規則 を参照してください。

   volume name
     バックアップ・ボリュームまたは読取専用ボリューム用の .backup または .readonly の拡張子付きのボリュームの完全名を指定します。

   -rw
     読み取り / 書き込みマウント・ポイントを作成します。

### セルラー・マウント・ポイントを作成する方法

1. マウント・ポイントを配置するディレクトリーの ACL 上に i (挿入) および a (管理)アクセス権があることを検査します。必要に応じて、fs listacl コマンドを発行します。これについては、ACL の表示 で詳しく説明しています。

          % fs listacl [<dir/file path>]

2. ファイル・スペースの第 2 レベルで 1 つまたは複数の外部セルの root.cell ボリュームを取り付ける場合に、ユーザーのセルの root.afs ボリュームが複写されていると、 ACL によってユーザーに i および a のアクセス権が与えられるディレクトリー内に、 root.afs ボリュームの読み取り / 書き込みバージョン用の一時的なマウント・ポイントを作成する必要があります。次のコマンドにより、ユーザーのセルの /afs/.cellname ディレクトリー (ユーザーのセル内の読み取り / 書き込みパスへの入り口地点) に、 new_cells と呼ばれるマウント・ポイントが作成されます。

   cellname に、ユーザーのセル名を代入します。

          % cd /afs/.cellname

          % fs  mkmount  new_cells  root.afs

          % cd  new_cells

3. セルラー・マウント・ポイントを作成するには、-cell 引き数とともに fs mkmount コマンドを使用します。それぞれのセルラー・マウント・ポイントごとにコマンドを繰り返します。

          % fs mkmount <directory> <volume name> -cell <cell name>

   ここで、

   mk
     は、mkmount の受け入れ可能な省略形です。

   directory
     作成するマウント・ポイントを指定します。同じ名前のファイルまたはディレクトリーが存在してはいけません。部分的なパス名は、現行作業ディレクトリーに対する相対として解釈されます。外部セルの root.cell ボリュームを取り付ける場合、この引き数の標準値は、セルの完全なインターネット・ドメイン名です。

   volume name
     ボリュームの完全名を指定します。通常、セルラー・マウント・ポイントには root.cell です。

   -cell
     ボリュームが常駐するセルの完全なインターネット・ドメイン名を指定します。
4. 2 のステップの指示を実行したら、 vos release コマンドを発行して、新規バージョンの root.afs ボリュームをその読み取り専用サイトへリリースします。 (このコマンドは、ユーザーのセルの /usr/afs/etc/UserList ファイルに、ユーザーがリストされていなければなりません。必要な場合には、 bos listusers コマンドを発行して検査します。このコマンドの詳細は、UserList ファイルのユーザーの表示 を参照してください。)

   また、ローカル・キャッシュ・マネージャーに root.afs ボリュームの新規複製へアクセスさせるには、 fs checkvolumes コマンドを発行します。場合に応じて、一時的な new_cells マウント・ポイントを、 /afs/.cellname ディレクトリーから除去することもできます。

          % vos release root.afs

          % fs checkvolumes

          % cd /afs/.cellname

          % fs rmmount new_cells

   新規に取り付けた外部セルに顧客ユーザーがアクセスするには、クライアント・マシンごとのローカルな /usr/vice/etc/CellServDB ファイル内でセル用の項目も作成しなければなりません。そして、マシンをリブートするか、または fs newcell コマンドを使用してその項目を直接そのカーネル・メモリーへ挿入してください。詳細は、データベース・サーバー・マシンの情報を保持する を参照してください。

### マウント・ポイントを除去する方法

1. マウント・ポイントを除去する先のディレクトリーの ACL 上に d (削除) アクセス許可があることを検証します。必要に応じて、fs listacl コマンドを発行します。これについては、ACL の表示 で詳しく説明しています。

          % fs listacl [<dir/file path>]

   system:administrators グループのメンバーは、a (管理)、および、デフォルトで l (検索) アクセス権を、常にすべての ACL に暗黙的に持っています。また、必要に応じて fs setacl コマンドを使用して、他の権限を付与することができます。

2. fs rmmount コマンドを発行し、マウント・ポイントを除去します。ボリュームはまだ存在しますが、これが唯一のマウント・ポイントである場合、その内容はアクセス不能です。

          % fs rmmount <directory>

   ここで、

   rm
     は、rmmount の受け入れ可能な省略形です。

   directory
     削除するマウント・ポイントを指定します。部分的なパス名は、現行作業ディレクトリーに対する相対として解釈されます。

     マウント・ポイントへの読み取り / 書き込みパスを指定します。こうすると、読み取り専用ボリュームからマウント・ポイントを削除しようとする際に生じる障害を回避することができます。規則では、パス名の第 2 レベルでセル名の前にピリオドを置いて、読み取り / 書き込みパスを示します (たとえば、/afs/.example.com)。読み取り / 書き込みパスおよび読み取り専用パスの概念についての詳細は、 マウント・ポイント横断の規則 を参照してください。

## ボリュームについての情報を表示する

このセクションでは、ボリュームについての情報を表示する方法を説明します。ボリューム名またはボリューム ID 番号が分かる場合は、その VLDB 項目またはボリューム・ヘッダー、もしくはその両方を表示させるコマンドがあります。指定したファイルまたはディレクトリーを含むボリュームの名前または位置を表示するには、他のコマンドを使用します。

ボリューム割り当て量を表示させるには、ボリューム割り当て量および現行サイズの設定および表示 の詳細を参照してください。

### VLDB 項目の表示

vos listvldb コマンドは、提供する引き数の組み合わせによって示されたボリュームに対する VLDB 項目を表示します。最も包括的なものから、最も包括的でないものまでを含む可能性をここにリストします。

- VLDB の各項目を表示するには、引き数を提供しません。このプロセスは、項目の数に応じて、出力生成までに非常に長い時間がかかることがあります。
- ボリュームのサイトとして特定のファイル・サーバー・マシンについて言及する各 VLDB 項目を表示するには、 -server が付いたマシン名を指定します。
- ボリュームのサイトとして任意のファイル・サーバー・マシン上の特定のパーティションについて言及する各 VLDB 項目を表示するには、 -partition が付いたパーティション名を指定します。
- ボリュームのサイトとして特定のファイル・サーバー・マシン上の特定のパーティションについて言及する各 VLDB 項目を表示するには、 -server および -partition を結合します。
- 単一の VLDB 項目を表示するには、-name 引き数を使用してボリューム名または ID 番号を指定します。
- ロックされた VLDB 項目を持つボリュームのみに対する VLDB 項目を表示するには、上記で説明した任意のサイト定義によって -locked フラグを使用します。

### VLDB 項目の表示

1. vos listvldb コマンドを発行します。

          % vos listvldb  [-name <volume name or ID>] [-server <machine name>] \
                         [-partition <partition name>] [-locked]

   ここで、

   listvl
     は、listvldb の受け入れ可能な省略形です。

   -name
     1 つのボリュームを、その完全名またはボリューム ID 番号によって識別します。この引き数を -server または -partition 引き数と結合してはいけません。

   -server
     ファイル・サーバー・マシンを指定します。この引き数は、-partition引き数と結合できますが、-name 引き数とは結合できません。

   -partition
     パーティションを指定します。この引き数は、-server 引き数と結合できますが、-name 引き数とは結合できません。

   -locked
     ロックされた VLDB 項目のみを表示します。このフラグを、他の任意のオプションに結合します。

各ボリュームの VLDB 項目には、以下の情報が含まれます。

- 基本 (読み取り / 書き込み) ボリューム名。読み取り専用およびバックアップ・バージョンは、同じ名前にそれぞれ拡張子 .readonly と.backup が付きます。
- 実際に存在するボリュームのバージョンに割り当てられるボリューム ID 番号。読み取り / 書き込みの場合は `RWrite`、読み取り専用の場合は `ROnly`、バックアップの場合は `Backup`、リリース・クローンの場合は `RClone` というラベル名の付いたフィールドに表示されます。 (フィールドが表示されない場合は、そのフィールドに対応するボリュームのバージョンは存在しません。) `RClone` フィールドが表示される場合、通常はリリース処理が正常に完了しなかったことを示しています。また、`Old release` フラグと `New release` フラグが、次に説明するサイト定義の 1 つまたは複数の行に表示されることがあります。
- 読み取り / 書き込みまたは読み取り専用のボリュームのコピーを持つサイト数で、文字列 `number of sites ->` に続いて表示されます。
- 読み取り / 書き込みまたは読み取り専用のボリュームのコピーを持つ各サイト用の行で、ファイル・サーバー・マシン、パーティション、ボリュームのタイプ (読み取り / 書き込みの場合 `RW`、読み取り専用の場合 `RO`) を指定する。バックアップ・バージョンが存在する場合、そのバージョンは読み取り / 書き込みサイトを共有するとみなされます。サイト定義には、次のようないくつかのフラグが表示されることがあります。

  `Not released`
    vos addsite コマンドを使用して読み取り専用サイトを定義して以来 vos release コマンドが発行されていないことを示します。

  `Old release`
    vos release コマンドが正常に完了せず、ボリュームの以前の旧バージョンが該当サイトに残っていることを示します。

  `New release`
    vos release コマンドは正常に完了していないが、該当サイトにボリュームの正しい新規バージョンが作成されたことを示します。
- VLDB 項目がロックされている場合、文字列 `Volume is currently LOCKED` が表示されます。

`New release` および `Old release` フラグの詳細は、ボリュームの複写 (読み取り専用ボリュームの作成) を参照してください。

単一ボリュームに対するこのコマンドおよびその出力の例。

       % vos listvldb user.terry
       user.terry
           RWrite: 50489902    Backup: 50489904
           number of sites -> 1
              server fs3.example.com partition /vicepc RW Site

### ボリューム・ヘッダーの表示

vos listvol コマンドは、ファイル・サーバー・マシン上の 1 つまたはすべてのパーティションにあるすべてのボリュームに対してボリューム・ヘッダーを表示します。 vos コマンド・インタープリターは、指定したマシン上のボリューム・サーバーから情報を入手します。 -fast、-long、または -extended フラグのうちの 1 つを組み込むことによって、表示する情報量を制御することができます。詳細は、以下の ボリューム・ヘッダーの表示 を参照してください。

1 つのボリュームだけの単一ボリュームのボリューム・ヘッダーを表示するには、1 つのボリュームの VLDB 項目およびボリューム・ヘッダーの表示 で説明する vos examineコマンドを使用します。

### ボリューム・ヘッダーの表示

1. vos listvol コマンドを発行します。

          % vos listvol <machine name> [<partition name>] [-fast] [-long] [-extended]

   ここで、

   listvo
     は、listvol の受け入れ可能な省略形です。

   machine name
     ボリューム・ヘッダーを表示するファイル・サーバー・マシンの名前です。この引き数を単独または パーティション名引き数付きで提供します。

   partition name
     この名前とともに提供する必要がある machine name 引き数が命名する、ファイル・サーバー・マシン上の 1 つのパーティションの名前です。

   -fast
     関係のあるボリュームのボリューム ID 番号のみを表示します。このフラグを -long または -extended フラグと結合しないでください。

   -long
     各ボリュームについての詳細を表示します。このフラグを -fast または -extended フラグと結合しないでください。

   -extended
     -long フラグによって示されるすべての情報に加えて、ボリュームのファイルの読み取り、書き込みに関する統計のテーブルを表示します。このフラグと-fast または -long フラグを結合しないでください。

出力はボリューム名のアルファベット順に表示され、デフォルトで、以下の情報がボリュームごとに単一行に示されます。

- 名前
- ボリューム ID 番号
- タイプ (読み取り / 書き込みは `RW`、読み取り専用は `RO`、バックアップは `BK`)
- K バイト単位のサイズ (`1024` は １ M バイト)
- -extended フラグが提供される場合は、ボリューム内のファイル数
- ファイル・サーバー・マシンの状況。以下のいずれかを表します。

  `On-line`
    ボリュームは、キャッシュ・マネージャーへ完全にアクセス可能です。

  `Off-line`
    ボリュームはキャッシュ・マネージャーへアクセスできませんが、破壊されてはいないようです。この状況は、ボリュームがダンプされている場合などに表示されます。

  `Off-line**needs salvage**`
    ボリュームが破壊されているようなので、キャッシュ・マネージャーへアクセスできません。この破壊を修理するためには、bos salvageコマンドまたは salvager コマンドを使用してください。

直前にリストした情報ではなく以下のようなメッセージが表示される場合は、複製が作成中であるなどの理由で、ボリュームは、キャッシュ・マネージャーまたは vos コマンド・インタープリターにアクセスできません。

       **** Volume volume_ID is busy ****

直前にリストした情報ではなく以下のようなメッセージが表示される場合は、ボリュームがひどく破壊されているなどの理由で、ファイル・サーバーはボリュームに接続することができません。ファイル・サーバー・マシンの /usr/afs/logs ディレクトリーの、 FileLog および VolserLog の各ログ・ファイルに追加情報がある場合があります。表示するには、bos getlog コマンドを使用します。

       **** Could not attach volume volume_ID ****

(破壊ボリュームまたは未連結ボリュームをサルベージするための詳細は、 ボリュームのサルベージ を参照してください。)

固有ボリュームの情報は、要約行で一括されます。出力の最初の行では、リスト内にあるボリューム数を指定します。出力の最終行では、オンライン、オフライン、および使用中のボリューム数の一覧を表示します。これは、以下のように表示されます。

       % vos listvol  fs2.example.com /vicepb
       Total number of volumes on server fs2.example.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

-fast フラグでの出力

-fast フラグを組み込むと、以下のように昇順に各ボリュームのボリューム ID 番号のみが表示されます。最終行 (オンライン、オフライン、および使用中ボリュームの一覧) は省略されます。

       % vos listvol fs3.example.com /vicepa -f
       Total number of volumes on server fs3.example.com  \
                                           partition /vicepa: 37
       50489902
       50489904
          .
          .
       35970325
       49732810

-long フラグでの出力

-long フラグを組み込むと、各ボリュームの出力には、デフォルトのリスト表示のすべての情報以外に以下の情報も含まれます。このリストの各アイテムは、別々の行に出力されます。

- ボリュームを収容するファイル・サーバー・マシンおよびパーティション。これは、VLDB またはボリューム・ヘッダーからではなく、コマンドを実行する際にコマンド・インタープリターによって決定されます。
- さまざまなバージョンのボリュームに関連付けられたボリューム ID 番号: 読み取り / 書き込み (`RWrite`)、読み取り専用 (`ROnly`)、バックアップ (`Backup`)、ReleaseClone (`RClone`)。そのうちの 1 つは、ボリューム出力の最初の行に表示されるボリューム ID 番号と一致します。 `RWrite`、`ROnly`、または `Backup` の各フィールド内の値が、`0` (ゼロ)である場合は、そのタイプのボリュームはありません。現在 ReleaseClone がない場合は、`RClone` フィールド自体が表示されません。
- ボリュームの読み取り / 書き込み用に割り当てられた最大スペース割り当て量。`MaxQuota` フィールドに K バイト単位で示されます。
- ボリュームを作成した日時。`Creation`フィールドに示されます。ボリュームが backup diskrestore、 backup volrestore、または vos restore コマンドによって復元されている場合、これは復元時間です
- ボリューム内容が最後に変更された日時。`Last Update`フィールドに示されます。読み取り専用およびバックアップ・ボリュームのボリュームの場合は、 `Creation`フィールドのタイム・スタンプと一致します。
- 次の 2 回のアクセスのあとで、取り出し操作または保管操作のためにボリュームがアクセスされた回数
  - コマンドが発行された日の 12:00 a.m.。
  - ボリュームの位置が最後に変更された時刻。

-long フラグが組み込まれた場合の出力例です。

       % vos listvol fs2.example.com b -long
       Total number of volumes on server fs2.example.com
                                           partition /vicepb: 66
             .                   .      .         .   .    .
             .                   .      .         .   .    .
       user.pat             1969534536 RW      17518 K On-line
            fs2.example.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.example.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

-extended フラグでの出力

-extended フラグを組み込むと、各ボリュームの出力には、 -long フラグで報告されたすべての情報に加えて、以下の 2 つの統計表も含まれます。

- `Raw Read/Write Stats` とラベルの付いた表には、読み取りまたは書き込みのためにボリュームがこれまでにアクセスされた回数が示されています。
- `Writes Affecting Authorship` とラベルの付いた表には、指定のボリュームのファイルおよびディレクトリーへの書き込みに関する情報が含まれています。

次は、-extended フラグが組み込まれた場合の出力例です。

       % vos listvol fs3.example.com a -extended
       common.bboards   1969535592 RW    23149 K used 9401 files On-line
           fs3.example.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 |
       > 1wk     |        0 |        0 |        0 |        0 |
                 |-------------------------------------------|

### 1 つのボリュームの VLDB 項目およびボリューム・ヘッダーの表示

vos examine コマンドは、単一ボリュームに対する VLDB およびボリューム・ヘッダーの両方から情報を表示します。 VLDB およびボリューム・ヘッダーを比較できるようにする 2 つのソースからの情報には冗長度があります。

ボリュームのバージョン (読み取り / 書き込み、読み取り専用、およびバックアップ) ごとにボリューム・ヘッダーが異なるため、どれを表示するかを指定することができます。 volume name or ID 引き数に、適切に .readonly または .backup 拡張子を組み込みます。 VLDB からの情報は、3 つのどのバージョンでも同じです。

### 1 つのボリュームの VLDB 項目およびボリューム・ヘッダーの表示

1. vos examine コマンドを発行します。

          % vos examine <volume name or ID>

   ここで、

   e
     examine の最も短い受け入れ可能な省略形です。

   volume name or ID
     1 つのボリュームを、その完全名またはボリューム ID 番号によって識別します。そのタイプは、読み取り / 書き込み、読み取り専用、またはバックアップです。適切な場合、.backup または .readonly 拡張子を使用します。

出力リストのトップ部分は、 -long フラグを使用して vos listvol コマンドを発行するときと同じボリューム・ヘッダーからの情報を表示します。このコマンドについての詳細は、ボリューム・ヘッダーの表示 を参照してください。ボリュームの読み取り専用バージョンを指定し、それが複数のサイトで存在する場合、その出力にはそれらのすべてが含まれます。出力のボトム部分は、 vos listvldb コマンドを発行するときと同じ VLDB からの情報をリストします。このコマンドの詳細については、VLDB 項目の表示 を参照してください。

次は、VLDB 項目がロック状態になっているボリュームの例です。

       % vos examine user.terry
       user.terry                    536870981 RW   3459 K On-line
           fs3.example.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 -> 1
              server fs3.example.com partition /vicepa RW Site
           Volume is currently LOCKED

### ファイルを含むボリューム名またはボリューム位置の表示

このセクションでは、ファイルやディレクトリーを含むボリュームの名前、ボリューム ID 番号、またはボリュームの位置を入手する方法について説明します。

また、ボリュームに関する 1 つの情報 (名前など) を使用して、そのボリュームのその他の情報 (位置など) を入手することもできます。以下に、関連情報をリストします。

- ボリューム名を使用して、すべての既存バージョンのボリューム ID 番号を入手するには、 1 つのボリュームの VLDB 項目およびボリューム・ヘッダーの表示 で説明する vos examine コマンドを使用します。

  ID 番号を提供してボリューム名を入手するコマンドを使用することもできます。

- ボリューム名または ID 番号を使用してその位置を入手するには、 VLDB 項目の表示 で説明する vos listvldb コマンドを使用します。

#### ファイルを含むボリューム名の表示

1. fs listquota コマンドを発行します。

          % fs listquota [<dir/file path>]

   ここで、

   lq
     listquota の受け入れ可能な別名です ( listqは受け入れ可能な最も短い省略形です)。

   dir/file path
     名前が表示されるボリューム内に収容されたディレクトリーまたはファイルの名前です。パス名の一部は、現行作業ディレクトリーとの関連で解釈されます。これは、この引き数を省略する場合のデフォルトです。

次は、出力の例です。

       % fs listquota /afs/example.com/usr/terry
       Volume Name     Quota    Used    % Used   Partition
       user.terry      15000    5071       34%         86%

#### ファイルを含むボリュームの ID 番号の表示

1. fs examine コマンドの発行

          % fs examine [<dir/file path>]

   ここで、

   exa
     examine の最も短い受け入れ可能な省略形です。

   dir/file path
     ボリューム ID を表示するボリューム内に収容されたディレクトリーまたはファイルの名前です。パス名の一部は、現行作業ディレクトリーとの関連で解釈されます。これは、この引き数を省略する場合のデフォルトです。

以下の例に、 `vid` フィールドにボリューム ID 番号が出力される形式を図示します。

       % fs examine /afs/example.com/usr/terry
       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

注: | このコマンドの出力に含まれる区画関連の統計は、標準 UNIX の df コマンドの出力に含まれる対応する値と常に一致するとは限りません。キャッシュ・マネージャーは 5 分間隔でファイル・マネージャーをポーリングして区画情報を得るので、このコマンドによって報告される統計は 5 分前のものである可能性があります。また、オペレーティング・システムによっては、df コマンドの区画サイズ報告には、このコマンドによる計算には含まれない予約済みのスペースが含まれるので、約 10% 大きくなることがあります。

#### ファイルを含むボリューム位置の表示

1. fs whereis コマンドを発行して、ファイルまたはディレクトリーを含むボリュームを収容するファイル・サーバー・マシン名を表示します。

          % fs whereis [<dir/file path>]

   ここで、

   whe
     は、whereis の受け入れ可能な省略形です。

   dir/file path
     位置を報告するディレクトリーまたはファイルの名前です。パス名の一部は、現行作業ディレクトリーとの関連で解釈されます。これは、この引き数を省略する場合のデフォルトです。

   出力では、以下のように、ファイルを含むボリュームを収容するファイル・サーバー・マシンが表示されます。

          % fs whereis /afs/example.com/user/terry
          File /afs/example.com/usr/terry is on host fs2.example.com

2. ボリュームを収容するパーティションも知りたい場合は、まず fs listquota コマンドを発行し、そのボリューム名を表示します。完全な構文については、ファイルを含むボリューム名の表示 を参照してください。

          % fs listquota [<dir/file path>]

   次に、vos listvldb コマンドを発行して、 volume name or ID 引き数としてボリューム名を提供します。完全な構文および出力説明については、 VLDB 項目の表示 を参照してください。

          % vos listvldb <volume name or ID>

## ボリュームの移動

ボリュームを移動する 3 つの主な理由を次に示します。

- ディスクまたはファイル・サーバー・マシンを修理または置換している際に、一時的に他のパーティションまたはマシン上にボリュームを配置するため。
- 過密になりつつあるパーティション上でスペースを空けるため。

  過密の症状の 1 つは、関連ボリュームがその割り当て量以下でもファイルを保管することができなくなります。次のエラー・メッセージによって、問題を確認することができます。

         afs: failed to store file (partition full)

  AFS パフォーマンスのモニターおよび監査 で説明する scout または afsmonitor のプログラムを使用して、 AFS サーバー・パーティション上の使用可能スペースをトラックすることができます。

- ファイル・サーバーは、同じサイズの他のマシンに比べて、さらに多くのボリュームを格納するため、あるいは、より一般的なファイルを持つボリュームがあるため過負荷になりかけています。

読み取り / 書き込みボリュームを移動するには、これから説明する vos move コマンドを使用します。ボリュームを移動する前に、vos コマンド・インタープリターは、移動先のパーティションに十分な空きスペースがあるかどうかを検証します。ない場合には、移動操作は行われず、次のメッセージが印刷されます。

       vos: no space on target partition destination_part to move volume volume

読み取り / 書き込みボリュームを移動するには、 ボリュームを除去して、取り外し解除する方法 で説明する vos remove コマンドを使用して、実際は現行サイトからボリュームを除去します。そして、 読み取り / 書き込みボリュームの複写 (読み取り専用ボリュームの作成) で説明する vos addsite および vos release のコマンドを発行して、新規サイトを定義し、そのサイトへボリュームをリリースします。

バックアップ・ボリュームは、常に読み取り / 書き込みソース・ボリュームと同じサイトに常駐します。したがって、読み取り / 書き込みソースを移動させる一環として以外では、バックアップ・ボリュームを移動させることはできません。 vos move コマンドは、読み取り / 書き込みボリュームを移動させる際に、自動的にバックアップ・バージョンを削除します。移動操作が完了してすぐに新規サイトで新規のバックアップ・ボリュームを作成するには、 バックアップ・ボリュームの作成および取り付け で説明する vos backup コマンドを発行します。

### 読み取り / 書き込みボリュームの移動

1. ユーザーが、/usr/afs/etc/UserList ファイルにリストされているかどうかを検証します。必要な場合には、bos listusers コマンドを発行します。このコマンドについては、UserList ファイルのユーザーの表示で詳しく説明しています。

          % bos listusers <machine name>

2. vos move コマンドを発行し、ボリュームを移動します。1 つの行にコマンドを入力します。ここでコマンドが複数行に表示されているのは、読みやすくするためです。

          % vos move <volume name or ID>  \
              <machine name on source>  <partition name on source >  \
              <machine name on destination>  <partition name on destination>

   ここで、

   m
     は、move の受け入れ可能な省略形です。

   volume name or ID
     移動させる読み取り / 書き込みボリュームの名前またはボリューム ID を指定します。

   machine name on source
     現在ボリュームを収容しているファイル・サーバー・マシンの名前を指定します。

   partition name on source
     ボリュームを格納するパーティションの名前です。

   machine name on destination
     ボリュームの移動先であるファイル・サーバー・マシンの名前です。

   partition name on destination
     ボリュームの移動先であるパーティションの名前です。

   注: | ボリュームの一部がソースまたは移動先のマシンの両方に残される可能性があるため、 vos move 操作を完了前に停止させないことが大切です。詳細については、AFS Administration Reference のコマンドの解説ページを参照してください。

3. (オプション) 移動の成功を確認するためには、vos listvldb コマンドを発行します。詳細は、VLDB 項目の表示 を参照してください

          % vos listvldb <volume name or ID>

4. バックアップ・バージョンが、以前の読み取り / 書き込みボリュームのサイトに存在した場合、 vos backup コマンドを発行して新規サイトで新規バックアップを作成します。これについての詳細は、バックアップ・ボリュームの作成および取り付け を参照してください。

          % vos backup <volume name or ID>

## VLDB およびボリューム・ヘッダーの同期化

AFS は、ボリューム・ロケーション・データベース (VLDB) が定期的にボリュームの位置をトラックするため、透過的なファイル・アクセスを提供します。キャッシュ・マネージャーは、ファイルが必要な場合はボリューム・ロケーション (VL) サーバーと連絡をとります。すると、VL サーバーは VLDB を読み、そのファイルが含まれるボリュームの現行の位置を見つけます。したがって、VLDB は常に、ファイル・サーバー・マシン上のボリュームの状態を正確に反映する必要があります。ボリューム・サーバーおよび VL サーバーは、 vos オペレーション中にボリュームの状態が変更されると、自動的にボリュームの VLDB 項目を更新します。これには、以下の一連のステップを実行します。

1. VL サーバーは、VLDB 項目をロックします。ロックは、任意のボリューム・バージョン (読み取り / 書き込み、読み取り専用、バックアップ) を操作しないよう他の操作に伝えて、複数の同時操作から生じる可能性がある混乱を防ぎます。
2. VL サーバーは、実行する操作の種類を表す VLDB項目に 意図フラグ を設定します。 このフラグは内部使用専用であるため、 VLDB リストに表示されることは絶対にありません。操作が途中で終了してしまった場合に備えて、このフラグはどの操作に割り込みがあったかをサルベージャーに通知します。 (その場合、サルベージャーは、操作を完了させる、またはボリュームを直前の一貫した状態に戻すために必要なステップを決定します。サルベージについての詳細は、 ボリュームのサルベージ を参照してください。)
3. ボリューム・サーバーは、ボリュームを操作します。通常このサーバーは、ボリューム・ヘッダーに `Off-line` フラグを設定し、操作中にボリュームをファイル・サーバーおよび他のボリューム・サーバー操作にアクセス不能にします。操作が完了すると、ボリュームは再び `On-line` というマークが付きます。
4. VL サーバーは、VLDB 項目の操作の結果として生じる任意の変更を記録します。操作が完了すると、 2 のステップで設定される意図フラグを除去し、 1 のステップのロックをリリースします。

ボリューム・サーバーがボリュームを操作している際に、 vos オペレーションが失敗すると (3 のステップに対応)、ボリュームは、破壊 と呼ばれる中間状態に残されます。この場合、`Off-line` または `Off-line**needs salvage**` のマーカーは、普通、vos examine コマンドからの出力の最初の行の末尾に表示されます。破壊を修理するには、 VLDB およびボリューム・ヘッダーの再同期を試みる前に、サルベージャーを実行する必要があります。これについての詳細は、ボリュームのサルベージ を参照してください。

より一般的なものには、フラグが設定され取り除かれたときに中断によって (1 のステップ、2 のステップ、 4 のステップに対応)、 VLDB とボリューム・ヘッダーの間で矛盾が起こります。 VLDB およびボリュームを再同期するには、 vos syncvldb および vos syncserv コマンドを使用します。 VLDB の整合性を完全にするために最適な方法は、セル内のすべてのファイル・サーバー・マシン上で vos syncvldb コマンドを実行し、次に vos syncserv コマンドを実行します。

以下に、ボリューム操作が失敗したことを示すいくつかの症状を示します。

- 標準エラー・ストリーム上またはサーバー・プロセス・ログ・ファイル内のエラー・メッセージが、操作が異常終了したことを示します。これは、おそらく、ユーザーが完了前にその操作を (Ctrl-c の記号を使用するなどして) 停止しなければならなかった、または、ファイル・サーバー・マシンまたはサーバー・プロセスが、操作実行中に機能していなかった、などの理由によります。マシンまたはプロセスが今も機能していないかどうかを判断するには、 BosConfig ファイルのプロセス状況および情報の表示 で説明する bos status コマンドを発行します。
- 以降の vos オペレーションは、直前の障害により VLDB 項目がロック状態のまま残されたため失敗します。エラー・メッセージに、ボリュームがロックされていると表示されることもあります。ロックされたボリュームのリストを表示するには、 vos listvldb コマンドで -locked フラグを使用します。詳細は、VLDB 項目の表示 を参照してください。

  ボリュームの唯一の問題が、VLDB 項目がロックされていることである場合は、おそらく VLDB 全体を同期化する必要はありません。 vos unlock または vos unlockvldbコマンドを代わりに使用します。このコマンドについての詳細は、VLDB 項目のロック解除およびロック を参照してください。

- 以降の vos オペレーションは、直前の障害によってオフラインとしてマークされたボリュームが残ったため失敗します。ボリュームの現行状態を検査するには、 vos examine コマンドからの出力の最初の行を検査します。詳細は、1 つのボリュームの VLDB 項目およびボリューム・ヘッダーの表示 を参照してください。

vos syncvldb コマンドは、ボリューム・ロケーション・データベース (VLDB) 内の情報を訂正します。この情報は、ファイル・サーバー・マシン上に収容されたすべてのボリュームに関する情報、ただ 1 つのパーティション上のボリュームに関する情報、または単一ボリュームに関する情報のいずれかです。 1 つまたは複数のパーティションについて検査する場合、コマンドはボリューム・サーバーと接触して、各パーティションに実際に常駐するボリュームのリストを入手します。次に、VL サーバーからボリュームごとの VLDB 項目を入手します。そして、パーティション上のボリュームの状態を反映させるために必要な VLDB 項目の変更を行います。たとえば、VLDB 項目が欠けていたり未完全なボリュームを見つけると、コマンドは VLDB 項目を作成または更新します。しかし、ボリュームに対して異なる位置が定義されている VLDB 項目がすでにある場合、または、他の VLDB 項目との調和不可能な衝突がある場合は、代わりに衝突に関するメッセージを標準エラー・ストリームへ書き込みます。コマンドによって、ファイル・サーバー・マシンからボリュームが取り除かれることはありません。

単一ボリュームの VLDB 項目を検査する場合にも、コマンドは自動的に vos syncserv コマンドによって起動される操作を実行します。これは、VLDB 項目が指定のボリューム・タイプ (読み取り / 書き込み、バックアップ、または読み取り専用) 用に正しいかどうかを検証するだけでなく、 VLDB 項目で言及される関連ボリューム・タイプが、項目内でリストされるサイトに実際に存在するかどうかを検査します。

vos syncserv コマンドは、 VLDB 項目内で言及される各ボリューム・タイプ (読み取り / 書き込み、読み取り専用、およびバックアップ) が、項目内に示されるサイトに実際に存在するかどうかを検査します。任意のファイル・サーバー・マシンの複数のパーティション上、または、 1 つのパーティション上においてサイトに言及するすべての VLDB 項目を検査します。ボリュームの読み取り専用バージョンが、読み取り / 書き込みサイト以外のサイトにある場合、コマンドは、指定したマシンまたはパーティション上以外のサイトを検査して終了する可能性があることに注意してください。

他の VLDB 項目との調和不可能な衝突がなければ、コマンドは VLDB 内の誤った情報を変更します。この場合、代わりに、標準エラー・ストリームへメッセージを書き込みます。コマンドによって、サイトからボリュームが取り除かれることはありません。

### ボリューム・ヘッダーとの VLDB の同期化 headers

1. ユーザーが、/usr/afs/etc/UserList ファイルにリストされているかどうかを検証します。必要な場合には、bos listusers コマンドを発行します。このコマンドについては、UserList ファイルのユーザーの表示で詳しく説明しています。

          % bos listusers <machine name>

2. マシンまたはパーティション上のすべてのボリュームの正しい状態を VLDBに反映させるために、vos syncvldb コマンドを発行します。

   注: | VLDB を完全に同期化するには、 3 のステップに進む前にコマンドを繰り返し発行し、セル内の各ファイル・サーバー・マシンを順番に -server 引き数の代わりに用いて、 -partition および -volume 引き数を省略します。

          % vos syncvldb -server <machine name> [-partition <partition name>]
                                 [-volume <volume name or ID>]  [-verbose >> file]

   ここで、

   syncv
     は、syncvldb の受け入れ可能な省略形です。

   -server
     VLDB 項目を検査するボリュームを収納しているファイル・サーバー・マシンの名前を指定します。 -volume 引き数も提供している場合は、この引き数にはボリュームが実際に常駐するマシンを指定する必要があります。

   -partition
     VLDB 項目を検証するボリュームを収納しているパーティション (-server 引き数が指定したファイル・サーバー・マシン上の) を識別します。通常は、この引き数を省略することが最適です。そうすることによって、サーバー・マシン上のすべてのボリュームの VLDB 項目が訂正され (-volume 引き数を提供しない場合)、もしくは、パーティションが実際に -volume 引き数が指定したボリュームを含んでいるかどうかを保証する必要がなくなります。

   -volume
     VLDB 項目を検査する単一ボリュームの名前またはボリューム ID 番号を指定します。

   -verbose >> file
     AFS 内またはコマンドを発行しているマシンのローカル・ディスク上のいずれかにある、 file と呼ばれるファイルへ詳細なトレースを指示します。コマンドは、しばしば、大量の出力を標準出力ストリームへ書き込みます。これをファイルへ書き込むことによって、ユーザーはその出力をより詳細に検査することができます。
3. VLDB によって指定のサイトにバージョンがリストされる各ボリュームを検査するには、 vos syncserv コマンドを発行します。

   注: | VLDB を完全に同期化するには、繰り返しコマンドを発行し、セル内の各ファイル・サーバー・マシンを machine name 引き数の代わりに順番に用いて、 partition name 引き数を省略します。

          % vos syncserv <machine name> [<partition name>] [-v >> file]

   ここで、

   syncs
     は、syncserv の受け入れ可能な省略形です。

   machine name
     検査する各 VLDB 項目内で言及されるファイル・サーバー・マシン名です。

   partition name
     検査する各 VLDB 項目内で言及されるパーティションを識別します。 VLDB 全体を同期化する場合、この引き数は省略します。

   -v >> file
     AFS 内またはコマンドを発行しているマシンのローカル・ディスク上のいずれかにある、 file と呼ばれるファイルへ詳細なトレースを指示します。コマンドは、しばしば、大量の出力を標準出力ストリームへ書き込みます。これをファイルへ書き込むことによって、ユーザーはその出力をより詳細に検査することができます。

## ボリュームのサルベージ

ボリューム・サーバーまたはファイル・サーバーがボリューム内のデータを操作しているときに予期しない中断が生じた場合、 VLDB およびボリューム・ヘッダー間で矛盾が発生するだけではなく、ボリュームは中間状態 (破壊) のまま残される可能性があります。たとえば、ファイルへの変更を保管する操作の失敗 (古いデータを新規のデータで上書きした場合) は、古いデータおよび新規のデータをディスク上で混合した状態で残す可能性があります。

ボリューム・サーバーまたはファイル・サーバーが予期せずに終了したために操作が停止されると、 BOS サーバーは、自動的に fs プロセスのすべてのコンポーネントをシャットダウンし、サルベージャーを起動します。サルベージャーは矛盾をチェックし、修正できるものは修正します。ただし、問題が発生する程度の深刻さはあっても、ファイル・サーバー・コンポーネントに障害を起こすほどではない破壊を示す症状があります。この場合、サルベージャーを bos salvage コマンドを発行することによって自分で起動することができます。

- 症状: ファイルが ls コマンドの出力内に表示されるが、ファイルにアクセスしようとすると、ファイルが存在しないというメッセージが出されてアクセスできない。

  考えられる原因: ボリューム・サーバーまたはファイル・サーバーがファイル作成操作の途中 (ディレクトリー構造の変更後で、実際にデータを保管する前) で終了しました。 (その他の考えられる理由としては、ディレクトリー上の ACL が、ファイルにアクセスするために必要なアクセス権を許可していない、もしくは、プロセス、マシン、またはネットワークの障害があります。ファイルが破壊されていると思う前に、これらの原因を検査してください。)

  サルベージャーによる解決 ディレクトリー構造からファイル項目を除去します。

- 症状: vos examine および vos listvol のコマンドからの出力内で、ボリュームが `Off-line` とマークされる、または、ボリューム障害にアクセスしようとする。

  考えられる原因: 2 つのファイルまたはファイルのバージョンは、操作が中断したため同じディスク・ブロックを共用します。このような破壊を示すボリュームの接続は大変危険であるため、ファイル・サーバーおよびボリューム・サーバーは通常これを拒否します。ボリューム・サーバーまたはファイル・サーバーが、影響を受けたディスク・ブロックの状況について不確実である場合、どちらのサーバーも、そこにさらに多くのデータを書き込もうとする場合があります。書き込みが行えなければ、データは失われます。この影響は連鎖する可能性があり、パーティション上のすべてのデータが失われる原因になります。

  サルベージャーによる解決 パーティション全体を失うことがないよう、破壊されたディスク・ブロックのデータを削除します。

- 症状: vos listvol コマンドにより報告されるそれぞれのボリュームのサイズ統計に基づいた値よりも、パーティション上の使用可能スペースが少ない。

  考えられる原因: 孤立したファイルおよびディレクトリーがあります。孤立要素は、その親となるディレクトリー (ファイル・ツリーの上位) による参照が行われないため、完全にアクセス不能です。孤立要素は、サーバー・パーティション上のスペースを占領していても、ボリュームのサイズ (または割り当て量) の計算に数えられません。

  サルベージャーによる解決: デフォルトでは、 /usr/afs/logs/SalvageLog ファイルにメッセージを印刷し、孤立ファイル数およびその消費する K バイト数を報告します。 -orphans 引き数を使用して、孤立した要素を削除または接続することができます。ボリュームのサルベージ方法を参照してください。

このような症状に気が付いた場合は、bos salvage コマンドを使用して破壊が広がる前にサルベージャーを起動してください。 (コマンドはボリューム上で稼働しますが、 bos スイートに含まれるものです。これは、サルベージャーを実行する際、BOS サーバーがボリューム・サーバーおよびファイル・サーバーの終了、および再始動を調整するためです。サルベージャーが開始する前に終了が行われ、サルベージ操作が終了すると自動的に再始動します。)

1 つ以上のパーティションのサルベージ中は、ファイル・サーバー・マシン上に保管された AFS データはすべてアクセス不能です。 1 つのボリュームのみのサルベージを行うのであれば、これのみがアクセス不能になります。

1 つまたは複数のパーティションの処理中に、コマンドは、破壊された読み取り / 書き込みボリュームへの整合性を復元できる場合は復元します。読み取り専用またはバックアップのボリュームの場合は、ボリューム・ヘッダーだけを検査します。

- ボリューム・ヘッダーが破壊されている場合、サルベージャーは、ボリュームを完全に削除し、ログ・ファイル /usr/afs/logs/SalvageLog にその削除を記録します。 vos release または vos backup のコマンドを発行して、読み取り専用またはバックアップのボリュームを再び作成します。
- ボリューム・ヘッダーが無傷の場合、サルベージャーは、ボリュームをスキップします (内容の破壊を検査しません)。しかし、ファイル・サーバーが開始時に破壊に気付いた場合、ファイル・サーバーは、ボリュームへの接続、またはボリュームをオンラインにすることを拒否する場合があります。この場合、vos remove または vos zap のコマンドを発行して、ボリュームを削除することが一番簡単な対処法です。そして、vos release または vos backup コマンドを発行して、再びボリュームを作成します。

指示に従い、bos salvage コマンドの引き数を組み合わせることにより、異なる数のボリュームのサルベージを行います。

- ファイル・サーバー・マシン上のすべてのボリュームをサルベージするには、-server 引き数および -all フラグを組み合わせます。
- 1 つのパーティション上のすべてのボリュームのみをサルベージするには、-server および -partition 引き数を組み合わせます。
- 1 つの読み取り / 書き込みボリュームのみをサルベージするには、-server 、 -partition、および -volume 引き数を組み合わせます。 BOS サーバーは単一ボリュームのサルベージ中に、ファイル・サーバーおよびボリューム・サーバーをシャットダウンしないため、このボリュームだけがキャッシュ・マネージャーにアクセスできません。 -volume 引き数を使用して、読み取り専用またはバックアップのボリュームを指名しないでください。その代わりに、vos remove または vos zap のコマンドを使用して、ボリュームを削除します。そして、vos release または vos backup のコマンドを使用して、ボリュームの新規コピーを作成します。

サルベージャーは常に、それが実行されているファイル・サーバー・マシンの /usr/afs/logs/SalvageLog ファイルにトレースを書き込みます。もう 1 つのファイル (AFS 内または bos salvage コマンドを発行するマシンのローカル・ディスク上) にもトレースを記録するには、そのファイルを -file 引き数を使用して指名します。または、/usr/afs/logs/SalvageLog ファイルに書き込まれるような標準出力ストリームにトレースを表示するには、-showlog フラグを組み込みます。

デフォルトでは、複数のサルベージャー・サブプロセス (各パーティションにつき 1 つのサブプロセスで最大 4 つまで、 4 つ以上のパーティションには 4 つのサブプロセス) が並列して実行されます。並列して実行するサブプロセスの数を増減するには、 -parallel 引き数に正の整数値を指定します。

物理ディスク上に複数のサーバー・パーティションが存在する場合、デフォルトでサルベージャーはこれを順次サルベージし、パーティション間で常時ディスク・ヘッドを移動することによる効率の悪化を避けます。ただし、パーティションが複数ディスクに及ぶ論理ボリュームとして構成されている場合、これは望ましい方法ではありません。サルベージャーが論理ボリュームを並列してサルベージするよう強制するには、 -parallel 引き数の値に文字列 all を指定します。並列して実行するサブプロセス数を指定するには、サルベージする論理ボリューム数に応じて、正の整数値を指定するか (例、-parallel 5all で 5 つのサブプロセスを指定)、整数を省略して最大 4 つのサブプロセスを実行します。

サルベージャーは、実行時に一時ファイルを作成します。これはデフォルトでは、サルベージするパーティションに書き込まれます。ファイル数が非常に多くなる場合があり、パーティションにファイルが入りきらないと、サルベージャーはサルベージ操作を完了せずに終了します。終了前に一時ファイルは削除されます。同時に実行されている他のサルベージャー・サブプロセスは、一時ファイル用に十分なディスク・スペースがある他のパーティションをすべて完了するまで継続されます。中断されたサルベージ操作を完了するには、該当のパーティションにコマンドを再度発行します。その際、-tmpdir 引き数を追加して、十分なスペースのあるローカル・ディスク・ディレクトリーに一時ファイルを指定変更します。

-orphans 引き数を使用すると、サルベージ中にサーバー・パーティションに検出された孤立ファイルおよびディレクトリーの処理方法を制御できます。 孤立 要素は、その親となるディレクトリー (ファイル・スペースの上位) の vnode による参照が行われないため、完全にアクセス不能です。孤立オブジェクトがサーバー・パーティションのスペースを占有しても、ボリューム割り当て量にはカウントされません。

サルベージ中は、bos status コマンドの出力により、 fs プロセスの以下の補助状況が報告されます。

       Salvaging file system

### ボリュームのサルベージ方法

1. ユーザーが、/usr/afs/etc/UserList ファイルにリストされているかどうかを検証します。必要な場合には、bos listusers コマンドを発行します。このコマンドについては、UserList ファイルのユーザーの表示で詳しく説明しています。

          % bos listusers <machine name>

2. bos salvage コマンドを発行して、1 つ以上のボリュームをサルベージします。

          % bos salvage  -server <machine name>
                         [-partition <salvage partition>]  \
                         [-volume <salvage volume number or volume name>]  \
                         [-file salvage log output file]  [-all]  [-showlog]  \
                         [-parallel <# of max parallel partition salvaging>]  \
                         [-tmpdir <directory to place tmp files>]  \
                         [-orphans <ignore | remove | attach>]

   ここで、

   -server
     ボリュームをサルベージするファイル・サーバー・マシンの名前です。この引き数は、-all フラグまたは-partition 引き数と結合できます。もしくは、-partition および -volume の引き数の両方と結合できます。

   -partition
     すべてのボリュームをサルベージする単一のパーティションの名前です。-server 引き数は、これとともに使用する必要があります。

   -volume
     サルベージする 1 つの読み取り / 書き込みボリュームの名前またはボリューム ID 番号を指定します。この引き数を -server および -partition 引き数と結合します。

   -file
     サーバー・マシン上の /usr/afs/logs/SalvageLog ファイルに加えて、サルベージ操作のトレースを書き込むファイルの完全なパス名を指定します。ファイルのパス名がローカルである場合、トレースは、 bos salvage コマンドが発行されるマシンのローカル・ディスク上の指定ファイルに書き込まれます。 -volume 引き数を組み込むと、ファイルを AFS に置けますが、サルベージ中のボリュームには配置できません。この引き数を -showlog フラグと結合してはいけません。

   -all
     -server 引き数で指定したマシン上のすべてのパーティションのすべてのボリュームをサルベージします。

   -showlog
     サルベージ操作のトレースを、 /usr/afs/logs/SalvageLog ファイルへ書き込むほか、標準出力ストリームに表示します。

   -parallel
     並列で実行するサルベージャー・サブプロセスの最大数を指定します。 3 つの値から 1 つを使用します。
     - 1 から 32 までの範囲の整数。値 1 は、単一のサルベージャー・プロセスがパーティションのサルベージを順次行うことを意味します。
     - 文字列 all。複数の物理ディスクに及ぶ論理ボリュームとしてフォーマットされたパーティションで、最大 4 つのサルベージャー・サブプロセスを並行で実行します。このような論理ボリュームについてのみ使用してください。
     - 文字列 all に続く (スペースなし) 1 から 32 までの範囲の整数。論理ボリュームとしてフォーマットされたパーティションで指定数のサルベージャー・サブプロセスを実行します。このような論理ボリュームについてのみ使用してください。

     BOS サーバーは、パーティション数よりも多くのサルベージャー・サブプロセスを開始することはなく、単一ボリュームのサルベージには常に 1 つのプロセスのみを開始します。この引き数を省略すると、最大 4 つまでのサルベージャー・サブプロセスが並列して実行されます。

   -tmpdir
     サルベージャー・プロセスの実行中に、一時ファイルを書き込むローカル・ディスク・ディレクトリーの全パス名を指定します。デフォルトでは、一時ファイルは現在サルベージを行っているパーティションに書き込まれます。

   -orphans
     サルベージャーによる孤立ファイルおよびディレクトリーの処理方法を制御します。以下の 3 つの値のいずれかを選択します。

     ignore
       ディスクに孤立オブジェクトを残しますが、 /usr/afs/logs/SalvageLog ファイルにメッセージを印刷し、孤立ファイル数およびその消費する K バイト数を報告します。これは -orphans 引き数を省略した場合、デフォルトです。

     remove
       孤立オブジェクトを除去し、/usr/afs/logs/SalvageLog ファイルにメッセージを印刷し、除去した孤立ファイル数およびその消費していた K バイト数を報告します。

     attach
       孤立オブジェクトへの参照を、ボリュームのルート・ディレクトリーの vnodeに作成し、これを接続します。それぞれのオブジェクトの実名は失われているため、サルベージャーは以下の形式の名前をそれぞれ割り当てます。

         _ _ORPHANFILE_ _.index (ファイルの場合)

         _ _ORPHANDIR_ _.index (ディレクトリーの場合)

       index は、それぞれのオブジェクトを固有に識別する 2 桁の数です。孤立オブジェクトは、ボリューム割り当て量に対して変換され、ボリュームのルート・ディレクトリーに発行した ls コマンドの出力に表示されます。

## ボリューム割り当て量および現行サイズの設定および表示

すべての AFS ボリュームには、ボリュームのサイズを制限する関連した割り当て量があります。新規作成ボリューム用のデフォルトの割り当て量は、5,000 K バイト・ブロック (5 MB より少し少ない) です。ボリュームがその割り当て量に達すると、ファイル・サーバーは、新規ファイルまたはディレクトリーを作成を拒否します。アプリケーションが、データをフル・ボリューム内の既存ファイルへ書き込んでいる場合、ファイル・サーバーは定義された過多量を許可します (デフォルトでは 1 MB)。 (fileserver コマンドの -spare または -pctspare 引き数を使用して、デフォルトの過多量を変更できます。AFS Administration Reference のコマンドの解説ページを参照してください。)

ボリューム作成時に 5000 KB 以外の割り当て量を設定するには、 読み取り / 書き込みボリュームの作成 で説明するように、 -maxquota 引き数を vos create コマンドへ組み込みます。既存のボリューム割り当て量を変更するには、以下で説明する fs setquota または fs setvol コマンドを発行します。既存のボリューム割り当て量をその現行サイズよりも低く設定しないでください。

一般的には、ボリュームが大きいより小さい方が管理が簡単です。ロード・バランシングなどの目的で、ボリュームを移動する必要がある場合は、小さなボリューム用の他のパーティション上に十分な空きスペースを見つけることの方が簡単です。移動操作は、小さなボリュームほど迅速に完了します。これは、移動操作に割り込む障害やその他のエラーの可能性が少なくなるためです。 AFS は最大ボリューム・サイズをサポートしますが、これは AFS リリースごとに異なります。お使いのバージョンの AFS Release Notes を参照してください。また、ボリュームは複数のパーティションまたは論理ボリュームをスパンできないため、パーティションまたは論理のサイズによって、ボリューム・サイズに絶対制限が付きます。

通常、すべてのボリュームが最大割り当て量に達した場合、入りきらないほどのボリュームを入れてパーティションをオーバー・パックしても大丈夫です。ただし、セルをどの程度までオーバー・パックできるかは、経験によって判断するしかありません。ボリュームにどの種類の割り当て量を割り当てるか (特に、予測不能に成長するシステム・ボリュームより可能性があるユーザー・ボリューム)、および割り当て量に比較して生成および格納される情報の量によって決まります。

以下で説明するように、ボリュームの割り当て量を表示するコマンドがいくつかあります。作成される関連情報の量は、それぞれ異なります。

### 単一ボリューム用の割り当て量の設定

1. ユーザーが system:administrators グループに属しているかどうかを検査します。必要な場合には、pts membership コマンドを発行してください。このコマンドの詳細は、system:administrators グループのメンバーの表示 を参照してください。

          % pts membership system:administrators

2. fs setquota コマンドを発行して、ボリュームの最大割り当て量を設定します。

          % fs setquota [<dir/file path>] -max <max quota in kbytes>

   ここで、

   sq
     は、setquota に対する受け入れ可能なエイリアスです。

   dir/file path
     指示された割り当て量を設定するボリューム内のファイルまたはディレクトリーの名前を指定します。パス名の一部は、現行作業ディレクトリーとの関連で解釈されます。これは、この引き数を省略する場合のデフォルトです。

     読み取り専用ボリュームを変更しようとするときに生じる障害を回避するために、ファイルまたはディレクトリーへの読み取り / 書き込みパスを指定します。規則では、パス名の第 2 レベルでセル名の前にピリオドを置いて、読み取り / 書き込みパスを示します (たとえば、 /afs/.example.com)。読み取り / 書き込みパスおよび読み取り専用パスの概念についての詳細は、 マウント・ポイント横断の規則 を参照してください。

   max quota in kbytes
     K バイト・ブロックの単位で表されたボリューム割り当て量を設定します (1024 は 1 M バイトと同等)。 0 の値は、無制限の割り当て量を付与しますが、パーティションのサイズには絶対制限が付きます。 dir/file path 引き数を省略する場合は、 -max スイッチを組み込む必要があります (現行作業ディレクトリーを収容するボリュームに割り当て量を設定するため)。

### 1 つ以上のボリュームに最大割り当て量を設定する方法

1. ユーザーが system:administrators グループに属しているかどうかを検査します。必要な場合には、pts membership コマンドを発行してください。このコマンドの詳細は、system:administrators グループのメンバーの表示 を参照してください。

          % pts membership system:administrators

2. 1 つ以上のボリュームに割り当て量を設定するには、fs setvol コマンドを発行します。

          % fs setvol [<dir/file path>+] -max <disk space quota in 1K units>

   ここで、

   sv
     は、setvol に対する受け入れ可能なエイリアスです。

   dir/file path
     指示された割り当て量を設定する各ボリューム内のファイルまたはディレクトリーの名前を指定します。パス名の一部は、現行作業ディレクトリーとの関連で解釈されます。これは、この引き数を省略する場合のデフォルトです。

   ディスク・スペース割り当て量 (K バイト単位)
     K バイト・ブロックの単位で表された最大割り当て量を各ボリュームに設定します (1024 は 1 M バイトと同等)。 0 の値は、無制限の割り当て量を付与しますが、パーティションのサイズは絶対制限が付きます。

### 使用割り当て量のパーセント表示

1. fs quota コマンドを発行します。

          % fs quota [<dir/file path>+]

   ここで、

   q
     は、quota の受け入れ可能な省略形です。

   dir/file path
     割り当て量の使用済みパーセントを表示する各ボリューム内のディレクトリーまたはファイルの名前です。パス名の一部は、現行作業ディレクトリーとの関連で解釈されます。これは、この引き数を省略する場合のデフォルトです。

以下の例は、このコマンドが作成した出力の形式を示しています。

       % fs quota /afs/example.com/usr/terry
       34% of quota used.

### 割り当て量、現行サイズ、および他の情報の表示方法

1. fs listquota コマンドを発行します。

          % fs listquota [<dir/file path>+]

   ここで、

   lq
     は、listquota に対するエイリアスです。

   dir/file path
     ボリューム名および現行スペース使用とともに割り当て量が表示される各ボリューム内のディレクトリーまたはファイルの名前です。パス名の一部は、現行作業ディレクトリーとの関連で解釈されます。これは、この引き数を省略する場合のデフォルトです。

以下の例に示すように、出力には、ボリューム名、割り当て量および現行サイズ (両方とも K バイト単位)、使用された割り当て量のパーセント、および使用されたボリュームのホスト・パーティションの割合が示されます。

       % fs listquota /afs/example.com/usr/terry
       Volume Name     Quota    Used    % Used   Partition
       user.terry      15000    5071       34%         86%

### 割り当て量、現行サイズ、およびパーティション詳細情報の表示方法

1. fs examine コマンドの発行

          % fs examine [<dir/file path>+]

   ここで、

   exa
     examine の最も短い受け入れ可能な省略形です。

   dir/file path
     割り当て量情報およびホスト・パーティション情報を表示する各ボリューム内のディレクトリーまたはファイルの名前です。パス名の一部は、現行作業ディレクトリーとの関連で解釈されます。これは、この引き数を省略する場合のデフォルトです。

以下の例に示すように、出力には、ボリューム ID 番号およびボリューム名、割り当て量および現行サイズ (両方とも K バイト単位)、およびボリュームのホスト・パーティション上の K バイト・ブロックの未使用数および総数が表示されます。

       % fs examine /afs/example.com/usr/terry
       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

注: | このコマンドの出力に含まれる区画関連の統計は、標準 UNIX の df コマンドの出力に含まれる対応する値と常に一致するとは限りません。キャッシュ・マネージャーは 5 分間隔でファイル・マネージャーをポーリングして区画情報を得るので、このコマンドによって報告される統計は 5 分前のものである可能性があります。また、オペレーティング・システムによっては、df コマンドの区画サイズ報告には、このコマンドによる計算には含まれない予約済みのスペースが含まれるので、約 10% 大きくなることがあります。

## ボリュームおよびそのマウント・ポイントの除去

サイトからボリュームを削除、および VLDB からその記録を削除するには、 vos remove コマンドを使用します。このコマンドを使用して、任意の 3 つのタイプのボリュームを削除します。その影響は、タイプごとに異なります。

- .readonly または .backup 拡張子を付けずに、ボリュームの基本名を指定して読み取り / 書き込みボリュームを指示すると、コマンドは、読み取り / 書き込みボリュームおよび関連したバックアップ・ボリュームの両方を、それらを収容するパーティションから削除します。

  読み取り / 書き込みサイトはただ 1 つしかありえないため、 -server および -partition の引き数を提供する必要はありません。サイト情報もまた VLDB 項目から取り除かれ、 `number of sites` として vos examine および vos listvldb コマンドによって報告されるサイト・カウントは 1 つ減ります。読み取り / 書き込みボリュームおよびバックアップ・ボリュームのボリューム ID 番号は、 vos examine および vos listvldb のコマンドからの出力内に表示されませんが、内部で保存されます。読み取り専用サイト (ある場合) は影響されませんが、読み取り / 書き込みサイトが再び定義されないと変更できません。読み取り専用サイトがない場合は、VLDB 項目全体が削除されます。

  読み取り専用コピーが残っていない場合は、ボリューム内容にアクセスできないように、ボリュームのマウント・ポイントを削除することが最も良い方法です。読み取り専用ボリュームのコピーが残っている場合には、マウント・ポイントを削除してはいけません。

- 名前に .readonly 拡張子を付けて読み取り専用ボリュームを指示する場合、このボリュームは、収容されているパーティションから削除され、対応するサイト情報は VLDB 項目から取り除かれます。 `number of sites` として vos examine および vos listvldb のコマンドによって報告されるサイト・カウントは、ボリュームを削除するごとに 1 つ減ります。

  複数の読み取り専用サイトがある場合、 -server 引き数 (およびオプションで -partition 引き数) を組み込んで、削除するボリュームがあるサイトを指定する必要があります。ただ 1 つしか読み取り専用サイトがない場合は、ボリューム名だけで十分です。このとき読み取り / 書き込みボリュームがないと、VLDB 項目全体が削除されます。

  特にボリュームの読み取り / 書き込みバージョンがまだ存在する場合などでは、読み取り専用ボリュームを削除する際に、ボリュームのマウント・ポイントを削除することは通常適切ではありません。読み取り / 書き込みボリュームが存在しない場合は、 ボリュームを除去して、取り外し解除する方法の5 のステップでの説明に従って、マウント・ポイントを削除します。

- 名前に .backup 拡張子を付けてバックアップ・ボリュームを指示する場合、そのボリュームは収容されているパーティションから削除され、そのサイト情報は VLDB 項目から取り除かれます。バックアップ・サイトはただ 1 つしかありえないため、 -server および -partition の引き数を提供する必要はありません。バックアップ・ボリュームの ID 番号は、 vos examine または vos listvldb コマンドからの出力には表示されませんが、内部で保存されます。

  標準構成では、ユーザー・ボリュームのバックアップ・バージョンごとに別々のマウント・ポイントがあります。存在しないボリュームの内容にアクセスすることを回避するために、そのマウント・ポイントは削除しておくようにしてください。

### 他の除去コマンド

vos remove コマンドは、自動的にボリュームの VLDB 項目を削除し、パーティションからボリューム・ヘッダーおよびすべてのデータの双方を削除するため、ボリュームを削除する方法としては、ほとんどの場合において適切です。 VLDB 項目またはボリューム・ヘッダーのいずれかが存在しない場合は、残存する要素のみを削除する他のコマンドを使用しなければならないことがあります。これらのコマンドは、VLDB 項目およびボリューム・ヘッダーの両方が存在する通常の場合には使用しないでください。使用した場合、これらの間で矛盾が生じると定義されています。コマンド構文についての詳細は、AFS Administration Reference の解説ページを参照してください。

vos zap コマンドは、 VLDB 項目が存在しないボリューム・ヘッダーおよびボリューム・データを削除することによって、ボリュームをそのサイトから取り除きます。

vos listvol コマンドがボリューム・ヘッダーを表示するが、 vos examine または vos listvldb コマンドが VLDB 項目を見つけられない場合は、その VLDB 項目が欠落していることがわかります。このコマンドを実行して、矛盾を訂正する必要があります。これは、 vos syncvldb および vos syncserv コマンドは、ボリューム・ヘッダーを削除しないためです。

vos remsite コマンドは、ファイル・サーバー・マシン上のボリュームに影響を及ぼすことなく、 VLDB から読み取り専用サイト定義を除去します。

間違って vos addsite コマンドを発行して読み取り専用サイトを定義したが、まだ、サイトへボリュームをリリースする vos release コマンドを発行していない場合は、このコマンドを使用します。ボリュームをサイトに実際にリリースした場合は、代わりに vos remove コマンドを使用します。

vos delentry コマンドは、指定するボリュームについて言及する VLDB 項目全体を除去します。

ボリュームのバージョンが実際にファイル・サーバー・マシン上に存在しても、これらは影響を受けません。このコマンドは、ボリュームの除去が VLDB に記録されなかったことが確実に分かっていて (緊急の場合には vos zap コマンドを使用する場合があります)、 VLDB 全体を vos syncvldb および vos syncservコマンドを使用して再同期するための時間をとりたくない場合に役立ちます。

### ボリュームを除去して、取り外し解除する方法

1. ユーザーが、/usr/afs/etc/UserList ファイルにリストされているかどうかを検証します。必要な場合には、bos listusers コマンドを発行します。このコマンドについては、UserList ファイルのユーザーの表示で詳しく説明しています。

          % bos listusers <machine name>

2. ボリュームのマウント・ポイントを削除する場合、その親ディレクトリーの ACL 上に d (削除) アクセス権があるかどうかを検査します。必要に応じて、fs listacl コマンドを発行します。これについては、ACL の表示 で詳しく説明しています。

          % fs listacl [<dir/file path>]

   system:administrators グループのメンバーは、a (管理)、および、デフォルトで l (検索) アクセス権を、常にすべての ACL に暗黙的に持っています。また、必要に応じて fs setacl コマンドを使用して、他の権限を付与することができます。

3. (オプション) 後にボリュームを復元したい場合に備えて、ボリュームをファイルまたはテープへダンプします。ボリュームの内容をファイルにコピーするには、 ボリュームのダンプおよび復元 で説明するとおり、 vos dump コマンドを使用します。すると、UNIX tar コマンドなどの第三者バックアップ・ユーティリティーまたはアーカイブ・ユーティリティーを使用して、ファイルをテープへコピーすることができます。

   もしくは、AFS バックアップ・システムを使用して、テープのコピーを作成します。この場合、関心のあるボリュームだけを含む一時的なボリューム・セットを作成すると便利です。一時的なボリューム・セットは、バックアップ・データベースに記録されないため、 1 度だけしか使用しないボリューム・セットの記録でデータベースを混乱させることはありません。これについての詳細は、ダンプの作成 を参照してください。

4. vos removeコマンドを発行してボリュームを削除します。読み取り専用ボリュームを複数のサイトから削除する場合は、サイトごとにコマンドを繰り返します。

          % vos remove [-server machine name>]  [-partition <partition name>]  \
                       -id <volume name or ID>

   ここで、

   remo
     は、remove の受け入れ可能な省略形です。

   -server
     ボリュームが常駐するファイル・サーバー・マシンを指定します。これは、 -id 引き数が、複数のサイトに存在する読み取り専用ボリュームを指定する場合にのみ必要です。

   -partition
     ボリュームが常駐する machine name のパーティションを指定します。これは、-id 引き数が、複数のサイトに存在する読み取り専用ボリュームを指定する場合にのみ必要です。これとともに、-server 引き数を与えます。

   -id
     除去しようとしているボリュームを、その完全名またはボリューム ID 番号によって識別します。読み取り専用またはバックアップのボリュームを名前で識別する場合は、適切な拡張子 (.readonly または .backup) を含めます。
5. ボリュームの最後の既存バージョンを削除する場合は、 fs rmmount コマンドを発行して、対応するマウント・ポイントを削除します。詳細は、 ボリュームを除去して、取り外し解除する方法 を参照してください。

   従来の方法で取り付けられたバックアップ・ボリュームを削除する場合 (読み取り / 書き込みボリュームのルート・ディレクトリーのサブディレクトリーで)、このステップでソース・ボリュームのマウント・ポイントを削除すると、バックアップ・ボリュームのマウント・ポイントを削除できます。バックアップを完全に別々のディレクトリーで取り付けた場合、バックアップ・ボリュームのマウント・ポイントに対して、このステップを繰り返す必要があります。

          % fs rmmount <directory>

6. (オプション) 3 のステップでダンプ・ファイルを作成した場合は、これをテープに転送します。 AFS バックアップ・システムの使用が好ましく、これについては AFS バックアップ・システムの構成、および AFS データのバックアップと復元 で説明しています。

## ボリュームのダンプおよび復元

vos dump コマンドによってボリュームが ダンプ されると、その内容が ASCII 形式に変換され、指定のファイルに書き込まれます。 vos restore コマンドによって、ダンプ・ファイルの内容は、指示されたファイル・サーバー・マシンに適切なボリューム・フォーマットに変換されてから、ボリュームに戻されます。

### ボリュームのダンプについて

ボリュームのダンプは、次のようないくつかの場合に役に立ちます。

- たとえば、第三者のバックアップ・ユーティリティーを使用して、テープにバックアップします。このタイプのバックアップ操作を容易にするには、 vos dump コマンドによって名前付きパイプに書き込みます。代わりに AFS バックアップ・システムの使用について確認するには、 AFS バックアップ・システムの構成 および AFS データのバックアップと復元 を参照してください。
- セルからボリュームを除去する場合 (所有者がユーザーのセルから退くときなど) vos dump コマンドを使用することにより、バックアップ・システムのオーバーヘッドを起こすことなく、保護コピーが作成できます。ボリュームの除去方法についての詳細は、ボリュームおよびそのマウント・ポイントの除去 を参照してください。
- 非 AFS サーバー・パーティション上にボリュームの保護コピーを作成したい場合。これは、実際のボリュームを別のマシンに移動する、またはボリュームを格納するパーティション上で保守タスクを実行する場合が考えられます。
- 破壊された読み取り / 書き込みボリュームを置き換える必要がある場合。破壊されていない読み取り専用またはバックアップのバージョンのボリュームが存在する場合、それをダンプし、そのデータを破壊された内容に上書きして読み取り / 書き込みボリュームへ復元します。
- ボリュームの内容を別のセルにコピーまたは転送する場合。 AFS は、同じセルに属するファイル・サーバー・マシン間だけでのボリューム移動をサポートするため、 vos move コマンドを使用することはできません。
- ボリュームの内容を持つ読み取り / 書き込みコピーをもう 1 つ作成する場合。 2 つ目のボリューム名は、オリジナルの名前と異なっている必要があります。 2 つのボリュームの内容を同一にしたい場合は、両方を手動で更新しなければなりません。このように、AFS は、読み取り / 書き込みボリュームを同期化する機能を提供しません。
- 特定の日付よりあとに変更されたことを示すタイム・スタンプが付いた、ボリューム内のファイルおよびディレクトリーだけのコピーが必要です。vos dump コマンドにより、以下の 3 のステップで説明するように増分ダンプ・ファイルが作成できます。

vos dump コマンドを使用して、コマンドを発行する時刻のボリュームの内容すべてを含む フル・ダンプを作成するか、 (ls -l コマンドによって表示される) 指定の日時よりもあとに修正されたことを示すタイム・スタンプが付いたファイルおよびディレクトリーのみを含む 増分ダンプ を作成することができます。次の指示に対する 3 のステップを参照してください。

ボリュームをダンプしても VLDB 項目が変更されたり、ファイル・サーバー・マシン上のその状況が永続的に影響を受けたりしませんが、ダンプ操作の際、ボリュームの内容にはアクセスすることができません。ボリュームへのアクセスを割り込みから守るには、通常、 vos backup または vos backupsys コマンドを使用した直後にボリュームのバックアップ・バージョンをダンプして、新規のバックアップ・バージョンを作成するのが最もよい方法です。

ダンプを書き込むファイル名を指定しない場合、 vos dump コマンドの出力は標準出力ストリームに送信されます。これを直接 vos restore コマンドにパイプ接続することもできます。

ボリューム・ダンプ・ファイルは ASCII 形式で作成されているため、 cat コマンドなどのテキスト・エディターまたはコマンドを使用して、その内容を読み取ることができます。ただし、ダンプ・ファイルには、英数字の相関がない特殊文字が含まれていることがたまにあります。これが原因で、一部のディスプレイ・プログラムに問題が起こる可能性があります。

デフォルトで、vos コマンド・インタープリターは、ボリューム・ロケーション・データベース (VLDB) と協力してボリュームの位置を入手するため、 -server および -partition の引き数を必要としません。 -id 引き数が、複数のサイトに常駐する読み取り専用ボリュームを識別する場合、コマンドはそれらのサイトうちのただ 1 つ (普通、vos examine または vos listvldb のコマンドによって報告されるように、ボリュームの VLDB 項目内に最初にリストされるもの) からバージョンをダンプします。特別なサイトから読み取り専用ボリュームをダンプするには、 -server および -partition の引き数を使用して、そのサイトを指定します。VLDB 索引を完全に迂回するには、 -server および -partition の引き数とともに、ボリューム ID 番号 (ボリューム名ではなく) を、 -id 引き数の値として提供します。これによって、VLDB 項目がないボリュームをダンプすることができます。

### ボリュームをダンプする方法

1. ユーザーが、/usr/afs/etc/UserList ファイルにリストされているかどうかを検証します。必要な場合には、bos listusers コマンドを発行します。このコマンドについては、UserList ファイルのユーザーの表示で詳しく説明しています。

          % bos listusers <machine name>

2. ダンプ・ファイルを作成するために必要なアクセス権があるかどうかを検査します。ファイルを AFS に配置する場合は、ファイルのディレクトリーの ACL 上に、 i (挿入) アクセス権が必要です。必要に応じて、fs listacl コマンドを発行します。これについては、ACL の表示 で詳しく説明しています。

          % fs listacl [<dir/file path>]

   system:administrators グループのメンバーは、a (管理)、および、デフォルトで l (検索) アクセス権を、常にすべての ACL に暗黙的に持っています。また、必要に応じて fs setacl コマンドを使用して、他の権限を付与することができます。

3. vos dump コマンドを発行して、ボリュームをダンプします。

          % vos dump -id <volume name or ID> [-time <dump from time>]
                         [-file <arg>]  [-server <server>]  [-partition <partition>]

   ここで、

   -id
     ダンプするボリュームを、その完全名またはボリューム ID 番号によって識別します。読み取り専用またはバックアップ・バージョンをダンプする場合は、ボリューム ID 番号を指定するか、適切な拡張子 (.readonlyまたは .backup) を名前に追加します。

     ボリューム・ロケーションの正規の VLDB 検索を迂回するには、ボリューム ID 番号を提供し、この引き数を -server および -partition 引き数と結合します。

   -time
     フル・ダンプまたは増分ダンプを指定します。フル・ダンプを作成するにはこの引き数を省略するか、または 3 つの許容値のうち 1 つを提供します。
     - フル・ダンプを作成する場合には、0 (ゼロ) を指定してください。
     - mm/dd/yyyy (月、日、年) 形式の日付 (示された日の午前 0 時 (12:00 a.m.) より後に修正されたファイルおよびディレクトリーのみを含む増分ダンプを作成する場合)。年範囲の有効な値は、1970 から 2037 までです。標準 UNIX 表示における最後の日付の表示は 2038 であるため、これより高い値は無効です。コマンド・インタープリターは、それ以降の日付を自動的に最大値に削減します。例、01/13/1999
     - "mm/dd/yyyy hh: MM"形式の日付指定した日時より後に修正されたファイルおよびディレクトリーのみを含む増分ダンプを作成する場合。日付形式は、日付のみの場合と同じ形式です。時刻 (hh:MM) は 24 時間形式の表示です (たとえば、20:30は 8:30 p.m. のことです)。. スペースが含まれるため、式全体を二重引用符 (" ") で囲みます。例、"01/13/1999 22:30"

   -file
     ダンプを書き込むファイルのパス名を指定します。ファイルは AFS に置けますが、ダンプされるボリューム内には配置できません。部分的なパス名は、現行作業ディレクトリーに対する相対として解釈されます。ダンプを標準出力ストリームに送信するには、この引き数を省略します。

   -server
     ボリュームが常駐するファイル・サーバー・マシンを指定します。これとともに、-partition 引き数を与えます。

   -partition
     ボリュームが常駐するパーティションを指定します。これとともに、-server 引き数を与えます。

### ボリュームの復元について

3 つのタイプのボリューム (読み取り / 書き込み、読み取り専用、またはバックアップ) は、どれでもダンプすることができますが、ダンプ・ファイルは、vos restore コマンドを使用して、読み取り / 書き込みボリュームとしてのみファイル・システムに復元することができます。このコマンドは、ダンプ・ファイルの内容を ASCII から自動的に変換して、復元されたバージョンを格納するファイル・サーバー・マシンに対して適切なボリューム・フォーマットに再び戻します。 vos dump と同じように、名前付きパイプを介してダンプ・ファイルを復元し、第三者のバックアップ・ユーティリティーとの相互操作を容易にすることができます。

ダンプ・ファイルは、2 つの基本方法のいずれかにより復元できます。どちらの場合も、増分ダンプを復元する前に、フル・ダンプを復元する必要があります。その上で復元する増分ダンプは、フル・ダンプの後で作成されたものでなければなりません。複数の増分ダンプが存在する場合、これを作成された順に復元する必要があります。

- 新しい名前を付けて指定した場所に作成したばかりのボリュームへ、ボリューム・データを復元することができます。 新規のボリュームにダンプを復元して、それを取り付ける を参照してください。

  ボリュームを復元する際、通常はボリューム・サーバーが自動的にボリュームを割り振るのが最適な方法ですが、ユーザーがボリューム ID 番号を割り当てることができます。ボリューム ID を指定する理由で最も一般的なものは、ボリュームの VLDB 項目が何らかの理由で消えた場合、ユーザーが以前の read/write ボリューム ID を知っていてそれを再利用したいからです。

- 既存のボリューム (通常は前にダンプしたもの) に、現在の内容を上書きして復元することができます。これは、現行の内容が破壊されているか、それ以外の誤りがある場合に便利です。その理由は、現行の内容を過去またはボリュームの複製の 1 つのコヒーレント・バージョンで置き換えることが可能になるからです。既存のボリュームを上書きして、ダンプ・ファイルを復元する を参照してください。

  -overwrite 引き数を使用することにより、ボリューム内容の上書きを確認し、フル・ダンプまたは増分ダンプのどちらを復元するかを指定します。-overwrite 引き数を省略した場合、ボリューム・サーバーは以下のプロンプトを出して、既存のボリュームをフル (f) または増分 (i) ダンプで上書するか確認します。

         Do you want to do a full/incremental restore or abort? [fia](a):

  -file 引き数を使用して名前を付ける代わりに、ダンプ・ファイルを標準入力ストリームにパイプ接続するのであれば、 -overwrite 引き数を組み込む必要があります。これは、この場合ボリューム・サーバーがプロンプトを表示する場所がなくなるためです。

  ボリュームを新規サイトに移動し、フル・ダンプで上書きをすることができます。新規サイトの指定には、 -server および -partition 引き数を使用します。増分ダンプを復元する場合はボリュームの移動はできません。 dump.

vos restore コマンドは、ボリューム・ヘッダー中の復元ボリュームの作成日を復元操作の時刻に設定します。これは vos examine および vos listvol コマンドの出力の `Creation`フィールドに報告される時刻です。

### 新規のボリュームにダンプを復元して、それを取り付ける

1. ユーザーが、/usr/afs/etc/UserList ファイルにリストされているかどうかを検証します。必要な場合には、bos listusers コマンドを発行します。このコマンドについては、UserList ファイルのユーザーの表示で詳しく説明しています。

          % bos listusers <machine name>

2. ユーザーに、ダンプ・ファイルを読み取って新規ボリュームを取り付けるために必要なアクセス権があるかどうかを検査します。ダンプ・ファイルが AFS にあれば、そのディレクトリーの ACL 上に r (読み取り) アクセス権が必要です。新規ボリュームを取り付けるディレクトリーの ACL 上に i (挿入) および a (管理)アクセス権がなければなりません。必要に応じて、fs listacl コマンドを発行します。これについては、ACL の表示 で詳しく説明しています。

          % fs listacl [<dir/file path>]

   system:administrators グループのメンバーは、a (管理)、および、デフォルトで l (検索) アクセス権を、常にすべての ACL に暗黙的に持っています。また、必要に応じて fs setacl コマンドを使用して、他の権限を付与することができます。

3. 新規ボリュームに対してサイト (ファイル・サーバー・マシン上のディスク・パーティション) を選択します。セルがボリュームの異なるタイプを、別々のファイル・サーバー・マシンにグループ化すると、判別が容易になります。基準を満たす最も空きの多いパーティションにボリュームを配置することもできます。ファイル・サーバー・マシンのパーティション上で使用可能なスペース容量を表示するには、 vos partinfo コマンドを使用します。このコマンドについては、 読み取り / 書き込みボリュームの作成 で詳しく説明しています。

          % vos partinfo <machine name> [<partition name>]

4. 新規ボリュームを作成してそこにダンプ・ファイルを復元するために、vos restore コマンドを発行します。 1 つの行にコマンドを入力します。ここでコマンドが複数行に表示されているのは、読みやすくするためです。

          % vos restore <machine name> <partition name>  \
                        <name of volume to be restored>   \
                        [-file <dump file>] [-id <volume ID>]

   ここで、

   res
     は、restore の受け入れ可能な省略形です。

   machine name
     新規ボリュームを作成するファイル・サーバー・マシンに名前を付けます。

   partition name
     新規ボリュームを作成するパーティションの名前です。

   name of volume to be restored
     新規の読み取り / 書き込みボリュームの名前です。VLDB 項目を持つものではいけません。長さは 22文字までとします。

   -file
     復元するダンプ・ファイルです。部分的なパス名は、現行作業ディレクトリーと相対して解釈されます。標準入力ストリームからダンプ・ファイルを読み取る場合は、この引き数を省略します。

   -volume
     新規ボリュームの ID 番号を指定します。これは、既に存在しないボリュームを復元する場合で、その以前のボリューム ID 番号を使用する場合にのみ使用できます。
5. fs mkmount コマンドを発行して新規のボリュームを取り付け、その内容が表示できるようにします。詳細は、正規または読み取り / 書き込みの各マウント・ポイントの作成 を参照してください。

          % fs mkmount <directory> <volume name>

6. (オプション) fs lsmount コマンドを発行して、マウント・ポイントが正しいボリュームを参照しているか検証します。詳細な説明が マウント・ポイントの表示方法 に示されています。

          % fs lsmount <directory>

### 既存のボリュームを上書きして、ダンプ・ファイルを復元する

1. ユーザーが、/usr/afs/etc/UserList ファイルにリストされているかどうかを検証します。必要な場合には、bos listusers コマンドを発行します。このコマンドについては、UserList ファイルのユーザーの表示で詳しく説明しています。

          % bos listusers <machine name>

2. ユーザーに、ダンプ・ファイルを読み取るために必要なアクセス権があるかどうかを検査します。ダンプ・ファイルが AFS にあれば、そのディレクトリーの ACL 上に r (読み取り) アクセス権が必要です。必要に応じて、fs listacl コマンドを発行します。これについては、ACL の表示 で詳しく説明しています。

          % fs listacl [<dir/file path>]

   system:administrators グループのメンバーは、a (管理)、および、デフォルトで l (検索) アクセス権を、常にすべての ACL に暗黙的に持っています。また、必要に応じて fs setacl コマンドを使用して、他の権限を付与することができます。

3. 現行の内容を上書きして、ダンプ・ファイルの内容を読み取り / 書き込みボリュームに復元します。ボリュームは、現行のボリューム ID 番号を保存します。1 つの行にコマンドを入力します。ここでコマンドが複数行に表示されているのは、読みやすくするためです。

          % vos restore <machine name> <partition name>  \
                        <name of volume to be restored>   \
                        [-file <dump  file>]  \
                        -overwrite <full | incremental>

   ここで、

   res
     は、restore の受け入れ可能な省略形です。

   machine name
     ボリュームがすでに存在する、またはボリュームの移動先であるファイル・サーバー・マシンの名前です。後者の場合、-overwrite 引き数の値は full です。

   partition name
     ボリュームがすでに存在する、またはボリュームの移動先であるパーティションの名前です。後者の場合、-overwrite 引き数の値は full です。

   name of volume to be restored
     ダンプ・ファイルの内容で上書きする読み取り / 書き込みボリュームの名前です。

   -file
     復元するダンプ・ファイルです。部分的なパス名は、現行作業ディレクトリーと相対して解釈されます。標準入力ストリームからダンプ・ファイルを読み取る場合は、この引き数を省略します。この場合、-overwrite 引き数を使用する必要があります。

   -overwrite
     既存のボリュームを上書きするかを確認し、復元するダンプ・ファイルの種類を指定します。以下の値のいずれかを指定します。
     - フル・ダンプを復元する場合は、f ( full)。
     - 増分ダンプ・ファイルを復元する場合は、i (incremental)。復元中、ボリュームを移動するのであれば、この値は使用できません。
     - 復元操作を終了する場合は、a。
4. ボリュームが複写されたら、vos release コマンドを発行して、新規に復元された内容を読み取り専用サイトにリリースします。詳細な説明が、 ボリュームの複写 (読み取り専用ボリュームの作成) に示されています。

          % vos release <volume name or ID>

5. vos backup コマンドを発行して、ボリュームの新規バックアップ・バージョンを作成します。詳細は、バックアップ・ボリュームの作成 を参照してください

          % vos backup <volume name or ID>

## ボリュームの名前変更

vos rename コマンドを使用すると、ボリュームを名前変更することができます。たとえば、ユーザーのボリューム名に user.username 規則を使用し、ユーザー名を変更する場合、ユーザーのホーム・ボリュームの名前を変更することが適切です (ユーザー名の変更についての詳細は、ユーザー名の変更 を参照してください)。

vos rename コマンドは、読み取り / 書き込みボリューム名のみを受け入れますが、関連した読み取り専用ボリュームおよびバックアップ・ボリュームを自動的に変更します。次の指示に従って、ボリュームの現行のマウント・ポイントを、名前変更を反映する新規のマウント・ポイントに置き換えなければなりません。

### ボリュームの名前変更

1. ユーザーが、/usr/afs/etc/UserList ファイルにリストされているかどうかを検証します。必要な場合には、bos listusers コマンドを発行します。このコマンドについては、UserList ファイルのユーザーの表示で詳しく説明しています。

          % bos listusers <machine name>

2. ボリュームのマウント・ポイントを置き換えるディレクトリーについて a (管理者)、d (削除)、および i (挿入) アクセス権限があることを検証します。必要に応じて、fs listacl コマンドを発行します。これについては、 ACL の表示 で詳しく説明しています。

          % fs listacl [<dir/file path>]

   system:administrators グループのメンバーは、a (管理)、および、デフォルトで l (検索) アクセス権を、常にすべての ACL に暗黙的に持っています。また、必要に応じて fs setacl コマンドを使用して、他の権限を付与することができます。

3. vos rename コマンドを発行し、ボリュームの名前を変更します。

          % vos rename <old volume name> <new volume name>

   ここで、

   ren
     rename の最も短い受け入れ可能な省略形です。

   old volume name
     読み取り / 書き込みボリュームの現行名です。

   new volume name
     ボリュームに対する新規の名前です。長さは、22 文字以内でなければなりません。

   指定された現行のボリューム名に対してボリューム・ロケーション・データベース (VLDB) 項目がない場合、コマンドは失敗して、次のエラー・メッセージが表示されます。

          vos: Could not find entry for volume old_volume_name.

4. fs rmmount コマンドを発行し、ボリュームの古い名前に関連するマウント・ポイントを除去します。詳細は、 マウント・ポイントを除去する方法 を参照してください。

          % fs rmmount <directory>

5. fs mkmount コマンドを発行して、ボリュームの新規名を示すマウント・ポイントを作成します。詳細は、正規または読み取り / 書き込みの各マウント・ポイントの作成 を参照してください。

          % fs mkmount <directory> <volume name> [-rw]

## VLDB 項目のロック解除およびロック

VLDB およびボリューム・ヘッダーの同期化 で説明するとおり、ボリューム・ロケーション (VL)・サーバーは、ボリューム・サーバーが VL サーバー上で操作を実行する前に、ボリュームのボリューム・ロケーション・データベース (VLDB) 項目をロックします。それ以外の操作は、ロックされた VLDB 項目を持つボリュームに影響を及ぼすことができないため、ロックすることによって、ボリューム上の複数の同時操作が原因で生じる不整合または破壊を防ぐことができます。

VLDB 項目がロックされているかどうかを検査するには、 VLDB 項目の表示 の説明に従って、 vos listvldb コマンドを発行します。コマンドは、ロックされた項目だけを表示する -locked フラグを保持します。 VLDB 項目がロックされている場合、ストリング `Volume is currently LOCKED` がボリュームの出力の最終行に表示されます。

VLDB 項目を自分でロックする場合は、vos lock コマンドを使用します。これは、ボリュームに何か異常があることに気が付き、その原因の調査中にそれに変更が加えられないようにしたい場合に有効です。

ロックした VLDB 項目のロックを解除するには、単一の VLDB 項目のロックを解除する vos unlock コマンドを発行するか、または、多くの項目のロック解除ができる vos unlockvldb コマンドを発行します。これは、ボリューム操作が早期に失敗し、VLDB 項目をロックしたまま残される場合に有効です。この場合、障害によって起こる問題を訂正することはできません。

### VLDB 項目をロックする方法

1. ユーザーが、/usr/afs/etc/UserList ファイルにリストされているかどうかを検証します。必要な場合には、bos listusers コマンドを発行します。このコマンドについては、UserList ファイルのユーザーの表示で詳しく説明しています。

          % bos listusers <machine name>

2. vos lock コマンドを発行して、項目をロックします。

          % vos lock <volume name or ID>

   ここで、

   lo
     は、lock の受け入れ可能な省略形です。

   volume name or ID
     ロックされるボリュームを、その完全名またはボリューム ID 番号によって識別します。ボリュームの 3 つのバージョンのいずれかとすることができます。

### 単一の VLDB 項目をロックを解除する

1. ユーザーが、/usr/afs/etc/UserList ファイルにリストされているかどうかを検証します。必要な場合には、bos listusers コマンドを発行します。このコマンドについては、UserList ファイルのユーザーの表示で詳しく説明しています。

          % bos listusers <machine name>

2. vos unlock コマンドを発行して、項目をロック解除します。

          % vos unlock <volume name or ID>

   ここで、

   unlock
     完全な形式で入力する必要があります。

   volume name or ID
     アンロック状態のボリュームを、その完全名またはボリューム ID 番号によって識別します。ボリュームの 3 つのバージョンのいずれかとすることができます。

### 複数の VLDB 項目のロック解除

1. ユーザーが、/usr/afs/etc/UserList ファイルにリストされているかどうかを検証します。必要な場合には、bos listusers コマンドを発行します。このコマンドについては、UserList ファイルのユーザーの表示で詳しく説明しています。

          % bos listusers <machine name>

2. vos unlockvldb コマンドを発行して、任意の項目のロックを解除します。

          % vos unlockvldb [<machine name>] [<partition name>]

   ここで、

   unlockv
     は、unlockvldb の受け入れ可能な省略形です。

   machine name
     ファイル・サーバー・マシンを指定します。サイト定義でマシンに言及するすべての VLDB項目をロック解除するためには、この引き数のみを使用します。すべての VLDB 項目のロックを解除するには、この引き数および partition name 引き数の両方を省略します。

   partition name
     パーティションを指定します。サイト定義でパーティション (マシン上の) に言及するすべての VLDB 項目をロック解除するためには、この引き数のみを使用します。すべての VLDB 項目のロックを解除するには、この引き数および machine name 引き数の両方を省略します。

[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]

(C) IBM Corporation 2000. All Rights Reserved