Tech Sketch Bucket of Technical Chips by TIS Inc.

Amandaを使ってバックアップ(導入編)

Pocket

システムの運用を考える上でバックアップは欠かせません。つい最近、社内システムのバックアップ環境を構築する機会がありましたので、そこで採用したOSSのバックアップツール「Amanda」の機能を4回に分けて紹介します。

今回はAmandaの概要と導入時のTIPS編です。


Amandaについて

今回採用した Amanda はサーバ用OSSバックアップツールの定番ソフトウェアの一つで、以下のような特徴があります。

  • ネットワークに接続された複数台のクライアントを1台のサーバにまとめてバックアップすることが可能。
  • 設定によりユーザ作成のスクリプトを起動させることが可能。
  • バックアップ所要時間が毎日ほぼ同じになるようにバックアップレベルを最適化する。
  • 対応するバックアップメディアが豊富。(各種テープ、HDD、リムーバブルディスク、Amazon S3等)
  • 対応OSが幅広く、複数OS混在環境でもバックアップ可能。(Linux、UNIX、BSD、Mac OS X、Windows)
  • バックアップファイルはOSの標準機能だけでリストア可能な形式となっておりインターネットに繋げない(=Amandaをダウンロード&インストールできない)状態でサーバ再構築する場合でもデータの復元可能。
  • エンタープライズ版とコミュニティ版が提供されている。(当記事ではコミュニティ版のみ取り扱い)

バックアップファイルさえ無事ならAmanda無しでもリストア可能なので、最悪の事態への備えという点での安心感は大きいです。無料のコミュニティ版でAmazon S3への保存まで対応しているというのも大きな特徴です。

セットアップ

yumでもインストール可能ですが、現状ではCentOSの標準レポジトリで提供されているのがver2.6.1と古いため、 配布サイト から最新版(2013/2/15現在 ver3.3.3)をダウンロードします。セットアップおよび基本的な使い方は既に日本語の詳しい解説もいくつかあるのでそちらを参照してください。(下記の情報にお世話になりました。)

商用バックアップツールのようなUIの提供が無く、セットアップに設定ファイルの編集が必要な分とっつきにくい印象がありますが、実際やってみるとサンプル設定は結構実用的に作られており、シンプルなファイルシステムのバックアップであれば編集量は思った以上に少なく、下図のように単純な構成であればインストールから30分ほどでテスト稼動までこぎつけました。

完成イメージ

「amcheck」というツールで設定ファイルのチェックやクライアントの接続チェックなど一通りの確認を行ってくれます。英語ですがわりと細かく問題のある箇所を指摘してくれますので、ここで「0 problem found.」となるまで問題をつぶしておけば、本番稼動時は安定動作してくれます。

導入時のTIPS

日本語のセットアップ手順解説情報を探していると、少し古いバージョンの2.x系で書かれている記事が多いのですが、最新版ではメイン設定となるamanda.confの項目追加によって、参考にしたサイトの手順より多少セットアップが簡略化されていますので、ご紹介します。
従来は仮想テープ(※)の相当のディレクトリを使用本数だけ作成する必要がありましたが、ver3.3から、仮想テープドライブの自動作成機能が追加され、ディレクトリの準備が不要になりました。

※:AmandaはHDDへの保存でも特定のディレクトリを仮想的なテープと見立てて動作しています。

以下にamanda.confの主要設定部分の抜粋を示します。赤字部分が仮想テープ自動作成用追加項目です。

/etc/amanda/DailySet1/amanda.conf

org "DailySet1" # 設定名。デフォルト:DailySet1
mailto "hoge@ml.example.com" # 通知先メールアドレス
dumpcycle 1 week # 週1(土曜)フルバックアップ
runspercycle 7 # dumpcycle(1週間)中7回バックアップ
tapecycle 22 tapes # バックアップに使用するテープ本数 (dumpcycle * runspercycle * 3世代 + 1 = 21)
runtapes 1 # バックアップ1回につき1本の仮想テープに収める

define changer my_vtapes {
tpchanger "chg-disk://var/lib/amanda/vtapes" # 仮想テープ(ディレクトリ)を作成する場所
property "auto-create-slot" "yes" # スロット自動作成ON
property "num-slot" "22" # スロット自動作成時、作成される数(tapecycleと同じ数を指定)
}

tpchanger "my_vtapes"
tapetype HARDDISK # 保存先
labelstr "^DailySet1-[0-9][0-9]*$" # ラベル名の正規表現
autolabel "$o-%%" EMPTY VOLUME_ERROR # ラベル自動的割り当て

(後略)

amcheck or amdump起動時に/var/lib/amanda/vtapesに仮想テープディレクトリ(slotXXという1から始まる連番のディレクトリ)を自動作成してくれます。

 # ls -l /var/lib/amanda/vtapes (←空っぽ)
 合計 0

 # sudo -u ambackup amcheck DailySet1
 Amanda Tape Server Host Check
 -----------------------------
 found in slot 1: contains an empty volume
     :
 Client check: 1 host checked in 2.142 seconds. 0 problems found.
 
 (brought to you by Amanda 3.3.2)

 # ls -l /var/lib/amanda/vtapes (←仮想テープディレクトリが作られていることを確認)
 合計 92
 lrwxrwxrwx 1 amandabackup disk 6 1月 24 14:34 data -> slot1
 drwxr-xr-x 2 amandabackup disk 4096 1月 24 14:34 slot1
          :
 drwxr-xr-x 2 amandabackup disk 4096 1月 24 14:34 slot9
 -rw------- 1 amandabackup disk 175 1月 24 14:34 state
 #

ごく小さな手間ですが環境が完成するまでに何度も作り直すこともある構築・テスト段階にはとても助かる機能追加です。もちろん、従来の手順どおり手作業で仮想テープの準備をしても問題ありません。

超余談

海外製OSSには往々にしてありがちですが、セットアップまでの日本語情報は見つかるものの、少し細かいカスタマイズを始めようとすると、wiki・フォーラムの英語をひたすら読むしかなくなるため、ハードルがあがります。こんなときに頼りになる検索エンジン&翻訳サイト!・・・と思いきや、この名前のせいで検索結果にずらりと並ぶ女性(アマンダさん?)の写真が邪魔をしてくれます。職場で検索するとけっこう焦るレベル。検索キーワードは「backup」もセットで!

次回はバックアップ前後に自作の処理を実行させるカスタマイズについてご紹介します。

エンジニア採用中!私たちと一緒に働いてみませんか?