Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Ubuntu14.04で統合バックアップBaculaを使ってみよう

2,218 views

Published on

Ubuntu14.04で統合バックアップBaculaのインストール、設定、バックアップ、リストアの手順になります、

Published in: Software
  • Be the first to comment

  • Be the first to like this

Ubuntu14.04で統合バックアップBaculaを使ってみよう

  1. 1. Ubuntu14.04で 統合バックアップBaculaを使ってみよう サワダ ケン (@ksawada1979) Version 1.0 2015/06/01
  2. 2. 改訂履歴 2 Version 日付 改訂内容 1.0 2015/06/01 初版
  3. 3. はじめに 本ドキュメントはUbuntu14.04上でBaculaバージョン5.2.6を構築する手順について 記載します。 Ubuntuは最新のLTS版である14.04を使用します。 またBaculaの最新バージョンは7ですが、Ubuntuに採用されているバージョン5を使用し ます。 本ドキュメントで解説をしているBaculaの設定ファイルは以下で公開しております。 https://github.com/ksawada1979/Bacula-Ubuntu/ 3
  4. 4. 目次 構築概要 MySQLインストール Baculaインストール Bacula設定 Bacula再起動 バックアップ リストア Bacula参考資料 4 ・・・・・・・・ 5 ・・・・・・・・ 8 ・・・・・・・・ 13 ・・・・・・・・ 26 ・・・・・・・・ 49 ・・・・・・・・ 55 ・・・・・・・・ 61 ・・・・・・・・ 69
  5. 5. 構築概要 5
  6. 6. Bacula構築概要 6 構成図 Baculaサーバ バックアップ対象サーバ バックアップ取得 IP 192.168.0.150 ホスト名 Bacula IP 192.168.0.151 ホスト名 Backup-side 本手順書は上記の構成を想定した手順書になります。
  7. 7. Bacula構築概要 7 Virtualbox上に以下の2台のサーバを構築します。 対象 バージョン 備考 OS Ubuntu14.04 LTS 日本語 Remix DB MySQL 5.5.43 Bacula 5.2.6 対象 バージョン 備考 OS Ubuntu14.04 LTS 日本語 Remix Bacula 5.2.6 クライアントのみ バックアップ対象サーバ Baculaサーバ
  8. 8. MySQLインストール 8
  9. 9. MySQLインストール $ sudo apt-get update BaculaではデータベースにMySQLを採用しています。 Baculaをインストールする前にMySQLをインストールします。 まずパッケージのインデックスを更新します。 9
  10. 10. MySQLインストール $ sudo apt-get install mysql-server 次にMySQLをインストールします。 10
  11. 11. MySQLインストール インストールの途中でMySQLのrootパスワードの入力を求められますので、パスワード を設定します。 11
  12. 12. MySQLインストール パスワードを入力後に再度以下の画面が表示されます。 再びMySQLのrootパスワードを入力します。 12最後にエラーなくコマンドプロンプトが返ってくることを確認します。
  13. 13. Bacula インストール 13
  14. 14. Baculaインストール 14 Baculaをインストールします。まずBaculaサーバ側にインストールします。 $ sudo apt-get install bacula-server bacula-client Baculaサーバ
  15. 15. Baculaインストール インストールの途中でメールサーバの設定形式を求められます。 「了解」が選ばれている状態でEnterキーを入力します。 15
  16. 16. Baculaインストール 次にメール設定の一般形式について確認が求められます。 「インターネットサイト」が選ばれている状態了解を選択しEnterキーを入力します。 16
  17. 17. Baculaインストール 次にシステムメール名について問われます。 表示されている名前から特に変更せずに了解を選びEnterキーを入力します。 17
  18. 18. Baculaインストール 次にdbconfig-commonの使用について問われます。 「はい」を選びEnterキーを入力します。 18
  19. 19. Baculaインストール 次にbacula-director-mysqlの管理権限パスワードに設定をします。 任意のパスワードを入力し「了解」を選びEnterキーを入力します。 19
  20. 20. Baculaインストール 次にbacula-director-mysql用のMySQLアプリケーションパスワードを設定をしま す。任意のパスワードを入力し「了解」を選びEnterキーを入力します。 20
  21. 21. Baculaインストール 次にbacula-director-mysql用のMySQLアプリケーションパスワードの確認が表示 されますので、再度同じパスワードを入力し「了解」を選びEnterキーを入力します。 21最後にエラーなくコマンドプロンプトが返ってくることを確認します。
  22. 22. Baculaインストール 22 以下のパッケージがインストールされていることを確認します。 Baculaサーバ $ dpkg –l | grep bacula ii bacula-client 5.2.6+dfsg-9.1ubuntu3 ii bacula-common 5.2.6+dfsg-9.1ubuntu3 ii bacula-common-mysql 5.2.6+dfsg-9.1ubuntu3 ii bacula-console 5.2.6+dfsg-9.1ubuntu3 ii bacula-director-common 5.2.6+dfsg-9.1ubuntu3 ii bacula-director-mysql 5.2.6+dfsg-9.1ubuntu3 ii bacula-fd 5.2.6+dfsg-9.1ubuntu3 ii bacula-sd 5.2.6+dfsg-9.1ubuntu3 ii bacula-sd-mysql 5.2.6+dfsg-9.1ubuntu3 ii bacula-server 5.2.6+dfsg-9.1ubuntu3 ii bacula-traymonitor 5.2.6+dfsg-9.1ubuntu3 ※一部パッケージ名以外の表示結果を省略しています。
  23. 23. Baculaインストール 23 以下のパッケージがインストールされていることを確認します。 Baculaサーバ $ dpkg –l | grep mysql ii bacula-common-mysql 5.2.6+dfsg-9.1ubuntu3 ii bacula-director-mysql 5.2.6+dfsg-9.1ubuntu3 ii bacula-sd-mysql 5.2.6+dfsg-9.1ubuntu3 ii libdbd-mysql-perl 4.025-1 ii libmysqlclient18:amd64 5.5.43-0ubuntu0.14.04.1 ii mysql-client-5.5 5.5.43-0ubuntu0.14.04.1 ii mysql-client-core-5.5 5.5.43-0ubuntu0.14.04.1 ii mysql-common 5.5.43-0ubuntu0.14.04.1 ii mysql-server 5.5.43-0ubuntu0.14.04.1 ii mysql-server-5.5 5.5.43-0ubuntu0.14.04.1 ii mysql-server-core-5.5 5.5.43-0ubuntu0.14.04.1 ※一部パッケージ名以外の表示結果を省略しています。
  24. 24. Baculaインストール 24 次にバックアップ対象サーバにBaculaをインストールします。 $ sudo apt-get install bacula-client バックアップ対象サーバ
  25. 25. Baculaインストール 25 以下のパッケージがインストールされていることを確認します。 $ dpkg –l | grep bacula ii bacula-client 5.2.6+dfsg-9.1ubuntu3 ii bacula-common 5.2.6+dfsg-9.1ubuntu3 ii bacula-console 5.2.6+dfsg-9.1ubuntu3 ii bacula-fd 5.2.6+dfsg-9.1ubuntu3 ii bacula-traymonitor 5.2.6+dfsg-9.1ubuntu3 バックアップ対象サーバ
  26. 26. Bacula設定 26
  27. 27. Bacula設定 27 Baculaの設定を行う前にバックアップデータを保存する領域を作成します。 Baculaサーバで以下のコマンドで領域を作成します。 合わせてディレクトリに対して所有者と権限を変更します。 $ sudo mkdir /BackupDATA $ sudo chown bacula:bacula /BackupDATA $ sudo chmod 700 /BackupDATA
  28. 28. Bacula設定 28 まずBaculaサーバで変更を行います。 Baculaサーバで最低限必要な設定ファイルは以下になります。 Baculaサーバ /etc/bacula/bacula-dir.conf /etc/bacula/bacula-fd.conf /etc/bacula/bacula-sd.conf /etc/bacula/bconsole.conf
  29. 29. Bacula設定 29 Baculaの設定はリソースごとに設定を行います。リソースとは { で始まり } で終わる一連 の固まりを指します。 (例) Director { Name = bacula-dir Password = “bacula" } 上記の例はDirectorリソースの設定例になります。
  30. 30. Bacula設定 30 bacula-dir.confのリソース設定のポイント Director Directorの基本設定です。 Job 設定の指示書です。 バックアップ指示をまとめたものをJOBとして登録し実行します。 FileSet バックアップ対象とするディレクトリを指定します。 またバックアップ非対象するディレクトリも指定できます。
  31. 31. Bacula設定 31 bacula-dir.confのリソース設定のポイント Schedule 自動バックアップする際のスケジュール設定します。 Client バックアップ対象とするクライアント情報を設定します。 Storage Storageデーモンと通信するための情報を設定します。
  32. 32. Bacula設定 32 bacula-dir.confのリソース設定のポイント Catalog データベース(カタログ)への接続情報を設定します。 Pool バックアップ保存先の情報を設定します。 Console コンソールとの接続情報を設定します。 ※次のページ以降で最低限変更が必要なリソースのみを記載します。
  33. 33. Bacula設定 33 /etc/bacula/bacula-dir.conf Director { # define myself Name = Bacula-dir DIRport = 9101 # where we listen for UA connections QueryFile = "/etc/bacula/scripts/query.sql“ WorkingDirectory = "/var/lib/bacula" PidDirectory = "/var/run/bacula" Maximum Concurrent Jobs = 1 Password = “bacula" # Console password Messages = Daemon DirAddress = 192.168.0.150 } PasswordとDirAddressを変更します。 パスワードはデフォルトから必ず任意のパスワードに変更してください。
  34. 34. Bacula設定 34 /etc/bacula/bacula-dir.conf Job { Name = "JOB-Ubuntu" Type = Backup Level = Full Client = bacula-fd FileSet = "Full Set" Schedule = "WeeklyCycle" Storage = File Messages = Standard Pool = File Priority = 10 Write Bootstrap = "/var/spool/bacula/%c.bsr" } 主な項目の概要 Levelでフルバックアップを指定 Clientでバックアップ対象を指定 FileSetでバックアップディレクトリ指定 ここでは上記のようにリソースごと追加します。 JOB-Ubuntuという名前のJobを登録できます。 バックアップ対象はbacula-fd(192.168.0.151)になります。
  35. 35. Bacula設定 35 /etc/bacula/bacula-dir.conf Job { Name = "RestoreFiles" Type = Restore Client=bacula-fd FileSet="Full Set" Storage = File Pool = Default Messages = Standard Where = /tmp } リストアの設定をします。 ファイルをリストアする際の出力先を指定します。
  36. 36. Bacula設定 36 /etc/bacula/bacula-dir.conf FileSet { Name = "Full Set" Include { Options { signature = MD5 } File = / } Exclude { File = /var/lib/bacula File = /BackupDATA File = /proc File = /tmp File = /.journal File = /.fsck } Includeはバックアップ対象にしたいディレクトリ を指定します。 Excludeはバックアップ非対象にしたいディレク トリを指定します。
  37. 37. Bacula設定 37 /etc/bacula/bacula-dir.conf # Client (File Services) to backup Client { Name = Bacula-fd Address = 192.168.0.151 FDPort = 9102 Catalog = MyCatalog Password = “bacula“ # password for FileDaemon File Retention = 30 days # 30 days Job Retention = 6 months # six months AutoPrune = yes # Prune expired Jobs/Files } バックアップ対象機を指定します。 ここでは上記のようにリソースごと追加します。
  38. 38. Bacula設定 38 /etc/bacula/bacula-dir.conf Storage { Name = File # Do not use "localhost" here Address = 192.168.0.150 # N.B. Use a fully qualified name here SDPort = 9103 Password = “bacula" Device = FileStorage Media Type = File } ここではバックアップの保存先のサーバを指定します。 今回の構築ではDirectorデーモンとStorageデーモンは同じサーバにイ ンストールしていますので「192.168.0.150」を指定します。
  39. 39. Bacula設定 39 /etc/bacula/bacula-dir.conf Console { Name = Bacula-mon Password = “bacula" CommandACL = status, .status } パスワードはデフォルトから必ず任意のパスワードに変更してください。
  40. 40. Bacula設定 40 bacula-sd.confのリソース設定のポイント Storage Storageデーモンの基本情報を設定します。 Director Directorとのデーモンの基本情報を設定します。 Device バックアップデータを保存するデバイス情報を設定します。
  41. 41. Bacula設定 41 bacula-sd.confのリソース設定のポイント Messages アラートなどのMessages送信情報を設定します。
  42. 42. Bacula設定 42 /etc/bacula/bacula-sd.conf Storage { # definition of myself Name = Bacula-sd SDPort = 9103 # Director's port WorkingDirectory = "/var/lib/bacula" Pid Directory = "/var/run/bacula" Maximum Concurrent Jobs = 20 SDAddress = 192.168.0.150 } Director { Name = Bacula-dir Password = “bacula" } Director { Name = Bacula-mon Password = " bacula" Monitor = yes } ここではStorageデーモンのインストールされて いるサーバのIPアドレスを指定します。
  43. 43. Bacula設定 43 /etc/bacula/bacula-sd.conf Device { Name = FileStorage Media Type = File Archive Device = /BackupDATA LabelMedia = yes; # lets Bacula label unlabeled media Random Access = Yes; AutomaticMount = yes; # when device opened, read it RemovableMedia = no; AlwaysOpen = no; } Archive Deviceにバックアップデータの保存先を指定します。 Bacula設定前に作成したバックアップデータを保存する領域を指定します。
  44. 44. Bacula設定 44 bconsole.confのリソース設定のポイント address DirectorのIPアドレスを指定 Password Directorに接続するためのパスワード指定
  45. 45. Bacula設定 45 /etc/bacula/bconsole.conf Director { Name = Bacula-dir DIRport = 9101 address = 192.168.0.150 Password = “bacula" } Directorがインストールされているサーバを指定します。 パスワードはDirectorで設定したパスワードを入力します。
  46. 46. Bacula設定 46 次にバックアップ対象サーバで変更を行います。 バックアップ対象サーバで最低限必要な設定ファイルは以下になります。 バックアップ対象サーバ /etc/bacula/bacula-fd.conf
  47. 47. Bacula設定 47 bacula-fd.confのリソース設定のポイント Director Directorとの接続情報を設定します。 FileDaemon Fileデーモンの基本情報を設定します。 Messages アラートなどのMessages送信情報を設定します。
  48. 48. Bacula設定 48 /etc/bacula/bacula-fd.conf Director { Name = Bacula-dir Password = " bacula" } Director { Name = Bacula-mon Password = " bacula" Monitor = yes } FileDaemon { # this is me Name = Bacula-fd FDport = 9102 # where we listen for the director WorkingDirectory = /var/lib/bacula Pid Directory = /var/run/bacula Maximum Concurrent Jobs = 20 FDAddress = 192.168.0.151 } Messages { Name = Standard director = Bacula-dir = all, !skipped, !restored } 各NameとパスワードをBaculaサーバ側で設 定した値に合わせます。 バックアップ対象サーバのIPアドレスを指定しま す。
  49. 49. Bacula再起動 49
  50. 50. Bacula再起動 50 $ sudo service bacula-director restart $ sudo service bacula-fd restart $ sudo service bacula-sd restart Baculaの設定が完了したら、設定を有効にするためにBaculaを再起動します。 Baculaサーバで以下のコマンドで各デーモンを再起動します。
  51. 51. Bacula再起動 51 $ sudo service bacula-fd restart バックアップ対象サーバで以下のコマンドで各デーモンを起動します。
  52. 52. Bacula再起動 52 $ netstat –ln | grep tcp 稼働中のインターネット接続 (サーバのみ) Proto 受信-Q 送信-Q 内部アドレス 外部アドレス 状態 tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN tcp 0 0 192.168.0.150:9101 0.0.0.0:* LISTEN tcp 0 0 192.168.0.150:9102 0.0.0.0:* LISTEN tcp 0 0 192.168.0.150:9103 0.0.0.0:* LISTEN <省略> Baculaサーバで使用するポートを確認します。 Baculaの各デーモンが使用する9101~9103ポートが空いていることを確認します。 また、MySQLが使用する3306ポートが空いていることも確認します。
  53. 53. Bacula再起動 53 $ netstat –ln | grep tcp 稼働中のインターネット接続 (サーバのみ) Proto 受信-Q 送信-Q 内部アドレス 外部アドレス 状態 tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN tcp 0 0 192.168.0.151:9102 0.0.0.0:* LISTEN <省略> バックアップ対象サーバで使用するポートを確認します。 Bacula-fdデーモンが使用する9102ポートが空いていることを確認します
  54. 54. もしもここまででつまづいたら? 54 確認していただきたいのは以下の3点 ・Passwordがデフォルトのままになっていませんか? ・Passwordをミスタイプしていませんか? ・各デーモンの名前の整合性が取れていますか? →本書ではbacula-dir、bacula-sd、bacula-fdと名 前をつけている箇所です。 とりあえずPasswordとデーモンの名前の整合性が取 れていればきちんと動くはずです!
  55. 55. バックアップ 55
  56. 56. バックアップ 56 bconsole(CUIツール)でバックアップを取得します。 bconsoleを起動しlabelを作成します。 labelはバックアップ保存先を認識させるための目印として作成します。 label作成後にrunコマンドを実行し、対話式でバックアップを取得します。
  57. 57. バックアップ 57 $ sudo bconsole Connecting to Director localhost:9101 1000 OK: Bacula Version: 5.2.6 (21 February 2012) Enter a period to cancel a command. * まずbconsole起動を起動します。 コマンドプロンプトが「*」に変わったことを確認します。
  58. 58. バックアップ 58 Labelを作成します。labelコマンドで作成します。 *label Automatically selected Catalog: MyCatalog Using Catalog "MyCatalog" Automatically selected Storage: File Enter new Volume name: bacula ←label名を入力 Defined Pools: 1: Default 2: File 3: Scratch Select the Pool (1-3): 2 ←2を選択する Connecting to Storage daemon File at 192.168.0.150:9103 ... Sending label command for Volume “bacula" Slot 0 ... 3000 OK label. VolBytes=194 DVD=0 Volume=" bacula " Device="FileStorage" (/BackupDATA) Catalog record for Volume " bacula", Slot 0 successfully created. Requesting to mount FileStorage ... 3906 File device "FileStorage" (/ BackupDATA) is always mounted.
  59. 59. バックアップ 59 *run ←runを入力 A job name must be specified. The defined Job resources are: 1: JOB-Ubuntu 2: BackupClient1 3: BackupCatalog 4: RestoreFiles Select Job resource (1-4): 1 ←実行するJobを選択 Run Backup job JobName: JOB-Ubuntu Level: Full Client: bacula-fd FileSet: Full Set Pool: File (From Job resource) Storage: File (From Job resource) When: 2015-05-25 14:47:15 Priority: 10 OK to run? (yes/mod/no): yes ←yesを入力 バックアップ実行します。Runコマンドでバックアップを取得します。
  60. 60. バックアップ 60 *status Status available for: 1: Director 2: Storage 3: Client 4: Scheduled 5: 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 25- 5・015 14:49 JOB-Ubuntu バックアップ確認 実行したJobが「Terminated Jobs」になっていることを確認します。
  61. 61. リストア 61
  62. 62. リストア 62 bconsole(CUIツール)でリストアを実施します。 bconsoleを起動しrestoreコマンドを実行し、対話式でリストアを実施します。 例として/etc/bacula/bacula-fd.confファイルをリストアします。
  63. 63. リストア 63 $ sudo bconsole Connecting to Director localhost:9101 1000 OK: 1 bacula-dir Version: 5.2.6 (21 February 2012) Enter a period to cancel a command. * まずbconsoleを起動します。 コマンドプロンプトが「*」に変わったことを確認します。
  64. 64. リストア 64 * restore (省略) To select the JobIds, you have the following choices: 1: List last 20 Jobs run 2: List Jobs where a given File is saved 3: Enter list of comma separated JobIds to select 4: Enter SQL list command 5: Select the most recent backup for a client 6: Select backup for a client before a specified time 7: Enter a list of files to restore 8: Enter a list of files to restore before a specified time 9: Find the JobIds of the most recent backup for a client 10: Find the JobIds for a backup for a client before a specified time 11: Enter a list of directories to restore for found JobIds 12: Select full restore to a specified Job date 13: Cancel Select item: (1-13): 5 ←5を選択します。 リストアを実行します。
  65. 65. リストア 65 +-------+-------+----------+-------------+---------------------+------------+ | JobId | Level | JobFiles | JobBytes | StartTime | VolumeName | +-------+-------+----------+-------------+---------------------+------------+ | 1 | F | 29,971 | 896,094,352 | 2015-05-25 14:47:19 | bacula | +-------+-------+----------+-------------+---------------------+------------+ 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) and remove (unmark) files to be restored. No files are initially added, unless you used the "all" keyword on the command line. Enter "done" to leave this mode. cwd is: / $ 「5」を選択すると自動的に以下のような画面になります。 コマンドプロンプトが「$」になるとリストアの準備が完了になります。
  66. 66. リストア 66 $ cd /etc/bacula $ ls bacula-fd.conf $ mark bacula-fd.conf 1 file marked. リストアするファイルをmarkコマンドで指定します。 対象のファイルがあるディレクトリに移動してmarkコマンドを実行します。 markコマンドは*などを使用して一括指定することも可能です。 /etc/bacula/bacula-fd.confをリストアします
  67. 67. リストア 67 $ done Run Restore job JobName: RestoreFiles Bootstrap: /var/spool/bacula/bacula-dir.restore.1.bsr Where: /tmp ←この場所にリストアされます。 Replace: always FileSet: Full Set Backup Client: bacula-fd Restore Client: bacula-fd Storage: File When: 2015-05-25 14:55:46 Catalog: MyCatalog Priority: 10 OK to run? (yes/mod/no): yes ←yesを入力します。 リストアを実行します。doneコマンドを実行します。
  68. 68. リストア 68 $ cd /tmp $ ls $ etc $ cd cd etc/bacula/ $ ls $ bacula-fd.conf $ リストア確認をします。 バックアップ対象機でファイルを確認します。 bconsoleコマンドは必要ありません。
  69. 69. Bacula参考資料 69
  70. 70. Bacula参考資料 70 Baculaドキュメントのご紹介 Baculaの基本、インストールおよび設定 http://www.slideshare.net/kensawada14/140801oscbacula/ Bacula GUI管理ツールのインストールおよび設定 http://www.slideshare.net/kensawada14/141114baculabaculagui/ Ansibleを使ってサーバ100台にBaculaクライアントをインストール http://www.slideshare.net/kensawada14/150105-bacula-clientansiblesetting/ Serverspecを使ってサーバ5000台のBaculaクライアントをテスト http://www.slideshare.net/kensawada14/serverspec5000bacula/ ※全てCentOS6、Bacula5.0をベースとした資料になります。
  71. 71. Bacula参考資料 71 Baculaドキュメントのご紹介 CentOS7で統合バックアップBacula7.0を使ってみよう http://www.slideshare.net/kensawada14/150403-cent-os7bacula7/ 統合バックアップBaculaでBacula-webを使ってみよう http://www.slideshare.net/kensawada14/150511-bacula-web/ ※全てCentOS7、Bacula7.0.5をベースとした資料になります。

×