目次

はじめに

本書を読んでいただきたい方
免責事項
表記関係について
底本について

第1章 Baculaで何ができる?

1.1 初めましてBaculaです
1.2 基本的にはファイルバックアップ
1.3 データベースをちょっと工夫してバックアップ
1.4 Windows、Linux、Macのバックアップ

第2章 今更聞けないバックアップの基本

2.1 バックアップしていますか?
2.2 リストアしたことありますか?
2.3 フルバックアップ
2.4 差分バックアップ
2.5 増分バックアップ
2.6 スナップショット
2.7 ディスクまるごとバックアップ(ベアメタルリカバリ)

第3章 Baculaの基礎知識

3.1 Baculaのバージョンについて
3.2 Baculaによるバックアップの取得
3.3 Directorデーモン
3.4 Storageデーモン
3.5 Fileデーモン
3.6 コンソール

第4章 本書のBacula構成

第5章 Baculaサーバー構築(CentOS7編)

5.1 パッケージダウンロード方法
5.2 データベースのインストール
5.3 Baculaサーバーのインストール
5.4 CentOS7のチューニング

第6章 Baculaサーバ構築(Ubuntu18.04編)

6.1 パッケージダウンロード方法
6.2 データベースのインストール
6.3 Baculaサーバーのインストール

第7章 Bacula設定ファイルのサンプル

7.1 bacula-dir.conf
7.2 bacula-sd.conf
7.3 bacula-fd.conf
7.4 bconsole.conf
7.5 client.list
7.6 job.list

第8章 Baculaサーバーの設定

8.1 Bacula設定の基本
8.2 Directorデーモン設定(bacula-dir.conf)
8.3 Storageデーモン設定(bacula-sd.conf)
8.4 Fileデーモン設定(bacula-fd.conf)
8.5 コンソール設定(bconsole.conf)
8.6 Firewalldの設定
8.7 ディレクトリ権限設定

第9章 Baculaサーバーの起動と停止

9.1 各デーモンの起動、停止

第10章 エージェントのインストール

10.1 CentOS7機へエージェントインストール
10.2 Windows機へエージェントインストール
10.3 Ubuntu機へエージェントインストール

第11章 バックアップをとってみよう

11.1 bconsoleでバックアップ
11.2 バックアップの状態を確認する

第12章 リストアしてみよう

12.1 bconsoleでリストア

第13章 Web GUIのBaculumを使ってみよう

13.1 Baculumインストール(CentOS7編)
13.2 Baculumインストール(Ubuntu18.04編)
13.3 Baculum API設定
13.4 Baculum Web設定
13.5 Baculumでバックアップ
13.6 Baculumでリストア

第14章 バックアップが失敗!その時通知したい

14.1 メールで知らせる
14.2 Slackで知らせる
14.3 LINEで知らせる

第15章 便利な使い方

15.1 設定ファイルの間違いを確認する
15.2 設定ファイルが長くなりすぎるのを防ぐ
15.3 バックアップデータの圧縮設定

第16章 一歩踏み込んだBaculaの使い方

16.1 データベースのバックアップ
16.2 大規模構成でのBacula
16.3 Bacula内部の通信
16.4 QNAPの活用

第17章 Baculaサーバーのバージョンアップについて

17.1 Baculaサーバーのバージョンアップ手順
17.2 各デーモンのバージョン互換性について

第18章 Baculaサーバー自体をリストアする

18.1 Baculaサーバー自体のリストア手順

第19章 カタログが壊れた場合のバックアップデータ復旧

19.1 カタログデータは最重要
19.2 bextractコマンドで復旧

第20章 今後のBaculaについて

20.1 CentOS8対応
20.2 今後のメジャーバージョンアップについて

あとがき

Bacula情報サイト
レビュアー
参考書

はじめに

 本書を手に取っていただきありがとうございます。筆者は「Bacula.jp」というBacula(バキュラ)の日本ユーザー会に所属しており、普段からホームページでBaculaのインストール手順、設定手順、本家Baculaのリリースノートの翻訳などをしております。

 元々Linuxのオープンソースソフトウェア保守をする会社に勤めていたことがあり、その際にBaculaというバックアップソフトウェアを知りました。

 ジャンルごとに、だいたいひとつは有名なオープンソースのソフトウェアがあります。たとえばメールならPostfix、DNSならBIND、監視ならZabbix。しかしバックアップには無いと思いました。

 無いというと関係者の方に怒られそうですが、すぐに思いつくほどの有名ソフトは無いなという印象でした。そんな中でBaculaに触れる機会があり、多少クセはあるものの性能がしっかりしていて使えると思い、実際に使い始めました。

