61
CentOS7 統合バックアップ Bacula7.4 を使ってみよう サワダ ケン (@ksawada1979) Version 1.1 2016/11/05

CentOS7で統合バックアップBacula7.4を使ってみよう

Embed Size (px)

Citation preview

Page 1: CentOS7で統合バックアップBacula7.4を使ってみよう

CentOS7で統合バックアップBacula7.4を使ってみよう

サワダ ケン (@ksawada1979)

Version 1.12016/11/05

Page 2: CentOS7で統合バックアップBacula7.4を使ってみよう

改訂履歴

Version 日付 改訂内容

1.0 2015/04/03 初版

1.1 2016/11/05 Bacula7.4対応

Page 3: CentOS7で統合バックアップBacula7.4を使ってみよう

はじめに

本ドキュメントはCentOS7.2上でBaculaバージョン7.4.4を構築する手順について記載します。

Baculaについての情報は以下のサイトでも公開しています。

https://www.bacula.jp/

Page 4: CentOS7で統合バックアップBacula7.4を使ってみよう

目次

構築概要

リポジトリ追加

Bacula7.4インストール

MariaDB準備

Bacula設定

Bacula起動

バックアップ

リストア

・・・・・・・・ 5

・・・・・・・・ 9

・・・・・・・・ 11

・・・・・・・・ 15

・・・・・・・・ 23

・・・・・・・・ 43

・・・・・・・・ 49

・・・・・・・・ 54

Page 5: CentOS7で統合バックアップBacula7.4を使ってみよう

構築概要

Page 6: CentOS7で統合バックアップBacula7.4を使ってみよう

Bacula構築概要

構成図

Baculaサーバ バックアップ対象サーバ

バックアップ取得

IP 192.168.0.70

ホスト名 Bacula7

IP 192.168.0.80

ホスト名 Backup-side

本手順書は上記の構成を想定した手順書になります。

Page 7: CentOS7で統合バックアップBacula7.4を使ってみよう

Bacula構築概要

Virtualbox上に以下の2台のサーバを構築します。

対象 バージョン 備考

OS CentOS 7.2.1503 最小限のインストール

DB mariaDB 5.5.50

Bacula 7.4.4

対象 バージョン 備考

OS CentOS 7.2.1503 最小限のインストール

Bacula 7.4.4 クライアントのみ

バックアップ対象サーバ

Baculaサーバ

Page 8: CentOS7で統合バックアップBacula7.4を使ってみよう

構築概要

構築を開始する前にfirewalldを一時的に停止します。

Baculaのインストールおよび設定完了後に再び有効にしてください。

# systemctl stop firewalld

以下のコマンドでfirewalldが停止したことを確認します。

# systemctl status firewalldfirewalld.service - firewalld - dynamic firewall daemon

Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled)Active: inactive (dead) since 金 2015-04-03 11:33:44 JST; 1s ago

<省略>

#

Active: inactive (dead) となっていることを確認します。

本ドキュメントではfirewalldの設定については記載しません。

Page 9: CentOS7で統合バックアップBacula7.4を使ってみよう

リポジトリ追加

Page 10: CentOS7で統合バックアップBacula7.4を使ってみよう

リポジトリ追加

# yum -y install wget

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

Baculaサーバ、バックアップ対象サーバにBacula7.0用のリポジトリをwgetコマンドで追加します。

まず以下のコマンンドでwgetを追加します。

次にBacula7.4用リポジトリを追加します。

# lsCentOS-Base.repo CentOS-Debuginfo.repo CentOS-Vault.repo CentOS-CR.repoCentOS-Sources.repo CentOS-fasttrack.reposlaanesh-Bacula-epel-7.repo

リポジトリが追加されたことを確認します。

slaanesh-Bacula-epel-7.repoが追加されたことを確認します。

10

Page 11: CentOS7で統合バックアップBacula7.4を使ってみよう

Bacula7.4

インストール

Page 12: CentOS7で統合バックアップBacula7.4を使ってみよう

Bacula7.4インストール

Baculaサーバ、バックアップ対象サーバにそれぞれyumでパッケージをインストールします。

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

Baculaサーバ

