7.2. バックアップ

7.2.1. バックアップの種類

完全バックアップ(フルバックアップ)

すべてのファイルを対象としてバックアップを行うもの。
特徴は以下の通り。

  • バックアップに時間がかかる
  • バックアップに必要な容量も大きい

差分バックアップ

前回のフルバックアップ以後に作成/変更されたファイルのみをバックアップする
特徴は以下の通り。

  • フルバックアップより処理に時間がかからない
  • バックアップ後にはフルバックアップと最新の差分バックアップが必要

増分バックアップ

前回のバックアップ(フルバックアップ/差分バックアップ/増分バックアップ)以後に作成/変更されたファイルのみをバックアップする
特徴は以下の通り。

  • 3種類で最も処理時間が短い
  • 復元にはフルバックアップ/それ以降の増分バックアップが必要

7.2.2. バックアップデバイス

バックアップに利用できるデバイスには以下のようなものがある。

CD-R/RW リムーバブルハードディスク

CD-R/RWは安価で容量が小さい。
リムーバブルハードディスクは高速で大容量で高価となる。

DVD-R/RW

DVD-R/RWはCD-R/RWより大容量なディスク。
容量は4.7GB~8.54GBほど。

BD-R/RE

BD-R/REはDVD-R/RWよりも大容量なメディア。
容量は約25GB~50GBほど。

特徴は以下の通り。

  • BD-Rは一度のみ書き込み/追記が可能
  • BD-REは繰り返し書き換えできる

磁気テープ

大容量で低価格のメディア。
容量は規格により異なり、また定期的に取り換える必要がある。

規格容量
DDS440GB(圧縮時)
SuperDLT-300320GB(圧縮時)
LTO Ultrium3800GB(圧縮時)

7.2.3. オンサイトとオフサイト

バックアップの保管場所にはオンサイトオフサイトのバックアップがある。

  • オンサイト … バックアップ対象のシステムと同一拠点にバックアップを保管する
  • オフサイト … 別拠点にバックアップを保管する

ネットワーク経由のバックアップ

ツールではAMANDA, Balcula, BackupPC, Bareosなどでネットワーク経由でバックアップ可能。
またストレージ用のネットワーク構築にはSANが使用される。

  • AMANDA … 1台のAmandaサーバでネットワーク内の複数のクライアントをテープ/ディスクドライブにバックアップ可能
  • Balcula … 1台のBaculaサーバでネットワーク内の複数のクライアントを様々な記録メディアにバックアップ可能、CUI/GUIを使える
  • BackupPC … いくつかの標準プロトコルを利用するのでクライアント不要のバックアップツール、WebUIを使用可能
  • Berous … Baculaプロジェクトから派生したバックアップツール

7.2.3. ローカルのバックアップ

tarコマンド

tarコマンドはファイルやディレクトリを1つのアーカイブファイルにしたり、圧縮/展開するコマンド。
デフォルトで圧縮しないため、tarコマンドで圧縮を行うためには-zオプションや、-jオプションを指定する必要がある。

tar [オプション] [ファイル]
オプション説明
-cアーカイブの作成
-xアーカイブからファイルの取り出し
-tアーカイブの内容の確認
-f ファイル名アーカイブファイル名の指定
-zgzip による圧縮 ・ 展開
-jbzip2 による圧縮 ・ 展開
-J7zip による圧縮 ・ 展開
-v詳細な情報の表示
-uアーカイブ内にある同じ名前のファイルより新しいものだけを追加
-rアーカイブにファイルの追加
-N指定した日付より新しいデータのみを対象とする
-M複数デバイスへの分割
–deleteアーカイブからファイルの削除

使用例は以下の通り。

tar jcf /dev/sdb1 - # USBメモリにホームディレクトリ

cpioコマンド

ファイルをアーカイブファイルにコピーしたり、アーカイブからファイルをコピーできるコマンド。

