噂のBacula。
噂かどうかは知らないけど、社長がBaculaに注目してるような事を言ってた。
最近サーバの異音が酷いので、そろそろヤバイのではないかと思い、バックアップしてみる。
環境
FedoraのEPELを追加して、Yumでインストールする。
ネットワークバックアップとして最小の2台構成。
2台だけでやる分には、サンプルコンフィグを殆ど弄らなくてもいい気がする。
サーバ インストール
インストール
yum install --enablerepo=epel bacula-console bacula-director bacula-director-mysql bacula-storage-mysql
データベース設定
用意されたBashファイルを使ってもいいんだけど、よく解らないから自分でする。
baculaデータベース作成。
baculaユーザ作成。
CREATE DATABASE bacula; GRANT ALL PRIVILEGES ON bacula.* TO bacula@localhost IDENTIFIED BY 'bacula';
テーブル作成。
/usr/libexec/bacula/make_mysql_tables -ubacula -pbacula
すぐ忘れるので、MySQLの基礎っぽいコマンドも書いておく。
-- データベース作成 CREATE DATABASE bacula; -- ユーザ作成 GRANT ALL PRIVILEGES ON bacula.* TO bacula@localhost IDENTIFIED BY 'bacula'; -- パスワード作成 SET PASSWORD FOR bacula@localhost=PASSWORD('bacula'); -- ユーザ削除 DELETE FROM mysql.user WHERE user='bacula' AND host='localhost'; -- ユーザ確認 SELECT user,host,password FROM mysql.user;
サーバ bacula-dir
bacula-dir.confを編集する。
サンプルでのパスワードは全て、"@@XX_PASSWORD@@"と書かれてる。("XX"の部分が"DIR"とか"SD"とか)
一括置換した方がいいかもしれない。
grep @@ /etc/bacula/*
最低限変更箇所
Director -> Password
Job(Name=BackupCatalog) -> RunBeforeJob = 引数3つ目はDBパスワード
Client -> Password
Storage -> Password
Catalog -> dbname
Messages(Name=Standard) -> mail,operator
Messages(Name=Daemon) -> mail
Console -> Password
バックアップ対象ディレクトリ設定
FileSet -> Include -> File = /home
バックアップファイルを圧縮する
GZIPで圧縮 : FileSet -> Include -> Options -> Compression = GZIP
GZIP9で圧縮 : FileSet -> Include -> Options -> Compression = GZIP9
バックアップファイルを削除するまでの日数設定
365日が流石に長すぎるのは解るけど、果たしてどれ位の期間が丁度いいのか見当が付かない。
Client -> File Retentionが30日になってるから、それよりは長い方がいいんだろう、きっと。
ハードディスク使用量を見つつ、後々変更する予定。
Pool -> Volume Retention = 60 days
bacula-dir起動
service bacula-dir start chkconfig bacula-dir on
コンフィグのパスワードを変更してないとこうなるっぽい。
パスワードは空じゃないし、とりあえずデフォルトでいいかと思ったら怒られた。
Starting bacula-dir: Error: Not been configured [FAILED]
サーバ bacula-sd
bacula-sd.confを編集する。
最低限編集箇所
Director -> Password
bacula-sd起動
service bacula-sd start chkconfig bacula-sd on
クライアント インストール
インストール
yum install --enablerepo=epel bacula-client bacula-console
データベース設定
baculaユーザ作成。
mysqldumpするために全ての権限が必要。
GRANT ALL PRIVILEGES ON *.* TO bacula@localhost IDENTIFIED BY 'bacula';
クライアント bacula-fd
bacula-fd.confを編集する。
最低限変更箇所
Director -> Password
Director -> Password
bacula-fd起動
service bacula-fd start chkconfig bacula-fd on
サーバ/クライアント bconsole
bconsole.confを編集する。
最低限編集箇所
Director -> address,Password
バックアップ実行
コンソールに入る。
bconsole
ヘルプ表示。
*help
ステータス表示。見方はよく解らない。
*status all
ラベルをつける。
*label Automatically selected Catalog: MyCatalog Using Catalog "MyCatalog" Automatically selected Storage: File Enter new Volume name: eth0 Automatically selected Pool: Default Connecting to Storage daemon File at 192.168.0.200:9103 ... Sending label command for Volume "eth0" Slot 0 ... 3000 OK label. VolBytes=188 DVD=0 Volume="eth0" Device="FileStorage" (/var/backup) Catalog record for Volume "eth0", Slot 0 successfully created. Requesting to mount FileStorage ... 3906 File device "FileStorage" (/var/backup) is always mounted.
バックアップ実行。
*run A job name must be specified. The defined Job resources are: 1: Client1 2: BackupCatalog 3: RestoreFiles Select Job resource (1-3): 1 Run Backup job JobName: Client1 Level: Incremental Client: bacula-fd FileSet: Full Set Pool: Default (From Job resource) Storage: File (From Job resource) When: 2009-09-27 10:34:34 Priority: 10 OK to run? (yes/mod/no): mod Parameters to modify: 1: Level 2: Storage 3: Job 4: FileSet 5: Client 6: When 7: Priority 8: Pool Select parameter to modify (1-8): 1 Levels: 1: Base 2: Full 3: Incremental 4: Differential 5: Since Select level (1-5): 2 Run Backup job JobName: Client1 Level: Full Client: bacula-fd FileSet: Full Set Pool: Default (From Job resource) Storage: File (From Job resource) When: 2009-09-27 10:34:34 Priority: 10 OK to run? (yes/mod/no): yes Job queued. JobId=1 * 27-Sep 10:37 bacula-dir: Start Backup JobId 1, Job=Client1.2009-09-27_10.37.19 27-Sep 10:37 bacula-sd: Wrote label to prelabeled Volume "eth0" on device "FileStorage" (/var/backup)
あとがき
全体的によく解らん。
リストアもまだやってない。
スケジュールも不明。
データベースのバックアップを使用とすると、ファイルが見つからないエラーが出て、0バイトバックアップ成功になる。
データベースは、差分も糞もなくダンプしてフルバックアップするだけみたいだから、他のツールを使ってもいいかも知れない。
データベースは、MySQLとPostgreSQLの2つを使ってるから、両方出来る奴だと尚いい。
どうやらBaculaにはブラウザから確認が出来るWebaculaというツールがあるらしい。
今度入れてみよう。