# yum –y install bacula-client

バックアップ対象サーバ

Page 13: CentOS7で統合バックアップBacula7.4を使ってみよう

Bacula7.4インストール

以下のパッケージがインストールされていることを確認します。

# rpm -qa | grep baculabacula-libs-7.4.4-1.el7.centos.x86_64bacula-storage-7.4.4-1.el7.centos.x86_64bacula-director-7.4.4-1.el7.centos.x86_64bacula-console-7.4.4-1.el7.centos.x86_64bacula-common-7.4.4-1.el7.centos.x86_64bacula-libs-sql-7.4.4-1.el7.centos.x86_64bacula-client-7.4.4-1.el7.centos.x86_64

# rpm -qa | grep mariadbmariadb-libs-5.5.50-1.el7_2.x86_64mariadb-5.5.50-1.el7_2.x86_64mariadb-server-5.5.50-1.el7_2.x86_64

Baculaサーバ

Page 14: CentOS7で統合バックアップBacula7.4を使ってみよう

Bacula7.4インストール

以下のパッケージがインストールされていることを確認します。

# rpm -qa | grep baculabacula-libs-7.4.4-1.el7.x86_64bacula-client-7.4.4-1.el7.x86_64bacula-common-7.4.4-1.el7.x86_64

バックアップ対象サーバ

Page 15: CentOS7で統合バックアップBacula7.4を使ってみよう

MariaDB準備

Page 16: CentOS7で統合バックアップBacula7.4を使ってみよう

MariaDB準備

MariaDBを使用するための準備をします。

一般的なMariaDBの使用手順と同様にMariaDBの初回起動と初期化を実行した後に、Bacula用のデータベースとテーブルを作成します。

※MariaDB準備はBaculaサーバのみ実施します。

Page 17: CentOS7で統合バックアップBacula7.4を使ってみよう

MariaDB準備

MariaDB初回起動

# systemctl start mariadb#

以下のコマンドでMariaDBが起動したことを確認します。

# systemctl status mariadbmariadb.service - MariaDB database server

Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled)Active: active (running) since 木 2015-04-02 10:41:23 JST; 1min 15s ago

<省略>

#

Active(running)となっていることを確認します。

Page 18: CentOS7で統合バックアップBacula7.4を使ってみよう

MariaDB準備

MariaDB初期化

# mysql_secure_installation(省略)

Set root password? [Y/n] Y ←「Y」を入力New password: dbpass ←rootのパスワードを入力Re-enter new password: dbpass ←rootのパスワードを再入力Password updated successfully!Reloading privilege tables..... Success!

(省略)Thanks for using MariaDB!#

省略されている部分で[Y/n]を尋ねられることはすべてEnterキー押下で問題ありません。

Page 19: CentOS7で統合バックアップBacula7.4を使ってみよう

MariaDB準備

Bacula用データベース作成

# mysql -u root –pEnter password: dbpass ←rootのパスワードを入力

MariaDB > create database bacula;Query OK, 1 row affected (0.00 sec)

MariaDB > grant all privileges on bacula.* to bacula@localhost identified by ‘dbpass’;bacula7はDBに対するパスワードを設定↑

Query OK, 0 rows affected (0.01 sec)

MariaDB > quitBye

Page 20: CentOS7で統合バックアップBacula7.4を使ってみよう

MariaDB準備

Bacula用テーブル作成

# /usr/libexec/bacula/make_bacula_tables mysql -u bacula -pMaking mysql tablesEnter password: dbpass ←DBに対するパスワードを入力Creation of Bacula MySQL tables succeeded.

Page 21: CentOS7で統合バックアップBacula7.4を使ってみよう

MariaDB準備

1を入力しEnterキーを押下します。

# alternatives --config libbaccats.so

3 プログラムがあり 'libbaccats.so' を提供します。

選択 コマンド-----------------------------------------------

1 /usr/lib64/libbaccats-mysql.so2 /usr/lib64/libbaccats-sqlite3.so

*+ 3 /usr/lib64/libbaccats-postgresql.so

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:1

Bacula用のデータベース切り替えをします。以下のコマンドで現状の設定を確認します。

