はじめに
Baculaは、GPLv2で公開されているネットワークバックアップシステムです。ネットワーク対応のバックアップシステムとしては、Symantec BackupExec(tm)や、CA ARCserve(tm)などの商用システムを企業では利用することが多いですが、Baculaはこれらのシステムにも引けを取らないバックアップソリューションを提供しています。エンタープライズ向けのネットワークバックアップソリューションとして環境構築をご紹介します。
今回は、Baculaによるバックアップシステムの構築方法を前編、後編の2回に分けて解説します。前編では、バックアップサーバーとクライアントの構築方法を解説し、後編ではリモートバックアップとリストア方法について解説します。
情シスや部門サーバを自作スクリプトでバックアップしている場合、低コストで高い信頼性のバックアップソリューションを求めている方にオススメしたいソリューションです。
前提条件
構築に必要なサーバー要件および、導入パッケージは下記のとおりです。
1.サーバー要件
サーバー要件は、次のとおりです。
Baculaサーバー | |
---|---|
ホスト名 | bacula-server |
IPアドレス | 192.168.0.50 |
OS | CentOS 6.5 i386 |
MySQL | 5.5.35 |
サードパーティリポジトリ | EPEL |
Baculaクライアント | |
---|---|
ホスト名 | bacula-client |
IPアドレス | 192.168.0.20 |
OS | CentOS 6.5 i386 |
サードパーティリポジトリ | EPEL |
2.導入するパッケージ
導入するパッケージは、次のとおりです。
サーバー | パッケージ名 | バージョン |
---|---|---|
Baculaサーバー | bacula-storage-mysql | 5.0.0 |
bacula-director-mysql | ||
bacula-client | ||
bacula-console | ||
Baculaクライアント | bacula-client | 5.0.0 |
bacula-console |
Baculaサーバーの構築
1.パッケージのインストール
$ sudo yum --enablerepo=epel install -y bacula-storage-mysql bacula-director-mysql bacula-client bacula-console [vagrant@bacula-server ~]$ sudo yum --enablerepo=epel install -y bacula-storage-mysql bacula-director-mysql bacula-client bacula-console Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile epel/metalink | 4.8 kB 00:00 Including mirror: www.ftp.ne.jp Including mirror: ftp.riken.jp Including mirror: ftp.iij.ad.jp Including mirror: ftp.nara.wide.ad.jp Including mirror: ftp.jaist.ac.jp Including mirror: mirror.fairway.ne.jp * base: www.ftp.ne.jp Including mirror: ftp.riken.jp Including mirror: ftp.iij.ad.jp Including mirror: ftp.tsukuba.wide.ad.jp Including mirror: ftp.jaist.ac.jp * epel: ftp.riken.jp Including mirror: www.ftp.ne.jp Including mirror: ftp.riken.jp Including mirror: ftp.iij.ad.jp Including mirror: ftp.nara.wide.ad.jp Including mirror: ftp.jaist.ac.jp Including mirror: mirror.fairway.ne.jp * extras: www.ftp.ne.jp Including mirror: www.ftp.ne.jp Including mirror: ftp.riken.jp Including mirror: ftp.iij.ad.jp Including mirror: ftp.nara.wide.ad.jp Including mirror: ftp.jaist.ac.jp Including mirror: mirror.fairway.ne.jp * updates: www.ftp.ne.jp base | 3.7 kB 00:00 epel | 4.2 kB 00:00 epel/primary_db | 4.9 MB 00:02 Installing : bacula-director-common-5.0.0-12.el6.i686 9/11 Installing : bacula-client-5.0.0-12.el6.i686 10/11 Installing : bacula-console-5.0.0-12.el6.i686 11/11 Verifying : bacula-common-5.0.0-12.el6.i686 1/11 Verifying : mailx-12.4-7.el6.i686 2/11 Verifying : bacula-director-mysql-5.0.0-12.el6.i686 3/11 Verifying : perl-Date-Manip-6.24-1.el6.noarch 4/11 Verifying : bacula-client-5.0.0-12.el6.i686 5/11 Verifying : perl-YAML-Syck-1.07-4.el6.i686 6/11 Verifying : bacula-storage-common-5.0.0-12.el6.i686 7/11 Verifying : bacula-director-common-5.0.0-12.el6.i686 8/11 Verifying : logwatch-7.3.6-52.el6.noarch 9/11 Verifying : bacula-storage-mysql-5.0.0-12.el6.i686 10/11 Verifying : bacula-console-5.0.0-12.el6.i686 11/11 Installed: bacula-client.i686 0:5.0.0-12.el6 bacula-console.i686 0:5.0.0-12.el6 bacula-director-mysql.i686 0:5.0.0-12.el6 bacula-storage-mysql.i686 0:5.0.0-12.el6 Dependency Installed: bacula-common.i686 0:5.0.0-12.el6 bacula-director-common.i686 0:5.0.0-12.el6 bacula-storage-common.i686 0:5.0.0-12.el6 logwatch.noarch 0:7.3.6-52.el6 mailx.i686 0:12.4-7.el6 perl-Date-Manip.noarch 0:6.24-1.el6 perl-YAML-Syck.i686 0:1.07-4.el6 Complete!
2.実行ファイルの修正
環境構築に使用する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,
3.Baculaデータベース環境の作成
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
4.ユーザーパスワードの変更
作成された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'
5.Bacula Directorの設定変更
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” |
6.Bacula Consoleの設定変更
Directorと同様の手順で変更します。
$ sudo vi /etc/bacula/bconsole.conf
ディレクティブ | 設定項目 | 設定値 |
---|---|---|
Director | Password | “admin” |
7.Storage Daemonの設定変更
Directorディレクティブの変更は2箇所です。
$ sudo vi /etc/bacula/bacula-sd.conf
ディレクティブ | 設定項目 | 設定値 |
---|---|---|
Director | Password | “admin” |
Password | “admin” | |
Archive Device | /mybackup |
8.File Daemonの設定変更
Directorディレクティブの変更は2箇所です。
$ sudo vi /etc/bacula/bacula-fd.conf
ディレクティブ | 設定項目 | 設定値 |
---|---|---|
Director | Password | “admin” |
Password | “admin” |
9.バックアップフォルダの作成
構築するバックアップサーバーでは、任意のフォルダ上にバックアップデータを保存するため、バックアップフォルダを作成し、フォルダ所有者をbaculaに設定します。
バックアップフォルダの容量に問題がある場合、NFSやCIFSなどを用いてリモートサーバーの共有ディスクをマウントすると良いでしょう。
$ sudo mkdir -p /mybackup $ sudo chown bacula:bacula /mybackup
10.サービス起動
Baculaの全ての設定ファイルが準備できましたので、サービスを起動します。
$ sudo service bacula-dir start $ sudo service bacula-fd start $ sudo service bacula-sd start
11.自動起動設定
$ sudo chkconfig bacula-dir on $ sudo chkconfig bacula-fd on $ sudo chkconfig bacula-sd on
12.サービスの動作確認
Baculaのサービスが起動したら、Bacula Consoleを用いて接続確認を行います。
$ sudo bconsole
*(アスタリスク)は、コマンドプロンプトです。
status 1を入力すると、Baculaサーバーの状態が確認できます。
exitを入力すると、終了します。
以上で、Baculaサーバーの基本設定は終了です。
Baculaクライアントの構築
Baculaクライアントでは、File Daemonおよび、Bacula Consoleのみインストールし、設定ファイルを変更します。
1.パッケージのインストール
$ sudo yum --enablerepo=epel install -y bacula-client bacula-console [vagrant@bacula-client ~]$ sudo yum --enablerepo=epel install -y bacula-client bacula-console Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile epel/metalink | 5.0 kB 00:00 Including mirror: www.ftp.ne.jp Including mirror: ftp.riken.jp Including mirror: ftp.iij.ad.jp Including mirror: ftp.nara.wide.ad.jp Including mirror: ftp.jaist.ac.jp Including mirror: mirror.fairway.ne.jp * base: www.ftp.ne.jp Including mirror: ftp.riken.jp Including mirror: ftp.iij.ad.jp Including mirror: ftp.tsukuba.wide.ad.jp Including mirror: ftp.jaist.ac.jp * epel: ftp.riken.jp Including mirror: www.ftp.ne.jp Including mirror: ftp.riken.jp Including mirror: ftp.iij.ad.jp Including mirror: ftp.nara.wide.ad.jp Including mirror: ftp.jaist.ac.jp Including mirror: mirror.fairway.ne.jp * extras: www.ftp.ne.jp Including mirror: www.ftp.ne.jp Including mirror: ftp.riken.jp Including mirror: ftp.iij.ad.jp Including mirror: ftp.nara.wide.ad.jp Including mirror: ftp.jaist.ac.jp Including mirror: mirror.fairway.ne.jp ================================================================================ Install 3 Package(s) Total download size: 636 k Installed size: 1.4 M Downloading Packages: (1/3): bacula-client-5.0.0-12.el6.i686.rpm | 172 kB 00:00 (2/3): bacula-common-5.0.0-12.el6.i686.rpm | 357 kB 00:00 (3/3): bacula-console-5.0.0-12.el6.i686.rpm | 107 kB 00:00 -------------------------------------------------------------------------------- Total 1.8 MB/s | 636 kB 00:00 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : bacula-common-5.0.0-12.el6.i686 1/3 Installing : bacula-client-5.0.0-12.el6.i686 2/3 Installing : bacula-console-5.0.0-12.el6.i686 3/3 Verifying : bacula-common-5.0.0-12.el6.i686 1/3 Verifying : bacula-client-5.0.0-12.el6.i686 2/3 Verifying : bacula-console-5.0.0-12.el6.i686 3/3 Installed: bacula-client.i686 0:5.0.0-12.el6 bacula-console.i686 0:5.0.0-12.el6 Dependency Installed: bacula-common.i686 0:5.0.0-12.el6 Complete!
設定ファイルの変更
Baculaサーバーの構築と同様に、File Daemonおよび、Bacula Consoleの設定を変更します。
2.サービス起動と自動起動設定
$ sudo service bacula-fd start $ sudo chkconfig bacula-fd on
3.サービスの動作確認
Baculaのサービスが起動したら、Bacula Consoleを用いて接続確認を行います。
$ sudo bconsole
確認方法は、Baculaサーバーの構築と同様の手順です。
以上で、Baculaクライアントの基本設定は終了です。
まとめ
ここまで、バックアップサーバーとクライアントの構築方法を解説しました。後編ではリモートバックアップとリストア方法について解説します。
本ブログは、Git / Subversion のクラウド型ホスティングサービス「tracpath(トラックパス)」を提供している株式会社オープングルーヴが運営しています。
開発の効率化をしたい!もっと便利なツールを使いたい!そんなお悩みをtracpathで解決!
「tracpath(トラックパス)」は、企業内の情報システム部門や、ソフトウェア開発・アプリケーション開発チームに対して、開発の効率化を支援し、品質向上を実現します。
さらに、システム運用の効率化・自動化支援サービスも提供しています。
”つくる情熱を支えるサービス”を提供し、まるで専属のインフラエンジニアのように、あなたのチームを支えていきます。
No Comments