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

第2回 Baculaでバックアップをしてみよう

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

はじめに

前回はなぜバックアップが必要なのかを説明しました。今回は実際にBaculaをさわってみて,バックアップとリストアを試してみましょう。

用意するのは,CentOS7.2の入ったサーバ1台です。仮想環境でも問題ありません。

前回の最後で書いた通り,今後の連載では以下の内容を扱います。

  • 第2回 Baculaでバックアップをしてみよう
  • 第3回 GUIツールBaculumを使ってバックアップを簡単にする
  • 第4回 Baculaを使いやすくするための設定値解説
  • 第5回 LinuxだけじゃないWindowsのファイルもバックアップ
  • 第6回 忘れてはいけないリストアの手法
  • 第7回 Baculaをもっと活用しよう(Bacula Enterpriseでできること)

上記で使用する環境をすべて作成すると,以下ののようなシステムができあがることになります(もちろん全部作成しなくてもかまいません)⁠

画像

Baculaのアーキテクチャ

最初に,Baculaというソフトの構成を説明します。

Baculaの主要なコンポーネントは次の3つです。括弧内はサービス名です。各コンポーネントの起動やステータス確認はこの名前で行ってください。

ディレクターデーモン(bacula-dir)

Bacula全体の動作を制御するメインコンポーネントです。履歴を管理する内部データベース(カタログ)も含まれます。

ストレージデーモン(bacula-sd)

バックアップした実データを保存するサーバにインストールし,書き込みや読み出し動作を行います。

ファイルデーモン(bacula-fd)

バックアップ対象のサーバやPCにインストールして,データの読み出しを行います。リストア時には書き込みを行います。Baculaクライアントと呼ぶこともあります。

これら3つのコンポーネントは1つのサーバにすべて入っていてもいいですし,すべて異なるサーバでもかまいません。

今回は1台のサーバにすべてのコンポーネントをインストールします。なお,今後の連載の説明の中にも本サーバが登場します(便宜上,本サーバを「管理サーバ」と呼びます)⁠

また,コマンドライン上で操作を行うための以下のツールがあります。

bconsole

bconsoleはディレクターデーモンと通信を行い,ディレクターデーモンが実際のバックアップやリストア動作の命令を出します。

事前準備

Baculaは以下のポートを使用します。ファイヤーウォールの設定をしておいてください。

ポート番号利用目的
9101(TCP)ディレクターデーモン(bacula-dir)が使用
9103(TCP)ストレージデーモン(bacula-sd)が使用
9102(TCP)ファイルデーモン(bacula-fd)が使用

なお,CentOS 7.2では,サービスが登録されていますので,以下のようにしてファイヤーウォール設定が行えます。

# firewall-cmd --permanent --add-service=bacula
success
# firewall-cmd –reload
success

SELinuxはEnforcingのままでも問題ありません。

Baculaのインストール

実際のインストール手順を進めていきましょう

リポジトリの追加

まず,yumリポジトリの追加を行います。リポジトリを追加しなくてもyumコマンドでbaculaが見つかりますが,新しいバージョンのbaculaを使用するためリポジトリの追加を推奨します。

# cd /etc/yum.repos.d/
# wget https://copr.fedorainfracloud.org/coprs/slaanesh/Bacula/repo/epel-7/slaanesh-Bacula-epel-7.repo

Baculaパッケージのインストール

リポジトリの追加が完了したら,yumコマンドでBaculaのディレクターデーモン,ストレージデーモン,ファイルデーモン,MariaDBをインストールします。MariaDBはジョブの実行履歴などを管理するカタログ用途に使用します。

# yum -y install bacula-director bacula-client bacula-storage bacula-console mariadb-server

MariaDBの初期設定

MariaDBを一度起動して自動起動も有効にしておきます。

# systemctl start mariadb
# systemctl enable mariadb

また,初期化を行います。

# mysql_secure_installation

上記コマンド実行後,以下のようにパスワード設定について尋ねられますのでyを選択し任意のパスワードを入力してください。本解説では⁠dbpass⁠を使用します。

Set root password? [Y/n] y
New password: dbpass
Re-enter new password: dbpass
Password updated successfully!
Reloading privilege tables..
 ... Success!

他の質問についてはすべてyと答えておいてください。

Bacula用のデータベースを作成します。

# mysql -u root -p
Enter password: dbpass       
MariaDB > create database bacula;
Query OK, 1 row affected (0.00 sec)
MariaDB > grant all privileges on bacula.* to [email protected] identified by ' dbpass';
Query OK, 0 rows affected (0.01 sec)
MariaDB > quit

Bacula用のテーブルの作成を行います。

# /usr/libexec/bacula/make_bacula_tables mysql -u bacula -p
Making mysql tables
Enter password: dbpass 
Creation of Bacula MySQL tables succeeded.

Baculaが使用するデータベースの変更を行います。

# alternatives --config libbaccats.so

There are 3 programs which provide 'libbaccats.so'.

  Selection    Command
-----------------------------------------------
   1           /usr/lib64/libbaccats-mysql.so
   2           /usr/lib64/libbaccats-sqlite3.so
*+ 3           /usr/lib64/libbaccats-postgresql.so

Enter to keep the current selection[+], or type selection number: 1

もう一度コマンドを実行して,変更されていることを確認します。1に+があれば変更されています。

# alternatives --config libbaccats.so

There are 3 programs which provide 'libbaccats.so'.

  Selection    Command
-----------------------------------------------
 + 1           /usr/lib64/libbaccats-mysql.so
   2           /usr/lib64/libbaccats-sqlite3.so
*  3           /usr/lib64/libbaccats-postgresql.so

Enter to keep the current selection[+], or type selection number:

著者プロフィール

小町哲也(こまちてつや)

株式会社サードウェア

HA製品と有償版Baculaの問い合わせ対応やドキュメント翻訳などを行っている。

コメント

コメントの記入