# 管理解説書

## salvager

目的

fs プロセスのサルベージャー・コンポーネントを初期化します。

構文

    salvager [initcmd]  [-partition <Name of partition to salvage>]
             [-volumeid <Volume Id to salvage>]  [-debug]
             [-nowrite]  [-inodes]  [-force]  [-oktozap]
             [-rootinodes]  [-salvagedirs]  [-blockreads]
             [-parallel <# of max parallel partition salvaging>]
             [-tmpdir <Name of dir to place tmp files>]
             [-showlog]  [-showsuid]  [-showmounts]
             [-orphans <ignore | remove | attach>] [-help]

このコマンドは、AFS コマンド・セットの構文規則に準拠していません。コマンド名およびすべてのオプション名は省略せずにすべて指定してください。

構文

salvager コマンドは、 fs プロセスのサルベージャー・コンポーネントを初期化します。通常の構成では、バイナリー・ファイルはファイル・サーバー・マシンの /usr/afs/bin ディレクトリーにあります。

サルベージャーを使用すると、可能な限り、ローカル・ファイル・サーバー・マシン上の破壊された読み取り / 書き込みボリュームの内部整合性が復元されます。読み取り専用ボリュームまたはバックアップ・ボリュームの場合は、以下のとおり、ボリューム・ヘッダーだけを検査します。

- ボリューム・ヘッダーが破壊されていると、サルベージャーは、そのボリュームを完全に削除し、そのログ・ファイルである /usr/afs/logs/SalvageLog に削除したことを記録します。 vos release コマンドまたは vos backup コマンドを発行して、読み取り専用ボリュームまたはバックアップ・ボリュームを再作成します。
- ボリューム・ヘッダーが壊れていない場合、サルベージャーは、そのボリュームをスキップします (内容の破壊について検査しません)。ただし、ファイル・サーバーは、初期化の際に破壊を検知すると、そのボリュームの接続またはオンライン接続を拒否する場合があります。この場合、vos remove コマンドまたは vos zap コマンドを発行して、そのボリュームを削除するのが最も簡単です。次に、vos release コマンドまたは vos backup コマンドを発行して、ボリュームを再作成します。

salvager コマンドは、他のサーバー・プロセスの初期設定コマンドと異なり、 bos create コマンドと一緒に /usr/afs/local/BosConfig に記述されると同時に、コマンド・シェル・プロンプトからも発行されるように設計されています。 bos salvage コマンドを発行して、サルベージャーをリモートで起動することもできます。

コマンドのオプションを指示どおりに組み合わせて、以下のように、さまざまな数の読み取り / 書き込みボリュームをサルベージします。

- ファイル・サーバー・マシンのすべてのボリュームをサルベージする場合は、引き数を指定しません。サルベージ操作中に、キャッシュ・マネージャーは、マシン上のどのボリュームにもアクセスできません。サルベージャーの実行中は、BOS サーバーがファイル・サーバー・プロセスおよびボリューム・サーバー・プロセスを停止するためです。
- 1 つの区画にあるすべてのボリュームをサルベージする場合は、 -partition 引き数を指定します。マシン上のすべてのボリュームのサルベージに関して、サルベージ操作中に、キャッシュ・マネージャーは、マシン上のどのボリュームにもアクセスできません。
- 1 つのボリュームのみをサルベージする場合は、 -partition 引き数と -volumeid 引き数を組み合わせて使用します。キャッシュ・マネージャーは、そのボリュームにだけアクセスできません。 BOS サーバーが、ファイル・サーバー・プロセスもボリューム・サーバー・プロセスも終了していないためです。

サルベージャーは、通常、破壊発生時に活動状態であったことがマークされている、読み取り / 書き込みボリュームだけをサルベージします。関係のあるすべての読み取り / 書き込みボリュームをサルベージさせるには、 -force フラグを追加します。

サルベージャーは通常、損傷を修理するときに新規 i ノードを作成します。区画がいっぱいで、新規 i ノードを作成する空間がない場合は、 -nowrite 引き数を使用して、損傷したボリュームのサルベージを試みずに、未損傷のボリュームをオンラインにします。次に vos move コマンドを使用して、1 つまたは複数の未損傷のボリュームを別の区画に移動し、サルベージャーが新しい i ノードを作成するために必要なスペースを解放します。

デフォルトでは、複数のサルベージャー・サブプロセスは、 1 つの区画ごとに 4 つまで、4 つ以上の区画の場合には、4 つのサブプロセスを並行して実行します。並行して実行するサブプロセス数を増減する場合は、 -parallel 引き数に正の整数値を指定してください。

物理ディスク上に複数のサーバー区画がある場合、デフォルトでは、サルベージャーは、ディスク・ヘッドをある区画から別の区画に絶えず移動させる非効率を避けるために、それらの区画を直列的にサルベージします。しかし、区画が複数のディスクにまたがる論理ボリュームとして構成されている場合には、このストラテジーが理想的でないことがあります。論理ボリュームを並行してサルベージすることをサルベージャーに強制するには、 -parallel 引き数に対する値として、文字列 all を指定します。サルベージされる論理ボリュームの数に依存して、並行して実行するサブプロセスの数を指定するために正の整数を与えるか (たとえば、 5 つのサブプロセスの場合は、-parallel 5all)、あるいは 4 つまでのサブプロセスを実行する場合は、整数を省略します。

サルベージャーは、実行中に一時ファイルを作成します。デフォルトでは、これらのファイルはサルベージしている区画に書き込まれます。一時ファイルはかなりの数になることがあるため、区画に十分なスペースがないと、サルベージャーはこのサルベージ操作を完了せずに終了する場合があります (サルベージャーは常に、終了前には一時ファイルを削除します)。一時ファイル用に十分なディスク・スペースを持つ区画が他にあれば、他のすべての区画のサルベージを終了するまで、同時に実行されている他のサルベージャー・サブプロセスは処理を継続します。中断したサルベージ操作を完了するには、-tmpdir 引き数を付けて該当する区画にコマンドを再発行して、十分なスペースを持つローカル・ディスク・ディレクトリーに一時ファイルが書き込まれるように指定してください。

-orphans 引き数は、サルベージャーが、サルベージしているサーバーの区画上で検出したオーファン・ファイルとディレクトリーを処理する方法を制御します。 オーファン要素には、アクセスすることはまったくできません。それは、(ファイル・スペースの上位にある) オーファン要素の親として働くディレクトリーの vnode から参照されないからです。オーファン・オブジェクトは、サーバー区画上にスペースを占めますが、ボリュームの割り当て量に不利になることはありません。

1 つまたは複数のボリュームに常駐するすべてのマウント・ポイントのリストを、これらのポイントを実際にサルベージせずに生成するには、-showmounts フラグを指定します。

オプション

initcmd
  コマンドの AFS コマンド・パーサーの使用状況を調べます。これはオプションです。

-partition
  サルベージする区画名を指定します。フォーム /vicepx または /vicepxx を使用して完全区画名を指定します。ファイル・サーバー・マシン上のすべての区画をサルベージする場合には、このオプションを省略してください。

-volumeid
  サルベージ対象である特定の読み取り / 書き込みボリュームのボリューム ID を指定します。この引き数と一緒に、-partition 引き数も指定します。

-debug
  -parallel オプションの設定に関係なく、 1 度に 1 つのサルベージャー・サブプロセスを実行します。デバッガーでサルベージャーを実行するときにこの引き数を指定すると、トレースの解釈が容易になります。

-nowrite
  損傷したボリュームのサルベージを試みずに、未損傷のボリュームをすべてオンラインにします。

-inodes
  サルベージャーが変更したすべての AFS i ノードのリストを /usr/afs/logs/SalvageLog ファイルに記録します。

-force
  クラッシュ時にアクティブになっていたボリュームだけでなく、すべてのボリュームが壊れているとみなします。

-oktozap
  vos zap コマンドを -force フラグと発行した場合でも、無効となる損傷を受けたボリュームを削除します。この引き数は、AFS 開発または製品サポート担当者に相談してから使用してください。この引き数を -partition および -volumeid 引き数と発行して、削除するボリュームを識別します。

-rootinodes
  サルベージャーが変更したすべての AFS i ノードのリストを /usr/afs/logs/SalvageLog ファイルに記録します。

-salvagedirs
  損傷が明確でない場合でも、ディレクトリーの構造全体をサルベージします。デフォルトでは、サルベージャーは、破壊されているというフラグが立てられたディレクトリーのみをサルベージします。

-blockreads
  サルベージャーは、1 度に 1 ディスク・ブロック (512 バイト) ずつ区画を読み取り、サルベージできないほど損傷のあるブロックはスキップします。これにより、可能なボリュームだけをサルベージすることができます。デフォルトでは、サルベージャーは、大きなディスク・ブロックを読み取るので、ディスク・エラーが検出されると、すぐに処理を終了します。サルベージする区画にディスク・エラーがある場合には、このフラグを使用してください。

-parallel
  並列で実行するサルベージャー・サブプロセスの最大数を指定します。以下の 3 つの値のいずれかを指定してください。
  - 1 から 32 までの整数。 1 を指定すると、単一のサルベージャー・プロセスが順次、区画をサルベージします。
  - 文字列 all。複数の物理ディスクにまたがる論理ボリュームとしてフォーマットされた区画上で、 4 つまでのサルベージャー・サブプロセスを並行して実行します。この値は、そのような論理ボリュームの場合にだけ使用してください。
  - 文字列 all と、その直後 (スペースを空けないで) に続く 1 から 32 までの範囲の整数。論理ボリュームとしてフォーマットされた区画上で、指定された数のサルベージャー・サブプロセスを実行します。この値は、そのような論理ボリュームの場合にだけ使用してください。

  BOS サーバーは、区画数以上のサルベージャー・サブプロセスを開始することはありません。単一ボリュームをサルベージする場合には、 1 つのプロセスしか開始しません。この引き数を省略すると、4 つまでのサルベージャー・サブプロセスが並行して実行されます。

-tmpdir
  ローカル・ディスク・ディレクトリーに名前を付け、サルベージャーは、サルベージ操作中に作成する一時ファイルを、サルベージされる区画 (デフォルト) に書き込むのではなく、名前を付けたローカル・ディスク・ディレクトリーに格納します。サルベージャーは、指定されたディレクトリーに書き込めないと、サルベージされる区画に書き込もうとします。

-showlog
  標準出力ストリームに /usr/afs/logs/SalvageLog ファイルへ書き込まれているログ・データすべてを表示します。

-showsuid
  setuid または setgid モード・ビットが設定されたファイルすべてのパス名のリストを表示します。

-showmounts
  各ボリュームで検出されるすべてのマウント・ポイントを /usr/afs/logs/SalvageLog ファイルに記録します。サルベージャーは、ボリューム内に破壊個所が存在していても修復しません。

-orphans
  サルベージャーによるオーファン・ファイルおよびディレクトリーの処理方法を制御します。次の 3 つの値のいずれかを選択してください。

  ignore
    オーファン・オブジェクトをディスクにそのまま残しておきます。ただし、検出されたオーファンの数と、それが占めているおおよそのキロバイト数を /usr/afs/logs/SalvageLog ファイルにメッセージを出力します。 -orphans 引き数が省略された場合は、この値がデフォルトになります。

  remove
    オーファン・オブジェクトを削除し、削除されたオーファンの数と、それが占めていたおおよそのディスク・サイズ (キロバイト) を報告する /usr/afs/logs/SalvageLog ファイルにメッセージを出力します。

  attach
    オーファン・オブジェクトへの参照を作成して、オーファン・オブジェクトをボリュームのルート・ディレクトリーの vnode に付加します。これにより各オブジェクトの実際の名前がなくなってしまうので、サルベージャーは各オブジェクトに次の形式の名前を割り当てます。

      ファイルの場合: _ _ORPHANFILE_ _.index

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

    ここで、index は、各オブジェクトを一意に識別するための 2 桁の番号です。オーファンはボリューム割り当て量として数えられるので、ボリュームのルート・ディレクトリーに対して発行された ls コマンドの出力に表示されます。

-help
  このコマンドのオンライン・ヘルプを出力します。これ以外の有効なオプションはすべて無視されます。

例

次のコマンドでは、サルベージャーは、ローカル・マシンの /vicepg にあるボリューム ID 258347486 のボリュームをサルベージします。

       % /usr/afs/bin/salvager -partition /vicepg -volumeid 258347486

必要となる特権

シェル・プロンプトでコマンドを発行するには、発行側はローカル・スーパーユーザー root としてログインしている必要があります。

関連情報

BosConfig

SalvageLog

bos create

bos getlog

bos salvage

vos move

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

(C) IBM Corporation 2000. All Rights Reserved