本書を読んでいただきたい方

 ・バックアップするのが面倒だなーと思っている方

 ・rsyncでバックアップを取っている方

 ・リストアを実はしたことが無い方

 ・そうそうサーバって壊れないですよね?だからバックアップいらないですよねと思っている方

 ・RAID組んでるからバックアップいらないよねと思っている方

 ・オープンソースでバックアップソフトウェアを探している方

免責事項

 本書に記載された内容は、情報の提供のみを目的としています。したがって、本書を用いた開発、製作、運用は、必ずご自身の責任と判断によって行ってください。これらの情報による開発、製作、運用の結果について、著者はいかなる責任も負いません。

表記関係について

 本書に記載されている会社名、製品名などは、一般に各社の登録商標または商標、商品名です。会社名、製品名については、本文中では©、®、™マークなどは表示していません。

底本について

 本書籍は、技術系同人誌即売会「技術書典」で頒布されたものを底本としています。

第1章 Baculaで何ができる?

 本書のタイトルにもあるとおりにBaculaはバックアップソフトウェアですが、どんなことができるのでしょうか?

 本章では、Baculaで何ができるかを解説します。

1.1 初めましてBaculaです

 BaculaはスイスにあるBacula Systemsという会社のメイン開発者によって開発されています。歴史は長く、15年以上前から開発されています。

 Baculaは日本での知名度はイマイチですが、sourceforgeによると世界で一番ダウンロードされているオープンソースのバックアップソフトウェアです。

 日本で有名なバックアップソフトウェアといえば「Acronis」「Backup Exec」「NetVault」「Veeam」などなど、上げれば切りがありません。よく私が聞かれるのは、それらのソフトウェアと比べてBaculaは何が凄いの?ということです。

 はっきり言って、Baculaは他のソフトウェアに比べて機能的に格段優れているところはありませんが、バックアップを取る、リストアするという基本的な機能は見劣りしません。Bacula最大の魅力は、導入するためのハードルが低く気軽に導入可能であるという点です。

 Linuxサーバー1台あれば、ライセンスを買う必要もなく、無償でBaculaを使用することができます。またバックアップ台数が増えても制限がかかることはありません。

 BaculaはIPアドレスを持つサーバーおよびパソコン(クライアント機)にFileデーモンと呼ばれるエージェントソフトウェアをインストールすることによって、ネットワーク越しにバックアップを取ることができます。

 残念ながら、USB接続してバックアップを取るといったことはできません。そのためいつも使っているをパソコン1台だけ、ちょっとバックアップを取ろう!といった用途にはBaculaは向いていません。他にもっと使いやすいソフトウェアがあると思います。

 Baculaは複数台のIPアドレスを持つサーバーおよびパソコン(クライアント機)のバックアップに向いています。

1.2 基本的にはファイルバックアップ

 バックアップにもさまざまな種類が存在しますが、Baculaはファイルバックアップを得意としています。

 ファイルバックアップの対象は、Excelファイルだったり、Wordファイルなどパソコンで使用されるファイルなどを指します。

 普段の仕事などでExcelファイル、Wordファイルを社内で共有のファイルサーバーなどに保存することがあると思います。このようなファイルサーバーのデータをファイルバックアップするのが得意です。

 逆にファイルバックアップでは無い、ハードディスクを丸ごとバックアップを取る、スナップショットを取るといったバックアップには向いていません。

1.3 データベースをちょっと工夫してバックアップ

 基本的にはファイルバックアップ、と言ったばかりですが、Baculaではデータベースのバックアップを取ることも可能です。

 しかし、それには少し工夫が必要です。データベースのバックアップを普段から取っている方はご理解いただけると思いますが、データベースのバックアップを取る際にはdumpコマンドを使います。

 dumpしたファイルをBaculaでバックアップとることにより、データベースのバックアップを取ることができます。

 オンラインでバックアップすることができるdumpコマンドを使用することにより、Baculaでデータベースのオンラインバックアップを取ることも可能です。

1.4 Windows、Linux、Macのバックアップ

 BaculaではさまざまなOSのバックアップを取ることができます。

 バックアップデータを保存するBaculaサーバー側はLinuxのみになり、Windows版はありませんが、バックアップ対象機となるサーバーおよびパソコン(クライアント機)はWindows、Linux、UNIX、Macのバックアップが可能です。

 基本的に、対応するFileデーモンと呼ばれるエージェントソフトウェアがインストールできればバックアップ可能です。

第2章 今更聞けないバックアップの基本

 バックアップと一口に言ってもフルバックアップ、差分バックアップ、増分バックアップなどさまざまなバックアップの取り方が存在します。

 本章では、今更そんなこと聞けない!というバックアップの基本をおさらいしていきます。

 Baculaに関することではなく、一般的なバックアップの話になります。

