目的
ファイル・システムまたはボリュームに内部整合性を復元します。
構文
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>] [-cell <cell name>] [-noauth] [-localauth] [-help] bos sa -se <machine name> [-part <salvage partition>] [-v <salvage volume number or volume name>] [-f <salvage log output file>] [-a] [-sh] [-para <# of max parallel partition salvaging>] [-t <directory to place tmp files>] [-o <ignore | remove | attach>] [-c <cell name>] [-n] [-l] [-h]
構文
bos salvage コマンドは、 -server 引き数で指定されたファイル・サーバー・マシン上の 1 つ、または複数のボリュームをサルベージします (内部整合性を復元します)。 1 つ、または複数の区画をプロセスするとき、このコマンドは、壊れた読み取り / 書き込みボリュームの整合性を可能な限り復元します。読み取り専用ボリューム、またはバックアップ・ボリュームの場合、これはボリューム・ヘッダーだけを以下のように検査します。
指定された引き数を使用して、次のように特定の数のボリュームをサルベージします。
マシンまたは区画全体のサルベージ中に、bos status コマンドは、fs プロセスの予備状況を Salvaging file system として報告します。
サルベージャーは常に、サルベージャーが実行しているファイル・サーバー・マシンの /usr/afs/logs/SalvageLog ファイルにトレースを書き込みます。トレースを別のファイルにもレコードするには (AFS でか、あるいは bos salvage コマンドが発行されるマシンのローカル・ディスク上で)、ファイルを -file 引き数で指定します。トレースは /usr/afs/logs/SalvageLog ファイルに書き込まれているため、それを標準出力ストリームに表示するには、 -showlog フラグを指定します。
デフォルトでは、複数のサルベージャー・サブプロセスは、 1 つの区画ごとに 4 つまで、4 つ以上の区画の場合には、4 つのサブプロセスを並行して実行します。並行して実行するサブプロセス数を増減する場合は、 -parallel 引き数に正の整数値を指定してください。
物理ディスク上に複数のサーバー区画がある場合、デフォルトでは、サルベージャーは、ディスク・ヘッドをある区画から別の区画に絶えず移動させる非効率を避けるために、それらの区画を直列的にサルベージします。しかし、区画が複数のディスクにまたがる論理ボリュームとして構成されている場合には、このストラテジーが理想的でないことがあります。論理ボリュームを並行してサルベージすることをサルベージャーに強制するには、 -parallel 引き数に対する値として、文字列 all を指定します。サルベージされる論理ボリュームの数に依存して、並行して実行するサブプロセスの数を指定するために正の整数を与えるか (たとえば、 5 つのサブプロセスの場合は、-parallel 5all)、あるいは 4 つまでのサブプロセスを実行する場合は、整数を省略します。
サルベージャーは、実行中に一時ファイルを作成します。デフォルトでは、これらのファイルはサルベージしている区画に書き込まれます。一時ファイルはかなりの数になることがあるため、区画に十分なスペースがないと、サルベージャーはこのサルベージ操作を完了せずに終了する場合があります (サルベージャーは常に、終了前には一時ファイルを削除します)。一時ファイル用に十分なディスク・スペースを持つ区画が他にあれば、他のすべての区画のサルベージを終了するまで、同時に実行されている他のサルベージャー・サブプロセスは処理を継続します。中断したサルベージ操作を完了するには、-tmpdir 引き数を付けて該当する区画にコマンドを再発行して、十分なスペースを持つローカル・ディスク・ディレクトリーに一時ファイルが書き込まれるように指定してください。
-orphans 引き数は、サルベージャーが、サルベージしているサーバーの区画上で検出したオーファン・ファイルとディレクトリーを処理する方法を制御します。 オーファン要素には、アクセスすることはまったくできません。それは、(ファイル・スペースの上位にある) オーファン要素の親として働くディレクトリーの vnode から参照されないからです。オーファン・オブジェクトは、サーバー区画上にスペースを占めますが、ボリュームの割り当て量に不利になることはありません。
注意
サルベージャー・プロセスは問題のデータを削除することで修復を行うので、このコマンドを実行すると、データが消失する場合があります。詳細については、AFS 管理の手引き を参照してください。
オプション
/vicepa = vicepa = a = 0 /vicepb = vicepb = b = 1
/vicepz (これのインデックスは 25 です) の後には、以下が続きます。
/vicepaa = vicepaa = aa = 26 /vicepab = vicepab = ab = 27
次の値まで、以下同様となります。
/vicepiv = vicepiv = iv = 255
BOS サーバーは、区画数以上のサルベージャー・サブプロセスを開始することはありません。単一ボリュームをサルベージする場合には、 1 つのプロセスしか開始しません。この引き数を省略すると、4 つまでのサルベージャー・サブプロセスが並行して実行されます。
ファイルの場合: _ _ORPHANFILE_ _.index
ディレクトリーの場合: _ _ORPHANDIR_ _.index
ここで、index は、各オブジェクトを一意に識別するための 2 桁の番号です。オーファンはボリューム割り当て量として数えられるので、ボリュームのルート・ディレクトリーに対して発行された ls コマンドの出力に表示されます。
例
次のコマンドは、マシン db3.abc.com の /vicepd 区画上のすべてのボリュームをサルベージしています。
% bos salvage -server db3.abc.com -partition /vicepd
次のコマンドは、マシン fs2.abc.com の区画 /vicepb のボリューム ID 番号 536870988 をサルベージしています。
% bos salvage -server fs2.abc.com -partition /vicepb -volume 536870988
次のコマンドは、マシン fs4.abc.com 上のすべてのボリュームをサルベージしています。デフォルトの 4 つではなく、6 つのサルベージャー・プロセスを並行して実行しています。
% bos salvage -server fs4.abc.com -all -parallel 6
必要となる特権
コマンドの発行側は、-server 引き数で指定されたマシンの /usr/afs/etc/UserList ファイルにリストされているか、または -localauth フラグが使用されている場合は、ローカル・スーパーユーザー root としてサーバー・マシンにログオンしている必要があります。
関連情報
AFS 管理の手引き