2022年8月、ホームページを全面リニューアルしました! 情報を分かりやすくお伝えできるサイト作りを目指してまいります。

バックアップとリストアをマスターしよう!

当然ですがデータは重要で、それを作成した時間とデータのかけがえなさで、その価値が形成されます。したがって、そのデータを失わないように注意すべきです。本書では、そのかけがえのないデータを守るバックアップ及びリストア方法をマスターします。良いバックアップとはどういうものか、さらには良いバックアップメディアやバックアップツールの選びかた。及び、最終的には差分バックアップやフルバックアップなどのバックアップ方法と、それぞれを実行する時期についてマスターしよう。


1.十分なバックアップの考慮をしよう!

データは言うまでもなく重要で、それを作成するのにかかった時間とデータのかけがえなさで、その価値が形成される。したがって、データを失わないように注意すべきである。
データは、色々な理由で失われる可能性がある。

● 間違って、 rm -r を実行してしまった(^_^;)
● ハードウェアの故障。
● 欠陥のあるソフトによるデータの破壊。
● ウィルスによる被害。

等のような、原因が考えられる。

1.1 十分なバックアップの考慮

バックアップは時間とデータに対する投資を保証してくれるが、それはバックアップを正しく実行し、情報を保持している場合だけである。したがって、正しいバックアップ手順の一部は、バックアップを抜き打ち検査するテスト戦略になる。これは、そのバックアップを使って復旧を実行してみることである。これは、実際に必要になる前に必ず試しておくべきである。
バックアップ方法としては、データをtarでアーカイブして別な場所に保管しておき、必要な場合に解凍してリストアする。

1.2 バックアップとアーカイブの違いは何か?

● バックアップとは、データ全体か増分を定期的に保存するファイル操作である。
● アーカイブとは、データを長期にわたって保存するファイル操作である。


2.良いバックアップをしよう!

2.1 良いバックアップとは?

バックアップは、

● 十分に信頼性が高く。
● いつでも利用できる。
● 簡単に使用できる。
● 高速である。

以上が、バックアップの理想である。
特に、バックアップは信頼性が高くなければならない。信頼できるバックアップメディアなら、数年間は保つであろう。もちろん、バックアップがバックアップメディアに正しく書き込まれていなければ、どんなに良いメディアでも意味がない。


3. バックアップメディアの選択をしよう!

3.1  バックアップメディアの選択

● バックアップメディアの種類

メディア信頼性スピード可用性有用性
フロッピーディスク低速小さいデータに適しているが、大容量メディアには向いていない。
CD-R低速一度だけ書き込み可能なメディア。アーカイブには向いている。
CD-RW低速読み書き可能なメディア。中規模システムには、経済的。
Zip低速100MBのストレージ。小規模システムには向いている。
MO低~中速120MB、230MB、640MB、1.3GBのメディアがある。日本ではかなり普及している。
フラッシュROM高速非常に高価。現在は、200MB以下に制限。
テープ中~高速テープのサイズにもよるが、有用性は高い。しかし、Linuxではフォーマットできない。
リムーバブルHD高速かなり高価だが、2GB以上の容量が使用できる。
ハードディスク高速有用性は高い。

表1

● バックアップメディア選択のこつ

書き込み可能なCD-Rは、アーカイブ用途に適しており、CD-RWならば上書きできる。しかし、定期的にアーカイブやバックアップをたくさん作成しなければならない場合は、費用が高くなる傾向がある。フロッピーと光ディスクの特性を合わせ持つMO(光磁気ディスク)は、フロッピーディスクとテープの良い特性を備えており、1つのファイルを復旧するのに適している。MOは大容量データを保持でき、日本の消費者市場には浸透している。


4.バックアップツールの選択

4.1 バックアップツールの種類

バックアップの作成には、色々なツールが利用できる。多数のサードパーティ製アプリケーションの他にもRedHat系Linuxにはバックアップ作業を実行するための標準ツールがいくつか付属している。

● バックアップツールの種類と特徴

