この章では、ファイル・サーバー・マシンに保管されているボリュームを管理する方法について説明します。このボリュームは、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 効率性を向上させる方法 を参照してください。
AFS には、以下に示す 3 つのタイプのボリュームがあります。
このバージョンは、読み取り / 書き込みソース と呼ばれます。 複製と呼ばれるコピー手順によって別の 2 つのタイプのボリュームが、そこから派生するからです。読み取り / 書き込みボリュームの作成に関する説明は、読み取り / 書き込みボリュームの作成 を参照してください
複数のサイトに同じデータを配置することは、複写と呼ばれます。詳細は、ボリュームを使用して AFS 効率性を向上させる方法 を参照してください。名前のとおり、読み取り専用ボリュームの内容は、読み取り / 書き込みソースが変更されるときに自動的に変更されませんが、管理者が vos release コマンドを発行するときのみ変更されます。 AFS ファイル・スペースの一貫したビューを保持するには、読み取り専用ボリュームのすべてのコピーがお互いに一致、かつ、それらの読み取り / 書き込みソースと一致しなければなりません。すべての読み取り専用ボリュームは、読み取り / 書き込みソースの名前に .readonly の拡張子が付いた同じ名前を共用します。読み取り専用ボリュームの作成に関する説明は、ボリュームの複写 (読み取り専用ボリュームの作成) を参照してください。
バックアップ・バージョンは、特定の時間の読み取り / 書き込みソースの状態を記録します。これは、間違って変更または削除したデータを回復することができるため便利です (詳細は、ボリュームを使用して AFS 効率性を向上させる方法 を参照してください)。バックアップ・ボリューム名は、読み取り / 書き込みソースの名前に .backup 拡張子を付けたものです。バックアップ・ボリュームの作成に関する説明は、バックアップ・ボリュームの作成 を参照してください。
注: | 通常、ボリュームのバックアップ・バージョンの作成は、ボリュームをテープにバックアップするプロセスのステージの 1 つですが、バックアップ・ボリュームは、AFS バックアップ・システムを使用してテープに転送されるボリュームのバックアップと同じではありません。 AFS バックアップ・システムを使用したボリュームのバックアップについては、データのバックアップ を参照してください。 |
既述のとおり、3 つのタイプのボリュームは互いに関連しています。読み取り専用およびバックアップのボリュームは、どちらも複製という処理を介して読み取り / 書き込みボリュームから派生しています。作成時点での読み取り専用およびバックアップのボリュームは、読み取り / 書き込みソースの同一コピーです。
ボリュームを使用して、セルの管理を容易にし、効率的にするには、次の 3 つの方法があります。
おそらく、ボリュームを移動させる最も一般的な理由は、ファイル・サーバー・マシンの間でのロードのバランスを取るためか、または、特定のマシン上でより大きなディスク容量を利用するためだと思われます。移動過程によって数秒の間だけボリュームの内容は使用不能になるため、ユーザーが内容にアクセスするのを中断させることなく、必要なだけ何度もボリュームを移動させることができます。ボリューム・ロケーション・データベース (VLDB) 内のボリューム・ロケーションの自動トラッキング機能により、アクセスは透過的のまま残ります。ボリュームの移動に関する説明は、 ボリュームの移動 を参照してください。
複写 とは、読み取り / 書き込みソースから読み取り専用の複製を作成すること、および 1 つまたはそれ以上のサイトへ複製を配布することを指します。複写によって、一般的なファイルに対する要求を複数のマシンによって埋めることができるため、システム効率が向上します。また、複写によって、マシンやサーバー・プロセスの障害が起きた場合にもデータを使用可能にしておけるため、システムの信頼性も高まります。通常、あまり変更しない一般的なアプリケーション・プログラムおよび他のファイルを含むボリュームが複製には最適な候補ですが、どの読み取り / 書き込みボリュームでも複製することができます。 ボリュームの複写 (読み取り専用ボリュームの作成) を参照してください。
バックアップ・ボリューム・バージョンを作成すると、指定時間に読み取り / 書き込みソース・ボリュームの状態を保存することができます。 AFS ファイル・スペースにバックアップ・バージョンを取り付けると、ユーザーは管理者の援助なしで誤って変更または削除したデータを復元することができ、これによってより重要なジョブを実行する余裕ができます。 1 日に 1 回ユーザー・ボリュームの新規バックアップ・バージョンを作成する (おそらく以前のバックアップに上書きする) 場合、ユーザーは常に前日のバージョンのファイルを検索することができます。これについての詳細は、バックアップ・ボリュームの作成 を参照してください。
バックアップはまた、AFS バックアップ・システムを使用して、テープ上または特別なバックアップ・データ内にボリュームの内容の永久版を保存する場合にも当てはまります。 AFS バックアップ・システムの構成 および AFS データのバックアップと復元を参照してください。
ボリューム・ロケーション・データベース (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 内のボリューム位置情報が誤っていると、キャッシュ・マネージャーはその内容が見つけられずアクセスできません。ボリュームの状況を変更する 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 コマンドを発行したら、その名前が埋められます。この名前はマウント・ポイント名と一致します。ボリューム・ヘッダーには、以下のものも記録されます。
作成後に割り当て量を変更するには、ボリューム割り当て量および現行サイズの設定および表示 で説明する fs setquota コマンドを使用します。
% bos listusers <machine name>
% fs listacl [<dir/file path>]
system:administrators グループのメンバーは、a (管理)、および、デフォルトで l (検索) アクセス権を、常にすべての ACL に暗黙的に持っています。また、必要に応じて fs setacl コマンドを使用して、他の権限を付与することができます。
注: | このコマンドの出力に含まれる区画関連の統計は、標準 UNIX の df コマンドの出力に含まれる対応する値と常に一致するとは限りません。キャッシュ・マネージャーは 5 分間隔でファイル・マネージャーをポーリングして区画情報を得るので、このコマンドによって報告される統計は 5 分前のものである可能性があります。また、オペレーティング・システムによっては、df コマンドの区画サイズ報告には、このコマンドによる計算には含まれない予約済みのスペースが含まれるので、約 10% 大きくなることがあります。 |
% vos partinfo <machine name> [<partition name>]
ここで、
% vos create <machine name> <partition name> <volume name> \ [-maxquota <initial quota (KB)>]
ここで、
% fs mkmount <directory> <volume name>
% fs lsmount <directory>
% fs setvol <dir/file path> -offlinemsg <offline message>
ここで、
マウント・ポイントへの読み取り / 書き込みパスを指定し、読み取りボリュームの変更時に生じる障害を回避してください。通例、読み取り / 書き込みパスを指定するには、パス名の第 2 レベルのセル名の前にピリオドを挿入します (たとえば /afs/.abc.com)。ファイル・スペースにおける読み取り / 書き込みおよび読み取り専用パスの概念の詳細は、マウント・ポイント横断の規則 を参照してください。
バックアップまたは読み取り専用のボリュームを作成するには、ボリューム・サーバーは、まず、読み取り / 書き込みソース・ファイルを 複製して、 複製 を作成します。ボリューム・サーバーは、ユーザーが vos backup または vos backupsys の各コマンド (バックアップ・ボリューム用)、もしくは vos release コマンド (読み取り専用ボリューム用) を発行するときに自動的に複製を作成します。ユーザー側では特別な処置は必要ありません。
複製は、読み取り / 書き込みソース・ボリューム内のデータのコピーではなく、読み取り / 書き込みボリュームの vnode インデックス のコピーです。 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 サーバーは、ボリューム・サーバーの操作と調和して、以下のようにフラグを設定します。
デフォルトでは、ボリューム・サーバーは、新規の ReleaseClone を作成する必要があるかどうかを、以下のように自動的に判別します。
デフォルトの動作を上書きして、ボリューム・サーバーに強制的に新規の ReleaseClone を作成させ、読み取り専用サイトへリリースさせるには、-f フラグを組み込みます。これは、たとえば、直前の操作で既存の ReleaseClone が作成されてから、読み取り / 書き込みサイトのデータが変更された場合などに適します。
最も効率を高めるためには、以下の 2 つの基準を満たすボリュームのみを複製します。
明示的に読み取り専用ボリュームを取り付ける (.readonly 拡張子の付いたボリュームのマウント・ポイントを作成する) ことは、普通は不要であり適当ではありません。キャッシュ・マネージャーには、可能な場合にいつでも複製したボリュームの読み取り専用バージョンにアクセスできる組み込まれたバイアスがあります。 マウント・ポイント横断の規則 で説明するとおり、キャッシュ・マネージャーはマウント・ポイントに出会うとその中のボリューム名を読み取り、そのボリュームを収納するサイトのリストを求めて VL サーバーと交信します。通常、マウント・ポイントが読み取り専用ボリューム内に常駐し読み取り / 書き込みボリュームを指定すると (.readonly または .backup の拡張子の付かない名前)、キャッシュ・マネージャーは常に、そのボリュームの読み取り専用コピーにアクセスしようと試みます。このため、普通、読み取り専用ボリュームにアクセスするために、キャッシュ・マネージャーを明示的にそのボリュームを取り付けるよう強制しなければならない理由はありません。
次にあげるいくつかの理由で、読み取り専用ボリュームを読み取り / 書き込みサイトに配置することは有益です。まず、読み取り / 書き込みサイトの読み取り専用ボリュームは、すべてのデータのコピーではなく 1 つの複製であるため、ディスク・スペースを少ししか必要としません (複製について を参照)。読み取り / 書き込みボリューム内で多数のファイルが削除され変更された場合にのみ、読み取り専用コピーは多くのディスク・スペースをとります。しかし、複写した読み取り / 書き込みボリューム内に変更を行う場合は、それを再複製することが適切な処置であるため、こういうケースはあまり起こりません。読み取り専用ボリュームを読み取り / 書き込みサイトに配置するもう 1 つの理由は、すべての読み取り専用コピーがアクセス不能になった場合に、キャッシュ・マネージャーは、複写したボリュームの読み取り / 書き込みバージョンにアクセスしようと試みないからです。読み取り / 書き込みボリュームを収納しているファイル・サーバー・マシンが唯一のアクセス可能マシンである場合、キャッシュ・マネージャーは、読み取り / 書き込みサイトに読み取り専用コピーがある場合にのみ、データにアクセスすることができます。
定義する読み取り専用サイト数は、いくつかの要因によって決まります。おそらく、主なトレードオフは、ボリューム内容の要求レベルと、ボリュームの複数のコピー用に使用しようとしているディスク・スペースの量との間にあります。もちろん、定義しようとする読み取り専用サイトにはそれぞれ、ボリュームを収納するために使用できる十分なスペースがなければなりません。ボリュームの読み取り専用コピーの制限数は、 AFS Release Notes で定義されるボリュームの VLDB 項目内のサイト定義最大数によって決まります。ボリュームの読み取り / 書き込みおよびバックアップのバージョンを収容するサイトは 1 つのサイトとして数えられ、読み取り専用サイトはそれぞれが追加のサイトとして数えられます (読み取り / 書き込みサイトと同じファイル・サーバー・マシンおよびパーティション上に定義された読み取り専用サイトでも別々のサイトとして数えます)。また、ボリューム・サーバーは、ファイル・サーバー・マシンごとにボリュームの読み取り専用コピーを 1 つしか許可しないということに注意してください。
次のセクションでは、読み取り専用サイトが現在定義されていないボリュームを複写する方法について説明します。しかし、その他の共通な場合にもこの説明を使用できます。
% bos listusers <machine name>
% vos examine <volume name or ID>
出力の最終行は、VLDB からのボリュームのサイト定義を表示します。
ファイル・サーバー・マシンのパーティション上で使用可能なスペース容量を表示するには、 vos partinfo コマンドを使用します。このコマンドの完全な説明は、読み取り / 書き込みボリュームの作成 を参照してください。
% vos partinfo <machine name> [<partition name>]
% vos addsite <machine name> <partition name> <volume name or ID>
ここで、
% bos status <machine name> fs vlserver
% vos release <volume name or ID> [-f]
ここで、
% vos examine <volume name or ID>
6 のステップからの出力にフラグが表示される場合、ボリューム・サーバーがリリース操作中にエラー・メッセージを出さなくなり、フラグが表示されなくなるまで、 4 のステップおよび 5 を繰り返します。ネットワーク、マシン、またはサーバー・プロセス障害のために、読み取り / 書き込みサイトまたは読み取り専用サイトがアクセス不能だと分かっている場合には、 vos release コマンドを発行しないでください。
バックアップ・ボリュームは、読み取り / 書き込みソースと同じサイトに常駐する複製です (複製の概念については、 複製について を参照)。ボリュームのバックアップ・バージョンを作成することには、次の 2 つの目的があります。
vos backupsys コマンドにより、多数の読み取り / 書き込みボリュームのバックアップ・バージョンが一度に作成できます。このコマンドは、 AFS バックアップ・システムを使用してテープに記録する大規模なバックアップを準備する場合に役立ちます。
VLDB にリストされた読み取り / 書き込みボリュームを複製するには、すべてのコマンド・オプションを省略してください。また、さまざまなグループのボリュームを複製するには、コマンド・オプションを結合してください。オプションでは、ボリュームを選択するために 2 つある基本的基準のうちの 1 つを使用します。つまり、ロケーション (-server および -partition引き数)、または指定文字ストリングのセットのうちの 1 つの指定文字ストリングによるボリューム名の表示 (-prefix、-exclude、および -xprefix オプション)です。
1 つのファイル・サーバー・マシン上にあるボリュームのみを複製するには、-server 引き数を組み込みます。1 つのパーティション上にあるボリュームのみを複製するには、-server および -partition 引き数を組み合わせます。また、-partition 引き数だけを使用して、すべてのファイル・サーバー・マシン上の指示されたパーティションに常駐するボリュームを複製することもできます。これらの引き数は、名前に基づいてボリュームを選択する引き数と結合することができます。
名前に含まれる文字ストリングに基づいてボリュームを選択するには、以下に指示する方法で -prefix、 -exclude、および -xprefix の各オプション (-server および -partition 引き数を使用または不使用) を結合します。
-exclude フラグが -prefix および -xprefix 引き数と結合する場合、コマンドは、-prefix 引き数と一致しないすべてのボリュームのリストを作成し、そのリストに -xprefix 引き数と一致するすべてのボリュームを追加します。 -exclude フラグが使用されていない場合、結果は、 -xprefix 引き数によって指定されるストリングが、 -prefix 引き数によって指定されるボリュームのサブセットを指定している場合にのみ有効です。
-prefix および -xprefix の引き数は両方とも、複数の値を受け入れます。これらの値は、互いに共通元を持たないボリュームのグループを定義するために使用できます。それぞれの値は、以下の 2 つのタイプのうちのいずれかです。
-prefix '^.*aix'
実際には複製を行わずに、複製するボリュームのリストを表示するには、 -dryrun フラグを組み込みます。ボリューム選択の際に使用されている基準の要約文を表示するには、 -verbose フラグを組み込みます。
単一のボリュームをバックアップするには、単一のボリュームを検索するためにさらに高い能率の技法を用いる vos backupコマンドを使用します。
ほとんどのセルにとって、関連ボリュームの新規のバックアップ・バージョンを毎日作成することが最適の方法です。バックアップ・バージョンの作成には、使用頻度が少ないときが最適です。これは、バックアップ操作によって、読み取り / 書き込みボリュームが一時的に使用不可になるためです。
必要な vos backupsys または vos backup コマンドをコンソールで発行するか、ファイル・サーバー上の BosConfig ファイルに cron 項目を作成することができます。これによって、管理者はバックアップ操作を開始する必要がなくなります。
次のコマンド例では、 backupusers というcron プロセスを、 fs3.abc.com マシン上の /usr/afs/local/BosConfig ファイルに作成します。このプロセスは、毎日午前 1 時に実行され、 user というストリングで始まる名前が付いたセルに、すべてのボリュームのバックアップ・バージョンが作成されます。 -localauth フラグによって、未認証でもプロセスは特権の vos backupsys コマンドを呼び出すことができます。 -cmd 引き数には、 vos バイナリー用の完全なパス名を指定することに注意してください。これは、BOS サーバー (ローカルなスーパーユーザー root として稼働) の PATH 環境変数に、通常 AFS バイナリーへのパスが含まれないためです。
% bos create fs3.abc.com backupusers cron \ -cmd "/usr/afs/bin/vos backupsys -prefix user -localauth" "1:00"
既述のとおり、バックアップ・ボリュームは、その作成時における読み取り / 書き込みソースの状態を保存します。多くのセルはバックアップ・ボリュームの取り付けを選択します。これによって、管理者からヘルプを要求しなくても、最終バックアップを作成してから誤って削除または変更したデータにもアクセスでき、それを復元することができます。ユーザー・ボリュームのバックアップ・バージョンを取り付ける最も正しい位置は、ユーザーのホーム・ディレクトリーのサブディレクトリーです。このディレクトリーに対する適切な名前は、OldFiles および Backup などです。サブディレクトリーは、バックアップが作成された時点で、同じ相対的位置にすべてのファイルおよびサブディレクトリーを持つユーザーのホーム・ディレクトリーのように見えます。
ユーザーのバックアップ・ボリュームを作成して取り付ける場合、その存在をユーザーに知らせます。バックアップ・ボリュームを使用可能にするかどうかはオプションであるため、 AFS 使用者の手引き では、バックアップ・ボリュームについて記載していません。新規のバックアップを作成する頻度をユーザーに説明して、回復できる範囲が分かるようにします。また、バックアップ・ボリュームのデータが変更できないことについても念を押しておく必要があります。ただし、標準 UNIX cp コマンドを使用してデータをホーム・ボリュームにコピーして、そこで変更することは可能です。また、バックアップ・ボリュームのデータが、読み取り / 書き込みボリューム割り当て量に不利に作用したりしないことを、ユーザーに再度確認します。
% bos listusers <machine name>
% fs listacl [<dir/file path>]
system:administrators グループのメンバーは、a (管理)、および、デフォルトで l (検索) アクセス権を、常にすべての ACL に暗黙的に持っています。また、必要に応じて fs setacl コマンドを使用して、他の権限を付与することができます。
% vos backup <volume name or ID> Created backup volume for volume name or ID
ここで、
% fs mkmount <directory> <volume name>.backup
ここで、
% fs lsmount <directory>
% bos listusers <machine name>
% vos backupsys [-prefix < common prefix on volume(s)>+] \ [-server <machine name>] [-partition <partition name>] \ [-exclude] [-xprefix < negative prefix on volume(s)>+] [-dryrun] [-verbose]
ここで、
ボリュームの取り付けについて で説明するとおり、マウント・ポイントによって、 AFS ファイル・スペース内で AFS ボリュームの内容が見え、アクセス可能になります。このセクションでは、キャッシュ・マネージャーがファイル・スペースを横断するときのマウント・ポイントの取扱方法について詳しく説明します。このセクションには、3 つのタイプのマウント・ポイントについての説明、それらの目的と識別方法、およびマウント・ポイントの作成、除去、検査に関する指示が含まれています。
キャッシュ・マネージャーは、次の 3 つの基本規則を守りながら AFS ファイル・スペースを走査し、マウント・ポイントに遭遇します。
キャッシュ・マネージャーは、.readonly または .backup 拡張子が付いたボリュームを指定するマウント・ポイントに出会うと、そのタイプのボリュームにのみアクセスします。マウント・ポイントに .backup または .readonly 拡張子が付いている場合、キャッシュ・マネージャーは規則 2 および 3 を使用します。
たとえば、マウント・ポイントがバックアップ・バージョンを指定している場合は、キャッシュ・マネージャーは読み取り / 書き込みバージョンにアクセスすることはありません。指定されたバージョンがアクセス不能の場合、キャッシュ・マネージャーはエラーを報告します。
マウント・ポイントが読み取り専用ボリュームに常駐し、そのマウント・ポイントが参照するボリュームが複写されている場合、キャッシュ・マネージャーはそのボリュームの読み取り専用コピーにアクセスしようとします。参照されたボリュームが複写されていない場合は、キャッシュ・マネージャーは読み取り / 書き込みコピーにアクセスします。したがってキャッシュ・マネージャーは、ファイル・スペースでは読み取り専用パス を優先するといわれ、読み取り専用ボリュームが使用可能であれば、それにアクセスします。
キャッシュ・マネージャーはまず最初に読み取り専用パスからスタートします。それは、キャッシュ・マネージャーは常に root.afs ボリュームの読み取り専用のコピーが存在する場合はそれにアクセスするからです。このボリュームはセルの AFS ファイル・スペースのルート (通例 /afs という名前) に取り付けられます。すなわち、root.afs ボリュームが複写されていると、キャッシュ・マネージャーは、読み取り / 書き込みコピーではなく、読み取り専用コピーにアクセスしようとします。したがって、この規則は、各ボリュームが続けて複写される限り、キャッシュ・マネージャーを読み取り専用パスに保持します。これが言外に意味するところは、root.afs および root.cell ボリュームは、AFS ファイル・スペースのそれらのボリュームの下にマウントされた複写されたボリュームにキャッシュ・マネージャーがアクセスするためには、複写されなければならないということです。ボリュームは /afs および /afs/cellname ディレクトリーにそれぞれマウントされるのが通例です。
マウント・ポイントが読み取り / 書き込みボリュームに常駐し、ボリューム名が .readonly または .backup 拡張子を持っていない場合、キャッシュ・マネージャーは、そのボリュームの読み取り / 書き込みバージョンだけにアクセスしようとします。読み取り / 書き込みバージョンがアクセス不可の場合、読み取り専用バージョンがたとえアクセス可能であっても、そのアクセス試行は失敗し、エラーが発生します。このような状態の場合、キャッシュ・マネージャーは読み取り / 書き込みパス上にいるといわれ、マウント・ポイントが明示的に .readonly 拡張子を持つボリュームを指定しない限り、読み取り専用パスに切り換わることはできません。 (セルラー・マウント・ポイントは、この規則の重要な例外です。これについては以下で説明します。)
AFS は、キャッシュ・マネージャーのマウント・ポイントの取扱方法に応じて、目的別に適切な 3 つのタイプマウント・ポイントを使用します。
AFS は、ファイル・スペース内のマウント・ポイントの大部分が正規である場合に、最大の力を発揮します。これは、マウント・ポイント横断規則によって、複写および非複写のボリューム双方が最大限に使用されるためです。 1 つの複写ボリュームに複数の読み取り専用コピーが存在する可能性があるため、キャッシュ・マネージャーが単一の読み取り / 書き込みバージョンよりも読み取り専用コピーの 1 つにアクセスすることは意味がとおります。そして、第 2 の規則でこれを実行します。ボリュームが複写されておらず、使用可能なタイプが読み取り / 書き込みボリュームただ 1 つである場合は、第 3 の規則により、キャッシュ・マネージャーはそのボリュームにアクセスします。言い換えると、正規マウント・ポイントは、キャッシュ・マネージャーに、読み取り専用ボリュームにアクセスするようにいつも強制するわけではありません (これは明示的に「読み取り専用マウント・ポイント」ではありません)。
正規マウント・ポイントを作成するには、 正規または読み取り / 書き込みの各マウント・ポイントの作成 の説明に従って、 fs mkmount コマンドを使用してください。
注: | 正規マウント・ポイントが指名する複写ボリュームの読み取り専用バージョンに、キャッシュ・マネージャーがアクセスできるようにするためには、パス名でそのポイントより上に取り付けられるすべてのボリュームも複写されていなければなりません。これは、キャッシュ・マネージャーが、ターゲットのボリュームへの読み取り専用パス上に残ることができる唯一の方法です。 |
規則として、セルのファイル・スペースごとにただ 1 つの読み取り / 書き込みマウント・ポイントを作成します。このマウント・ポイントを使用して、 AFS ファイル・スペースのルート (規則では /afs/.cellname) のすぐ下に、そのセルの root.cell ボリュームを取り付けます。示されるとおり、読み取り / 書き込みマウント・ポイント名の先頭にピリオドを付けることが規則です (たとえば、/afs/.abc.com)。ピリオドによって、読み取り / 書き込みマウント・ポイントを、同じレベルにある root.cell ボリューム用の正規マウント・ポイントと区別します。これは、同じボリューム用に 2 つのマウント・ポイントを作成するのが規則である唯一の場合です。読み取り / 書き込みマウント・ポイント用のこの命名規則の望ましい副次作用は、 -a フラグが含まれていない場合には UNIX ls コマンドの出力内に表示されず、これを必要としない正規ユーザーから本質的に隠すということです。
ファイル・スペースでのこのポイントに単一の読み取り / 書き込みマウント・ポイントが存在することによって、必要な場合にはすべてのボリュームの読み取り / 書き込みバージョンへのアクセスが提供されます。これは、そのマウント・ポイントがキャッシュ・マネージャーをファイル・スペース上部の読み取り / 書き込みパス上に置くためです。同様に、root.cell ボリュームの正規マウント・ポイントは、大抵の時間キャッシュ・マネージャーを読み取り専用パス上に置きます。
読み取り専用またはバックアップのボリューム用に読み取り / 書き込みマウント・ポイントを使用することは受け入れられますが、必要ではありません。マウント・ポイント横断規則の第 1 の規則では、正規のマウント・ポイント内のボリューム名に .readonly または .backup 拡張子が付く場合は、キャッシュ・マネージャーはそれらにアクセスするように指定されています。
読み取り / 書き込みマウント・ポイントを作成するには、正規または読み取り / 書き込みの各マウント・ポイントの作成で説明する fs mkmount コマンド上で -rw フラグを使用します。
この振る舞いを回避するために、読み取り / 書き込みセルラー・マウント・ポイントを作成することは適切でありません。これは、読み取り / 書き込みパスを横断すると外部セルのファイル・サーバー・マシン上に不公平なロードがかかるためです。つまり、ファイル・サーバーは、読み取り専用ボリュームに必要となる単一のコールバックではなく、読み取り / 書き込みボリュームから取り出したファイルごとにコールバックを発行する必要があります。どのような場合でも、通常、セルの固有の管理者だけが複写ボリュームの読み取り / 書き込みバージョンにアクセスする必要があります。
規則として、セルのファイル・スペース内の第 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 引き数は、マウント・ポイントを作成するためのセルではなく、ボリュームが常駐するセルを常に指定します。
% fs lsmount <directory>
ここで、
指定したディレクトリーがマウント・ポイントである場合は、以下の形式で出力されます。
'directory' is a mount point for volume 'volume name'
正規マウント・ポイントの場合は、以下のコマンド例のように、 volume name ストリングの前に番号記号 (#) が表示されます。以下は、abc.com セル内のクライアント・マシン上で発行されたコマンド例です。
% fs lsmount /afs/abc.com/usr/terry '/afs/abc.com/usr/terry' is a mount point for volume '#user.terry'
読み取り / 書き込みマウント・ポイントの場合は、以下のコマンド例のように、 volume name ストリングの前にパーセント記号 (%) が表示されます。以下は、abc.com セル内のクライアント・マシン上で発行されたコマンド例です。セルの管理者は、読み取り / 書き込みマウント・ポイント名の前にピリオドを置く規則に従っています。
% fs lsmount /afs/.abc.com '/afs/.abc.com' is a mount point for volume '%root.cell'
セルラー・マウント・ポイントの場合は、セル名およびコロン (:) が、番号記号またはパーセント記号の後、かつ、 volume name ストリングの前に置かれます。以下は、 abc.com セル内のクライアント・マシン上で発行されたコマンド例です。
% fs lsmount /afs/ghi.gov '/afs/ghi.gov' is a mount point for volume '#ghi.gov:root.cell'
マウント・ポイントへつながる記号リンクの場合、 abc.com セル内のクライアント・マシン上で発行された以下のコマンド例で示される形式で出力されます。
% fs lsmount /afs/abc '/afs/abc' is a symbolic link, leading to a mount point for volume '#root.cell'
ディレクトリーがマウント・ポイントではない、または AFS にない場合、その出力は以下のようになります。
'directory' is not a mount point.
出力が混同している場合は、マウント・ポイントがローカル・キャッシュ内で破壊された可能性があります。 1 つ以上のマウント・ポイントをフラッシュする を参照して、 fs flushmount コマンドを使用してください。これによって、キャッシュ・マネージャーはマウント・ポイントを再び取って来るよう強制されます。
% fs listacl [<dir/file path>]
% fs mkmount <directory> <volume name> [-rw]
ここで、
マウント・ポイントへの読み取り / 書き込みパスを指定します。こうすると、読み取り専用ボリューム内に新規マウント・ポイントを作成しようとする際に生じる障害を回避することができます。規則では、パス名の第 2 レベルでセル名の前にピリオドを置いて、読み取り / 書き込みパスを示します (たとえば、/afs/.abc.com)。読み取り / 書き込みパスおよび読み取り専用パスの概念についての詳細は、 マウント・ポイント横断の規則 を参照してください。
% fs listacl [<dir/file path>]
cellname に、ユーザーのセル名を代入します。
% cd /afs/.cellname % fs mkmount new_cells root.afs % cd new_cells
% fs mkmount <directory> <volume name> -cell <cell name>
ここで、
また、ローカル・キャッシュ・マネージャーに 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 コマンドを使用してその項目を直接そのカーネル・メモリーへ挿入してください。詳細は、データベース・サーバー・マシンの情報を保持する を参照してください。
% fs listacl [<dir/file path>]
system:administrators グループのメンバーは、a (管理)、および、デフォルトで l (検索) アクセス権を、常にすべての ACL に暗黙的に持っています。また、必要に応じて fs setacl コマンドを使用して、他の権限を付与することができます。
% fs rmmount <directory>
ここで、
マウント・ポイントへの読み取り / 書き込みパスを指定します。こうすると、読み取り専用ボリュームからマウント・ポイントを削除しようとする際に生じる障害を回避することができます。規則では、パス名の第 2 レベルでセル名の前にピリオドを置いて、読み取り / 書き込みパスを示します (たとえば、/afs/.abc.com)。読み取り / 書き込みパスおよび読み取り専用パスの概念についての詳細は、 マウント・ポイント横断の規則 を参照してください。
このセクションでは、ボリュームについての情報を表示する方法を説明します。ボリューム名またはボリューム ID 番号が分かる場合は、その VLDB 項目またはボリューム・ヘッダー、もしくはその両方を表示させるコマンドがあります。指定したファイルまたはディレクトリーを含むボリュームの名前または位置を表示するには、他のコマンドを使用します。
ボリューム割り当て量を表示させるには、ボリューム割り当て量および現行サイズの設定および表示 の詳細を参照してください。
vos listvldb コマンドは、提供する引き数の組み合わせによって示されたボリュームに対する VLDB 項目を表示します。最も包括的なものから、最も包括的でないものまでを含む可能性をここにリストします。
% vos listvldb [-name <volume name or ID>] [-server <machine name>] \ [-partition <partition name>] [-locked]
ここで、
各ボリュームの VLDB 項目には、以下の情報が含まれます。
New release および Old release フラグの詳細は、ボリュームの複写 (読み取り専用ボリュームの作成) を参照してください。
単一ボリュームに対するこのコマンドおよびその出力の例。
% vos listvldb user.terry user.terry RWrite: 50489902 Backup: 50489904 number of sites -> 1 server fs3.abc.com partition /vicepc RW Site
vos listvol コマンドは、ファイル・サーバー・マシン上の 1 つまたはすべてのパーティションにあるすべてのボリュームに対してボリューム・ヘッダーを表示します。 vos コマンド・インタープリターは、指定したマシン上のボリューム・サーバーから情報を入手します。 -fast、-long、または -extended フラグのうちの 1 つを組み込むことによって、表示する情報量を制御することができます。詳細は、以下の ボリューム・ヘッダーの表示 を参照してください。
1 つのボリュームだけの単一ボリュームのボリューム・ヘッダーを表示するには、1 つのボリュームの VLDB 項目およびボリューム・ヘッダーの表示 で説明する vos examineコマンドを使用します。
% vos listvol <machine name> [<partition name>] [-fast] [-long] [-extended]
ここで、
出力はボリューム名のアルファベット順に表示され、デフォルトで、以下の情報がボリュームごとに単一行に示されます。
直前にリストした情報ではなく以下のようなメッセージが表示される場合は、複製が作成中であるなどの理由で、ボリュームは、キャッシュ・マネージャーまたは vos コマンド・インタープリターにアクセスできません。
**** Volume volume_ID is busy ****
直前にリストした情報ではなく以下のようなメッセージが表示される場合は、ボリュームがひどく破壊されているなどの理由で、ファイル・サーバーはボリュームに接続することができません。ファイル・サーバー・マシンの /usr/afs/logs ディレクトリーの、 FileLog および VolserLog の各ログ・ファイルに追加情報がある場合があります。表示するには、bos getlog コマンドを使用します。
**** Could not attach volume volume_ID ****
(破壊ボリュームまたは未連結ボリュームをサルベージするための詳細は、 ボリュームのサルベージ を参照してください。)
固有ボリュームの情報は、要約行で一括されます。出力の最初の行では、リスト内にあるボリューム数を指定します。出力の最終行では、オンライン、オフライン、および使用中のボリューム数の一覧を表示します。これは、以下のように表示されます。
% vos listvol fs2.abc.com /vicepb Total number of volumes on server fs2.abc.com \ partition /vicepb: 66 sys 1969534847 RW 1582 K On-line sys.backup 1969535105 BK 1582 K On-line . . . . . . . . . . . . user.pat 1969534536 RW 17518 K On-line user.pat.backup 1969534538 BK 17537 K On-line Total volumes onLine 66 ; Total volumes offLine 0 ; Total busy 0
-fast フラグでの出力
-fast フラグを組み込むと、以下のように昇順に各ボリュームのボリューム ID 番号のみが表示されます。最終行 (オンライン、オフライン、および使用中ボリュームの一覧) は省略されます。
% vos listvol fs3.abc.com /vicepa -f Total number of volumes on server fs3.abc.com \ partition /vicepa: 37 50489902 50489904 . . 35970325 49732810
-long フラグを組み込むと、各ボリュームの出力には、デフォルトのリスト表示のすべての情報以外に以下の情報も含まれます。このリストの各アイテムは、別々の行に出力されます。
-long フラグが組み込まれた場合の出力例です。
% vos listvol fs2.abc.com b -long Total number of volumes on server fs2.abc.com partition /vicepb: 66 . . . . . . . . . . . . user.pat 1969534536 RW 17518 K On-line fs2.abc.com /vicepb RWrite 1969534536 ROnly 0 Backup 1969534538 MaxQuota 20000 K Creation Mon Jun 12 09:02:25 1989 Last Update Thu Jan 4 17:39:34 1990 1573 accesses in the past day (i.e., vnode references) user.pat.backup 1969534538 BK 17537 K On-line fs2.abc.com /vicepb RWrite 1969534536 ROnly 0 Backup 1969534538 MaxQuota 20000 K Creation Fri Jan 5 06:37:59 1990 Last Update Fri Jan 5 06:37:59 1990 0 accesses in the past day (i.e., vnode references) . . . . . . . . . . Total volumes onLine 66 ; Total volumes offLine 0 ; Total busy 0
-extended フラグを組み込むと、各ボリュームの出力には、 -long フラグで報告されたすべての情報に加えて、以下の 2 つの統計表も含まれます。
次は、-extended フラグが組み込まれた場合の出力例です。
% vos listvol fs3.abc.com a -extended common.bboards 1969535592 RW 23149 K used 9401 files On-line fs3.abc.com /vicepa RWrite 1969535592 ROnly 0 Backup 1969535594 MaxQuota 30000 K Creation Mon Mar 8 14:26:05 1999 Last Update Mon Apr 26 09:20:43 1999 11533 accesses in the past day (i.e., vnode references) Raw Read/Write Stats |-------------------------------------------| | Same Network | Diff Network | |----------|----------|----------|----------| | Total | Auth | Total | Auth | |----------|----------|----------|----------| Reads | 151 | 151 | 1092 | 1068 | Writes | 3 | 3 | 324 | 324 | |-------------------------------------------| Writes Affecting Authorship |-------------------------------------------| | File Authorship | Directory Authorship| |----------|----------|----------|----------| | Same | Diff | Same | Diff | |----------|----------|----------|----------| 0-60 sec | 92 | 0 | 100 | 4 | 1-10 min | 1 | 0 | 14 | 6 | 10min-1hr | 0 | 0 | 19 | 4 | 1hr-1day | 1 | 0 | 13 | 0 | 1day-1wk | 1 | 0 | 1 | 0 | > 1wk | 0 | 0 | 0 | 0 | |-------------------------------------------|
vos examine コマンドは、単一ボリュームに対する VLDB およびボリューム・ヘッダーの両方から情報を表示します。 VLDB およびボリューム・ヘッダーを比較できるようにする 2 つのソースからの情報には冗長度があります。
ボリュームのバージョン (読み取り / 書き込み、読み取り専用、およびバックアップ) ごとにボリューム・ヘッダーが異なるため、どれを表示するかを指定することができます。 volume name or ID 引き数に、適切に .readonly または .backup 拡張子を組み込みます。 VLDB からの情報は、3 つのどのバージョンでも同じです。
% vos examine <volume name or ID>
ここで、
出力リストのトップ部分は、 -long フラグを使用して vos listvol コマンドを発行するときと同じボリューム・ヘッダーからの情報を表示します。このコマンドについての詳細は、ボリューム・ヘッダーの表示 を参照してください。ボリュームの読み取り専用バージョンを指定し、それが複数のサイトで存在する場合、その出力にはそれらのすべてが含まれます。出力のボトム部分は、 vos listvldb コマンドを発行するときと同じ VLDB からの情報をリストします。このコマンドの詳細については、VLDB 項目の表示 を参照してください。
次は、VLDB 項目がロック状態になっているボリュームの例です。
% vos examine user.terry user.terry 536870981 RW 3459 K On-line fs3.abc.com /vicepa Write 5360870981 ROnly 0 Backup 536870983 MaxQuota 40000 K Creation Mon Jun 12 15:22:06 1989 Last Update Fri Jun 16 09:34:35 1989 5719 accesses in the past day (i.e., vnode references) RWrite: 5360870981 Backup: 536870983 number of sites -> 1 server fs3.abc.com partition /vicepa RW Site Volume is currently LOCKED
このセクションでは、ファイルやディレクトリーを含むボリュームの名前、ボリューム ID 番号、またはボリュームの位置を入手する方法について説明します。
また、ボリュームに関する 1 つの情報 (名前など) を使用して、そのボリュームのその他の情報 (位置など) を入手することもできます。以下に、関連情報をリストします。
ID 番号を提供してボリューム名を入手するコマンドを使用することもできます。
% fs listquota [<dir/file path>]
ここで、
次は、出力の例です。
% fs listquota /afs/abc.com/usr/terry Volume Name Quota Used % Used Partition user.terry 15000 5071 34% 86%
% fs examine [<dir/file path>]
ここで、
以下の例に、 vid フィールドにボリューム ID 番号が出力される形式を図示します。
% fs examine /afs/abc.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% 大きくなることがあります。 |
% fs whereis [<dir/file path>]
ここで、
出力では、以下のように、ファイルを含むボリュームを収容するファイル・サーバー・マシンが表示されます。
% fs whereis /afs/abc.com/user/terry File /afs/abc.com/usr/terry is on host fs2.abc.com
% 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 コマンドを発行します。
% bos listusers <machine name>
% vos move <volume name or ID> \ <machine name on source> <partition name on source > \ <machine name on destination> <partition name on destination>
ここで、
注: | ボリュームの一部がソースまたは移動先のマシンの両方に残される可能性があるため、 vos move 操作を完了前に停止させないことが大切です。詳細については、AFS Administration Reference のコマンドの解説ページを参照してください。 |
% vos listvldb <volume name or ID>
% vos backup <volume name or ID>
AFS は、ボリューム・ロケーション・データベース (VLDB) が定期的にボリュームの位置をトラックするため、透過的なファイル・アクセスを提供します。キャッシュ・マネージャーは、ファイルが必要な場合はボリューム・ロケーション (VL) サーバーと連絡をとります。すると、VL サーバーは VLDB を読み、そのファイルが含まれるボリュームの現行の位置を見つけます。したがって、VLDB は常に、ファイル・サーバー・マシン上のボリュームの状態を正確に反映する必要があります。ボリューム・サーバーおよび VL サーバーは、 vos オペレーション中にボリュームの状態が変更されると、自動的にボリュームの VLDB 項目を更新します。これには、以下の一連のステップを実行します。
ボリューム・サーバーがボリュームを操作している際に、 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 コマンドを実行します。
以下に、ボリューム操作が失敗したことを示すいくつかの症状を示します。
ボリュームの唯一の問題が、VLDB 項目がロックされていることである場合は、おそらく VLDB 全体を同期化する必要はありません。 vos unlock または vos unlockvldbコマンドを代わりに使用します。このコマンドについての詳細は、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 内の誤った情報を変更します。この場合、代わりに、標準エラー・ストリームへメッセージを書き込みます。コマンドによって、サイトからボリュームが取り除かれることはありません。
% bos listusers <machine name>
注: | VLDB を完全に同期化するには、 3 のステップに進む前にコマンドを繰り返し発行し、セル内の各ファイル・サーバー・マシンを順番に -server 引き数の代わりに用いて、 -partition および -volume 引き数を省略します。 |
% vos syncvldb -server <machine name> [-partition <partition name>] [-volume <volume name or ID>] [-verbose >> file]
ここで、
注: | VLDB を完全に同期化するには、繰り返しコマンドを発行し、セル内の各ファイル・サーバー・マシンを machine name 引き数の代わりに順番に用いて、 partition name 引き数を省略します。 |
% vos syncserv <machine name> [<partition name>] [-v >> file]
ここで、
ボリューム・サーバーまたはファイル・サーバーがボリューム内のデータを操作しているときに予期しない中断が生じた場合、 VLDB およびボリューム・ヘッダー間で矛盾が発生するだけではなく、ボリュームは中間状態 (破壊) のまま残される可能性があります。たとえば、ファイルへの変更を保管する操作の失敗 (古いデータを新規のデータで上書きした場合) は、古いデータおよび新規のデータをディスク上で混合した状態で残す可能性があります。
ボリューム・サーバーまたはファイル・サーバーが予期せずに終了したために操作が停止されると、 BOS サーバーは、自動的に fs プロセスのすべてのコンポーネントをシャットダウンし、サルベージャーを起動します。サルベージャーは矛盾をチェックし、修正できるものは修正します。ただし、問題が発生する程度の深刻さはあっても、ファイル・サーバー・コンポーネントに障害を起こすほどではない破壊を示す症状があります。この場合、サルベージャーを bos salvage コマンドを発行することによって自分で起動することができます。
考えられる原因: ボリューム・サーバーまたはファイル・サーバーがファイル作成操作の途中 (ディレクトリー構造の変更後で、実際にデータを保管する前) で終了しました。 (その他の考えられる理由としては、ディレクトリー上の ACL が、ファイルにアクセスするために必要なアクセス権を許可していない、もしくは、プロセス、マシン、またはネットワークの障害があります。ファイルが破壊されていると思う前に、これらの原因を検査してください。)
サルベージャーによる解決 ディレクトリー構造からファイル項目を除去します。
考えられる原因: 2 つのファイルまたはファイルのバージョンは、操作が中断したため同じディスク・ブロックを共用します。このような破壊を示すボリュームの接続は大変危険であるため、ファイル・サーバーおよびボリューム・サーバーは通常これを拒否します。ボリューム・サーバーまたはファイル・サーバーが、影響を受けたディスク・ブロックの状況について不確実である場合、どちらのサーバーも、そこにさらに多くのデータを書き込もうとする場合があります。書き込みが行えなければ、データは失われます。この影響は連鎖する可能性があり、パーティション上のすべてのデータが失われる原因になります。
サルベージャーによる解決 パーティション全体を失うことがないよう、破壊されたディスク・ブロックのデータを削除します。
考えられる原因: 孤立したファイルおよびディレクトリーがあります。孤立要素は、その親となるディレクトリー (ファイル・ツリーの上位) による参照が行われないため、完全にアクセス不能です。孤立要素は、サーバー・パーティション上のスペースを占領していても、ボリュームのサイズ (または割り当て量) の計算に数えられません。
サルベージャーによる解決: デフォルトでは、 /usr/afs/logs/SalvageLog ファイルにメッセージを印刷し、孤立ファイル数およびその消費する K バイト数を報告します。 -orphans 引き数を使用して、孤立した要素を削除または接続することができます。ボリュームのサルベージ方法を参照してください。
このような症状に気が付いた場合は、bos salvage コマンドを使用して破壊が広がる前にサルベージャーを起動してください。 (コマンドはボリューム上で稼働しますが、 bos スイートに含まれるものです。これは、サルベージャーを実行する際、BOS サーバーがボリューム・サーバーおよびファイル・サーバーの終了、および再始動を調整するためです。サルベージャーが開始する前に終了が行われ、サルベージ操作が終了すると自動的に再始動します。)
1 つ以上のパーティションのサルベージ中は、ファイル・サーバー・マシン上に保管された AFS データはすべてアクセス不能です。 1 つのボリュームのみのサルベージを行うのであれば、これのみがアクセス不能になります。
1 つまたは複数のパーティションの処理中に、コマンドは、破壊された読み取り / 書き込みボリュームへの整合性を復元できる場合は復元します。読み取り専用またはバックアップのボリュームの場合は、ボリューム・ヘッダーだけを検査します。
指示に従い、bos salvage コマンドの引き数を組み合わせることにより、異なる数のボリュームのサルベージを行います。
サルベージャーは常に、それが実行されているファイル・サーバー・マシンの /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
% bos listusers <machine name>
% 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>]
ここで、
BOS サーバーは、パーティション数よりも多くのサルベージャー・サブプロセスを開始することはなく、単一ボリュームのサルベージには常に 1 つのプロセスのみを開始します。この引き数を省略すると、最大 4 つまでのサルベージャー・サブプロセスが並列して実行されます。
_ _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 を参照してください。また、ボリュームは複数のパーティションまたは論理ボリュームをスパンできないため、パーティションまたは論理のサイズによって、ボリューム・サイズに絶対制限が付きます。
通常、すべてのボリュームが最大割り当て量に達した場合、入りきらないほどのボリュームを入れてパーティションをオーバー・パックしても大丈夫です。ただし、セルをどの程度までオーバー・パックできるかは、経験によって判断するしかありません。ボリュームにどの種類の割り当て量を割り当てるか (特に、予測不能に成長するシステム・ボリュームより可能性があるユーザー・ボリューム)、および割り当て量に比較して生成および格納される情報の量によって決まります。
以下で説明するように、ボリュームの割り当て量を表示するコマンドがいくつかあります。作成される関連情報の量は、それぞれ異なります。
% pts membership system:administrators
% fs setquota [<dir/file path>] -max <max quota in kbytes>
ここで、
読み取り専用ボリュームを変更しようとするときに生じる障害を回避するために、ファイルまたはディレクトリーへの読み取り / 書き込みパスを指定します。規則では、パス名の第 2 レベルでセル名の前にピリオドを置いて、読み取り / 書き込みパスを示します (たとえば、 /afs/.abc.com)。読み取り / 書き込みパスおよび読み取り専用パスの概念についての詳細は、 マウント・ポイント横断の規則 を参照してください。
% pts membership system:administrators
% fs setvol [<dir/file path>+] -max <disk space quota in 1K units>
ここで、
% fs quota [<dir/file path>+]
ここで、
以下の例は、このコマンドが作成した出力の形式を示しています。
% fs quota /afs/abc.com/usr/terry 34% of quota used.
% fs listquota [<dir/file path>+]
ここで、
以下の例に示すように、出力には、ボリューム名、割り当て量および現行サイズ (両方とも K バイト単位)、使用された割り当て量のパーセント、および使用されたボリュームのホスト・パーティションの割合が示されます。
% fs listquota /afs/abc.com/usr/terry Volume Name Quota Used % Used Partition user.terry 15000 5071 34% 86%
% fs examine [<dir/file path>+]
ここで、
以下の例に示すように、出力には、ボリューム ID 番号およびボリューム名、割り当て量および現行サイズ (両方とも K バイト単位)、およびボリュームのホスト・パーティション上の K バイト・ブロックの未使用数および総数が表示されます。
% fs examine /afs/abc.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 つのタイプのボリュームを削除します。その影響は、タイプごとに異なります。
読み取り / 書き込みサイトはただ 1 つしかありえないため、 -server および -partition の引き数を提供する必要はありません。サイト情報もまた VLDB 項目から取り除かれ、 number of sites として vos examine および vos listvldb コマンドによって報告されるサイト・カウントは 1 つ減ります。読み取り / 書き込みボリュームおよびバックアップ・ボリュームのボリューム ID 番号は、 vos examine および vos listvldb のコマンドからの出力内に表示されませんが、内部で保存されます。読み取り専用サイト (ある場合) は影響されませんが、読み取り / 書き込みサイトが再び定義されないと変更できません。読み取り専用サイトがない場合は、VLDB 項目全体が削除されます。
読み取り専用コピーが残っていない場合は、ボリューム内容にアクセスできないように、ボリュームのマウント・ポイントを削除することが最も良い方法です。読み取り専用ボリュームのコピーが残っている場合には、マウント・ポイントを削除してはいけません。
複数の読み取り専用サイトがある場合、 -server 引き数 (およびオプションで -partition 引き数) を組み込んで、削除するボリュームがあるサイトを指定する必要があります。ただ 1 つしか読み取り専用サイトがない場合は、ボリューム名だけで十分です。このとき読み取り / 書き込みボリュームがないと、VLDB 項目全体が削除されます。
特にボリュームの読み取り / 書き込みバージョンがまだ存在する場合などでは、読み取り専用ボリュームを削除する際に、ボリュームのマウント・ポイントを削除することは通常適切ではありません。読み取り / 書き込みボリュームが存在しない場合は、 ボリュームを除去して、取り外し解除する方法の5 のステップでの説明に従って、マウント・ポイントを削除します。
標準構成では、ユーザー・ボリュームのバックアップ・バージョンごとに別々のマウント・ポイントがあります。存在しないボリュームの内容にアクセスすることを回避するために、そのマウント・ポイントは削除しておくようにしてください。
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コマンドを使用して再同期するための時間をとりたくない場合に役立ちます。
% bos listusers <machine name>
% fs listacl [<dir/file path>]
system:administrators グループのメンバーは、a (管理)、および、デフォルトで l (検索) アクセス権を、常にすべての ACL に暗黙的に持っています。また、必要に応じて fs setacl コマンドを使用して、他の権限を付与することができます。
もしくは、AFS バックアップ・システムを使用して、テープのコピーを作成します。この場合、関心のあるボリュームだけを含む一時的なボリューム・セットを作成すると便利です。一時的なボリューム・セットは、バックアップ・データベースに記録されないため、 1 度だけしか使用しないボリューム・セットの記録でデータベースを混乱させることはありません。これについての詳細は、ダンプの作成 を参照してください。
% vos remove [-server machine name>] [-partition <partition name>] \ -id <volume name or ID>
ここで、
従来の方法で取り付けられたバックアップ・ボリュームを削除する場合 (読み取り / 書き込みボリュームのルート・ディレクトリーのサブディレクトリーで)、このステップでソース・ボリュームのマウント・ポイントを削除すると、バックアップ・ボリュームのマウント・ポイントを削除できます。バックアップを完全に別々のディレクトリーで取り付けた場合、バックアップ・ボリュームのマウント・ポイントに対して、このステップを繰り返す必要があります。
% fs rmmount <directory>
vos dump コマンドによってボリュームが ダンプ されると、その内容が ASCII 形式に変換され、指定のファイルに書き込まれます。 vos restore コマンドによって、ダンプ・ファイルの内容は、指示されたファイル・サーバー・マシンに適切なボリューム・フォーマットに変換されてから、ボリュームに戻されます。
ボリュームのダンプは、次のようないくつかの場合に役に立ちます。
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 項目がないボリュームをダンプすることができます。
% bos listusers <machine name>
% fs listacl [<dir/file path>]
system:administrators グループのメンバーは、a (管理)、および、デフォルトで l (検索) アクセス権を、常にすべての ACL に暗黙的に持っています。また、必要に応じて fs setacl コマンドを使用して、他の権限を付与することができます。
% vos dump -id <volume name or ID> [-time <dump from time>] [-file <arg>] [-server <server>] [-partition <partition>]
ここで、
ボリューム・ロケーションの正規の VLDB 検索を迂回するには、ボリューム ID 番号を提供し、この引き数を -server および -partition 引き数と結合します。
3 つのタイプのボリューム (読み取り / 書き込み、読み取り専用、またはバックアップ) は、どれでもダンプすることができますが、ダンプ・ファイルは、vos restore コマンドを使用して、読み取り / 書き込みボリュームとしてのみファイル・システムに復元することができます。このコマンドは、ダンプ・ファイルの内容を ASCII から自動的に変換して、復元されたバージョンを格納するファイル・サーバー・マシンに対して適切なボリューム・フォーマットに再び戻します。 vos dump と同じように、名前付きパイプを介してダンプ・ファイルを復元し、第三者のバックアップ・ユーティリティーとの相互操作を容易にすることができます。
ダンプ・ファイルは、2 つの基本方法のいずれかにより復元できます。どちらの場合も、増分ダンプを復元する前に、フル・ダンプを復元する必要があります。その上で復元する増分ダンプは、フル・ダンプの後で作成されたものでなければなりません。複数の増分ダンプが存在する場合、これを作成された順に復元する必要があります。
ボリュームを復元する際、通常はボリューム・サーバーが自動的にボリュームを割り振るのが最適な方法ですが、ユーザーがボリューム ID 番号を割り当てることができます。ボリューム ID を指定する理由で最も一般的なものは、ボリュームの VLDB 項目が何らかの理由で消えた場合、ユーザーが以前の read/write ボリューム ID を知っていてそれを再利用したいからです。
-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フィールドに報告される時刻です。
% bos listusers <machine name>
% fs listacl [<dir/file path>]
system:administrators グループのメンバーは、a (管理)、および、デフォルトで l (検索) アクセス権を、常にすべての ACL に暗黙的に持っています。また、必要に応じて fs setacl コマンドを使用して、他の権限を付与することができます。
% vos partinfo <machine name> [<partition name>]
% vos restore <machine name> <partition name> \ <name of volume to be restored> \ [-file <dump file>] [-id <volume ID>]
ここで、
% fs mkmount <directory> <volume name>
% fs lsmount <directory>
% bos listusers <machine name>
% fs listacl [<dir/file path>]
system:administrators グループのメンバーは、a (管理)、および、デフォルトで l (検索) アクセス権を、常にすべての ACL に暗黙的に持っています。また、必要に応じて fs setacl コマンドを使用して、他の権限を付与することができます。
% vos restore <machine name> <partition name> \ <name of volume to be restored> \ [-file <dump file>] \ -overwrite <full | incremental>
ここで、
% vos release <volume name or ID>
% vos backup <volume name or ID>
vos rename コマンドを使用すると、ボリュームを名前変更することができます。たとえば、ユーザーのボリューム名に user.username 規則を使用し、ユーザー名を変更する場合、ユーザーのホーム・ボリュームの名前を変更することが適切です (ユーザー名の変更についての詳細は、ユーザー名の変更 を参照してください)。
vos rename コマンドは、読み取り / 書き込みボリューム名のみを受け入れますが、関連した読み取り専用ボリュームおよびバックアップ・ボリュームを自動的に変更します。次の指示に従って、ボリュームの現行のマウント・ポイントを、名前変更を反映する新規のマウント・ポイントに置き換えなければなりません。
% bos listusers <machine name>
% fs listacl [<dir/file path>]
system:administrators グループのメンバーは、a (管理)、および、デフォルトで l (検索) アクセス権を、常にすべての ACL に暗黙的に持っています。また、必要に応じて fs setacl コマンドを使用して、他の権限を付与することができます。
% vos rename <old volume name> <new volume name>
ここで、
指定された現行のボリューム名に対してボリューム・ロケーション・データベース (VLDB) 項目がない場合、コマンドは失敗して、次のエラー・メッセージが表示されます。
vos: Could not find entry for volume old_volume_name.
% fs rmmount <directory>
% fs mkmount <directory> <volume name> [-rw]
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 項目をロックしたまま残される場合に有効です。この場合、障害によって起こる問題を訂正することはできません。
% bos listusers <machine name>
% vos lock <volume name or ID>
ここで、
% bos listusers <machine name>
% vos unlock <volume name or ID>
ここで、
% bos listusers <machine name>
% vos unlockvldb [<machine name>] [<partition name>]
ここで、