【3/18〜】Amazon、VMwareが語る『クラウドの未来』 スラッシュドット    はてなブックマーク  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-
  TomcatやJBossなどAPサーバ環境に関する
情報を集約! “業務”用APサーバ大百科

New!
  一気に解説! 最新のクラスタストレージ
「RAIDを超えたストレージ基準」……など

New!
  クラウド的ユーザー体験の変化は脅威か?
仮想化技術を使いこなす運用管理術を紹介

New!

  上司や部下、部署内メンバーとの情報共有
を“ガラッ”と変えるコラボツールとは?

New!
  おばかアプリ選手権、第4弾開催中!!
ムダにカッコよくてくだらない作品求ム!

  社内ファイルサーバを“クラウド”に統合
VPN直結「クラウド型ストレージ」を紹介

  Twitterのアカウントはなぜ突破された?
メールによる新手の攻撃手法とその対策

  もう仮想化のお試しフェイズは終わりだ!
Hyper-V 2.0が基幹システムも仮想化

  美人!? まあまあ? 気になる いやし系!!
PV急増で「美人時計」がとった手段とは?

  クライアント企業から求められる人材
⇒IT技術と経営戦略を併せ持つ「戦略家」

  .NET編集長が実践する「技術情報検索術」
サンプル・コードを簡単に探す“技”は?

  業務効率と情報セキュリティ対策を両立!
手間なく確実に機密情報を守る方法とは?

  進化を続ける富士通ストレージETERNUS DX
製品開発者の自信を裏付けるものとは何か

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

  【CTC事例】約30の基幹システムを統合!
膨大なバッジジョブを制御した方法は?

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

  その数、なんと400台以上! グループ内
サーバの「統合管理」によるメリットは?