Baculaとは?
Baculaはオープンソースのバックアップソフトウェアです。
Linux、UNIX、Windows、Macなどのサーバおよびクライアントのバックアップ、リストアをすることができます。
Bacula概要
Baculaは、3つのデーモン(プログラム)が動作することによりバックアップ、リストアを実現します。
3つのデーモンはDirectorデーモン、Storageデーモン + データベース(カタログ)、Fileデーモンの3つです。
さらにバックアップ対象となるサーバにはFileデーモンと呼ばれるエージェントをインストールする必要があります。
さらにそれらのデーモンとは別にConsoleがあります。Consoleはユーザが実際にBaculaを操作するものです。ConsoleはCUI、GUIの両方があります。
デーモンとコンソールの関係を図にすると以下のようになります。
分かりやすくするために各デーモンを別々に記載してありますが、1台のサーバにまとめてインストールすることももちろん可能です。
今回の例では1台に全てのデーモンをインストールしBaculaサーバを構築します。
今回試した例をシンプルに表すと以下になります。
Baculaサーバに
Directorデーモン
Storageデーモン + データベース(カタログ)
Fileデーモン ←これは自分自身をバックアップするために必要
をインストール
バックアップ対象サーバに
Fileデーモン
をインストールします。
インストール環境
バージョン | |
---|---|
OS | CentOS 7.2 |
バックアップ | Bacula 7.4.3 |
データベース | MariaDB 5.5 |
Baculaサーバインストール
FirewalldとSELinuxに関してはお好みで設定してください。
Baculaでは9101~9103のポートを使用します。
まずリポジトリを追加します。
# cd /etc/yum.repos.d/
# wget https://copr.fedorainfracloud.org/coprs/slaanesh/Bacula/repo/epel-7/slaanesh-Bacula-epel-7.repo
次にインストールを実施します。
# yum -y install bacula-director bacula-client bacula-storage bacula-console mariadb-server
インストール自体は以上で終了です。
MariaDB設定
続いてDBの設定をします。
まず起動します。ついでに自動起動の設定をしてさらに起動したことを確認します。
# systemctl start mariadb
# systemctl enable mariadb
# systemctl status mariadb
続いて初期化します。例ではパスワード設定を「dbpass」にしています。
# mysql_secure_installation
<省略>
Set root password? [Y/n] Y ←「Y」を入力
New password: dbpass ←rootのパスワードを入力
Re-enter new password: dbpass ←rootのパスワードを再入力
Password updated successfully!
Reloading privilege tables..
... Success!
<省略>
Thanks for using MariaDB!
#
続いてデータベースを作成します。
# mysql -u root -p
Enter password: dbpass ←rootのパスワードを入力
MariaDB > create database bacula; ←createコマンドを実行
Query OK, 1 row affected (0.00 sec)
MariaDB > grant all privileges on bacula.* to bacula@localhost identified by 'dbpass'; ←MariaDBのパスワード設定
Query OK, 0 rows affected (0.01 sec)
MariaDB > quit
Bye
さらにテーブルを作成します。
# /usr/libexec/bacula/make_bacula_tables mysql -u bacula -p
Making mysql tables
Enter password: dbpass ↽rootのパスワードを入力
Creation of Bacula MySQL tables succeeded.
データベースの切り替えをします。1を入力して「Enter」を押下してください。
# alternatives --config libbaccats.so
3 プログラムがあり 'libbaccats.so' を提供します。
選択 コマンド
-----------------------------------------------
1 /usr/lib64/libbaccats-mysql.so
2 /usr/lib64/libbaccats-sqlite3.so
*+ 3 /usr/lib64/libbaccats-postgresql.so
Enter を押して現在の選択 [+] を保持するか、選択番号を入力します: 1
以上でサーバ側の設定は終了です。
バックアップ対象側インストール
FirewalldとSELinuxに関してはお好みで設定してください。
バックアップ対象側では9102のポートを使用します。
まずリポジトリを追加します。
# cd /etc/yum.repos.d/
# wget https://copr.fedorainfracloud.org/coprs/slaanesh/Bacula/repo/epel-7/slaanesh-Bacula-epel-7.repo
次にFileデーモンのみインストールします。
# yum -y install bacula-client
バックアップ対象側のインストールは以上で終了です。
Baculaサーバ設定
Baculaサーバの設定に関しては以下を参照しました。
https://www.bacula.jp/server-setting
またログの設定に関しては以下を参照しました。
https://www.bacula.jp/bacula-log
バックアップ対象側設定
バックアップ対象側の設定に関しては以下を参照しました。
https://www.bacula.jp/bacula-client-setting
Baculaサーバ起動
設定が終わったところでサーバを起動します。
# systemctl start bacula-dir
# systemctl start bacula-sd
# systemctl start bacula-fd
バックアップ対象側
Fileデーモンだけ起動します。
# systemctl start bacula-fd
Bacula環境完成
以上でBacula環境が構築できました。
実際にバックアップ、リストアなどを実施します。
バックアップ取得
バックアップの取得については以下を参照しました。
https://www.bacula.jp/backup
リストア実行
リストアに関しては以下を参照しました。
https://www.bacula.jp/restore
バックアップのスケジュール
バックアップのスケジュール管理については以下を参照しました。
https://www.bacula.jp/archives/1100
メール通知設定
バックアップ失敗時のメール通知設定については以下を参照しました。
https://www.bacula.jp/archives/1088
BaculaのGUIツール
Baculaではデフォルトでbconsoleを使うようになっていますが、GUIツールもあります。
基本的に設定はできません。バックアップ、リストアなどができます。
インストール手順は以下を参照しました。
https://www.bacula.jp/baculum-install
インストール手順は以下を参照しました。
https://www.bacula.jp/bacula-web-install
その他重複排除なども対応しているようなのですが、まだ解読しきれていないので、これから頑張りたいと思います。
参照
Bacula.jp
https://www.bacula.jp/