株式会社クイックのWebサービス開発blog

HAPPYなエンジニア&デザイナーのブログです

即実践できるBaculaの設定例【構築手順編その2】

前回 に続き、今回はBacula【構築手順編その2】を書きたいと思います。
【構築手順編その2】ではbacula-fd(Backup Client)とbacula-sd(Storage Daemon)の設定例と疎通確認方法を紹介します。


自分のデスク上に、飲み終わったペットボトルが溜まりがちです。
matsBです。(๑•̀ㅂ•́)و✧


ペットボトル集めの趣味はないのですが、捨てるタイミングをいつも逃してます。

Baculaの情報って海外サイトが基本で、英語の翻訳が出来ないと結構苦労します。
日本サイトや日本語マニュアルもあるにはあるんですが、実際の設定例や運用例がかなり少ないので、迷った方や困った方がいれば一例として参考にしてもらえればと思います!

前提 (前の記事からのおさらい)

前提環境

MySQLをインストール済。
iptables等のFirewallは一旦無視してます。

サーバ情報

役割 ホスト名 IPアドレス
Director quick-dir 10.0.0.1
Client quick-fd 10.0.0.2
Client(DR用) quick-dr 10.0.0.3
Storage quick-sd 10.0.0.10

bacula-fdの下準備

リポジトリの追加

Baculaの7系を入れるためにBaculaのリポジトリを追加。

【CentOS6用】
[root@quick-fd ~]# wget https://copr.fedorainfracloud.org/coprs/slaanesh/Bacula/repo/epel-6/slaanesh-Bacula-epel-6.repo -O /etc/yum.repos.d/slaanesh-Bacula-epel-6.repo

ここまでは【構築手順編その1】と一緒で、↓から【構築手順編その2】の始まりです!
まずは、bacula-fd(Backup Client)から。

bacula-fd(Backup Client)の準備

yum でインストール

[root@quick-fd ~]# yum install -y bacula-client

bacula-fd(Backup Client)の設定

/etc/bacula/bacula-fd.conf

[root@quick-fd ~]# cat /etc/bacula/bacula-fd.conf
Director {
  Name = quick-dir          # Director名
  Password = "fd-password"  # Directorとのパスワード
}

Director {
  Name = bacula-mon
  Password = "mon-fd-password"
  Monitor = yes
}

FileDaemon {
  Name = quick-fd           # Client名
  FDport = 9102
  WorkingDirectory = /var/spool/bacula
  Pid Directory = /var/run
  Maximum Concurrent Jobs = 20
  Plugin Directory = /usr/lib64/bacula
}

Messages {
  Name = Standard
  director = bacula-dir = all, !skipped, !restored
}

ってまぁ、ほとんどデフォルトに近い状態です。
これでクライアント側は設定完了です。

configチェックと再起動して適用

[root@quick-fd ~]# bacula-fd -t -c /etc/bacula/bacula-fd.conf
[root@quick-fd ~]# /etc/init.d/bacula-fd restart
Stopping bacula-fd:                                        [  OK  ]
Starting bacula-fd:                                        [  OK  ]

Directorからの疎通確認

クライアント側で設定後、bacula-dirからbacula-fdに接続できるか確認します。
下記のようにステータスが取れない場合は、Configにミスがあるか、ネットワーク(iptables)等に問題があります。

[root@quick-dir ~]# echo status Client=quick-fd | bconsole
Connecting to Director localhost:9101
1000 OK: 102 bacula-dir Version: 7.4.4 (20 September 2016)
Enter a period to cancel a command.
status Client=quick-fd
Connecting to Client quick-fd at 10.0.0.2:9102

quick-fd Version: 7.4.5 (07 February 2017)  x86_64-redhat-linux-gnu redhat
Daemon started 08- 32017 20:54. Jobs: run=0 running=0.
 Heap: heap=135,168 smbytes=16,926 max_bytes=16,943 bufs=56 max_bufs=56
 Sizes: boffset_t=8 size_t=8 debug=0 trace=0 mode=0 bwlimit=0kB/s
 Plugin: bpipe-fd.so

