【2/17】今年は「濃厚」技術トーク!@ITメールセミナー スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷


第5回 システム・バックアップを基礎の基礎から

浅野史彦、小川典嗣
アイティーブースト(http://www.itboost.co.jp/
2003/1/7

Linuxにおけるテープの操作

 ここでは、Linuxでテープデバイスを扱うための方法を説明します。特に断らない限り、DDS4を前提に話を進めます。

デバイスの認識

 システムが正常にデバイスを認識しているかどうかを確認するには、/proc以下を確認します。例えば、SCSI接続のデバイスであれば、/proc/scsi/scsiを確認すると該当するテープデバイスが表示されるはずです。

# cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 06 Lun: 00
  Vendor: ARCHIVE  Model: Python 06408-XXX Rev: 8071
  Type:   Sequential-Access                ANSI SCSI revision: 03
(略)

 また、例えばIDE接続のテープデバイスをプライマリのスレーブ(/dev/hdb)に接続している場合は、/proc/ide/hdbディレクトリ以下のファイルを確認してください。mediaファイルには「tape」、modelファイルには「製品名」が表示されます。

# cat /proc/ide/hdb/media
tape

# cat /proc/ide/hdb/model
Seagate STT20000A

テープデバイスの扱い方

 初めてテープを扱う方や、イメージファイルを扱った経験がない場合、戸惑うことがあるかもしれませんが、テープデバイスはマウントせずにデータの読み取り/書き込みを行います。

 ディスクのパーティションや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
SCSI 2 tape drive:
File number=3, block number=-1, partition=0.
Tape block size 512 bytes. Density code 0x26 (DDS-4 or QIC-4GB).
Soft error count since last status=0
General status bits on (41010000):
 ONLINE IM_REP_EN

 ファイルを読み出せる位置に移動するには、早送りする必要があります。

# mt -f /dev/st0 fsf 1

 ただし、bsfmという拡張されたオペレーションを利用すれば、直接ファイルを読み出せる位置まで移動することができます。

# mt -f /dev/st0 bsfm 1
# mt -f /dev/nst0 status
SCSI 2 tape drive:
File number=4, block number=0, partition=0.
Tape block size 512 bytes. Density code 0x26 (DDS-4 or QIC-4GB).
Soft error count since last status=0
General status bits on (41010000):
 EOF ONLINE IM_REP_EN

2/3

Index
Linux管理者への道
 第5回 システム・バックアップを基礎の基礎から
  Page 1
どのようなバックアップデバイスを使うべきか?
 ハードディスク
 光メディア
 テープデバイス
テープデバイスの種類
 TRAVAN(QIC)
 DDS(Digital Data Storage)
 DLT(Digital Linear Tape)
 そのほかのテープ規格
  Page 2
Linuxにおけるテープの操作
 デバイスの認識
 テープデバイスの扱い方
 mtコマンドの基礎
  Page 3
各バックアッププログラムの基本操作
 tar
 dd
 dumpとrestore

連載 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フォーラム全記事インデックス

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します

ホワイトペーパーTechTargetジャパン

Linux Square フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

スキルアップ/キャリアアップ(JOB@IT)



- PR -
- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  企業の仮想化に足りない“発想”とは?
仮想化運用管理のキモは意外なところに!

New!
  操作もマニュアルも分かりやすい!
ユーザー視点で開発されたPC管理ツール

New!
  仮想化すればコストは削減できるか?
仮想化に必要な「3つの視点」を解説する

  セキュリティを知り尽くす上野氏が登壇!
@ITメールソリューションLive! in Tokyo

  運用管理の課題を“2つの観点”から分析
ユーザー満足度の高い「仮想環境」とは?

  世界に通用するストレージの作り方とは?
製品に込めた思いを富士通の開発者に聞く

  OSSで手間も時間も、障害も減った――
「マピオンの事例」オープンソース活用法

  「ノートPCの持ち出し禁止」で大丈夫?
情報漏えいを防ぐ管理手法とインフラは?

  1日の処理を1秒に――MySQLの達人が語る
「コスト削減」できるチューニング

  ドキュメント作成を自動化して、SEの作業
効率を大幅アップ! Visio 2007の魅力

  急速に広がるHyper-Vでのサーバ仮想化
そのベストプラクティスをデルが解説

  @IT主催セミナーで語られた、「担当者に
求められるセキュリティ対策」をレポート

  @IT「Windows 7」 特設サイトオープン!
最新情報・移行ノウハウを公開しています