この章では、Solaris 操作環境を使用してディスクドライブを設定する方法を説明します。
この章の内容を以下に示します。
新しいディスクドライブの操作環境を設定する前に、以下の準備が必要です。
Solaris ソフトウェアをインストールする
システムの停止に従って、システムおよびすでに接続済みの周辺機器を停止する
システムの停止 の手順以外の方法でシステムを停止すると、新しいディスクドライブが、オペレーティングシステムに認識されない場合があります。
テープドライブは、主にシステムデータのバックアップに使用します。
新しいテープドライブをシステムに接続して、正しく起動すると、そのテープドライブはすぐに使用できる状態になります。ディスクドライブと異なり、テープドライブを使用するために、フォーマットやラベル付けなどの特別な処理の必要はありません。
テープデバイスを取り付けて、オペレーティングシステムを起動したら、以下の表 3–1 に示すような論理デバイス名を使用して、テープデバイスを参照してください。論理デバイス名については、付録 A 「SCSI アドレスの概念」を参照してください。
表 3-1 テープドライブのアドレスと論理デバイス名
テープドライブ |
SCSI アドレス スイッチまたはジャンパ設定 (ターゲット ID) |
主論理デバイス名 |
補助的な論理デバイス名 |
---|---|---|---|
1 台目のテープ ドライブ |
4* |
/dev/rmt/0 |
/dev/rmt/0l /dev/rmt/0m /dev/rmt/0h /dev/rmt/0u |
2 台目のテープ ドライブ |
5* |
/dev/rmt/1 |
/dev/rmt/1l /dev/rmt/1m /dev/rmt/1h /dev/rmt/1u |
* バス上で一意のアドレスを設定可能 |
大部分のテープ操作では、主論理デバイス名を使用してください。主論理デバイス名を使用することによって、テープドライブがその最適なデフォルトパラメタを使用するようになります。ただし、テープドライブに対して特殊な動作を指定する場合は、次のようにして適切な論理デバイス名の最後に英字を付けます。
テープの記録密度を指定する場合は、ドライブ番号の最後に英字を付けます。h は高密度、m は中密度、l は低密度、u は超圧縮です。すべてのテープドライブがこれらの記録密度のすべてに対応しているわけではありません。対応している記録密度が確実でない場合は、高い密度を指定しないでください。
BSD 動作を指定する場合は、ドライブ番号の最後に b を付けます。BSD 動作とは、EOF (ファイルの終わり) マークを過ぎたときに、次のファイルの最初のレコードに移動することを意味します。この動作は、BSD UNIX システムでテープを読み取る場合に都合のよい動作です。
テープを巻き戻さないように指定する場合は、ドライブ番号の最後に n を付加します。n が指定されていないと、テープ操作が完了した時点でテープは自動的に巻き戻されます。
圧縮モードを指定する場合は c を付けます。ドライブによってはデータ密度コードの中に圧縮モードが混在しているものもあるので、その場合は c を付けて指定する必要はありません。
以下の表に、有効なテープ名を示します。2 台目のテープドライブに対しては、0 の代わりに 1 を使用します。
0n 0b 0bn 0c 0cb 0cbn 0cn 0h 0hb 0hbn 0hbn 0m 0mb 0mbn 0mn 0l 0lb 0lbn 0ln 0u 0ub 0ubn 0un |
システムを停止します。
システムの停止を参照してください。
テープドライブのアドレススイッチが正しく設定されていることを確認します。
通常、テープドライブの SCSI アドレススイッチは、工場出荷時に SCSI ターゲット ID 4 に設定されています。複数のテープドライブがある場合は、2 台目のテープドライブの SCSI アドレススイッチを SCSI ターゲット ID 4、またはバス上に存在するその他すべてのターゲット ID 以外のアドレスに設定する必要があります。
取り付けるテープドライブに付属しているマニュアルと付録 A 「SCSI アドレスの概念」を参照してください。
1 つの SCSI バスに 4 つ以上のテープドライブを接続すると、システムの性能が低下する場合があります。
各テープドライブには固有の SCSI ターゲット ID を設定する必要があるため、テープドライブの SCSI アドレススイッチを、表 3–1 とは異なる数字に設定する必要がある場合があります。デバイスアドレスについての詳細は、『Solaris のシステム管理 (第 1 巻)』を参照してください。
テープドライブを接続します。
設置についての詳細は、ハードウェアに付属しているマニュアルを参照してください。
システムおよびすべての周辺機器の電源を入れます。
ほとんどの場合は、この操作によってシステムが起動します。この後、/reconfigure ファイルが存在する場合 (第 1 章「事前の作業」のシステムを準備するを参照) は、オペレーティングシステムによって、新しいデバイスに自動的に論理デバイス名が割り当てられ、そのデバイス用のデバイスドライバが初期化されます。 /reconfigure ファイルが存在しない場合は、boot -r を実行することによって、/reconfigure ファイルが存在した場合と同じことを行うことができます。詳細は、付録 B 「システムの起動」を参照してください。
これで、新しいテープドライブを使用できます。
テープドライブにテープを挿入します。
以下のように入力します。
% mt -f /dev/rmt/ユニット番号 status |
デバイスアドレス (またはデバイス名) が /dev/rmt/ユニット番号であるテープドライブが検索され、状態が表示されます (以下の例を参照)。
複数のテープドライブがシステムに接続されている場合は、デバイス名を /dev/rmt/0 から /dev/rmt/1 や /dev/rmt/2 などに変更し、同じコマンドを実行してください。
以下のようなメッセージが表示された場合、システムはテープドライブにアクセスすることができ、カートリッジが存在しています。
Quantum DLT7000 tape drive: sense key(0x0)= nosense residual= 0 retries= 0 file no= 0 block no= 0 |
sense key= nosense は、システムがテープにアクセスでき、エラーがなかったことを示します。この場合には、以降の節で説明するすべてのバックアップコマンドを使用することができます。
テープドライブをリセットした場合や、電源を入れた直後、または直前にテープカートリッジを挿入していた場合は、以下のようなメッセージが表示されます。
Quantum DLT7000 tape drive: sense key(0x6)= unit attention residual= 0 retries= 0 file no= 0 block no=0 |
この場合はコマンド mt -f /dev/rmt/0 status を繰り返し実行すると、アドバイザリメッセージ sense key(0x6)= unit attention は、sense key(0x0)= nosense というメッセージに変わります。
以下のメッセージが表示された場合、システムはテープにアクセスすることはできません。
/dev/rmt/0: no tape loaded or drive offline |
この場合は、テープを挿入し、mt -f /dev/rmt/0 status コマンドを再度実行してください。
以下のメッセージが表示された場合、システムはテープドライブにアクセスすることはできません。
no such file or directory |
この場合は、テープドライブに電源が入っており、システムに正しく接続されていることを確認してください。その後、周辺機器の接続後に起動するの手順に従って、システムを起動し直してみてください。
1/4 インチのテープドライブに未使用のテープカートリッジを挿入した場合は、テープの巻き具合を均一にする必要があります。テープの巻き具合を均一にするには、テープを始めから終わりまで走行させます。
DDS (Digital Data Storage) や DLT テープドライブでは、以下に示す retension コマンドを使用することはできません。
テープドライブは、定期的に清掃する必要があります。
テープドライブに対するデータの読み取りや書き込みに使用されるユーティリティーは数多くあります。この節では、Solaris 操作環境に付属していて、よく使われるテープユーティリティーをいくつか紹介します。その他のテープまたはバックアップユーティリティーを使用している場合は、その製品に付属しているマニュアルを参照してください。
この節で説明するテープ操作コマンドは、以下のとおりです。
この後に出てくる「ブロック化因数 (blocking factor)」とは、各コマンドがテープドライブに送るデータ量を意味しています。使用の際には、設定可能な範囲で最も大きな値を指定するのが最良です。詳細についてはマニュアルページの st の項目を参照してください。 データの読み出しに使用するブロック化因数は、データの書き込みに使用するブロック化因数と同じかそれより大きい値に設定しておく必要があります。「設定可能な範囲で最も大きな値を指定するのが最良」と述べた理由は、ここにあります。 ブロック化因数のデフォルト値は 20 となっていますが、パフォーマンスを最適化するにはこの値を 126 に変更してください。 ブロック化因数の値は、テープユーティリティーコマンドのコマンドラインオプションの形式で指定します。
cpio コマンドは、標準入力からファイル名を受け取り、それらのファイルを標準出力に書き出すことによって別のデバイスにファイルをコピーします。cpio は汎用コマンドですが、標準入力と標準出力を入出力先を変更する必要があります。cpioは、複数のボリューム (テープカートリッジ) を必要とするデータを扱うときに使用します。
例 1:
次の例は、/work という作業用ディレクトリと、そのサブディレクトリにあるすべてのファイルを、デバイスアドレス (またはデバイス名) が /dev/rmt/0 であるテープドライブにコピーする方法を示しています。
example# cd /work example# ls -R | cpio -ocB > /dev/rmt/0 |
例 2:
次の例は、テープ上にあるファイルをハードディスクにコピーする方法を示しています。
example# cd /work example# cpio -icdB < /dev/rmt/0 |
o オプションは、標準入力を読み取ってパス名の一覧を取得し、それぞれのファイルを標準出力にコピーします。
i オプションは、標準入力からファイルを抽出します。
c オプションは、ヘッダー情報を ASCII フォーマットで書き込むことを指示します。
d オプションは、必要な数のディレクトリを作成することを指示します。
B オプションは、テープドライブとの間でファイルまたはファイルシステムをコピーするときに、使用する必要があるオプションです。このオプションは、入力レコードのブロック化因数が 5120 バイトであることを指示します。
テープからハードディスクにファイルを取り出す (つまりコピーする) ときには、ハードディスクからテープにファイルをコピーしたときと同じブロック化因数を使用する必要があります。したがって、B オプションを指定する必要があります。
このコマンドは、データ形式の異なるファイルを変換してコピーします。多くの場合は、ファイルシステムまたはパーティションをハードディスクからテープに転送するために使用されます。また、あるハードディスクから別のハードディスクにファイルをコピーするときにも使用できます。ブロックサイズの変更が可能なデバイスを使用する場合は、ファイルをハードディスクからテープに、またはテープからハードディスクにコピーするときに必ず同じブロックサイズを使用する必要があります。
次の例は、/dev/dsk/c0t0d0s7 というファイルシステム (またはパーティション) の内容を、デバイスアドレス (またはデバイス名) が /dev/rmt/0 である 4mm テープドライブに書き込む方法を示しています。ブロック化因数は 63k です。
例:
example# dd if=/dev/dsk/c0t0d0s7 of=/dev/rmt/0 bs=63k |
ufsdump コマンドは、ハードディスクにあるファイルシステムをテープにコピーします。ufsdump は、特にバックアップ用に設計されたユーティリティーです。複数ボリュームと増分バックアップに対応しています。増分ダンプレベルとスケジュールについての詳細は、『Solaris のシステム管理 (第 1 巻)』を参照してください。
ufsdump コマンドは、単一のファイルシステム (パーティション) に対してだけ有効です。したがって、すべてのファイルが 1 つのファイルシステム (パーティション) に含まれている必要があります。また、ユーパーユーザーである必要があります。
例:
次の例は、ディスクドライブのパーティション /dev/rdsk/c0t3d0s0 に配置されているすべてのファイルを、圧縮モードで、/dev/rmt/1 という1つのファイル (一般にダンプファイルと呼ばれます) にコピーする方法を説明しています。
example# ufsdump 0ubf 126 /dev/rmt/1 /dev/rdsk/c0t1d0s0 |
0 オプションは、ダンプレベルを表します。レベル 0 ダンプは、ファイルシステム全体をダンプファイル (テープドライブ) にコピーします。0 から 9 までの整数を指定でき、そのうち 1 から 9 は、特定の日時から変更のあったファイルだけをコピーする増分ダンプのレベルを表します。
b オプションは、ファイルをテープにコピーする際に使用するブロック化因数を指定します。b に続けて、使用するブロック化因数を表す数字 (この例では 96) を指定します。デフォルトのブロック化因数は、使用するテープドライブの種類によって異なります。適切なブロック化因数が判断できない場合は、指定せずに、使用テープドライブに合ったデフォルト値が使用されるようにしてください。
u オプションは、正常にコピーされたファイルシステムごとに、ファイル /etc/dumpdates にタイムスタンプ付きのエントリを追加して、ダンプレコードを更新します。
f オプションは、ダンプファイル (テープドライブの論理デバイス名) を指定します。 f に続けてファイル名を指定する必要があります。この例では /dev/rmt/1 です。
/dev/rdsk/c0t1d0s2 は、テープにコピーするファイルが含まれているソースデバイスの名前です。この例では、2 台目のディスクドライブ (t1) の 1 つ目のパーティション ( s0)にあるすべてのファイルがコピーされます。
ufsrestore コマンドは、ファイルシステムをテープからハードディスクにコピーします。このコマンドでコピーできるのは、以前に ufsdump コマンドでハードディスクからテープにコピーしたファイルシステムだけです。
ufsrestore コマンドには、次の 3 つのオプションのうちの 1 つを必ず指定します。
i (対話) - 媒体からディレクトリ情報を読み取った後、ufsrestore は、ダンプファイルのディレクトリ階層構造を表示する対話形式のインタフェースを呼び出します。このインタフェースから、抽出するファイルを個々に選択することができます。
r (再帰) - 媒体の全内容を現在のディレクトリ (通常は、ファイルシステムの最上位のディレクトリ) に復元します。ファイルシステムを完全に復元するには、このオプションを使用してレベル 0 ダンプを復元し、すべての増分ダンプを復元してください。このオプションは何もないファイルシステムへの完全な復元を目的としています。ただし、媒体に存在しないファイルがファイルシステムに含まれている場合、それらのファイルは残されます。
t (目次) - テープ上のすべてのファイルの一覧を表示します。
以下のオプションは省略可能です。
b (ブロック化因数) - テープを読み取る際のブロック化因数を指定します。b に続けて、使用するブロック化因数を表す整数を指定します。省略された場合、ufsrestore コマンドは、適切なブロック化因数を自動的に決定しようとします。
f (ダンプファイル) - 復元するデータが含まれているダンプファイルを指定します。省略された場合は、デフォルトで/dev/rmt/0 が使用されます。
v (詳細モード) - テープからの読み取りながら、パス名を表示します。
例:
次の例は、対話形式でテープからファイルを取り出す方法を示しています。ファイルは、現在のディレクトリ (この例では /disk2) に書き込まれます。ブロック化因数として 96、ダンプファイルとして /dev/rmt/0 (1 台目のテープドライブ) を指定しています。
テープからハードディスクにファイルを取り出す (つまりコピーする) ときには、ハードディスクからテープにファイルをコピーしたときと同じ (またはそれ以上の) ブロック化因数を使用する必要があります。
example# cd /disk2 example# ufsrestore ibf 126 /dev/rmt/0 ufsrestore > ? Available commands are: ls [arg] - list directory cd arg - change directory pwd - print current directory add [arg] - add `arg' to list of files to be extracted delete [arg] - delete `arg' from list of files to be extracted extract - extract requested files setmodes - set modes of requested directories quit - immediately exit program what - list dump header information verbose - toggle verbose flag (useful with "ls") help or `?' - print this list IF no `arg' is supplied, the current directory is used |
システムは、ufsrestore プロンプトを表示します。疑問符 (?) を入力すると、使用することができる引数の一覧が以下のように表示されます。
ここで ls と入力すると、テープ上にあるディレクトリを表示することができます。
ufsrestore > ls 4lib/ dict mail openwin spool 5bin games man/ preserve src adm include/ net pub tmp |
ここで、add コマンドを使用して、抽出するファイルの一覧にファイルまたはディレクトリを追加します。
ufsrestore > add man mail |
この例では、テープから抽出するファイルの一覧に man と mail というファイルを追加しています。
テープからこれらのファイルを抽出してみましょう。抽出したファイルは、現在の作業用ディレクトリに書き込まれます (この例では /disk2)。
ufsrestore > extract |
目的のファイルの抽出を終了したら、q と入力して、ufsrestore コマンドを終了します。
ufsrestore > q |
tar コマンドは、複数のファイルをまとめて tar ファイルという 1 つのファイルに保管したり、tar ファイルからファイルを抽出したりします。tar で複数のボリューム (テープ) を扱うことはできないため、保管するデータが複数のテープを必要とする場合は、別のテープ操作コマンドを使用してください。
例 1:
次の例は、ハードディスクからテープにファイルをコピーする方法を示しています。
example# tar cvbf 126 /dev/rmt/1 ./ディレクトリ |
この例の tar コマンドは、指定されたディレクトリから、デバイス名 が /dev/rmt/1 のテープドライブにファイルをコピーします。ソースディレクトリ名の前に ./ が指定されているため、ファイル名は相対パス名で記録されます。後でこれらのファイルを抽出した場合、現在の作業用ディレクトリを基準にファイルシステムに書き戻されます。
c オプションは、tar ファイルを作成します (この例ではテープに作成される)。
v オプションは、コピーする各ファイルの情報を表示します (詳細モード)。
b オプションは、ブロック化因数を指定します (この例では 96)。
f オプションは、ソースドライブのデバイス名を指定します (この例ではテープドライブ) 。
例 2:
次の例は、テープからハードディスクの現在の作業用ディレクトリにファイルをコピーする方法を説明しています。tar を実行する前に、抽出されるファイルを格納するディレクトリに切り替えておいてください。
example# cd /tmp example# tar xvbf 126 /dev/rmt/1 |
x オプションは、tar ファイル (テープ) からファイルを抽出します。
v オプションは、コピーする各ファイルの情報を表示します (詳細モード)。
b オプションは、ブロック化因数を指定します。例ではこの因数を 126 (63k) としています。
f オプションは、ターゲットドライブのダンプファイルを指定します。
テープからハードディスクにファイルを取り出す (つまりコピーする) ときは、ハードディスクからテープにファイルをコピーしたときと同じ (またはそれ以上の) ブロック化因数を使用する必要があります。