Baculaについて


Baculaとは?

Bacula(バキュラ)はオープンソース・統合管理バックアップソフトであり、複数のコンピュータプログラムをセットにしたもので、システム管理者がバックアップや復元、データの検査などを、異なる種類の計算機を含むネットワーク越しに行 うことを可能にする。Baculaの全要素を単一のコンピュータで実行することもできるし、テープやディスクなどさまざまな媒体にバックアップを書き込むこともできる。

技術用語を使うなら、クライアント・サーバ方式のネットワーク・バックアップ・システムである。失ったり損傷したファイルを柔軟に検索して復元できるなど、多数の高度なストレージ管理機能がBaculaに備わっているが、その使用方法は比較的簡単である。モジュール化を取り入れた設計により、Baculaは単一のコンピュータから大規模ネットワー クの数百台のコンピュータまでサポートできるスケーラビリティを備えている。

Bacula…誰が為に?

もしあなたがtar、dump、bru などを現在使っていて、ネットワークバックアップや柔軟性、カタログサービスなどを強化したいなら、Bacula はそれらの機能を追加するための最 適な選択だと言える。しかし、Bacula はtar やdump よりもセットアップや使用が難しいため、UNIX システムの運用経験がないユーザや、洗練されたバックアップ製品を使っ たことがないユーザの場合、Bacula は適さないかもしれない。

前述したようなシンプルなプログラムでテープにデータをバックアップするのと同様の動作をBacula に期待しているなら、Baculaはとても難しく感じられるだろう。 Bacula はユーザが指定したルールにもとづいてデータを保護するように設計されている。このため、テープは極力再利用せず、再利用は最後の手段となる。もちろんBacula に同じテープへの上書きを強制することは可能だが、より単純なプログラムの方が簡単かつ効率的にこのように制御できる。 複数のボリュームにまたがって書き込める(すなわちテープ1 本あたりの容量に制限されない) バックアッププログラムを必要としているのなら、Baculaは最適である。

さらに、多数のBacula ユーザが、他の同じようなプログラムを使うよりも、Bacula の方がセットアップも使用も簡単であると報告している。 Legato Networker.、ARCserveIT、Arkeia、PerfectBackup+などの洗練された商用パッケージを使用しているのなら、Bacula に関心を持つかもしれない。Bacula は、こ れらと同等の多数の機能を提供するからである。

Bacula コンポーネントとサービス

 Bacula は、ディレクタ、コンソール、ファイル、ストレージ、モニタという5 つの 要素あるいは機能で構成されている。

リソース早見表

図1.1: Bacula アプリケーションの相互関連
(thanks to Aristedes Maniatis for this graphic and the one below)


Bacula ディレクタ(統合管理ノード)

Bacula ディレクタは、バックアップ、リストア、照合、アーカイブなどBaculaにお けるすべてのオペレーションを管理する。システム管理者は、Bacula ディレクタでバックアッ プとリストアのスケジューリングを管理できる。詳細については、Bacula Developer’s Guide のDirector Services Daemon Design Document を参照。ディレクタは、デーモン(またはサー ビス) としてバックグラウンドで動作する。 

Bacula コンソール

Bacula コンソールは、管理者またはユーザがBacula ディレクタと通信するためのサービスで ある。現在、テキストベース、QT ベースのGUI、wxWidgets ベースのGUI の3 種類のコンソー ルプログラムが用意されている。テキストベースのコンソールはもっともシンプルで、シェ ルウィンドウ(TTY インタフェース) で実行する。ほとんどのシステム管理者は、このインタ フェースで十分と感じるだろう。GNOME GUI はまだ不完全であるが、テキストコンソールの 機能の多くをカバーしているwxWigdet GUI は対話式リストア機能を提供する。また、コマン ドのタブ補完を含むシェルコンソールの機能の多くを提供している。さらに、タイプ中のコマ ンドに関するヘルプ機能も持っている。詳細についてはBacula Console Design Document (Chapter 1 on page 1) を参照。→(  Bacula Console Design Document Chapter. )


Bacula ファイルデーモン(Bacula クライアント)

Bacula ファイルデーモン(別名クライアントプログラム/エージェント) は、バックアップ対象のマシンにインストールするプログラムである。クライアントのオペレーティングシステム別に用意されていて、ディレクタからの要求に応じてファイルの属性やデータを提供する。また、リストア作業のときも、ファイル属性やデータのリストアに関わる。詳細については、”Bacula Developer’s Guide”の”File Services Daemon Design Document”を参照。このプログラムは、バックアップ対象マシンでデーモンとして動作する。Unix/Linux 用のファイルデーモンに加えて、Windowsファイルデーモンも利用できる(通常バイナリ形式で配布)。Windows ファイルデーモンは現行のWindows の各バージョンで動作する(XP、7、8、2003、2008、2012)。


Bacula ストレージデーモン

Bacula ストレージデーモン(サービス)は、物理的なメディアまたはボリュームにファイル属性およびデータを保存したりリストアするプログラムである。すなわち、ストレージデーモンはテープ(または他のストレージ媒体) への読み書きを担当する。詳細については、”Bacula Developer’s Guide”の”Storage Services Daemon Design Document”を参照。ストレージデーモンはデーモンとしてバックアップ先デバイス(通常はテープドライブ) を持つマシンで動作する。


