 |
|
前のページ 1 2 3 次のページ
|
 |
mtコマンドによるテープ装置の制御
|
今はもうハードディスクレコーダーが全盛ですが、昔ビデオデッキを使用していた際に、大切なテープの上に誤って上書きしてしまった事はありませんか?例えば、120分のビデオテープの前半60分に第1回のドラマを録画していて、その後に第2回を録画しようと思った時に、間違って巻き戻されていて、まだ見ていない第1回に上書きしてしまったなんて経験があります。ビデオデッキの場合には、事前に内容を目で見て確認することもできますが、バックアップ用のテープ装置の場合には内容を見ることが難しいです。
そこで、活躍するのがmtコマンドと、テープのEOFマークです。
まず、テープの一番先頭にはBOT(Beginning of Tape)というマークが置かれ、最初の位置を示すようになります。そして、データが書かれた後には必ずEOF(End of File)マークが置かれます。データとEOFを書き終わった段階で、使用したデバイスファイルが「/dev/st0(rewind)」のタイプであった場合には、テープヘッドは先頭に戻ります。「/dev/nst0(no rewind)」を使用している場合は、図1のようにテープヘッドはその位置で停止しています。
|

図1:EOFマークとテープヘッダの関係
|
mtコマンドは以下のようなコマンドに表2のオプションを付けて実行します。詳細なステータスを確認できたり、巻き戻しや早送りなどの機能があります。
|
# mt -f /dev/st0(または/dev/nst0)操作内容
|
 |
操作内容 |
説明 |
status |
テープの状態を表示 |
rewind |
テープを先頭まで巻き戻す |
fsf n |
現存の位置からn個先のファイルまで、テープを進める テープの位置は次のファイルの第1ブロック |
bsf n |
現在の位置からn個前のファイルまで、テープを巻き戻す テープの位置は次のファイルの第1ブロック |
bsfm n |
現在の位置からn個前のファイルマークまで、テープを巻き戻す テープの位置はファイルマークの先頭側 |
|
表2:mtコマンドの主なオプション
|
最初に、mtコマンドのステータスを使用して、現在の状況を確認します。場所を確認するのには、File numberの数字を見るようにしてください。番号0がテープの先頭になります。
|
# mt -f /dev/st0 status
SCSI 2 tape drive:
File number=0, block number=0, partition=0.
Tape block size 0 bytes. Density code 0x1b (DLT 35GB).
Soft error count since last status=0
General status bits on (41010000):
BOT ONLINE IM_REP_EN
|
次に、テストデータを作成し、tarコマンドを使用して(詳細な使用方法は後述します)ファイルを1つ「/dev/nst0」(no rewind)でバックアップしてみます。mtコマンドによって確認してみると、File numberが1となっており、ヘッドの位置が移動していることがわかります。
|
# touch /tmp/testfile
# tar cvf /dev/nst0 /tmp/testfile
tar: Removing leading `/' from member names
tmp/testfile
# mt -f /dev/nst0 status
SCSI 2 tape drive:
File number=1, block number=0, partition=0.
Tape block size 0 bytes. Density code 0x1b (DLT 35GB).
Soft error count since last status=0
General status bits on (81010000):
EOF ONLINE IM_REP_EN
|
EOFはEnd of Fileの意味であり、本来はファイルの終端を示すものですが、同時に連続で書き込む際には、次のファイルの先頭を示すことになります。図2をよく理解し、間違った場所への書き込みは避けなければなりません。
試しに、同じようにDATA02〜04をバックアップすると、File numberは4番目になりました。
|

図2:連続したバックアップ
|
# mt -f /dev/nst0 status
SCSI 2 tape drive:
File number=4, block number=0, partition=0.
Tape block size 0 bytes. Density code 0x1b (DLT 35GB).
Soft error count since last status=0
General status bits on (81010000):
EOF ONLINE IM_REP_EN
|
ここで、もしDATA03をリストアしたいという場合にはどうしたらよいでしょうか?具体的にはFile numberが2番になれば、DATA03の先頭にテープヘッドが移動することになります。単純にbsfオプションを使い、2つ戻ればよいような気がします。しかし、bsfはDATA03の手前のファイルマークではなく、データそのものの第1ブロックに移動してしまいます。その様子は、最終行でEOFが検出されていないことからもわかります(図3)。
|

図3:誤ったテープヘッダの位置
|
# mt -f /dev/nst0 bsf 2
# mt -f /dev/nst0 status
SCSI 2 tape drive:
File number=2, block number=-1, partition=0.
Tape block size 0 bytes. Density code 0x1b (DLT 35GB).
Soft error count since last status=0
General status bits on (1010000):
ONLINE IM_REP_EN
|
正しくは、bsfmコマンドを使用し、その地点を含めたEOFの数戻るという操作をします(図4)。
|

図4:正しいテープヘッダの位置
|
# mt -f /dev/nst0 bsfm 3
# mt -f /dev/nst0 status
SCSI 2 tape drive:
File number=2, block number=0, partition=0.
Tape block size 0 bytes. Density code 0x1b (DLT 35GB).
Soft error count since last status=0
General status bits on (81010000):
EOF ONLINE IM_REP_EN
|
mtコマンドを使用する際には細心の注意が必要です。本格的な運用をする際には、テスト用に使用してもよいメディアを用意し、何度もテストしてみるのがよいでしょう。
このような煩雑な作業は、商用のバックアップソフトウェアを使用することで、すべてGUIで操作が可能であり、リストアしたいジョブの選択が容易になります。
|
前のページ 1 2 3 次のページ
|

|
|

|
著者プロフィール
バックボーン・ソフトウエア株式会社 青木 浩朗
ストレージ専業ベンダーにて、SEおよび企画を担当した後に、2001年にBakBoneSoftware入社。主に大手ベンダーのSEを担当しながら、テクニカル・マーケティングとして、各種講演や執筆活動を行っている。最近は、特にデータベースとクラスタリングに注力し、検証レポートを作成するのをライフワークとしている。
|
|
|
|