Sun Microsystems, Inc.
spacerspacer
spacer www.sun.com docs.sun.com |
spacer
black dot
 
 
  戻る   目次   次へ 
   
 
第 49 章

UFS バックアップおよび復元コマンド (参照情報)

この章では、ufsdump コマンドと ufsrestore コマンドの参照情報を示します。

この章の内容は次のとおりです。

ufsdump コマンドの機能

ufsdump コマンドは、ファイルシステムのバックアップ作成時に 2 つのパスを作成します。最初のパスでは、このコマンドは raw デバイスファイル内でファイルシステムを走査し、メモリー内にディレクトリとファイルのテーブルを作成します。次に、そのテーブルをバックアップメディアに書き込みます。2 つ目のパスでは、ufsdump は i ノードに番号順にアクセスし、ファイルの内容を読み込んでメディアに書き込みます。

デバイス特性の判断

ufsdump コマンドに必要なことは、適切なブロックの大きさを認識することと、どのようにしてメディアの終わりを検出するかということです。

メディアの終わりの検出

ufsdump コマンドは、一連の固定長レコードを書き込みます。ufsdump コマンドは、レコードの一部にしか書き込まれていないという通知を受け取ると、メディアの物理的な終わりに達したものと判断します。この方法は、ほとんどのデバイスに有効です。部分的なレコードしか書き込まれなかったことをデバイスが ufsdump に通知できない場合、ufsdump が別のレコードの書き込みを試みると、メディアエラーが発生します。


注 - DAT デバイスと 8 mm テープデバイスでは、メディアの終わりが検出されます。カートリッジテープデバイスと 1/2 インチテープデバイスでは、メディアの終わりは検出されません。


ufsdump は、ほとんどのデバイスのメディアの終わりを自動的に検出します。したがって、通常は -c-d-s-t オプションを使用しなくても、複数のボリュームのバックアップを実行できます。

メディアの終わりの検出オプションを使用する必要があるのは、デバイスがメディアの終わりを検出したことを ufsdump コマンドが認識できない場合、または restore コマンドを使用して SunOS 4.1 システム上のファイルを復元する場合だけです。restore コマンドとの互換性を確保するため、サイズオプションを使用すると、従来どおり、現在のテープやフロッピーディスクの終わりに達する前に、ufsdump を次のテープやフロッピーディスクに強制的に進ませることができます。

ufsdump データのコピー

ufsdump コマンドは、raw ディスクスライスからデータのみをコピーします。ファイルシステムがまだ有効であれば、メモリーバッファー内のデータがコピーされていない可能性があります。ufsdump によるバックアップでは、空きブロックはコピーされず、ディスクスライスのイメージも作成されません。シンボリックリンクが他のスライス上のファイルを指す場合は、リンク自体がコピーされます。

/etc/dumpdates ファイルの役割

ufsdump コマンドを -u オプション付きで使用すると、/etc/dumpdates というファイルを管理し、更新できます。/etc/dumpdates ファイル内の各行は、バックアップが作成されたファイルシステム、前回のバックアップレベル、バックアップ日時と曜日を表しています。次に例を示します。

/dev/rdsk/c0t0d0s7               0 Mon Dec 10 16:26:10 2001
/dev/rdsk/c0t0d0s7               9 Tue Dec 11 16:45:14 2001
/dev/rdsk/c0t0d0s7               9 Wed Dec 12 16:54:47 2001

増分バックアップの実行時に、ufsdump コマンドは /etc/dumpdates ファイルをチェックして、下のレベルの最後のバックアップ日付を調べます。次に、下のレベルのバックアップ以降に更新されたすべてのファイルをメディアにコピーします。バックアップが完了すると、完了したばかりのバックアップを記述する新しい情報行によって、そのレベルの最後のバックアップの情報行が置き換えられます。

/etc/dumpdates ファイルを使用して、バックアップが実行中であるかどうかを検査してください。機器に問題が発生している場合は、この検査が特に重要です。機器の障害が原因でバックアップを完了できないと、そのバックアップは /etc/dumpdates ファイルに記録されません。

ディスク全体を復元する必要があれば、/etc/dumpdates ファイル内で最後のバックアップの日付とレベルをチェックできるので、ファイルシステム全体を復元するために必要なファイルを判断できます。


注 - /etc/dumpdates ファイルは編集可能なテキストファイルですが、編集するかどうかはユーザーの判断によります。ファイルに変更を加えた結果、アーカイブテープと一致しなくなると、必要なテープ (またはファイル) がどれであるか分からなくなることがあります。


バックアップデバイス (dump-file) 引数

dump-file 引数 (-f オプションで使用) では、次のいずれかのバックアップ先を指定します。

  • ローカルのテープドライブかフロッピーディスクドライブ

  • リモートのテープドライブかフロッピーディスクドライブ

  • 標準出力

この引数は、バックアップ先がデフォルトのローカルテープドライブ /dev/rmt/0 でないときに使用します。-f オプションを使用する場合は、dump-file の値を指定しなければなりません。


