# 管理解説書

## bos salvage

目的

ファイル・システムまたはボリュームに内部整合性を復元します。

構文

    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 つ、または複数の区画をプロセスするとき、このコマンドは、壊れた読み取り / 書き込みボリュームの整合性を可能な限り復元します。読み取り専用ボリューム、またはバックアップ・ボリュームの場合、これはボリューム・ヘッダーだけを以下のように検査します。

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

指定された引き数を使用して、次のように特定の数のボリュームをサルベージします。

- ファイル・サーバー・マシン上のすべてのボリュームをプロセスする場合には、 -server 引き数と -all フラグを指定してください。サルベージャーの実行中は、 BOS サーバーはファイル・サーバーおよびボリューム・サーバーのプロセスを停止します。このため、サルベージ操作中は、キャッシュ・マネージャーからアクセスできるボリュームはマシン上にありません。操作完了すると、BOS サーバーは、自動的にそれらのプロセスを再始動します。
- 1 つの区画上のすべてのボリュームをプロセスする場合には、 -server および -partition 引き数を指定してください。マシン全体のサルベージの場合、サルベージ操作中に、キャッシュ・マネージャーからアクセスできるボリュームはマシン上にありません。 BOS サーバーは、サルベージ操作が完了すると、ファイル・サーバーおよびボリューム・サーバーを自動的に再起動します。
- 1 つだけの読み取り / 書き込みボリュームをサルベージする場合には、 -server、-partition、および -volume 引き数を組み合わせて使用してください。単一ボリュームをサルベージ中は、 BOS サーバーはファイル・サーバーおよびボリューム・サーバーのプロセスを停止しません。このため、キャッシュ・マネージャーからアクセスできなくなるのはそのボリュームだけです。読み取り専用ボリュームまたはバックアップ・ボリュームを指定するのに、 -volume 引き数を使用してはなりません。代わりに、vos remove または vos zap コマンドを使用して、ボリュームを削除します。その後、vos release または vos backup コマンドを使用して、ボリュームの新規コピーを作成します。

マシンまたは区画全体のサルベージ中に、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 管理の手引き を参照してください。

オプション

-server
  ボリュームをサルベージするファイル・サーバー・マシンを指定します。 IP アドレスまたはホスト名 (完全修飾名または省略形) によってマシンを識別します。詳細については、bos コマンド・セットの概要の解説ページを参照してください。

-partition
  すべてのボリュームをサルベージする単一区画を指定します。完全な区画名 (たとえば、/vicepa) または次の省略形の 1 つを指定します。

         /vicepa     =     vicepa      =      a      =      0
         /vicepb     =     vicepb      =      b      =      1

  /vicepz (これのインデックスは 25 です) の後には、以下が続きます。

         /vicepaa    =     vicepaa     =      aa     =      26
         /vicepab    =     vicepab     =      ab     =      27

  次の値まで、以下同様となります。

         /vicepiv    =     vicepiv     =      iv     =      255

-volume
  サルベージする読み取り / 書き込みボリュームの名前、またはボリューム ID 番号を指定します。この引き数は、-partition 引き数と一緒に使用してください。

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

-all
  -server 引き数で指定されたマシンのすべての区画上にあるすべてのボリュームをサルベージします。

-showlog
  /usr/afs/logs/SalvageLog ファイルにサルベージ操作の追跡を書き込むほかに、標準出力ストリームにもそれを送信します。このフラグは、-file 引き数と一緒に使用しないでください。

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

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

-tmpdir
  サルベージャー・プロセスが実行時に一時ファイルを書き込むローカル・ディスク・ディレクトリーを完全パス名で指定します。この引き数を省略するか、または不適格もしくは存在しないディレクトリーを指定すると、サルベージャー・プロセスは現在サルベージしている区画にファイルを書き込みます。

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

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

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

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

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

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

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

-cell
  コマンドを実行するセルを指定します。この引き数は、 -localauth フラグと一緒に使用してはなりません。詳細については、bos の解説ページを参照してください。

-noauth
  コマンドの発行側に非特権 ID anonymous を割り当てます。このフラグは -localauth フラグと一緒に使用してはなりません。詳細については、bos の解説ページを参照してください。

-localauth
  ローカルの /usr/afs/etc/KeyFile ファイルのキーを使用して、サーバー・チケットを構成します。 bos コマンド・インタープリターは、相互認証中に、このチケットを BOS サーバーに渡します。このフラグは、-cell 引き数または -noauth フラグと一緒に使用してはなりません。詳細については、bos の解説ページを参照してください。

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

例

次のコマンドは、マシン db3.example.com の /vicepd 区画上のすべてのボリュームをサルベージしています。

       % bos salvage -server db3.example.com -partition /vicepd

次のコマンドは、マシン fs2.example.com の区画 /vicepb のボリューム ID 番号 536870988 をサルベージしています。

       % bos salvage -server fs2.example.com -partition /vicepb -volume 536870988

次のコマンドは、マシン fs4.example.com 上のすべてのボリュームをサルベージしています。デフォルトの 4 つではなく、6 つのサルベージャー・プロセスを並行して実行しています。

       % bos salvage -server fs4.example.com -all -parallel 6

必要となる特権

コマンドの発行側は、-server 引き数で指定されたマシンの /usr/afs/etc/UserList ファイルにリストされているか、または -localauth フラグが使用されている場合は、ローカル・スーパーユーザー root としてサーバー・マシンにログオンしている必要があります。

関連情報

KeyFile

SalvageLog

UserList

bos

salvager

vos backup

vos release

vos remove

vos zap

AFS 管理の手引き

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

(C) IBM Corporation 2000. All Rights Reserved