Running Jobs:
Director connected at: 07- 42017 15:38
No Jobs running.
====

Terminated Jobs:
====

bacula-fd(Backup Client)の設定はこれで設定完了です。
次に、bacula-sd(Storage Daemon)を説明します。

bacula-sdの下準備

リポジトリの追加

Baculaの7系を入れるためにBaculaのリポジトリを追加。

【CentOS6用】
[root@quick-sd ~]# wget https://copr.fedorainfracloud.org/coprs/slaanesh/Bacula/repo/epel-6/slaanesh-Bacula-epel-6.repo -O /etc/yum.repos.d/slaanesh-Bacula-epel-6.repo

bacula-sd(Storage Daemon)の準備

yum でインストール

【運用手順編】で出す予定ですが、PurgedになったVolumeとファイルをストレージ側から削除させてるのでbacula-consoleもインストールします。

[root@quick-sd ~]# yum install -y bacula-storage bacula-console

bacula-sd(Storage Daemon)の設定

/etc/bacula/bacula-sd.conf

FileChgr1にDeviceを複数指定してるんですが、これは同じ時間にバックアップが複数走ると、Deviceの数しかバックアップが走りません。
Deviceを2つにすると、2つ並列でバックアップが走りますし、Deviceを5つにすると5つ並列でバックアップが走ることが出来きるので、サーバのスペックと相談しながら数を調整すると幸せになれます。
Volume自体は/data/bacula-backupに全て保存しています。

[root@quick-sd ~]# cat /etc/bacula/bacula-sd.conf
Storage {
  Name = quick-sd
  SDPort = 9103 
  WorkingDirectory = "/var/spool/bacula"
  Pid Directory = "/var/run"
  Maximum Concurrent Jobs = 20
}

Director {
  Name = bacula-dir
  Password = "sd-password"
}

Director {
  Name = bacula-mon
  Password = "mon-sd-password"
  Monitor = yes
}

Autochanger {
  Name = FileChgr1
  Device = FileChgr1-Dev1, FileChgr1-Dev2, FileChgr1-Dev3, FileChgr1-Dev4, FileChgr1-Dev5
  Changer Command = ""
  Changer Device = /dev/null
}

Device {
  Name = FileChgr1-Dev1
  Media Type = FileStorage
  Archive Device = /data/bacula-backup
  LabelMedia = yes;
  Random Access = Yes;
  AutomaticMount = yes;
  RemovableMedia = no;
  AlwaysOpen = no;
  Maximum Concurrent Jobs = 5
}

Device {
  Name = FileChgr1-Dev2
  Media Type = FileStorage
  Archive Device = /data/bacula-backup
  LabelMedia = yes;
  Random Access = Yes;
  AutomaticMount = yes;
  RemovableMedia = no;
  AlwaysOpen = no;
  Maximum Concurrent Jobs = 5
}

Device {
  Name = FileChgr1-Dev3
  Media Type = FileStorage
  Archive Device = /data/bacula-backup
  LabelMedia = yes;
  Random Access = Yes;
  AutomaticMount = yes;
  RemovableMedia = no;
  AlwaysOpen = no;
  Maximum Concurrent Jobs = 5
}

Device {
  Name = FileChgr1-Dev4
  Media Type = FileStorage
  Archive Device = /data/bacula-backup
  LabelMedia = yes;
  Random Access = Yes;
  AutomaticMount = yes;
  RemovableMedia = no;
  AlwaysOpen = no;
  Maximum Concurrent Jobs = 5
}

Device {
  Name = FileChgr1-Dev5
  Media Type = FileStorage
  Archive Device = /data/bacula-backup
  LabelMedia = yes;
  Random Access = Yes;
  AutomaticMount = yes;
  RemovableMedia = no;
  AlwaysOpen = no;
  Maximum Concurrent Jobs = 5
}

