オープンソースソフトウェア「Bacula」で安心・安全なバックアップシステムを構築しよう

第4回 Baculaを便利に使うための設定解説

この記事を読むのに必要な時間:およそ 11 分

はじめに

第3回までは,Baculaのデフォルト値に近い基本的な設定を使用してきました。第4回ではもう少し突っ込んだ詳細な設定値を説明します。

今回は次のような項目を解説します。

  • ディレクターデーモンの設定
  • ストレージデーモンの設定
  • クライアントデーモンの設定
  • Baculaの設定を簡単にする小技
  • バックアップ対象サーバの追加

ディレクターデーモン,ストレージデーモン,クライアントデーモン,コンソールを解説し,バックアップ対象を1台追加します。192.168.2.2をバックアップ対象機として追加します。図1のような全体の構成を想定しています。

図1 全体の構成

図1 全体の構成

Baculaの設定

Baculaの設定ファイルは基本的に以下の4ファイルのみで実施するシンプルな設定ファイルです。

  • /etc/bacula/bacula-dir.conf ディレクターデーモン設定
  • /etc/bacula/bacula-sd.conf ストレージデーモン設定
  • /etc/bacula/bacula-fd.conf クライアントデーモン設定
  • /etc/bacula/bconsole.conf コンソール設定

またBaculaの設定値は,⁠{」で始まり「}」で終わるリソースとよばれる単位で設定します。

上記の4つファイルの中身を見るとリソースの集合体になっています。それぞれのファイルにどのようなリソースが存在するかを設定値と共に解説します。

各リソースの基本書式は

  • <ディレクティブ> = <設定値>

となり,ディレクティブに対して設定値を記載します。以下,各リソースに設定できるディレクティブを解説していきます。

ディレクターデーモンの設定

ディレクターデーモンの設定を行います。設定ファイルは/etc/bacula/bacula-dir.confです。

ディレクターデーモンはBacula全体を管理する司令塔的な役割を持っています。カタログ(データベース)と連携して,すべてのクライアントに関するバックアップ,リストア情報を管理し,ジョブの実行を管理します。

ディレクターデーモンには主に以下のリソースが存在します。

リソース名内容
Directorディレクターデーモンの設定値を記載
Jobバックアップおよびリストアを実行するための指示書
FileSetバックアップおよびリストアするディレクトリを指定
Scheduleバックアップおよびリストアの実行時間を指定
Clientバックアップおよびリストア対象となるサーバなどを指定
Storageバックアップデータを保存するストレージを指定
CatalogBaculaサーバのDB情報を記載
MessagesBaculaの通知に関する設定
バックアップ失敗時などにメールで通知するなどの設定ができます
Poolデータの保存先の集合体
ConsoleBaculaを操作するためのconsole情報を記載
基本はbconsoleです

Client,FileSet,Schedule,Storage,PoolはそれぞれJobリソース内で定義して使用します。その関係性を表したものが図2です。

図2 リソースの関係性

図2 リソースの関係性

次に各リソースを1つずつ解説します。ディレクターデーモンインストール直後の設定ファイルをサンプルとして解説します。

Directorリソース

Directorリソースではディレクターデーモンの基本設定を行います。

Director {                            # define myself
  Name = bacula-dir
  DIRport = 9101                # where we listen for UA connections
  QueryFile = "/etc/bacula/query.sql"
  WorkingDirectory = "/var/spool/bacula"
  PidDirectory = "/var/run"
  Maximum Concurrent Jobs = 20
  Password = "bacula"         # Console password
  Messages = Daemon
}

ディレクターデーモンの名称および使用するポート,同時実行可能なJob数,ディレクターデーモンと通信するためのパスワードなどを設定することができます。各ディレクティブの詳細はDirectorリソースを参照ください。

Jobリソース

Jobリソースではバックアップおよびリストアを実行するための指示書となるJobを定義します。

Job {
  Name = "Backup-TestJob"
  Type = Backup
  Level = Full
  Client = bacula-fd
  FileSet = "Full Set"
  Schedule = "WeeklyCycle"
  Storage = File1
  Messages = Standard
  Pool = File
  Priority = 10
  Write Bootstrap = "/var/spool/bacula/%c.bsr"
}

Jobの名前,バックアップ対象となるクライアントや対象のディレクトリ,スケジュールなどを設定し,柔軟にバックアップを取得するJobを作成できます。各ディレクティブの詳細はJobリソースを参照ください。

FileSetリソース

FileSetリソースではどのディレクトリおよびファイルをバックアップ対象とするかを定義します。

FileSet {
  Name = "Full Set"
  Include {
    Options {
      signature = MD5
      compression = GZIP
    }
    File = /usr/sbin
  }

  Exclude {
    File = /var/spool/bacula
    File = /tmp
    File = /proc
    File = /tmp
    File = /sys
    File = /.journal
    File = /.fsck
  }
}

Includeでバックアップ対象となるディレクトリを指定し,Excludeでバックアップ対象から外すことができます。その他圧縮の指定,ハッシュ関数の指定などが可能です。各ディレクティブの詳細はFileSetリソースを参照ください。

Scheduleリソース

ScheduleリソースではJobを「いつ」実行するか定義します。

Schedule {
  Name = "WeeklyCycle"
  Run = Full 1st sun at 23:05
  Run = Differential 2nd-5th sun at 23:05
  Run = Incremental mon-sat at 23:05
}

Scheduleリソースの名前と実行時間を定義します。上記の例では,

  • 第一日曜23:05にバックアップ実行
  • 第二~第五日曜23:05に差分バックアップ
  • 平日月曜~土曜23:05に増分バックアップ実行

以上の3つのスケジュールを「WeeklyCycle」という名前で定義しています。各ディレクティブの詳細はScheduleリソースを参照ください。

著者プロフィール

澤田健(さわだけん)

Bacula日本ユーザ会であるBacula.jpメンバー

サーバ構築,運用,保守業務を担当。

Linux,オープンソース関連に興味があり情報公開もしている。

URL:http://ksawada.hatenablog.com/

Twitter:@ksawada1979

コメント

コメントの記入