Page 22: CentOS7で統合バックアップBacula7.4を使ってみよう

MariaDB準備

「+」がlibbaccats-mysql.soになっていることを確認します。

# alternatives --config libbaccats.so

3 プログラムがあり 'libbaccats.so' を提供します。

選択 コマンド-----------------------------------------------+ 1 /usr/lib64/libbaccats-mysql.so

2 /usr/lib64/libbaccats-sqlite3.so* 3 /usr/lib64/libbaccats-postgresql.so

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:

Bacula用のデータベース切り替え確認をします。再度以下のコマンドで実行し設定を確認します。

Page 23: CentOS7で統合バックアップBacula7.4を使ってみよう

Bacula設定

Page 24: CentOS7で統合バックアップBacula7.4を使ってみよう

Bacula設定

Baculaの設定を行います。

各サーバの最低限必要な設定ファイルは以下になります。

Baculaサーバ/etc/bacula/bacula-dir.conf/etc/bacula/bacula-fd.conf

/etc/bacula/bacula-sd.conf

/etc/bacula/bconsole.conf

バックアップ対象サーバ/etc/bacula/bacula-fd.conf

Page 25: CentOS7で統合バックアップBacula7.4を使ってみよう

Bacula設定

Baculaの設定はリソースごとに設定を行います。リソースとは { で始まり } で終わる一連の固まりを指します。

(例)Director {

Name = bacula-dir

Password = “bacula7"

}

上記の例はDirectorリソースの設定例になります。

Page 26: CentOS7で統合バックアップBacula7.4を使ってみよう

Bacula設定

bacula-dir.confのリソース設定のポイント

Director

Directorの基本設定です。

Job設定の指示書です。バックアップ指示をまとめたものをJOBとして登録し実行します。

FileSet

バックアップ対象とするディレクトリを指定します。

またバックアップ非対象するディレクトリも指定できます。

Page 27: CentOS7で統合バックアップBacula7.4を使ってみよう

Bacula設定

bacula-dir.confのリソース設定のポイント

Schedule

自動バックアップする際のスケジュール設定します。

Clientバックアップ対象とするクライアント情報を設定します。

Storage

Storageデーモンと通信するための情報を設定します。

Page 28: CentOS7で統合バックアップBacula7.4を使ってみよう

Bacula設定

bacula-dir.confのリソース設定のポイント

Catalog

データベース(カタログ)への接続情報を設定します。

Poolバックアップ保存先の情報を設定します。

Console

コンソールとの接続情報を設定します。

Page 29: CentOS7で統合バックアップBacula7.4を使ってみよう

Bacula設定

/etc/bacula/bacula-dir.conf

Director { # define myselfName = bacula-dirDIRport = 9101 # where we listen for UA connectionsQueryFile = "/usr/libexec/bacula/query.sql"WorkingDirectory = "/var/spool/bacula"PidDirectory = "/var/run"Maximum Concurrent Jobs = 1Password = “bacula7" # Console passwordMessages = Daemon

}

Page 30: CentOS7で統合バックアップBacula7.4を使ってみよう

Bacula設定

/etc/bacula/bacula-dir.conf

Job {Name = "JOB-Bacula7"Type = BackupLevel = FullClient = bacula-fdFileSet = "Full Set"Schedule = "WeeklyCycle"Storage = File1Messages = StandardPool = FilePriority = 10Write Bootstrap = "/var/spool/bacula/%c.bsr"

}

主な項目の概要Levelでフルバックアップを指定Clientでバックアップ対象を指定FileSetでバックアップディレクトリ指定

上記のように記載することでJOB-Bacula7という名前のJobを登録できます。

バックアップ対象はbacula-fd(192.168.0.80)になります。

Page 31: CentOS7で統合バックアップBacula7.4を使ってみよう

Bacula設定

/etc/bacula/bacula-dir.conf