cpio [フラグ] [オプション]
フラグ説明
-i オプション パターンアーカイブからファイルを抽出
-o オプションアーカイブの作成
-p オプション ディレクトリファイルを別のディレクトリにコピー
オプション説明
-A既存のアーカイブファイルに追加
-d必要な場合にディレクトリの作成
-rファイルを対話的に変更
-tコピーせず、入力内容の一覧表示
-vファイル名の一覧表示

使用例は以下の通り。

ls | cpio -o > /tmp/backup

ddコマンド

入力側に指定したファイル内容をファイルもしくは標準出力に送るコマンド。
デバイス間のディスクコピーやブートドライブの作成に利用可能。

dd [オプション]
オプション説明
if=入力ファイル入力側の指定(標準は標準入力)
of=出力ファイル出力側ファイルの指定(標準は標準出力)
bs=バイト数入出力のブロックサイズを指定
count=回数回数分の入力ブロックをコピーする

ddコマンドでは入力に以下のいずれかの特殊ファイルを指定してデータの上書きを行える。
格納されたデータを消去することが可能。

  • /dev/zero … 16進数のデータ「0x00」を生成する特殊ファイル
  • /dev/urandom … 擬似乱数を生成する特殊ファイル

dumpコマンド

ファイルシステム単位でext2/ext3/ext4ファイルシステムをバックアップするコマンド。
バックアップからファイルを取り出すときなどに使用でき、磁気テープにバックアップを取る際に適している

dump [オプション] [バックアップ対象]
オプション説明
0~9dumpレベルを指定する(0は完全バックアップ)
uバックアップ実装時に/etc/dumpdatesを更新する
f デバイス名バックアップ装置のデバイスを指定する

dumpレベルの指定で増分バックアップが可能。
なお増分バックアップを行う際はuオプションの指定し、バックアップの記録を/etc/dumpdatesに記録する必要がある。

dump 0uf /dev/st0 /dev/sda4

磁気テープの命名規則には以下のような特徴がある。

  • /dev/st0 … 自動巻き戻しをする
  • /dev/nst0 … 自動巻き戻しをしない

restoreコマンド

dumpコマンドで作成したバックアップからファイルやディレクトリを取り出すコマンド。

restore [オプション] [ファイル名]
オプション説明
rすべてのファイルを取り出す
i対話的にファイルを取り出す
f デバイス名バックアップ装置のデバイスを指定

mtコマンド

テープドライブを操作するコマンド。

mt [-f デバイス] [オペレーション]
オペレーション説明
statusテープの状態を表示
tellテープの現在地の表示
rewindテープを先頭に巻き戻す
fsf NテープをN個先のデータを先頭位置まで早送りにする
compression 1ハードウェア圧縮を使用する
compression 0ハードウェア圧縮を使用しない

使用例は以下の通り。

# テープの現在地から3つ先にあるデータの先頭位置までテープを早送り
mt -f /dev/st0 fsf 3

7.2.4. ネットワーク経由でのバックアップ

rsyncコマンド

リモートホスト間でファイルやディレクトリをコピーできるコマンド。

rsync [オプション] [ホスト名:] バックアップ元ディレクトリ [ホスト名:] バックアップ先ディレクトリ
オプション説明
-vコピー中のファイルを表示
-aアーカイブモード(属性もそのままコピー)
-rディレクトリ内を再帰的にコピーする
-u変更/追加されたファイルのみをコピーする
-lシンボリックリンクをそのままコピーする
-Hハードリンクをそのままコピーする
-o所有者をそのまま維持
-g所有グループをそのまま維持
-tタイムスタンプをそのまま維持する
-nテスト
-zファイルを圧縮する
-deleteコピー元ファイル削除コピー先でも削除する

使用例は以下の通り。

# ローカルホスト内でdirディレクトリを/backupディレクトリ内にコピー
rsync -auv --delete dir /backup
# ローカルホスト内でdirディレクトリ内のファイルを/backupディレクトリ内にコピー
rsync -auv --delete dir/ /backup

# host12の/backupに差分保存する例
rsync -auvz --delete -e ssh dir host12:/backup