
第5回 システム・バックアップを基礎の基礎から
浅野史彦、小川典嗣
アイティーブースト(http://www.itboost.co.jp/)
2003/1/7
Linuxにおけるテープの操作
ここでは、Linuxでテープデバイスを扱うための方法を説明します。特に断らない限り、DDS4を前提に話を進めます。
■デバイスの認識
システムが正常にデバイスを認識しているかどうかを確認するには、/proc以下を確認します。例えば、SCSI接続のデバイスであれば、/proc/scsi/scsiを確認すると該当するテープデバイスが表示されるはずです。
# cat /proc/scsi/scsi |
また、例えばIDE接続のテープデバイスをプライマリのスレーブ(/dev/hdb)に接続している場合は、/proc/ide/hdbディレクトリ以下のファイルを確認してください。mediaファイルには「tape」、modelファイルには「製品名」が表示されます。
# cat /proc/ide/hdb/media |
# cat /proc/ide/hdb/model |
■テープデバイスの扱い方
初めてテープを扱う方や、イメージファイルを扱った経験がない場合、戸惑うことがあるかもしれませんが、テープデバイスはマウントせずにデータの読み取り/書き込みを行います。
ディスクのパーティションやCD-ROMのような回転系のメディアに保存されているデータの場合、あるディレクトリにマウントし、メディアの中に存在するディレクトリ構造をたどってデータを扱います。それに対してテープデバイスはマウントせず、1つのファイルのように扱うのが普通です。
SCSI接続のテープデバイスの場合、通常は/dev/st0を、IDE接続の場合は/dev/ht0を利用します。
ただし、/dev/st0や/dev/ht0を利用した場合、データを保存したり読み出したりするとテープが自動的に巻き戻されるため、テープに1つのデータしか格納できません。1本のテープに複数のファイルを保存したい場合は、/dev/nst0や/dev/nht0といったnorewind(巻き戻しなし)のデバイスファイルを使います。
テープの構造は図1のようになっています。テープの先頭にはBOT(Begin Of Tape)マークが存在し、その後に保存するファイルデータが置かれます。また、ファイルデータの最後にはEOF(End Of File)マークが置かれます。データはデータブロック単位で書き込まれ、ブロックとブロックの間にはIRG(Inter Record Gap)と呼ばれるすき間があります。テープ上のデータを扱う場合は、ヘッドの位置決めをしてからファイルを読み取る必要があります。
![]() |
| 図1 テープ内のデータ配置構造 |
回転系のメディアと異なり、早送りと巻き戻しを繰り返しながらテープにどのようなデータが入っているかを確認する必要があるため、テープにデータを格納する場合は必ず「いつ」「どのホストの」「どのデータをバックアップしたのか」を把握できるように、ラベルを作成して管理することを忘れないでください。
また、1本のテープに入り切らないようなデータを、複数のテープにまたがって記録することも可能です。
![]() |
| 図2 データは複数のテープにまたがることが可能 |
■mtコマンドの基礎
Linuxでテープを操作するには、mtコマンドを利用します。一般的なディストリビューションにはmt-stというソフトウェアが付属しているはずなので、システムにインストールしておきましょう。また、ソースパッケージは以下のURLから入手可能です。
ftp://ibiblio.org/pub/Linux/system/backup/mt-st-0.7.tar.gz
mtコマンドの書式は以下のようになります。
# mt -f /dev/st0 オペレーション |
fはデバイスファイルを指定するオプション、「オペレーション」の部分はどのような操作をするのかを示すキーワードが入ります。以下に主要なオペレーションを紹介します。
|
オペレーション
|
説明
|
| status | テープの状態を表示 |
| tell | テープの現在のブロック位置を示す |
| compression 0 or 1 | ハードウェア圧縮を有効/無効にする。引数に1を取れば有効、0を取れば無効 |
| rewind | テープを先頭まで巻き戻す |
| bsf n | 現在位置からn個前のファイルまで、テープを巻き戻す。テープの位置は次のファイルの第1ブロック |
| bsfm n | 現在位置からn個前のファイルマークまで、テープを巻き戻す。テープの位置はファイルマークの先頭側 |
| fsf n | 次のデータの先頭位置までテープを早送りする |
| nは数値 | |
●ハードウェア圧縮 compression
データの圧縮にはソフトウェア圧縮とハードウェア圧縮があります。ソフトウェア圧縮をする場合、圧縮処理にCPUが使われます。ハードウェア圧縮では専用の圧縮用チップで処理を行うため、CPUに負担を掛けずに高速な処理が可能で、圧縮した分だけバックアップ時間が短くなります。
テープメディアに記されている「20/40GB」といった容量は、非圧縮時/圧縮時の容量ですが、圧縮したからといって必ずしも40Gbytesのデータが保存できるわけではありません。データ形式によって、圧縮があまり効かないものも存在します。
ハードウェア圧縮を利用する場合は、compressionを使用します(通常はデフォルトで有効になっています)。
# mt -f /dev/st0 compression 1 |
逆に、圧縮を無効にするにはcompressionの引数に「0」を指定します。
# mt -f /dev/st0 compression 0 |
●テープ位置の移動 bsf、fsf、bsfm
複数のデータが入ったテープで特定のデータを利用するには、データを読み出せる位置に移動するために巻き戻し、早送りをする必要があります。例えば、3つ先のデータを読み出せる位置に移動するにはfsfを利用します。
# mt -f /dev/st0 fsf 3
1つ前のEOFに移動するにはbsfを利用します。ただし、bsfではファイルを読み出せる位置にテープをつけることができません。例えば、bsfを使用して1つ前のファイルに移動した後、
# mt -f /dev/st0 bsf 1 |
statusで状態表示を行うと、以下のように「block number」が-1になります。
# mt -f /dev/nst0 status |
ファイルを読み出せる位置に移動するには、早送りする必要があります。
# mt -f /dev/st0 fsf 1 |
ただし、bsfmという拡張されたオペレーションを利用すれば、直接ファイルを読み出せる位置まで移動することができます。
# mt -f /dev/st0 bsfm 1 |
|
2/3
|
|
||||||
|
||||||
| 連載 Linux管理者への道 |
| Linux Squareフォーラム Linux/システム学習関連記事 |
| 連載:Windowsユーザーに教えるLinuxの常識(全12回) Windowsのセオリーが通用しないLinux。Linux初心者向けに、LinuxというOSの考え方/常識をゼロから伝授! |
|
| 連載:LFSで作って学ぶLinuxの仕組み(全4回) 管理者(root)は、何をしなければならないのか? 管理に際して検討すべきことは? 管理のための技術とは? など、駆け出し管理者のための考え方や方法論を検討する |
|
| 連載:Linux管理者への道(全8回) 「Linux From Scratch」というシンプルなLinuxをインストール&環境構築する作業を通して、LinuxがOSとして機能するための仕組みや設定を見直そう |
|
| Linux Squareフォーラム全記事インデックス |
|
TechTargetジャパン
- 新しい記事も入っていて安心しました (2012/2/7)
Linux Squareのアクセスランキングを公開します。定番の記事ばかりでなく、連載中の記事もよろしくお願いいたします - エラーメッセージをどう扱うか? (2012/2/2)
今回は、スクリプト実行時にエラーが発生したことを知らせるメッセージの扱い方を説明します - ファイルのアップロードを制限する (2012/1/30)
HTTPクライアントがアップロードしてくるファイルの扱いについて解説します。そもそも受け入れる必要があるのか? ということのほかにも、いろいろ設定が必要です - OSに付属するシェルスクリプトを読んで技術を盗む (2012/1/27)
シェルスクリプトマスターに近づくには、他人から技術を盗まなければならない。OS付属のスクリプトから技術を盗もう
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -


