Bacula・インストール〜動作確認まで

bacula

1.Baculaとは

■Baculaとは

Bacula(バキュラ)はLinuxで利用できるメジャーなバックアップソフトウェア。よく一緒に名前の挙がるFreeのLinuxバックアップソフトウェアにAmandaがあるが、Amandaよりもバックアップシステムを構成するアーキテクチャ・役割が細分化されており、エンタープライズ向けの設計。公式サイトの説明には「非常に使い勝手がいい」とか記載されているが概念をちゃんと理解しないと爆死する危険あり。

■baculaのデーモン

下記の3つのデーモンが独立して動作します。Bacula-dirではDBサーバにバックアップ情報を格納するので、DBサーバを別で用意する選択肢もあり。大規模な環境であれば各デーモンごとにサーバを構築して稼働させても良いですが、小規模であればbacula-dirとbacula-sdは同一のサーバで良いと思います。
bacula-dir バキュラ全体の管理役。バックアップジョブ管理も行う
bacula-sd バキュラのバックアップデータ書き込み先のストレージの管理
bacula-fd
バキュラのバックアップを実際に実行するクライアント

■カタログ(Catalog)

Baculaのバックアップに必要な情報を格納するデータベースを指す。カタログ=データベースと読み替えても問題ないようです。ちなみにカタログが消失するとバックアップデータそのものが残っていてもリストアできなくなります。定期的にカタログはダンプして別サーバに保管するなどの対策が必要です。

2.Baculaサーバ側の構築

■構成

■ソフトウェアインストール

 ■データベース設定

Baculaはバックアップファイルの保管情報をデータベースに「カタログ」として保管する。カタログとは、Baculaが利用するデータベースのことを指す。
BaculaユーザとBacula用のデータベースを作成する。/usr/libexec/bacula/配下のスクリプトでも代用可能。今回はコマンドで作ります。

テーブルは付属のツールを実行して作成します。下記のShellスクリプトを実行すると必要なテーブルが作成されます。。

実行したらそれらしきテーブルができているか確認しておきましょう。

■設定ファイル編集

Baculaサーバ(dirデーモン、sdデーモン)の動作設定を行います。fdデーモン(クライアントデーモン)も設定しているのは、Baculaサーバ自身のバックアップも行わせるためとなります。
まずバックアップを作成しておきます。設定ファイルに記載されているパスワードを書き換えます。今回はbaculaで使用する全てのパスワードを統一して設定します。

 ■Baculaデーモン起動

まとめて起動します。

■設定ファイルのインクルード設定

動作には影響ありませんが、設定ファイルがデフォルトで非常にごっちゃごちゃしているので、管理しやすいよう別ファイルで設定できるようにしておきます。
まずbacula-dirの共有設定を記載するファイルをcommon.confという名前で作成します。
上で作成したcommon.confをインクルードさせるパラメータをメインのコンフィグ末尾に追記します。

 共通設定ファイル&テンプレートファイルの作成

今回は以下のように役割を分けています。

common.conf
各サーバで共通設定とするバックアップ設定をまとめて記載。メインコンフィグでインクルード。
  • バックアップスケジュール
  • バックアップ時のフルバックアップ、差分バックアップ、増分バックアップの指定
  • バックアップ対象のディレクトリ・除外ディレクトリ
  • バックアップデータを保管するサーバ名の指定
  • バックアップデータを保管するプールの指定
template.conf
新しくバックアップ対象を追加するときにコピーして利用するテンプレ的なファイル。
IPアドレスとホスト名をダミーの値にしておく。(xx.xx.xx.xx, template.com) テンプレート
なのでIncludeはしない。

■共通設定ファイル

[root@backup ~]# cat /etc/bacula/lab-servers.d/common.conf
Schedule {
  Name = “lab-schedule01”
  Run = Full mon at 04:05
  Run = Incremental tue-sun at 04:05
}
FileSet {
  Name = “server all data”
  Include {
    Options {
      signature = MD5
    }
    File = /
  }
  Exclude {
    File = /var/spool/bacula
    File = /tmp
    File = /proc
    File = /.journal
    File = /.fsck
  }
}
Storage {
  Name = nas_server
  Address = 10.24.96.140
  SDPort = 9103
  Password = “YourPassword”
  Device = FileStorage
  Media Type = File
}
Pool {
  Name = lab_backup_pool
  Pool Type = Backup
  Recycle = yes
  AutoPrune = yes
  Volume Retention = 7 days
}

 ■templateファイル

Job {
  Name = “template.com”
  Type = Backup
  Level = Full
  Client = “template.com”
  FileSet = “server all data”
  Schedule = “lab-schedule01”
  Storage = nas_server
  Messages = Standard
  Pool = lab_backup_pool
  Priority = 10
  Write Bootstrap = “/var/spool/bacula/%c.bsr”
}
Job {
  Name = “template.com_Restore”
  Type = Restore
  Client=”template.com”
  FileSet=”server all data”
  Storage = nas_server
  Pool = lab_backup_pool
  Messages = Standard
  Where = /nas/bacula/restores
}
Client {
  Name = “template.com”
  Address = xx.xx.xx.xx
  FDPort = 9102
  Catalog = MyCatalog
  Password = “YourPassword”
  File Retention = 30 days            # 30 days
  Job Retention = 6 months            # six months
  AutoPrune = yes                     # Prune expired Jobs/Files
}

3.Bacula-Clientのインストールと初期設定

サーバ側と違い設定はごくシンプルです。Bacula-fdデーモンのパスワード設定を変更し、サーバ側から接続できる状態にしてあげるだけです。

クライアントインストールは下記実行。

パスワード情報を書き換える。以上

 4.動作確認

バックアップ
リストア
運用コマンド
■手動バックアップの実行
status
label
list media
run
■baculaリストア方法
bconsole
restoreを選択する。
5: Select the most recent backup for a client
んでlsコマンドを使用してレストアを実行する。
■データベースのバックアップ
■Bacula-Severが死んだ場合のレストア
■通知先変更
Bookmark this on Google Bookmarks
LINEで送る
Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です