カタログ

カタログサービスは、バックアップされたすべてのファイルのインデックスとボリュームのデータベースを保持する役割を担っている。カタログサービスによって、リストアしたいファ
イルを迅速に見つけられるようになる。カタログは、すべてのボリュームのレコード、すべてのバックアップジョブ、保存しているすべてのファイル情報を管理し、これによってボリューム管理やリストアの効率が高められている。この特徴によって、Bacula はtar やbru などのシンプルなプログラムと一線を画している。現在Bacula はMySQL、PostgreSQL、SQLite をサポートしており、Bacula 環境構築時にこれらからどれか1 つを選択できる1。

これら3 つのデータベースは、高速なインデックス、任意の問い合わせ、セキュリテイに関する十分な機能を備えている。Bacula プロジェクトは、これら以外のメジャーなデータベースをサポートする計画も持っているが、現在のところMyQL、PostgreSQL、SQLite のみをサポートする。カタログに関する技術的な詳細と移植に関しては、開発者用ドキュメントの”CatalogServices Design Document”を参照。

MySQL とPostgreSQL は、さまざまなOS で利用できる。ソースからのインストールについては、本書のInstalling and Configuring MySQLの章を参照。MySQL自体の詳細はwww.mysql.comを参照。またはPostgreSQL については、本書のInstalling and Configuring PostgreSQL の章を参照。PostgreSQL 自体の詳細はwww.postgresql.org を参照。

SQLite のビルドも同様に簡単である。SQLite の構成に関する詳細はInstalling and Configuring SQLite の章を参照。


Bacula モニタ

Bacula モニタサービスは、管理者またはユーザが、Bacula ディレクタ、Bacula ファイルデーモン、Bacula ストレージデーモンの現在の状態をチェックするために用いる。今のところGTK+版のみが利用でき、GNOME、KDE、あるいはFreeDesktop.org のシステムトレイ標準に準拠した任意のウィンドウマネージャ上で動作する。

Bacula Enterprise の正常な動作には、ディレクタデーモン、ファイルデーモン、ストレージデーモン、およびカタログサービスを適切に設定して実行する必要がある。正常にバックアップまたはリストアするには、次の4 つのデーモンを正しく設定して動作させる必要がある: ディレクタデーモン、ファイルデーモン、ストレージデーモン、およびカタログサービス(MySQL、PostgreSQL、またはSQLite)。

Bacula の設定について

バックアップシステム全体の構成、クライアントとそれらで何をどのようにバックアップするかといった情報をBacula に知らせるには、いくつかの設定ファイルを編集してリソース(あるいはオブジェクト) を登録する必要がある。その全体像を下図に示す。

リソース早見表

本マニュアルの記述に関する留意点

Bacula は進化中であり、本書の内容が実際のプログラムに完璧に対応していない可能性がある。アスタリスク(*) で始まる記述箇所は、その機能は実装されていないことを示す。プラス記号(+) で始まる記述箇所は、その機能が部分的に実装されていることを示す。

正式リリースされたバージョンに対応したマニュアルの場合、上記の規約が当てはまる。オンラインマニュアル(www.bacula.org ) として本書を読んでいる場合には、CVS にある開発中のバージョンには正式リリースしたバージョンにはない機能が含まれている可能性があることに留意していただきたい。同様に、全般的に実際のプログラムよりも本書の内容が多少遅れていることにも留意していただきたい。

クイックスタート

Bacula を入手してすぐに使い始める場合、後述の「用語集」と第6 章「現在のBacula の状態」を読み、そして第10 章「Bacula 事始め」に進んでBacula を使い始めるための全体像を把握するとよいだろう。その後、第12 章「チュートリアル」、第13 章「How to Configure Bacula」を読み進めて使い始めてほしい。

ディザスタリカバリについて

Bacula はバックアップ、リストア、そして照合のためのプログラムであり、完全なディザスタリカバリ・システムではない。しかし、本書の「ディザスタリカバリ」の章に注意深く従って計画を立てれば、その中心的な要素になる。

適切に計画すれば、「ディザスタリカバリ」の章で述べられているように、Bacula をディザスタリカバリ・システムの中心的な要素にできる。たとえば、緊急用の起動ディスク、現在のハードディスクのパーティション情報を保存したBacula レスキューディスクのどちらかまたは両方を作成し、さらにBacula バックアップを完璧に維持してあれば、空っぽのディスクを使ってシステムを完全に回復できる(ベアメタル・リカバリ)。

ジョブ定義の中にWriteBootstrap レコードを指定してあるか、他の適切な方法でブートストラップファイルを作成してあれば、カタログや手作業による検索を使わなくても、必要なファイルを抜き出せる。

Bacula サービス間の相互作用

次のブロックダイアグラム(図1.3) は、バックアップにおけるBacula サービス間の典型的な相互作用を示したものである。各ブロックは、異なるプロセス(通常デーモン) を表している。一般的に、ディレクタは情報の流れを監視する。またカタログを維持している。

サービス間相互作用