Amandaを使ってAmazon S3にデータをバックアップする
Amandaはバックアップデータの格納先にS3を使うことが可能です。
ということで試してみました。今回のエントリはその時のメモです。
環境
CentOSはAWS Marcket Placeで公開されているCentOS6.3 64bit版を使用しました。
AmandaはZmanda提供のRPMパッケージ(amanda-backup_server-3.3.3-1.rhel6.x86_64)を使用しています。
準備
AmandaからS3にアクセスするために、アクセスキーを用意する必要があります。
アクセスキーを作成していない場合は、AWSのManagement Consoleから「Security Credencials」のページに移動し、
アクセスキーを用意しておきます。
設定をする
コンフィグを作成します。今回、S3のストレージは標準のものではなく、
低冗長化ストレージ(Reduced Redundancy Storage)を指定しました。
# amazonaws S3 device_property "S3_ACCESS_KEY" "<Your Access Key>" device_property "S3_SECRET_KEY" "<Your Secret Key>" device_property "S3_STORAGE_CLASS" "REDUCED_REDUNDANCY" device_property "S3_SSL" "YES" tpchanger "chg-multi:s3:think-t/backup/slot-{01,02,03,04,05,06,07,08,09,10}" changerfile "s3-statefile" tapetype S3 define tapetype S3 { comment "S3 Bucket" length 10240 gigabytes }
コンフィグを作成したところで今度は仮想テープにラベルを設定します。
スロットは必要な分だけ。
# su -l amandabackup -c "amlabel backup backup-01 slot 1" Reading label... Found an empty tape. Writing label 'backup-01'... Checking label... Success! (略)
ラベル設定をすると、S3に以下のようなファイルが作成されます。
バックアップを取得する
今回はバックアップ対象として、ローカルディスクの/opt以下を対象としました。
バックアップ対象としてダミーファイルを作成します。
# dd if=/dev/zero of=/opt/1M.img bs=1024 count=1000 1000+0 records in 1000+0 records out 1024000 bytes (1.0 MB) copied, 0.0171975 s, 59.5 MB/s # dd if=/dev/zero of=/opt/10M.img bs=1024 count=10000 10000+0 records in 10000+0 records out 10240000 bytes (10 MB) copied, 0.632678 s, 16.2 MB/s # dd if=/dev/zero of=/opt/100M.img bs=1024 count=100000 100000+0 records in 100000+0 records out 102400000 bytes (102 MB) copied, 7.68087 s, 13.3 MB/s
バックアップを実行し、結果を確認してみます。
# su -l amandabackup -c "amdump backup" # su -l amandabackup -c "amadmin backup find" date host disk lv tape or file file part status 2013-02-24 04:49:47 amanda-test /opt 0 backup-01 1 1/1 OK
バックアップの整合性も確認を取ります。問題ないようです。
# su -l amandabackup -c "amcheckdump backup" You will need the following volume: backup-01 Press enter when ready Validating image amanda-test:/opt dumped 20130224044947 level 0 Reading volume backup-01 file 1 All images successfully validated
S3には新たなファイルが作成されていました。
リストアしてみる
バックアップが取得できたので、ファイルをリストアしてみます。
ファイルは「/tmp/test」に戻します。
# amrecover -s amanda-test -t amanda-test -C backup AMRECOVER Version 3.3.3. Contacting server on amanda-test ... 220 amanda-test AMANDA index server (3.3.3) ready. Setting restore date to today (2013-02-24) 200 Working date set to 2013-02-24. 200 Config set to backup. 200 Dump host set to amanda-test. Use the setdisk command to choose dump disk to recover amrecover> listdisk 200- List of disk for host amanda-test 201- /opt 200 List of disk for host amanda-test amrecover> setdisk /opt 200 Disk set to /opt. amrecover> add * Added file /1M.img Added file /10M.img Added file /100M.img amrecover> lcd /tmp/test amrecover> lpwd /tmp/test amrecover> extract Extracting files using tape drive changer on host amanda-test. The following tapes are needed: backup-01 Extracting files using tape drive changer on host amanda-test. Load tape backup-01 now Continue [?/Y/n/s/d]? Y Restoring files into directory /tmp/test All existing files in /tmp/test can be deleted Continue [?/Y/n]? Y ./100M.img ./10M.img ./1M.img amrecover> exit 200 Good bye.
バックアップ対象としたファイルと、リストアしたファイルのハッシュ値を比較してみます。
# md5sum /opt/1M.img /tmp/test/1M.img 80ec129d645c70cf0de45b1a5a682235 /opt/1M.img 80ec129d645c70cf0de45b1a5a682235 /tmp/test/1M.img # md5sum /opt/10M.img /tmp/test/10M.img 596c35b949baf46b721744a13f76a258 /opt/10M.img 596c35b949baf46b721744a13f76a258 /tmp/test/10M.img # md5sum /opt/100M.img /tmp/test/100M.img 75a1e608e6f1c50758f4fee5a7d8e3d0 /opt/100M.img 75a1e608e6f1c50758f4fee5a7d8e3d0 /tmp/test/100M.img
値が同じでしたので、無事にリストア出来ていることが確認できました。
リストア時に「Error setting 's3-secret-key' on device 'tape:/dev/YOUR-TAPE-DEVICE-HERE'」と出力される場合
リストア時に上記エラーが出る場合、クライアント側の設定を確認するとよいかもしれません。
テープデバイスの指定があると、エラーが出ます。
私の場合は以下のような記述が邪魔をしていましたので、コメントアウトをしました。
tapedev "tape:/dev/YOUR-TAPE-DEVICE-HERE"
サーバ側の設定ファイル(amanda.conf)に以下の記述をしておくとよいです。
amrecover_changer "changer"
ひとまず、基本的なデータバックアップ、リストアはできたようです。
今後はもう少しいろいろ試してみようと思います。
今日はこんなところで。