2.1 バックアップしていますか?

 いきなりですが、バックアップちゃんと取ってますか?

 本書を手にとっていただいているということは、普段からバックアップに課題を感じている方だと思います。

 しっかりバックアップを取っているとして、どのようにバックアップを取っていますか?単純に、定期的にファイルをコピーしておくのも立派なバックアップです。Linuxでrsyncとシェルを組み合わせて定期的に取っている方もいると思います。

 無理にバックアップソフトウェアを使う必要はないとも思います。

 バックアップにも適材適所があり、どういった方法でバックアップをとるのかも設計の腕の見せ所です。

 設計を考えた上で、Baculaが使えそうだと思っていただければ良いです。

 ただBaculaも決して万能ではありませんので、選択肢のひとつと思っていただければ幸いです。

2.2 リストアしたことありますか?

 日々取得しているバックアップデータですが、実際にバックアップからリストアしたことはありますでしょうか。

 「何をいってるんだあたりまえだ!」と思う方が多いことを祈っておりますが、特に小規模のシステムは、筆者の経験からいうと、バックアップはついつい後回しにされがちです。目的のシステムを動かすことを優先して、後付けでバックアップを始めたということが多いのではないでしょうか。既に稼働しているシステムをわざわざ止めてリストアの試験をするのは、なかなか難しいと思います。

 バックアップは正しくリストアできてこそ意味があります。正しくリストアできないバックアップデータは容量の大きいただのゴミです。是非システムが動き出す前にリストアまできっちりすることをオススメします。

 そして、リストア手順を確立しておくことが重要です。

2.3 フルバックアップ

 ここからバックアップの種類の話をしていきます。

 Baculaではフルバックアップ、差分バックアップ、増分バックアップを取得することが可能です。

 最初は「フルバックアップ」です。これは読んで字のごとく、指定した領域の全てのバックアップを取得します。

2.4 差分バックアップ

 次は差分バックアップです。

 例えば日曜日にフルバックアップを取得して、月曜から水曜まで、決められた同じ時間に差分バックアップを取得することにします。

 月曜日はもちろん、日曜日から月曜までの差分をバックアップします。火曜日は、日曜日から火曜日までの差分をバックアップします。そして水曜日は、日曜日から水曜日までの差分をバックアップします。

 図にすると以下のようになります。斜線部分が使用するディスク容量になります。

図2.1: 差分バックアップのディスク使用量

2.5 増分バックアップ

 続いて増分バックアップです。

 例えば日曜日にフルバックアップを取得して、月曜から水曜までは決められた同じ時間に増分バックアップを取得するとします。

 月曜日はもちろん日曜日から月曜までの増分をバックアップします。火曜日は月曜日から火曜日までの増分をバックアップします。そして水曜日は火曜日から水曜日までの増分をバックアップします。

 差分バックアップと増分バックアップは一見似ていますが、1日ごとのバックアップの取得容量が変わってきます。

 図にすると以下のようになります。斜線部分が使用するディスク容量になります。増分バックアップは、差分バックアップに比べてディスクの使用量が少ないことが分かると思います。

図2.2: 増分バックアップのディスク使用量

 ディスクの使用量が少ない増分の方が良さそうですが、リストアする場合に差が出てきます。

 仮に木曜日に障害が発生し、水曜日のデータに戻したいとします。

 差分の場合は日曜日と水曜日のデータがあればリストアできますが、増分は日曜日、月曜日、火曜日、水曜日のデータが無いとリストアできません。

 よって一概に増分と差分どちらが良いかは言えませんが、バックアップを取る対象のデータ容量、一日の増加分によって差分と増分のどちらにするべきかを判断するのが良いです。

 容量が少ない場合は毎日フルバックアップを取るというのも、一つの考え方です。

2.6 スナップショット

 主に仮想環境で使われることが多いですが、ある時点のサーバーの状態をファイルではなく、イメージで丸ごと取得します。

 障害が発生した場合はスナップショットを取得した時点にサーバーの状態を戻すことができます。

 こういったバックアップはBaculaは得意としていません。

 Baculaのエンタープライズ版では、プラグインを使用することによりスナップショット機能を追加することはできますが、コミュニティー版ではスナップショット機能はありません。本書はコミュニティー版を前提としています。コミュニティー版とエンタープライズ版の違いは後述します。

 よって、ここではスナップショットの詳細は記載しません。

2.7 ディスクまるごとバックアップ(ベアメタルリカバリ)

 最後はディスクまるごとバックアップします。OSを含めた全てのデータをDVDおよび別のハードディスクに保存します。

 サーバーがハードごと故障しても新しいサーバーさえあれば、DVDを起動ディスクとしてハードディスクからリストアすることができます。

 ベアメタルリカバリと呼ばれますが、この方式もBaculaは得意としていません。

 Baculaのエンタープライズ版ではプラグインを使用することによりベアメタルリカバリを追加することはできますが、コミュニティー版ではベアメタルリカバリ機能はありません。

試し読みはここまでです。
この続きは、製品版でお楽しみください。