ネットバックアップツールのBaculaをインストールする

2014年02月08日 21時38分

201402082138BBAC00.png

はじめに

Baculaは、GPLv2で公開されているネットワークバックアップシステムです。 ネットワーク対応のバックアップシステムとしては、Symantec BackupExec(tm)や、CA ARCserve(tm)などの商用製品がありますが、Baculaは、リモートバックアップが取得できるOSSとしては希有な存在です。 今回は、Baculaによるバックアップシステムの構築方法を解説します。

前提条件

構築に必要なサーバー要件および、導入パッケージは下記のとおりです。

  1. 作業環境
    OSWindows 7 Ultimate 32bit
    CygwinSetup Version 2.831
    VirtualBox4.3.6 r91406
    Vagrant1.4.1
  2. サーバ要件
    Baculaサーバーホスト名bacula-server
    IPアドレス192.168.0.50
    OSCentOS 6.5 i386
    MySQL5.5.35
    サードパーティリポジトリEPEL
    Baculaクライアントホスト名bacula-client
    IPアドレス192.168.0.20
    OSCentOS 6.5 i386
    サードパーティリポジトリEPEL
  3. 導入するパッケージ
    サーバーパッケージ名バージョン
    Baculaサーバーbacula-storage-mysql5.0.0
    bacula-director-mysql
    bacula-client
    bacula-console
    Baculaクライアント bacula-client5.0.0
    bacula-console

Baculaサーバーの構築

  1. パッケージのインストール
    $ sudo yum --enablerepo=epel install -y bacula-storage-mysql bacula-director-mysql bacula-client bacula-console
    
    201402082138BBAC01.png
    201402082138BBAC02.png
  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
    
    201402082138BBAC03.png
    201402082138BBAC06.png
    201402082138BBAC04.png
    201402082138BBAC05.png
  4. ユーザーパスワードの変更

    作成されたMySQL上のbaculaユーザーのパスワードを変更します。
    下記のSQLファイルを作成して、実行します。

    $ vi bacula-password.sql
    
    UPDATE mysql.user SET password=PASSWORD("admin") WHERE user='bacula';
    FLUSH PRIVILEGES;
    
    201402082138BBAC07.png

    作成したSQL文を実行し、baculaユーザーでログインできるか確認します。

    $ mysql -u root -p < bacula-password.sql
    $ mysql -u bacula -p -e 'status'
    
    201402082138BBAC08.png
    201402082138BBAC09.png
  5. Bacula Directorの設定変更

    Directorは、バックアップ・リストアのコントロールおよび、Storage/Fileデーモンとの通信を行う中心的な役割を担っています。

    Director設定ファイルを、下記のとおり変更します。

    $ sudo vi /etc/bacula/bacula-dir.conf
    
    ディレクティブ設定項目設定値
    DirectorPassword"admin"
    StorageAddress192.168.0.50
    Password"admin"
    Catalogdbpassword"admin"
    ConsolePassword"admin"
    ClientAddress192.168.0.20
    Password"admin"
  6. Bacula Consoleの設定変更

    Directorと同様の手順で変更します。

    $ sudo vi /etc/bacula/bconsole.conf
    
    ディレクティブ設定項目設定値
    DirectorPassword"admin"
  7. Storage Daemonの設定変更

    Directorディレクティブの変更は2箇所です。

    $ sudo vi /etc/bacula/bacula-sd.conf
    
    ディレクティブ設定項目設定値
    DirectorPassword"admin"
    Password"admin"
    Archive Device/mybackup
  8. File Daemonの設定変更

    Directorディレクティブの変更は2箇所です。

    $ sudo vi /etc/bacula/bacula-fd.conf
    
    ディレクティブ設定項目設定値
    DirectorPassword"admin"
    Password"admin"
  9. バックアップフォルダの作成

    構築するバックアップサーバーでは、任意のフォルダ上にバックアップデータを保存するため、バックアップフォルダを作成し、フォルダ所有者をbaculaに設定します。
    バックアップフォルダの容量に問題がある場合、NFSやCIFSなどを用いてリモートサーバーの共有ディスクをマウントすると良いでしょう。

    $ sudo mkdir -p /mybackup
    $ sudo chown bacula:bacula /mybackup
    
    201402082138BBAC10.png
  10. サービス起動

    Baculaの全ての設定ファイルが準備できましたので、サービスを起動します。

    $ sudo service bacula-dir start
    $ sudo service bacula-fd start
    $ sudo service bacula-sd start
    
    201402082138BBAC11.png
  11. 自動起動設定
    $ sudo chkconfig bacula-dir on
    $ sudo chkconfig bacula-fd on
    $ sudo chkconfig bacula-sd on
    
    201402082138BBAC12.png
  12. サービスの動作確認

    Baculaのサービスが起動したら、Bacula Consoleを用いて接続確認を行います。

    $ sudo bconsole
    
    201402082138BBAC13.png

    *(アスタリスク)は、コマンドプロンプトです。
    status 1を入力すると、Baculaサーバーの状態が確認できます。
    exitを入力すると、終了します。

    以上で、Baculaサーバーの基本設定は終了です。

Baculaクライアントの構築

Baculaクライアントでは、File Daemonおよび、Bacula Consoleのみインストールし、設定ファイルを変更します。

  1. パッケージのインストール
    $ sudo yum --enablerepo=epel install -y bacula-client bacula-console
    
    201402082138BBAC14.png
    201402082138BBAC15.png
  2. 設定ファイルの変更

    Baculaサーバーの構築と同様に、File Daemonおよび、Bacula Consoleの設定を変更します。

  3. サービス起動と自動起動設定
    $ sudo service bacula-fd start
    $ sudo chkconfig bacula-fd on
    
    201402082138BBAC16.png
  4. サービスの動作確認

    Baculaのサービスが起動したら、Bacula Consoleを用いて接続確認を行います。

    $ sudo bconsole
    
    201402082138BBAC17.png

    確認方法は、Baculaサーバーの構築の際の手順と同じです。

    以上で、Baculaクライアントの基本設定は終了です。