Kern Sibbald氏をヘッド開発者とするBaculaチームが開発したオープンソース・バックアップ・ソリューションは、実行速度と信頼性にすぐれ、際立って設定の自由度が高い。Baculaは単体のアプリケーションではなく、複数のプログラムの集まりであり、それらが連携することで5~500台のシステムに適した堅牢なバックアップ、復元、検証のツールセットを提供する。
最初に
このレビューを書くために、BaculaのテストマシンとしてシングルCentOS 4サーバを用意し、ファイルシステムをバックアップ媒体として使用した。私の運用環境では、複数のクライアントからの500GBを超えるバックアップをテープローダを利用してBaculaで管理している。ただし、テープローダと多数のクライアントを設定するには時間がかかるため、初めてのBaculaユーザにとってこのような作業は荷が重い。Baculaの経験がない場合は、シングルホストでテスト・ドライブを管理することをお勧めする。
Baculaは、yumやapt-getなどの標準パッケージ管理ツールで扱えるパッケージ形式でも入手できるが、今回はソースからアプリケーションをインストールすることにした。Baculaを初めて使う場合は、ソースからビルドすることでアプリケーションの操作方法をより実感できる。
プロジェクトのソースコードをダウンロードし、展開した後で、.configureスクリプトを実行する。Baculaの.configureスクリプトは完成度が高く、わかりやすいデバッグ出力が生成されるが、コマンドラインを使って大量の設定を行う必要がある。開発チームは、この設定作業を簡略化するため、ほとんどの環境に対応できる一連の推奨オプションを提供している。この設定をベースとして、必要な部分だけを変更すればよい。たとえば、データベースの選択がそうだ。Baculaはデータベース駆動型アプリケーションであり、実行にはMySQL、SQLite、またはPostgreSQLが欠かせない。Baculaを設定する前に、これらのデータベースのどれかがインストールされていることを確認する必要がある。.configureスクリプトの実行が完了すると、通常の「make; make install」プロセスでBaculaをビルドできる。
次に、Baculaのデータベースとテーブルを作成し、適切なアクセス権を設定する。Baculaのbinディレクトリにあるcreate_bacula_databaseスクリプトを実行すると、使用するデータベースの種類が確認され、Baculaのデータベースが作成される。このスクリプトの実行が正常に終わった後でmake_bacula_tablesスクリプトを実行すると、データベース・テーブルが作成され、情報が設定される。最後にgrant_bacula_privilegesスクリプトを実行すると、必要なアクセス制御が確立される。ここで注意する必要があるのは、grant_bacula_privilegesによってユーザbaculaに無制限のアクセス・ポリシーが与えられることだ。このポリシーは必要に応じて変更したほうがよいだろう。少なくとも、MySQLユーザのrootとbaculaにはパスワードを設定することをお勧めする。