ここでは、RedHat系Linuxに標準装備されている、tar、cpioについて話を進めていく。
tarとcpioはいずれもよく似ている。また、tarとcpioはどちらも小規模なシステムに向いており、RedHat系Linuxシステムに含まれている。
cpioはtarコマンドに似ているが、いくつかの利点をもっている。まず、データをずっと効率的にアーカイブする。次に、任意のファイルセットをバックアップするように設計されている(tarはサブディレクトリをバックアップするように設計されている)。
さらに、cpioは複数のテープに分割されるバックアップを扱えるように設計されている。
最後に、cpioはテープの不良セクションをスキップして続行できるが、tarはクラッシュしてしまう。

4.2 バックアップツールの使い方

例えば、以下のtarコマンドは、/homeにある全てのファイルを標準出力(これは、システムのテープデバイスにリダイレクトできる)に出力する。

# tar -c /home

-cオプションはtarに対して、新しいアーカイブを作成するように指示し、指定したディレクトリはファイルを集めるために使用される。


5.バックアップの戦略と操作

5.1 フルバックアップと差分バックアップ

● フルバックアップとは?

フルバックアップとは、システムから全てのファイルをメディアにコピーすることである。
フルバックアップの欠点は、時間がかかることだ。テープアーカイブのような大きなバックアップから1つのファイルだけ復旧するのは、とても面倒なので意味がない。

● 差分バックアップとは?

差分バックアップとは、より頻繁に実行される傾向がある。差分バックアップでは、最後のバックアップ以降に変更されたファイルだけがバックアップされる。したがって、それぞれの差分は前回のバックアップに基づいて構築される。

● バックアップ戦略

Unixでは、バックアップを区別するためにバックアップレベルという概念を採用している。
フルバックアップは、レベル0バックアップと呼ばれている。他のレベルは前のレベル以降に変更されたファイルを示している。例えば、以下のバックアップ計画を考えてみる。

日曜日・・・・・・・・レベル0バックアップ
月曜日・・・・・・・・レベル1バックアップ
火曜日・・・・・・・・レベル1バックアップ
水曜日・・・・・・・・レベル1バックアップ
木曜日・・・・・・・・レベル1バックアップ
金曜日・・・・・・・・レベル1バックアップ
土曜日・・・・・・・・レベル1バックアップ

このバックアップ計画は、日曜日の夜にレベル0バックアップ(フルバックアップ)を実行したとする。月曜日の夜には、レベル1バックアップを実行することになるが、これは、レベル0バックアップ以降に変更されたファイルを全てバックアップする。以降、レベル0バックアップ以降に変更されたバックアップを毎日繰り返すため、レベル1バックアップとなる。
このようなバックアップの利点は、2セットのバックアップメディアを必要としないことである。

日曜日・・・・・・・・レベル0バックアップ
月曜日・・・・・・・・レベル1バックアップ
火曜日・・・・・・・・レベル2バックアップ
水曜日・・・・・・・・レベル3バックアップ
木曜日・・・・・・・・レベル4バックアップ
金曜日・・・・・・・・レベル5バックアップ
土曜日・・・・・・・・レベル6バックアップ

このようなバックアップの利点は、それぞれのバックアップがかなり高速に実行されることだ。また、バックアップが比較的小さなサイズのままで、管理しやすい。欠点は7セットのメディアが必要となることだ。また、完全な復旧を実行するには、7セットのバックアップを全て使用しなければならない。

● tarのバックアップの方法

まず、tarを使ってのフルバックアップを行ってみよう!

# tar -cf device /

これは、/(ルート)ファイル全てを保管ファイルdeviceというファイルにしてバックアップすることを意味している。
次に、findコマンドを使用して、差分バックアップをしてみよう!!

# tar -cf /dev/rmt1 `find / -mtime -1 ! -type d -print`

ある日付以降に変更された全てのファイルを見つけるために、findコマンドをバックアップで使用することが出来る。また、findコマンドで、指定したファイルより新しいファイルも見つけることも出来る。このような情報を利用すれば、差分バックアップを簡単に実行出来る。この実行文では、今日変更された全てのファイルを見つけだし、それらのファイルをtarコマンドで/dev/rmt1のアーカイブにバックアップする意味を表している。この中で、! -type dは、見つかったオブジェクトがディレクトリなら、それをtarコマンドに渡さないように指示する。このような指示をするのは、tarはディレクトリをサポートしているし、ディレクトリ内にある全てのファイルが変更されない限り、ディレクトリ全体をバックアップしたくないからである。

● cpioを使ったバックアップの方法

