はじめに
第3回までは、
今回は次のような項目を解説します。
- ディレクターデーモンの設定
- ストレージデーモンの設定
- クライアントデーモンの設定
- Baculaの設定を簡単にする小技
- バックアップ対象サーバの追加
ディレクターデーモン、
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全体を管理する司令塔的な役割を持っています。カタログ
ディレクターデーモンには主に以下のリソースが存在します。
リソース名 | 内容 |
---|---|
Director | ディレクターデーモンの設定値を記載 |
Job | バックアップおよびリストアを実行するための指示書 |
FileSet | バックアップおよびリストアするディレクトリを指定 |
Schedule | バックアップおよびリストアの実行時間を指定 |
Client | バックアップおよびリストア対象となるサーバなどを指定 |
Storage | バックアップデータを保存するストレージを指定 |
Catalog | BaculaサーバのDB情報を記載 |
Messages | Baculaの通知に関する設定 バックアップ失敗時などにメールで通知するなどの設定ができます |
Pool | データの保存先の集合体 |
Console | Baculaを操作するためのconsole情報を記載 基本はbconsoleです |
Client、
次に各リソースを1つずつ解説します。ディレクターデーモンインストール直後の設定ファイルをサンプルとして解説します。
Directorリソース
Directorリソースではディレクターデーモンの基本設定を行います。
ディレクターデーモンの名称および使用するポート、
Jobリソース
Jobリソースではバックアップおよびリストアを実行するための指示書となるJobを定義します。
Jobの名前、
FileSetリソース
FileSetリソースではどのディレクトリおよびファイルをバックアップ対象とするかを定義します。
Includeでバックアップ対象となるディレクトリを指定し、
Scheduleリソース
ScheduleリソースではJobを
Scheduleリソースの名前と実行時間を定義します。上記の例では、
- 第一日曜23:05にバックアップ実行
- 第二~第五日曜23:05に差分バックアップ
- 平日月曜~土曜23:05に増分バックアップ実行
以上の3つのスケジュールを
Clientリソース
Clientリソースではバックアップおよびリストア対象となるクライアントを定義します。ここで定義した各クライアントにはファイルデーモンをインストールし適切な設定が必要になります。
クライアントの名前とクライアントのIPアドレス、
Storageリソース
Storageリソースではどのストレージにバックアップデータを保存するか定義します。
Storageリソースの名前、
Catalogリソース
CatalogリソースではBaculaが使用するカタログ
カタログの名前とカタログ
Messageリソース
MessagesリソースではBaculaの通知に関する定義をします。
Jobが失敗した時などに指定したメールアドレスに通知することができます。各ディレクティブの詳細は
Poolリソース
Poolリソースはデータ保存先として使用するPoolを定義します。
Poolの名前、
ここでPool、
ストレージは名前の通りにバックアップデータを保存するデバイスを指します。PoolはStorageの箱を用意して、
デフォルトの設定値を利用してバックアップを取得している場合は/tmpを確認してみてください。Vol-0001というファイルが存在しているはずです。そのファイルがVolumeです。Volumeの保存先はbacula-sd.
Consoleリソース
ConsoleリソースはBaculaを操作するためのconsole情報を定義します。
Consoleリソースの名前とDirectorデーモンと通信するためのパスワードを指定します。各ディレクティブの詳細は
ストレージデーモンの設定
次にストレージデーモンの設定を行います。設定ファイルは/etc/
ストレージデーモンはバックアップしたデータを管理します。ストレージデーモンには主に以下のリソースが存在します。
リソース名 | 内容 |
---|---|
Storage | ストレージデーモンの設定値を記載 |
Director | ディレクターデーモンの設定値を記載 |
Autochanger | オートチェンジャーの設定を記載 |
Device | バックアップデータを保存するデバイス設定を記載 |
Messages | ストレージデーモンで使用するメッセージリソースを指定 |
Storageリソース
Storageリソースではストレージデーモンの基本設定を行います。
Storageリソースの名称および使用するポート、
Directorリソース
Directorリソースではストレージデーモンとディレクターデーモンが通信するための設定を定義します。
各ディレクティブの詳細はこちらを参照ください。
Autochangerリソース
Autochangerリソースでは使用するAutochangerを定義します。
Autochangerの名称、
Deviceリソース
Deviceリソースではバックアップデータを保存するデバイスを定義します。
Deviceの名前、
Messagesリソース
Messageリソースはストレージデーモンで使用するメッセージリソースを指定します。
各ディレクティブの詳細は
ファイルデーモンの設定
次にファイルデーモンの設定を行います。設定ファイルは/etc/
ファイルデーモンはバックアップ対象機にインストールするエージェントです。役割として管理サーバのディレクターデーモンと通信して、
リソース名 | 内容 |
---|---|
Director | ディレクターの設定値を記載 |
FileDaemon | ファイルデーモンの設定値を記載 |
Messages | ファイルデーモンで使用するメッセージリソースを記載 |
Directorリソース
Directorリソースではファイルデーモンとディレクターデーモンが通信するための設定を定義します。
各ディレクティブの詳細は
ファイルデーモンリソース
FileDaemonリソースではファイルデーモンの基本設定を行います。
ファイルデーモンの名称および使用するポート、
Messagesリソース
Messagesリソースはファイルデーモンで使用するメッセージリソースを指定します。
各ディレクティブの詳細は
bconsoleの設定
次にbconsoleの設定を行います。設定ファイルは/etc/
リソース名 | 内容 |
---|---|
Director | Directorリソースの設定 |
Directorリソース
Directorリソースではbconsoleとディレクターデーモンが通信するための設定を定義します。
各ディレクティブの詳細は
Firewalldの設定
次にFirewalldの設定をします。Baculaはサービス名が登録されていますので、
念のため以下のコマンドでservicesにBaculaとportsに9095/
SELinux設定
BaculaはSELinuxがenforcingでも問題なく動作しますので、
設定反映
ここまでディレクターデーモン、
CentOS7の場合のコマンドはそれぞれ以下のようになります。
設定変更したデーモンのみの再起動で問題ありません。全てを再起動する必要はありません。
また、
Baculaの設定を簡単にする小技
Baculaの設定は4つのファイルだけで非常にシンプルですが、
シンプルで良いのですが、
設定ファイル構文チェック
以下のコマンドで各ファイルの構文チェックを行うことができます。
エラーが無い場合は何も表示されません。エラーがある場合は以下のように表示されます。
わざとerr_
設定ファイルを短くする
Bacula設定ファイルは4つだけと解説しましたが、
そこで設定ファイルの行数を減らす手順を解説します。例としてbacula-dir.
bacula-dir.
job.
- /etc/
bacula/ job. list ジョブリスト - /etc/
bacula/ client. list クライアントリスト
以上のように記載するだけでジョブリストとクライアントリストを外部ファイルとして読み込むことができます。ファイル名は任意の名前を付けることができます。
バックアップ対象を追加
設定方法を細かく解説したところで、
図4の192.
リポジトリ追加
まずリポジトリを追加します。
ファイルデーモンのインストール
次にファイルデーモンのみインストールします。
ファイルデーモンの設定
次にbacula-fd.
設定ファイル/etc/
ファイルデーモンの起動
設定が終わったらbacula-fdを起動します。起動と共に自動起動設定も実施します。起動後に起動確認を行います。
ジョブ登録
管理サーバ側で設定します。管理サーバではクライアントを追加し、
以下bacula-dir.
Clientリソース
192. 次にジョブを追加しました。ジョブ名を 設定を反映させるためにディレクターデーモンを再起動します。
無事に再起動が完了したことを確認しておきましょう。
各リソースのディレクティブを解説します。 各リソースのディレクティブを解説します。 Directorリソースの各ディレクティブの意味を以下に記載します。 各リソースのディレクティブを解説します。 各リソースのディレクティブを解説します。Jobリソース
ディレクターデーモンの各リソースのディレクティブ解説
4-1.
ディレクティブ 設定値 内容 Name 任意の名称 ディレクターリソースの名称 DIRport 9101 ディレクターデーモンが使用するポート QueryFile /etc/ Queryコマンド使用時のSQLファイル格納先 WorkingDirectory /var/ ディレクターデーモンの作業ディレクトリ PidDirectory /var/ プロセスIDを格納するディレクトリ Maximum Concurrent Jobs 任意のジョブ数 同時に実行可能なジョブ数 Password 任意のパスワード 他のデーモンがディレクターデーモンへアクセスする際のパスワード Messages 任意のメッセージリソース名 ディレクターデーモンが使用するメッセージリソース 4-2.
ディレクティブ 設定値 内容 Name 任意の名称 Jobリソースの名称 Type Backup/ ジョブのタイプを指定
Backu バックアップJOB
restore リストア用JOBLevel Full
Incremental
Differentialバックアップのレベル指定
Full フルバックアップ
Incremental 増分バックアップ
Differential 差分バックアップClient 任意のクライアント名 バックアップするクライアントを指定
詳細はクライアントリソースに定義FileSet 任意のファイルセット名 バックアップするディレクトリを指定
詳細はファイルセットリソースに定義Schedule 任意のスケジュール名 バックアップを実行するスケジュールを指定
詳細はスケジュールリソースに定義Storage 任意のストレージ名 バックアップするデータを保存するストレージを指定
詳細はストレージリソースに定義Messages 任意のメッセージ名 使用するメッセージリソースを指定
詳細はメッセージリソースに定義Pool 任意のポール名 バックアップするデータを保存するプールを指定
詳細はプールリソースに定義Priority 任意の優先度 ジョブの優先度を設定
デフォルトは10Write Bootstrap /var/ FileSetリソース
ディレクティブ 設定値 内容 Name 任意の名称 FileSetリソースの名称 Include File = <ディレクトリ>
File = <ファイル名>バックアップ対象とするファイル名およびディレクトリを指定する Options Includeのオプション設定 signature signature = MD5
signature = SHA1ハッシュ関数を指定 compression compression = GZIP
compression = LZO圧縮の形式を指定
GZIPは圧縮レベルを指定
圧縮率はGZIP9が高く、
GZIPと指定するとGZIP6と同様Exclude File = <ディレクトリ>
File = <ファイル名>バックアップ対象外とするファイル名およびディレクトリを指定 Scheduleリソース
ディレクティブ 設定値 内容 Name 任意の名称 Scheduleリソースの名称 Run 条件式を指定 Jobを実行するレベルと実行日時を指定 Clientリソース
ディレクティブ 設定値 内容 Name 任意の名称 Clientリソースの名称 Address IPアドレス 対象となるサーバおよびクライアントのIPアドレス FDPort 9102 ファイルデーモンが使用するポート Catalog カタログ名 インストール時に指定したデータベース名を指定 Password 任意のパスワード ファイルデーモンと通信するためのパスワード File Retention 任意の日数 バックアップデータ保存期間 Job Retention 任意の日数 実行Jobの保存期間 AutoPrune yes / no 自動削除の有無 Storageリソース
ディレクティブ 設定値 内容 Name 任意の名称 Storageリソースの名称 Address IPアドレス ストレージデーモンがインストールされているサーバを指定 SDPort 9103 ストレージデーモンが使用するポート Password 任意のパスワード ストレージデーモンと通信するためのパスワード Device 任意のデバイス名 バックアップデータを保存するデバイスを指定
bacula-sd.Media Type 任意のプール名 バックアップデータを保存するPoolを指定
Poolリソースにて定義Maximum Concurrent Jobs 任意のJOB数 同時実行可能なJOB数 Catalogリソース
ディレクティブ 設定値 内容 Name 任意の名称 Catalogリソースの名称 dbname 管理サーバインストール時のDB名称 データベースの名称 dbuser 管理サーバインストール時に設定したDBアクセスユーザ名 データベースへアクセスするユーザ名 dbpassword 管理サーバインストール時に設定したDBアクセスパスワード データベースへアクセスするユーザ名 Messageリソース
ディレクティブ 設定値 内容 Name 任意の名称 Messageリソースの名称 mailcommand 任意のメールコマンド 実行するメールコマンド mail 任意のメール送信先 メール送信先 console 許可する権限指定 コンソール設定 append ログ出力先 ログ出力先 Poolリソース
ディレクティブ 設定値 内容 Name 任意の名称 Poolリソースの名称 Pool Type Backupで固定 Poolタイプを設定
基本的にBackupを指定Recycle yes/ 保存するPoolの再利用を指定 AutoPrune yes/ Volume Retentionで指定した日数経過後の自動削除を指定
yesは自動削除。noは自動削除しないVolume Retention 任意の日数を指定 ボリュームの保存日数を指定
指定した日数を超えないとボリュームは削除できないMaximum Volume Bytes 任意のボリューム容量を指定 最大ボリューム容量を指定 Maximum Volumes 任意のボリューム数を指定 最大ボリューム数を指定 Label Format 任意のラベルフォーマット ラベルフォーマットを指定 Consoleリソース
ディレクティブ 設定値 内容 Name 任意の名称 Consoleリソースの名称 Password 任意のパスワード コンソールへアクセスする際のパスワードを指定 CommandACL 許可するコンソール操作記述 コンソールACL設定 ストレージデーモンの各リソースのディレクティブ解説
Storageリソース
ディレクティブ 設定値 内容 Name 任意の名称 ストレージデーモンの名称 SDPort 9103 ストレージデーモンが使用するポート WorkingDirectory /var/ ストレージデーモン が使用する作業ディレクトリ Pid Directory /var/ プロセスIDを格納するディレクトリ Maximum Concurrent Jobs 任意のJob数 同時実行可能なJob数
ディレクティブ 設定値 内容 Name Directorに設定されているDirector名称 Directorリソースの名称 Password Directorに設定されているDirectorのパスワード Directorへアクセスする際のパスワード Monitor yes/ ディレクターからのアクセス権限 Autochangerリソース
ディレクティブ 設定値 内容 Name 任意の名称 Autochangerリソースの名称 Device 任意の名称 デバイスの名称 Changer Command 実行するコマンド Autochangerコマンド Changer Device Autochangerデバイス Autochangerデバイス Deviceリソース
ディレクティブ 設定値 内容 Name 任意のデバイス名称 Deviceリソースの名称 Media Type 使用するPool名を指定 メディアタイプを指定 Archive Device 保存先のパスを指定 バックアップデータ保存先を指定 LabelMedia yes/ ラベルメディアの指定 Random Access yes/ ランダムアクセスの指定 AutomaticMount yes/ 自動マウントの指定 RemovableMedia yes/ リムーバブルメディアの指定 AlwaysOpen yes/ デバイスオープンの指定 Maximum Concurrent Jobs 任意のJOB数 同時実行JOB数 Messageリソース
ディレクティブ 設定値 内容 Name 任意の名称 Messagesリソースの名称 director Directorリソース名を記載 Directorリソース名指定 ファイルデーモンの各リソースのディレクティブ解説
Directorリソース
ディレクティブ 設定値 内容 Name Directorに設定されているDirector名称 Directorリソースの名称 Password Directorに設定されているDirectorのパスワード Directorへアクセスする際のパスワード FileDemonリソース
ディレクティブ 設定値 内容 Name 任意の名称 ファイルデーモンの名称 FDport 9102 ファイルデーモンが使用するポート WorkingDirectory /var/ ファイルデーモンが使用する作業ディレクトリ Pid Directory /var/ プロセスIDを格納するディレクトリ Maximum Concurrent Jobs 任意のJob数 同時実行可能なJob数 Plugin Directory /usr/ プラグイン格納ディレクトリ Messageリソース
ディレクティブ 設定値 内容 Name 任意の名称 Messageリソースの名称 director Directorリソース名を記載 Directorリソース指定 コンソールの各リソースのディレクティブ解説
Directorリソース
ディレクティブ 設定値 内容 Name 任意の名称 Directorリソースの名称 DIRport 9102 ディレクターデーモンが使用するポート address IPアドレス Directorが存在するサーバのIPアドレスを指定 Password 任意のパスワード Directorへアクセスする際に使用するパスワード