FileSet {Name = "Full Set"Include {

Options {signature = MD5

}File = /

}

Exclude {File = /var/spool/baculaFile = /procFile = /sysFile = /tmp

}

Includeはバックアップ対象にしたいディレクトリを指定します。

Excludeはバックアップ非対象にしたいディレクトリを指定します。

Page 32: CentOS7で統合バックアップBacula7.4を使ってみよう

Bacula設定

/etc/bacula/bacula-dir.conf

# Client (File Services) to backupClient {Name = bacula-fdAddress = 192.168.0.80FDPort = 9102Catalog = MyCatalogPassword = “bacula7" # password for FileDaemonFile Retention = 30 days # 30 daysJob Retention = 6 months # six monthsAutoPrune = yes # Prune expired Jobs/Files

}

バックアップ対象機を指定します。

Page 33: CentOS7で統合バックアップBacula7.4を使ってみよう

Bacula設定

/etc/bacula/bacula-dir.conf

Storage {Name = File

# Do not use "localhost" hereAddress = 192.168.0.70 # N.B. Use a fully qualified name hereSDPort = 9103Password = “bacula7"Device = FileStorageMedia Type = FileMaximum Concurrent Jobs = 10 # run up to 10 jobs a the same time

}

ここではバックアップの保存先のサーバを指定します。今回の構築ではDirectorデーモンとStorageデーモンは同じサーバにインストールしていますので「192.168.0.70」を指定します。

Page 34: CentOS7で統合バックアップBacula7.4を使ってみよう

Bacula設定

/etc/bacula/bacula-dir.conf

Catalog {Name = MyCatalogdbname = "bacula"; dbuser = "bacula"; dbpassword = “dbpass"

}

ここで設定するパスワードはDB(カタログ)の接続に使うので重要です。デフォルトは空白になってます。

Page 35: CentOS7で統合バックアップBacula7.4を使ってみよう

Bacula設定

/etc/bacula/bacula-dir.conf

Console {Name = bacula-monPassword = “bacula7"CommandACL = status, .status

}

Page 36: CentOS7で統合バックアップBacula7.4を使ってみよう

Bacula設定

bacula-fd.confのリソース設定のポイント

Director

Directorとの接続情報を設定します。

FileDaemonFileデーモンの基本情報を設定します。

Messages

アラートなどのMessages送信情報を設定します。

Page 37: CentOS7で統合バックアップBacula7.4を使ってみよう

Bacula設定

/etc/bacula/bacula-fd.conf

Director {Name = bacula-dirPassword = " bacula7"

}Director {

Name = bacula-monPassword = " bacula7"Monitor = yes

}FileDaemon { # this is me

Name = bacula-fdFDport = 9102 # where we listen for the directorWorkingDirectory = /var/spool/baculaPid Directory = /var/runMaximum Concurrent Jobs = 20

}Messages {

Name = Standarddirector = bacula-dir = all, !skipped, !restored

}

Baculaサーバ側、バックアップ対象側の両方のファイルに設定を実施してください。

Page 38: CentOS7で統合バックアップBacula7.4を使ってみよう

Bacula設定

bacula-sd.confのリソース設定のポイント

Storage

Storageデーモンの基本情報を設定します。

DirectorDirectorとのデーモンの基本情報を設定します。

Device

バックアップデータを保存するデバイス情報を設定します。

Page 39: CentOS7で統合バックアップBacula7.4を使ってみよう

Bacula設定

bacula-sd.confのリソース設定のポイント

Messages

アラートなどのMessages送信情報を設定します。

Page 40: CentOS7で統合バックアップBacula7.4を使ってみよう

Bacula設定

/etc/bacula/bacula-sd.conf

Director {Name = bacula-dirPassword = “bacula7"

}

Director {Name = bacula-monPassword = " bacula7"Monitor = yes

}

Page 41: CentOS7で統合バックアップBacula7.4を使ってみよう

Bacula設定

bconsole.confのリソース設定のポイント

address

DirectorのIPアドレスを指定

PasswordDirectorに接続するためのパスワード指定

Page 42: CentOS7で統合バックアップBacula7.4を使ってみよう

Bacula設定

/etc/bacula/bconsole.conf

Director {Name = bacula-dirDIRport = 9101address = localhostPassword = “bacula7"

}

Page 43: CentOS7で統合バックアップBacula7.4を使ってみよう

Bacula起動

