Baculaの基本


Baculaはオープンソースのバックアップソフトウェアですが、実際にどのようにバックアップを取得しているのでしょうか?簡単に概要を解説します。

バックアップのソフトなのでまずはバックアップを取得する対象のサーバおよびクライアントがいます。
そしてバックアップデータを保存するサーバとなるBaculaサーバがいます。
シンプルに図にすると以下のようになります。

bacula-kiso-server

Baculaサーバのデーモン

次にもう少し詳細な話をしていきましょう。
Baculaサーバでは、3つのデーモン(プログラム)が動いています。Directorデーモン、Storageデーモン + データベース(カタログ)、Fileデーモンの3つです。
さらにバックアップ対象となるサーバおよびクライアントにはFileデーモンをインストールする必要があります。
FileデーモンのイメージとしてBacula以外のソフトウェアでもありますが、対象クライアントにインストールするエージェントだと思っていただければ良いかと思います。(例としてZabbix、Chef)

さらにそれらのデーモンとは別にConsoleがあります。Consoleはユーザが実際にBaculaを操作するものです。ConsoleはCUI、GUIの両方があります。
デーモンとコンソールの関係を図にすると以下のようになります。

bacula-kiso-daemon
上記の図はわかりやく書いているため1つのデーモンに対して1つのサーバになっておりますが、すべてのデーモンを1つのサーバにインストールしてBaculaサーバとすることも可能です。
もちろん上の図のようにサーバ1台に1つのデーモンという構成も可能です。

Baculaは大規模なシステムにも対応可能なため、上記のようなサーバ1台に1つのデーモンという構成も可能になっています。

各デーモンの役割

3つのデーモンとConsoleの話をしましたが、具体的にどのような役割を持っているかを見ていきましょう。

Directorデーモン  Bacula全体を管理する司令塔的な役割を持っています。
データベースと連携して、すべてのクライアントに関するバックアップ、リストア情報を管理し、ジョブの実行を管理します。
Storageデーモン バックアップしたデータを管理します。ハードディスク、テープ、さまざまな記録媒体を使用できます。
カタログ  Baculaで使用されるデータベースをカタログと呼びます。
役割は一般的なデータベースと同様です。
Fileデーモン  バックアップ対象機にインストールするエージェントです。
役割としてBaculaサーバのDirectorと通信して、バックアップおよびリストアを行います。
Console Baculaを操作するためのコンソールです。
CUIではbconsole
GUIではbat
などがあります。

以上がBaculaの基礎となります。
基礎ですが、Baculaを理解する上で非常に重要ですので覚えておきましょう。