Messages {
  Name = Standard
  director = bacula-dir = all
}

configチェックと再起動して適用

[root@quick-sd ~]# bacula-sd -t -c /etc/bacula/bacula-sd.conf
[root@quick-sd ~]# /etc/init.d/bacula-sd restart
Stopping bacula-fd:                                        [  OK  ]
Starting bacula-fd:                                        [  OK  ]

Directorからの疎通確認

クライアント側で設定後、bacula-dirからbacula-sdに接続できるか確認します。
接続出来た場合は、下記のように各Deviceのステータスが取得出来ます。
ステータスが取れない場合は、Configにミスがあるか、ネットワーク(iptables)等に問題があります。

[root@quick-dir ~]# echo status Storage | bconsole
Connecting to Director localhost:9101
1000 OK: 102 bacula-dir Version: 7.4.4 (20 September 2016)
Enter a period to cancel a command.
status Storage
Automatically selected Storage: quick-sd
Connecting to Storage daemon quick-sd at 10.0.0.10:9103

bacula-sd Version: 7.4.7 (16 March 2017) x86_64-redhat-linux-gnu redhat
Daemon started 28- 32017 12:08. Jobs: run=143, running=0.
 Heap: heap=155,648 smbytes=390,855 max_bytes=1,599,265 bufs=149 max_bufs=496
 Sizes: boffset_t=8 size_t=8 int32_t=4 int64_t=8 mode=0,0

Running Jobs:
No Jobs running.
====

Jobs waiting to reserve a drive:
====

Terminated Jobs:
====

Device status:
Autochanger "FileChgr1" with devices:
   "FileChgr1-Dev1" (/data/bacula-backup)
   "FileChgr1-Dev2" (/data/bacula-backup)
   "FileChgr1-Dev3" (/data/bacula-backup)
   "FileChgr1-Dev4" (/data/bacula-backup)
   "FileChgr1-Dev5" (/data/bacula-backup)

Device file: "FileChgr1-Dev1" (/data/bacula-backup) is not open.
    Available Space=3.669 TB
==

Device file: "FileChgr1-Dev2" (/data/bacula-backup) is not open.
    Available Space=3.669 TB
==

Device file: "FileChgr1-Dev3" (/data/bacula-backup) is not open.
    Available Space=3.669 TB
==

Device file: "FileChgr1-Dev4" (/data/bacula-backup) is not open.
    Available Space=3.669 TB
==

Device file: "FileChgr1-Dev5" (/data/bacula-backup) is not open.
    Available Space=3.669 TB
==
====

Used Volume status:
====

Attr spooling: 0 active jobs, 0 bytes; 126 total jobs, 149,843,546 max bytes.
====

bacula-consoleの設定

quick-sdにbacula-consoleを入れたので、bconsoleの設定も書きたいと思います。

/etc/bacula/bconsole.conf

[root@quick-sd ~] cat /etc/bacula/bconsole.conf
Director {
  Name = quick-dir          # Director名
  DIRport = 9101            # Directorポート
  address = 10.0.0.1        # DirectorのIPアドレス
  Password = "dir-password" # Directorのパスワード
}

configの確認と接続テスト

[root@quick-sd ~]# bconsole -t -c /etc/bacula/bconsole.conf
[root@quick-sd ~]# bconsole
Connecting to Director 10.0.0.1:9101
1000 OK: 102 bacula-dir Version: 7.4.4 (20 September 2016)
Enter a period to cancel a command.
*http://aimstogeek.hatenablog.com/entry/2017/04/12/213752

ってまぁ、bconsoleはこれだけです。
これで一通りの設定が完了して、Baculaでquick-fdのバックアップを取得できるようになりました。
次回は【運用手順編】として、クイック内でどうBaculaを運用しているかを設定例やスクリプトを書きたいと思います。