はじめに
Baculaは、GPLv2で公開されているネットワークバックアップシステムです。 ネットワーク対応のバックアップシステムとしては、Symantec BackupExec(tm)や、CA ARCserve(tm)などの商用製品がありますが、Baculaは、リモートバックアップが取得できるOSSとしては希有な存在です。 今回は、Baculaによるバックアップシステムの構築方法を解説します。
2014年02月08日 21時38分
Baculaは、GPLv2で公開されているネットワークバックアップシステムです。 ネットワーク対応のバックアップシステムとしては、Symantec BackupExec(tm)や、CA ARCserve(tm)などの商用製品がありますが、Baculaは、リモートバックアップが取得できるOSSとしては希有な存在です。 今回は、Baculaによるバックアップシステムの構築方法を解説します。
構築に必要なサーバー要件および、導入パッケージは下記のとおりです。
OS | Windows 7 Ultimate 32bit |
Cygwin | Setup Version 2.831 |
VirtualBox | 4.3.6 r91406 |
Vagrant | 1.4.1 |
サーバー | パッケージ名 | バージョン |
---|---|---|
Baculaサーバー | bacula-storage-mysql | 5.0.0 |
bacula-director-mysql | ||
bacula-client | ||
bacula-console | ||
Baculaクライアント | bacula-client | 5.0.0 |
bacula-console |
$ sudo yum --enablerepo=epel install -y bacula-storage-mysql bacula-director-mysql bacula-client bacula-console
環境構築に使用するmake_mysql_tablesコマンド内に記述されているSQL文の一部のフィールド名が、MySQL 5.5系の予約語になっているため、該当箇所を下記のとおり修正します。
なお、この問題はバージョン5.0.4では修正されています。
$ sudo vi /usr/libexec/bacula/make_mysql_tables
326行目~330行目を修正する。
変更前
Counter TINYBLOB NOT NULL, MinValue INTEGER DEFAULT 0, MaxValue INTEGER DEFAULT 0, CurrentValue INTEGER DEFAULT 0, WrapCounter TINYBLOB NOT NULL,
変更後
\`Counter\` TINYBLOB NOT NULL, \`MinValue\` INTEGER DEFAULT 0, \`MaxValue\` INTEGER DEFAULT 0, \`CurrentValue\` INTEGER DEFAULT 0, \`WrapCounter\` TINYBLOB NOT NULL,
Baculaが使用するデータベースなどの環境を作成します。
MySQLのrootユーザーでログインできる必要があります。
$ sudo /usr/libexec/bacula/grant_mysql_privileges -u root -p $ sudo /usr/libexec/bacula/create_mysql_database -u root -p $ sudo /usr/libexec/bacula/make_mysql_tables -u root -p $ sudo /usr/libexec/bacula/grant_bacula_privileges -u root -p
作成されたMySQL上のbaculaユーザーのパスワードを変更します。
下記のSQLファイルを作成して、実行します。
$ vi bacula-password.sql
UPDATE mysql.user SET password=PASSWORD("admin") WHERE user='bacula'; FLUSH PRIVILEGES;
作成したSQL文を実行し、baculaユーザーでログインできるか確認します。
$ mysql -u root -p < bacula-password.sql $ mysql -u bacula -p -e 'status'
Directorは、バックアップ・リストアのコントロールおよび、Storage/Fileデーモンとの通信を行う中心的な役割を担っています。
Director設定ファイルを、下記のとおり変更します。
$ sudo vi /etc/bacula/bacula-dir.conf
ディレクティブ | 設定項目 | 設定値 |
---|---|---|
Director | Password | "admin" |
Storage | Address | 192.168.0.50 |
Password | "admin" | |
Catalog | dbpassword | "admin" |
Console | Password | "admin" |
Client | Address | 192.168.0.20 |
Password | "admin" |
Directorと同様の手順で変更します。
$ sudo vi /etc/bacula/bconsole.conf
ディレクティブ | 設定項目 | 設定値 |
---|---|---|
Director | Password | "admin" |
Directorディレクティブの変更は2箇所です。
$ sudo vi /etc/bacula/bacula-sd.conf
ディレクティブ | 設定項目 | 設定値 |
---|---|---|
Director | Password | "admin" |
Password | "admin" | |
Archive Device | /mybackup |
Directorディレクティブの変更は2箇所です。
$ sudo vi /etc/bacula/bacula-fd.conf
ディレクティブ | 設定項目 | 設定値 |
---|---|---|
Director | Password | "admin" |
Password | "admin" |
構築するバックアップサーバーでは、任意のフォルダ上にバックアップデータを保存するため、バックアップフォルダを作成し、フォルダ所有者をbaculaに設定します。
バックアップフォルダの容量に問題がある場合、NFSやCIFSなどを用いてリモートサーバーの共有ディスクをマウントすると良いでしょう。
$ sudo mkdir -p /mybackup $ sudo chown bacula:bacula /mybackup
Baculaの全ての設定ファイルが準備できましたので、サービスを起動します。
$ sudo service bacula-dir start $ sudo service bacula-fd start $ sudo service bacula-sd start
$ sudo chkconfig bacula-dir on $ sudo chkconfig bacula-fd on $ sudo chkconfig bacula-sd on
Baculaのサービスが起動したら、Bacula Consoleを用いて接続確認を行います。
$ sudo bconsole
*(アスタリスク)は、コマンドプロンプトです。
status 1を入力すると、Baculaサーバーの状態が確認できます。
exitを入力すると、終了します。
以上で、Baculaサーバーの基本設定は終了です。
Baculaクライアントでは、File Daemonおよび、Bacula Consoleのみインストールし、設定ファイルを変更します。
$ sudo yum --enablerepo=epel install -y bacula-client bacula-console
Baculaサーバーの構築と同様に、File Daemonおよび、Bacula Consoleの設定を変更します。
$ sudo service bacula-fd start $ sudo chkconfig bacula-fd on
Baculaのサービスが起動したら、Bacula Consoleを用いて接続確認を行います。
$ sudo bconsole
確認方法は、Baculaサーバーの構築の際の手順と同じです。
以上で、Baculaクライアントの基本設定は終了です。