注 - また、dump-file 引数では、ローカルディスクまたはリモートディスク上のファイルを指すこともできるので、誤用するとファイルシステムがいっぱいになる可能性があります。


ローカルのテープドライブまたはフロッピーディスクドライブ

通常、dump-file 引数には、テープデバイスかフロッピーディスク用の raw デバイス ファイルを指定します。ufsdump コマンドは、出力デバイスへの書き込み時にバックアップファイルを 1 つ作成しますが、このファイルは複数のテープやフロッピーディスクにまたがってもかまいません。

デバイスの省略形を使用して、システム上のテープデバイスかフロッピーディスクデバイスを指定します。第 1 のデバイスは常に 0 です。たとえば、SCSI テープコントローラが 1 つと、中密度のフォーマットを使用する QIC-24 テープドライブが 1 つある場合は、次のデバイス名を使用します。

/dev/rmt/0m

テープデバイス名を指定するときは、名前の末尾に文字 n を付けて、バックアップの完了後にテープドライブを巻き戻さないように指定することもできます。次に例を示します。

/dev/rmt/0mn

テープに複数のファイルを格納する場合は、no-rewind オプションを使用します。バックアップ中に領域を使い果たすと、ufsdump コマンドから新しいテープの挿入を促すプロンプトが表示されるまで、テープは巻き戻されません。デバイスの命名規則の詳細は、バックアップデバイス名を参照してください。

リモートのテープドライブまたはフロッピーディスクドライブ

host:device という形式で、リモートのテープデバイスまたはフロッピーディスクを指定します。ローカルシステム上の root ユーザーがリモートシステムへのアクセス権を持っている場合、ufsdump コマンドはリモートデバイスに書き込みます。通常、root ユーザーとして ufsdump コマンドを実行するのであれば、ローカルシステム名をリモートシステムの /.rhosts ファイルに記述しておく必要があります。デバイスを user@host:device と指定した場合、ufsdump コマンドは指定されたユーザーでリモートシステム上のデバイスへのアクセスを試みます。この場合、指定されたユーザーの名前が、リモートシステム上の /.rhosts ファイル中に含まれている必要があります。

デバイスには、ufsdump コマンドを実行するシステムではなく、そのデバイスが存在するシステムのオペレーティングシステムに合った命名規則を使用してください。デバイスが SunOS の旧バージョン (4.1.1 など) を実行するシステム上にある場合は、SunOS 4.1 でのデバイス名 (/dev/rst0 など) を使用します。システムが Solaris ソフトウェアを実行中の場合は、SunOS 5.9 でのデバイス名 (/dev/rmt/0 など) を使用します。

ufsdump コマンドで標準出力を使用する

dump-file 引数としてダッシュ (-) を指定すると、ufsdump コマンドは標準出力に書き込みます。


注 - dump-file 引数として標準出力を指定すると、-v オプション (検査) は機能しません。


ufsdump コマンドを使用して標準出力に書き込み、ufsrestore コマンドを使用して標準入力から読み込むと、パイプライン内でファイルシステムをコピーできます。次のようになります。

# ufsdump 0f - /dev/rdsk/c0t0d0s7 | (cd /home; ufsrestore xf -)

バックアップを作成するファイルを指定する

コマンド行の最後の引数として、バックアップするファイル (filenames) を必ず指定してください。この引数は、バックアップのコピー元または内容を指定します。

ファイルシステムの場合、次のように raw デバイスファイルを指定します。

/dev/rdsk/c0t0d0s6

ファイルシステムは、そのエントリが /etc/vfstab ファイルに入っていれば、マウントポイントディレクトリ (/export/home など) を使用して指定できます。

デバイスの命名規則の詳細は、バックアップデバイス名を参照してください。

個々のファイルやディレクトリごとに、1 つまたは複数の名前を空白で区切って入力します。


注 - ufsdump コマンドを使用して (ファイルシステム全体ではなく) 1 つまたは複数のディレクトリやファイルのバックアップを作成するときには、レベル 0 のバックアップが実行されます。増分バックアップは適用されません。


テープの性質を指定する

テープの性質を指定しなければ、ufsdump コマンドはデフォルト設定を使用します。テープカートリッジ (-c)、密度 (-d)、サイズ (-s)、トラック数 (-t) を指定できます。オプションの順序とその引数の順番が一致していれば、オプションはいくつでも指定できます。

ufsdump の制限

次に、ufsdump コマンドでは実行できない操作を示します。

  • ファイルシステムのバックアップに必要なテープやフロッピーディスクの数を自動的に計算する。仮実行 (ドライラン) モード (S オプション) を使用すると、実際にファイルシステムをバックアップする前に必要な容量を判断できる。

  • アクティブなファイルシステムをバックアップするときの問題を最小限度に抑えるために、組み込みエラーチェック機能を提供する。

  • サーバーからリモートにマウントされたファイルをバックアップする。サーバー上のファイルのバックアップは、そのサーバー上で実行しなければならない。ユーザーがサーバー上で所有するファイル上で ufsdump コマンドを実行するアクセス権は拒否される。

 
 
 
  戻る   目次   次へ