Amandaは複数の設定を定義出来る。
組織やプロジェクト、ホストグループ、周期などで定義を分けて使えて便利。
ここでは便宜的にそれらグループを「プロジェクト名」とする。
順序としては
1.定義ファイルにグローバルパラメータ「org」でプロジェクト名を定義 2.定義したプロジェクト名で/etc/amanda以下にフォルダを作成 3.作成したフォルダ以下に定義ファイルを設置
となるが、要は以下のように定義とフォルダと設置場所が一致していればよい。
/etc/amanda |-- DailySet1 ←DailySet1が規定値。変更して差し支えないが定義も変更すること | `-- amanda.conf(org "DailySet1") | |-- Sales ←例えば営業部のバックアッププロジェクト | `-- amanda.conf(org "Sales") | |-- Develop ←例えば開発部のバックアッププロジェクト | `-- amanda.conf(org "Develop") …
設定ファイルを置く場所が2箇所で、ちょっとややこしい。
■amandabackupのホームディレクトリ /var/lib/amanda |-- .am_passphrase ←暗号化時用パスフェーズ |-- .amandahosts ←bsdtcp用ACL |-- amanda-release |-- example ←各種定義サンプル(適宜コピーおよび編集して使用) | |-- amanda-client-postgresql.conf | |-- amanda-client.conf | |-- amanda.conf ←全部ひとまとめに書いてあるサンプル | |-- chg-multi.conf | |-- chg-scsi.conf | |-- disklist | |-- inetd.conf.amandaserver | |-- label-templates | | |-- 3hole.ps | | |-- 8.5x11.ps | | |-- DIN-A4.ps | | |-- DLT-A4.ps | | |-- DLT.ps | | |-- EXB-8500.ps | | `-- HP-DAT.ps | |-- xinetd.amandaclient ←クライアント側xined用定義ファイル(/etc/xinetd.d以下にコピーして使う) | `-- xinetd.amandaserver ←サーバ側xinetd用定義ファイル(/etc/xinetd.d以下にコピーして使う) |-- gnutar-lists | `-- <host名>_n ←tar内容リスト `-- template.d ←テンプレート(/etc/amanda/XXXにコピーして使う) |-- README |-- advanced.conf |-- amanda-S3.conf |-- amanda-harddisk.conf |-- amanda-single-tape.conf |-- amanda-tape-changer.conf |-- chg-manual.conf |-- dumptypes `-- tapetypes
■amandaの設定ディレクトリ /etc/amanda |-- DailySet1 ←プロジェクト名(Amandaはプロジェクトごとに設定する仕様) | |-- amanda.conf ←メイン設定 | |-- advanced.conf ←その他設定 | |-- disklist ←バックアップ対象リスト | |-- tapelist ←テープ状態リスト(自動生成) | |-- curinfo ←データベースディレクトリ(以下は自動生成) | | `-- <host名> | | `-- _<バックアップ対象> | | `-- info | |-- index ←インデックスディレクトリ(以下は自動生成) | | `-- <host名> | | `-- _<バックアップ対象> | | |-- yyyymmddhhmmss_n.gz | | `-- yyyymmddhhmmss_n.header | `-- tapelist.lock |-- amanda-client.conf `-- template.d ←テンプレート(/var/lib/amandaからコピーする) |-- README |-- advanced.conf |-- amanda-S3.conf ←AmazonS3使用時の設定例 |-- amanda-harddisk.conf ←HDDによる仮想テープドライブの設定例(ここではこれを基とする) |-- amanda-single-tape.conf |-- amanda-tape-changer.conf |-- chg-manual.conf |-- dumptypes ←バックアップ方法定義リスト `-- tapetypes ←テープ装置定義リスト
このうち最低限定義すべきファイルは
■サーバ側 .am_passphrase amanda.conf advanced.conf disklist
■クライアント側 amanda-client.conf
なので、そんなに恐れることもない。内容はともかく( ´ω`)
以下、仮想テープドライブでの使用を前提とした設定。
メインファイル。
HDDにバックアップするのが目的なので、仮想テープドライブを定義した
/var/lib/amanda/template.d/amanda-harddisk.confをamanda.confとしてコピーしてつかう。
org "DailySet1" # レポートに使う組織名ね # (と簡単に書いてあるが、プロジェクトのフォルダ名と同じものを設定。 # むしろ、ここで定義した名前のフォルダを作って設置する) mailto "amandabackup" # 半角スペースで区切ってあなたのサイトの運用者をリストしてね dumpcycle 1 week # 通常のバックアップサイクル日数 # (週スパンなら1 week # 平日だけなら 5 days # など) runspercycle 5 # dumpcycle日数のなかで、amdumpが稼働する日数ね # 規定値は0=dumpcycleと同じ日数 # -1だと、定義と前回のバックアップ状況を見てAmandaが動的判断 # dumpcycle 7 で runspercycle 5なら、丁度平日ぶんだね # (1日に2回取るならdumpcycleの2倍の数・・・と思う。 # dumpcycleより少ない数なら、間引いてバックアップ・・・と思う。 # 大半はdailyだとおもうので0でいいかと) tapecycle 10 tapes # ローテーションテープ数 # 1週間に5回取るなら、5巻+予備をいくつか用意しておかないと # エラーなんかでamflushしたときに、前回のフルバックアップを上書きしちゃうからね runtapes 1 # 一回のバックアップで使うテープ数 # (1本でバックアップする場合(シングルドライブの場合)、テープ容量<バックアップ容量だと失敗でholdingに残る。 # テープライブラリやオートローダでテープ跨ぎしていいならその本数を記述する) #### テープ装置(仮想テープ装置)の定義 define changer my_vtapes { tpchanger "chg-disk://usr/var/lib/amanda/vtapes/DailySet1" # 仮想テープ装置を作るディレクトリの指定。プロジェクト名が必須なわけではない property "num-slot" "10" # 仮想テープ装置のテープスロット数 property "auto-create-slot" "yes" # スロットが存在しない場合、自動的に生成する } #### tpchanger "my_vtapes" # (上で定義した装置の名前を記述) tapetype HARDDISK # テープの種類はなにかな # (下で定義しているので参照) labelstr "^DailySet1-[0-9][0-9]*$" # テープに付けるラベルの正規表現:ラベルが全部マッチしないとだめだよ autolabel "$o-%%" EMPTY VOLUME_ERROR # 自動ラベル付与 # このオプションは危険です! # たまたま違うテープを違うスロットにセットした時でも # ラベルを確認ナシで上書きしちゃいます! # (テープ運用だと確かに危ないのだけど、仮想なので使っても問題無し) dtimeout 1800 # バックアップが中止される前のアイドル秒 # dumperがクライアントからのデータを待つ時間 ctimeout 30 # amcheckの返事を待つ秒数 # amcheckがクライアントからの返事を待つ時間 etimeout 300 # バックアップ対象ごとの見積もり時の返事を待つ時間 # L0とL1のバックアップで、それぞれ4つのバックアップ対象があるクライアントの場合 # 合計で40分まで待つ # 負の値で指定するとバックアップ対象ごとではなくクライアントごとになる #### バックアップタイプの定義 define dumptype global { comment "Global definitions" auth "bsdtcp" # 認証タイプを"bsdtcp"にする } #### #### カスタム例なので省略 #define application-tool and dumptype for the amgtar application define application-tool app_amgtar { comment "amgtar" plugin "amgtar" #property "GNUTAR-PATH" "/path/to/gtar" #property "GNUTAR-LISTDIR" "/path/to/gnutar_list_dir" } define dumptype gui-base { global program "APPLICATION" application "app_amgtar" comment "gui base dumptype dumped with tar" compress none index yes } #### #### テープタイプの定義 define tapetype HARDDISK { comment "Virtual Tapes" # コメント length 5000 mbytes # テープの長さ=1回のバックアップで取れる容量 # (シングルドライブでこの容量を超えるバックアップ量だと失敗してholdingに残る。 # あまり大きくすると、全体の容量を超えないようにスロット数を減らさないといけないなど) part_size 500 mbytes # (いくつかにバックアップ内容を分割することで、途中壊れた部分があってもリカバリが早く済む part_cache_type none # という機能に使うパラメータのようだが、未実装?) } #### includefile句で設定ファイルを読み込める includefile "./advanced.conf" includefile "/etc/amanda/template.d/dumptypes" includefile "/etc/amanda/template.d/tapetypes"
メイン以外の主な設定。
Amandaはamdump起動ごとに、新しいテープを使う。
仮想テープの場合、テープ容量の無駄部分は気にしなくていいのだが、全体の容量とスロット数の加減がある。
パラメータとしては ・仮想テープドライブ全体容量 ・仮想テープ1本の容量 ・仮想テープドライブのスロット数 ・クライアント全体のバックアップ容量 ・差分容量 ・世代
などがあるかと思うが、普通のテープへのバックアップ計算より難しい気がする。