以下のコマンドは、書き方は違うが前項と同じ事を行っている。

# find / -mtime -1 | cpio -o /dev/rmt1

前述したように、findコマンドは、指定したファイルより新しいファイルを見つけられる。touchコマンドは、ファイルの最終訂正日付を更新する。したがって、バックアップを完了した後で、ファイルの修正日付を簡単に更新できる。そして次回のバックアップでは、touchコマンドを実行したファイルより新しいファイルを検索するだけである。以下の例は、ファイル/tmp/last_backupより新しいファイルを検索し、cpioを実行してデータをアーカイブする。

# find / -newer /tmp/last_backup -print | cpio -o > /dev/rmt1

tarを使うと同じ操作が次のようになる。

# tar -c1f /dev/rmt1 `find / -newer /tmp/last_backup -print`

5.2 taperスクリプトでバックアップを行う

taperスクリプト(/usr/sbin/taper)は、RedHat系Linuxに付属しているバックアップと復旧用のプログラムである。

● taperのバックアップ方法

taperコマンドラインの書式は、以下のようになる。

# taper -T [tape-type] option device

● taperでサポートしているデバイス

デバイスタイプコマンドライン
/dev/zftapeフロッピーテープドライブtaper -Tz
/dev/ht0IDEテープドライブtaper -Ti
fileハードディスク上のファイルtaper -Tl
/dev/ftapeフロッピーテープドライブtaper -Tf
/dev/fd0リムーバブルフロッピードライブtaper -Tr
/dev/sda4リムーバブルZipドライブtaper -Tr -b /dev/sda4(-bはデバイスとアーカイブファイルを示す)
/dev/sdaSCSIテープドライブtaper -Ts

表2

コンソールかX11ターミナルウィンドウのコマンドラインからtaperを起動すると(rootオペレータでなければならない)、バックアップ、復旧、情報ファイルの再作成、ベリファイ、プリファレンス設定、終了などのオプションがあるメニューが表示される。このメニューにより操作を行う。


6.ファイルの復旧

6.1 ファイルの復旧方法

ファイルをバックアップするのはよいが、バックアップは保険証券のようなものだ。それらが支払われるときになると、すぐに全てが欲しくなるものである。ファイルを取得するには、それらを復旧しなければならない。
幸いにも、tarやcpioは難しくない。以下のコマンドは、ドライブ内のテープからファイル/home/alana/bethany.txtを復旧する。

# tar -xpf /dev/rmt1 /home/alana/bethany.txt# cpio -im ‘*bethany.txt$’ < /dev/rmt1

tarの-pとcpioの-mオプションは、全てのファイルの属性がファイルと一緒に復旧されることを保証する。ところで、cpioでディレクトリを復旧するときには、-dオプションでサブディレクトリを作成する。tarコマンドは、自動的にサブディレクトリを作成してくれる。


7.テープドライブ使用時の内容表示

7.1 テープの内容表示方法

テープドライブを持っていても、その中身が解らない場合がある。おそらく、複数レベルの学区アップ方法を採用していて、ファイルをいつバックアップしたか解らないときが発生するであろう。tarとcpioのどちらも、テープの目次を作成する方法を用意している。この目次をTOC(Table of Contents)といい、ファイルを作成するのに最適なのは、もちろん実際にバックアップを作成するときである。
以下の2行は、バックアップを実行し、同時にそのテープのTOCファイル作成する方法を示している。

# tar -cvf /dev/rmt1 / > /home/alana/bethany.txt

# find / -print | cpio -ov > /dev/rmt1 2> /tmp/backup.Monday.TOC

cpioを使ったバックアップは、標準エラーを自動的に出力するので、上記の行は標準エラーを補足し、それをファイルとして保存する。ところで、tarコマンドの「>」をteeに置き換えると、TOCがファイルに書き出されるだけでなく、標準出力(画面)にも表示される。


8.バックアップ・リストアの注意点

バックアップは重要だが、ファイルを復旧する方がより重要である。システムの復旧を試してみて、バックアップに失敗したときほど悲しいことはない。システムで実行する他の管理作業と同様に、バックアップには十分なプラン、適切な実行、良いドキュメント、たくさんのテストが必要となる。バックアップをたまに抜き打ちチェックする事で、数日ではないにせよ、何時間も節約できる。

以上

コメント