Page 44: CentOS7で統合バックアップBacula7.4を使ってみよう

Bacula起動

# systemctl start bacula-dir# systemctl start bacula-fd# systemctl start bacula-sd

Baculaの設定が完了したら、Baculaを実行します。

Baculaサーバで以下のコマンドで各デーモンを起動します。

# systemctl enable bacula-dir# systemctl enable bacula-fd# systemctl enable bacula-sd# systemctl enable mariadb

また、以下のコマンドで自動起動をonにします。

Page 45: CentOS7で統合バックアップBacula7.4を使ってみよう

Bacula起動

# systemctl start bacula-fd

バックアップ対象サーバで以下のコマンドで各デーモンを起動します。

# systemctl enable bacula-fd

また、以下のコマンドで自動起動をonにします。

Page 46: CentOS7で統合バックアップBacula7.4を使ってみよう

Bacula起動

# systemctl status bacula-dirbacula-dir.service - Bacula-Director, the Backup-server

Loaded: loaded (/usr/lib/systemd/system/bacula-dir.service; enabled)Active: active (running) since 木 2015-04-02 13:32:16 JST; 14s ago

<省略>

#

Baculaの起動確認をします。

「bacula-dir.service; enabled」「 active (running) 」となっていることを確認します。またbacula-sd、 bacula-fd、mariadbも同様に起動確認および自動起動がonになっていることを確認します。

Page 47: CentOS7で統合バックアップBacula7.4を使ってみよう

Bacula起動

# ss –antState Recv-Q Send-Q Local Address:Port Peer Address:PortLISTEN 0 50 *:3306 *:*LISTEN 0 50 *:9101 *:*LISTEN 0 50 *:9102 *:*LISTEN 0 50 *:9103 *:*LISTEN 0 128 *:22 *:*

<省略>

Baculaサーバで使用するポートを確認します。

Baculaの各デーモンが使用する9101~9103ポートが空いていることを確認します。

また、mariaDBが使用する3306ポートが空いていることも確認します。

Page 48: CentOS7で統合バックアップBacula7.4を使ってみよう

Bacula起動

# ss –antState Recv-Q Send-Q Local Address:Port Peer Address:PortLISTEN 0 50 *:9102 *:*LISTEN 0 128 *:22 *:*LISTEN 0 100 127.0.0.1:25 *:*

<省略>

バックアップ対象サーバで使用するポートを確認します。

Bacula-fdデーモンが使用する9102ポートが空いていることを確認します

Page 49: CentOS7で統合バックアップBacula7.4を使ってみよう

バックアップ

Page 50: CentOS7で統合バックアップBacula7.4を使ってみよう

バックアップ

bconsole(CUIツール)でバックアップを取得します。

runコマンドを実行し、対話式でバックアップを取得します。

Page 51: CentOS7で統合バックアップBacula7.4を使ってみよう

バックアップ

# bconsoleConnecting to Director localhost:91011000 OK: 1 bacula-dir Version: 7.0.5 (28 July 2014)Enter a period to cancel a command.*

まずbconsole起動を起動します。

コマンドプロンプトが「*」に変わったことを確認します。

Page 52: CentOS7で統合バックアップBacula7.4を使ってみよう

バックアップ

* run ←「run」と入力しEnterキー押下A job name must be specified.The defined Job resources are:

1: JOB-Bacula72: BackupClient13: BackupCatalog4: RestoreFiles

Select Job resource (1-4): 1 ←実行するJobを選択Run Backup jobJobName: JOB-Bacula7Level: FullClient: bacula-fdFileSet: Full SetPool: File (From Job resource)Storage: File1 (From Job resource)When: 2015-04-02 14:47:15Priority: 10OK to run? (yes/mod/no): yes ←yesを入力

バックアップ実行

runコマンドでバックアップ実行します。

Page 53: CentOS7で統合バックアップBacula7.4を使ってみよう

バックアップ

* status ←「status」と入力しEnterキー押下Status available for:

1: Director2: Storage3: Client4: Scheduled5: All

Select daemon type for status (1-5): 1 ←1を選択

(省略)

Terminated Jobs:JobId Level Files Bytes Status Finished Name

===============================================1 Full 29,971 896.0 M OK 02- 4・015 14:49 JOB-Bacula7

バックアップ確認

statusコマンドで状態を確認します。

実行したJobが「Terminated Jobs」になっていることを確認します。

Page 54: CentOS7で統合バックアップBacula7.4を使ってみよう

リストア

Page 55: CentOS7で統合バックアップBacula7.4を使ってみよう

リストア

bconsole(CUIツール)でリストアを実施します。

bconsoleを起動しrestoreコマンドを実行し、対話式でリストアを実施します。

例として/etc/bacula/bacula-fd.confファイルをリストアします。

Page 56: CentOS7で統合バックアップBacula7.4を使ってみよう

リストア

# bconsoleConnecting to Director localhost:91011000 OK: 1 bacula-dir Version: 7.0.5 (28 July 2014)Enter a period to cancel a command.*

まずbconsoleを起動します。

コマンドプロンプトが「*」に変わったことを確認します。

Page 57: CentOS7で統合バックアップBacula7.4を使ってみよう

リストア

* restore(省略)To select the JobIds, you have the following choices:

1: List last 20 Jobs run2: List Jobs where a given File is saved3: Enter list of comma separated JobIds to select4: Enter SQL list command5: Select the most recent backup for a client6: Select backup for a client before a specified time7: Enter a list of files to restore8: Enter a list of files to restore before a specified time9: Find the JobIds of the most recent backup for a client

10: Find the JobIds for a backup for a client before a specified time11: Enter a list of directories to restore for found JobIds12: Select full restore to a specified Job date13: Cancel

Select item: (1-13): 5 ←5を選択します。

リストアを実行します。

Page 58: CentOS7で統合バックアップBacula7.4を使ってみよう

リストア

+-------+-------+----------+-------------+---------------------+------------+| JobId | Level | JobFiles | JobBytes | StartTime | VolumeName |+-------+-------+----------+-------------+---------------------+------------+| 1 | F | 29,971 | 896,094,352 | 2015-04-02 14:47:19 | Vol-0001 |+-------+-------+----------+-------------+---------------------+------------+You have selected the following JobId: 1

Building directory tree for JobId(s) 1 ... ++++++++++++++++++++++++++++++++++++++++++++26,641 files inserted into the tree.

You are now entering file selection mode where you add (mark) andremove (unmark) files to be restored. No files are initially added, unlessyou used the "all" keyword on the command line.Enter "done" to leave this mode.

cwd is: /$

「5」を選択すると自動的に以下のような画面になります。

コマンドプロンプトが「$」になるとリストアの準備が完了になります。

Page 59: CentOS7で統合バックアップBacula7.4を使ってみよう

リストア

$ cd /etc/bacula$ lsbacula-fd.conf$ mark bacula-fd.conf1 file marked.

リストアするファイルをmarkコマンドで指定します。対象のファイルがあるディレクトリに移動してmarkコマンドを実行します。

markコマンドは*などを使用して一括指定することも可能です。

/etc/bacula/bacula-fd.confをリストアします

Page 60: CentOS7で統合バックアップBacula7.4を使ってみよう

リストア

$ done ←「done」と入力しEnterキー押下Run Restore jobJobName: RestoreFilesBootstrap: /var/spool/bacula/bacula-dir.restore.1.bsrWhere: /tmp/bacula-restores ←この場所にリストアされます。Replace: alwaysFileSet: Full SetBackup Client: bacula-fdRestore Client: bacula-fdStorage: File1When: 2015-04-02 14:55:46Catalog: MyCatalogPriority: 10OK to run? (yes/mod/no): yes ←yesを入力します。

リストア実行

doneコマンドを実行します。

Page 61: CentOS7で統合バックアップBacula7.4を使ってみよう

リストア

# cd /tmp/bacula-restores# ls# etc# cd cd etc/bacula/# ls# bacula-fd.conf#

リストア確認をします。

バックアップ対象機でファイルを確認します。

/tmp/bacula-restores に出力したので、該当のディレクトリを参照します。

「bacula-fd.conf」がリストアされたことを確認します。