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.

OSC2014 Kansai@Kyoto 統合バックアップbaculaを使ってみよう

5,750 views

Published on

OSC2014 Kansai@Kyotoのセミナー「統合バックアップbaculaを使ってみよう」で使用した資料です。
baculaコミュニティ版のインストール、設定、バックアップ、リストアの手順になります。

Published in: Software

OSC2014 Kansai@Kyoto 統合バックアップbaculaを使ってみよう

  1. 1. OSC 2014 Kansai@Kyoto 統合バックアップ Baculaを使ってみよう 株式会社サードウェア 澤田 健
  2. 2. 目次 • Baculaとは? • Baculaの基本 • Bacula構築概要 • Baculaコミュニティ版インストール • Baculaコミュニティ版設定 • バックアップ • リストア • まとめ 2
  3. 3. Baculaとは? 3
  4. 4. Baculaとは? Baculaとはオープンソースによるネット ワークバックアップソリューションです。 スイスにあるBacula Systems社が開発し ています。 4 世界で一番ダウンロードされているバックアップソフトです。 2014年6月現在210万ダウンロードを超えています。 210万という数は2位のソフトの2倍以上です。 http://sourceforge.net/projects/bacula/files/stats/timeline?dates=2002-04- 01+to+2014-06-24
  5. 5. Baculaとは? スケーラブル Baculaサーバ1台で5,000台のバックアップ管理が可能 フレキシブル 多様なバックアップ先(ディスク、テープ、USB) ワンダフル オープンソース(AGPL) 幅広いOSに対応(Linux、UNIX、Windows、MacOS) 商用向けのエンタープライズ版がある 5 特徴
  6. 6. Baculaとは? 6 ・エンタープライズ版 ・基本機能はコミュニティ版とほぼ同じ ・豊富なプラグインが使用可能 →Windwos,VMWare,Oracle、SAP MYSQL、PostgreSQL、VSS、Delta ・重複排除機能がある(サポートレベルSilver以上) ・長期サポート(4年以上)がある ・サーバ台数にもとづくサブスクリプション(容量は関係なし) ・バージョンが偶数で管理されている(最新はVer.8) →コミュニティ版は奇数(最新はVer.7)
  7. 7. Baculaの基本 7
  8. 8. Baculaの基本 8 Bacula構成図 Copyright 2014, ThirdWare Inc. Directorデーモン (bacula全体管理) + DB (カタログ)r Fileデーモン (バックアップ対象機)r Storageデーモン (バックアップデータ管理) r Console操作 r(Bconsole, Bat,Bweb) ※最小で1台で構築できる ユーザーr
  9. 9. Baculaの基本 9 Bacula全体を管理する指令塔 SQLデータベースと連携して、すべてのクライアントに関す るバックアップとリストアの設定を管理し、ジョブの実行を 制御します。 SQLデータベースをカタログと呼びます。 今回の構築ではMYSQLを使用します。 Directorデーモン (bacula全体管理) + DB (カタログ)r Fileデーモン (バックアップ対象機)r Storageデーモン (バックアップデータ管理)r Console (ユーザ操作)r Directorデーモン
  10. 10. Baculaの基本 10 多様なプラットフォームをサポート 様々なLinuxディストリビューション Windows Mac OSX FreeBSD Solaris AIX HP-UXなど Fileデーモン Directorデーモン (bacula全体管理) + DB (カタログ)r Fileデーモン (バックアップ対象機)r Storageデーモン (バックアップデータ管理)r Console (ユーザ操作)r
  11. 11. Baculaの基本 11 バックアップしたデータを管理します。 ハードディスク、テープ、オートチェンジャーなど多様なス トレージを扱えます。 Storageデーモン Directorデーモン (bacula全体管理) + DB (カタログ)r Fileデーモン (バックアップ対象機)r Storageデーモン (バックアップデータ管理)r Console (ユーザ操作)r
  12. 12. Baculaの基本 12 Directorを操作するためのコンソールです。 bconsole CUIベースのツール bat GUIベースのツール bweb Webベースのツール(エンタープライズ版のみ) Console Directorデーモン (bacula全体管理) + DB (カタログ)r Fileデーモン (バックアップ対象機)r Storageデーモン (バックアップデータ管理)r Console (ユーザ操作)r
  13. 13. Bacula構築概要 13
  14. 14. Bacula構築概要 14 構成図 Baculaサーバ バックアップ対象サーバ バックアップ取得 IP 192.168.0.10 ホスト名 bacula IP 192.168.0.20 ホスト名 backup-side ページ8の構成図のような最小構成で構築します。
  15. 15. Bacula構築概要 15 Virtualbox上に以下の2台のサーバを構築します。 ・Baculaサーバ OS: CentOS6.5(x86_64) minimalインストール ベースパッケージ追加 DB: MySQL 5.1.73 Bacula 5.0.0 ・バックアップ対象サーバ OS:CentOS6.5(x86_64) minimalインストール ベースパッケージ追加 Bacula5.0.0(クライアントのみ) 今回の構築環境
  16. 16. Bacula コミュニティ版 インストール 16
  17. 17. Baculaコミュニティ版インストール 17 yumでインストールします。 リポジトリの追加は不要です。 # yum install bacula-director bacula-client bacula-storage bacula-console mysql-server Baculaサーバ側 # yum install bacula-client バックアップ対象側
  18. 18. Baculaコミュニティ版インストール 18 以下のパッケージがインストールされていることを 確認します。 # rpm -qa | grep bacula bacula-storage-common-5.0.0-12.el6.x86_64 bacula-common-5.0.0-12.el6.x86_64 bacula-storage-mysql-5.0.0-12.el6.x86_64 bacula-director-mysql-5.0.0-12.el6.x86_64 bacula-console-5.0.0-12.el6.x86_64 bacula-director-common-5.0.0-12.el6.x86_64 bacula-client-5.0.0-12.el6.x86_64 # rpm -qa | grep ^mysql mysql-server-5.1.73-3.el6_5.x86_64 mysql-5.1.73-3.el6_5.x86_64 mysql-libs-5.1.73-3.el6_5.x86_64 Baculaサーバ側
  19. 19. Baculaコミュニティ版インストール 19 以下のパッケージがインストールされていることを 確認します。 # rpm -qa | grep bacula bacula-common-5.0.0-12.el6.x86_64 bacula-client-5.0.0-12.el6.x86_64 バックアップ対象側
  20. 20. Baculaコミュニティ版インストール 20 MySQLを使用するための準備をします。 一般的なMySQLの使用手順と同様にMySQLの初回起動と初 期化を実行した後に、Bacula用のデータベースとテーブル を作成します。 MySQL使用の準備
  21. 21. Baculaコミュニティ版インストール 21 # service mysqld start MySQL データベースを初期化中: Installing MySQL system tables... OK Filling help tables... OK (省略) mysqld を起動中: [ OK ] # MySQL初回起動
  22. 22. Baculaコミュニティ版インストール 22 # mysql_secure_installation (省略) Set root password? [Y/n] Y ←「Y」を入力 New password: osc2014 ←rootのパスワードを入力 Re-enter new password: osc2014 ←rootのパスワードを再入力 Password updated successfully! Reloading privilege tables.. ... Success! (省略) Thanks for using MySQL! # MySQL初期化 省略されている部分で[Y/n]を尋ねられることはすべて Enterキー押下で問題ありません。
  23. 23. Baculaコミュニティ版インストール 23 # mysql -u root –p Enter password: osc2014 ←rootのパスワードを入力 mysql> create database bacula; Query OK, 1 row affected (0.00 sec) mysql> grant all privileges on bacula.* to bacula@localhost identified by ‘osc2014’; osc2014はDBに対するパスワードを設定↑ Query OK, 0 rows affected (0.01 sec) mysql> quit Bye # Bacula用データベース作成
  24. 24. Baculaコミュニティ版インストール 24 # /usr/libexec/bacula/make_bacula_tables -u bacula -p Making MySQL tables Enter password: osc2014 ←DBに対するパスワードを入力 Creation of Bacula MySQL tables succeeded. # Bacula用のテーブル作成
  25. 25. Bacula コミュニティ版 設定 25
  26. 26. Baculaコミュニティ版設定 26 最低限必要な設定ファイル 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
  27. 27. Baculaコミュニティ版設定 27 Baculaの設定はリソースごとに設定を行います。リソース とは { で始まり } で終わる一連の固まりを指します。 (例) Director { Name = bacula-dir Password = “osc2014" } 上記の例はDirectorリソースの設定例になります。
  28. 28. Baculaコミュニティ版設定 28 bacula-dir.confのリソース設定のポイント Director Directorの基本設定です。 Job 設定の指示書です。 バックアップ指示をまとめたものをJOBと して登録し実行します。 FileSet バックアップ対象とするディレクトリを指定します。 またバックアップ非対象するディレクトリも指定で きます。
  29. 29. Baculaコミュニティ版設定 29 bacula-dir.confのリソース設定のポイント Schedule 自動バックアップする際のスケジュール設定します。 Client バックアップ対象とするクライアント情報を設定 します。 Storage Storageデーモンと通信するための情報を設定し ます。
  30. 30. Baculaコミュニティ版設定 30 bacula-dir.confのリソース設定のポイント Catalog データベース(カタログ)への接続情報を設定します。 Pool バックアップ保存先の情報を設定します。 Console コンソールとの接続情報を設定します。
  31. 31. Baculaコミュニティ版設定 31 /etc/bacula/bacula-dir.conf Director { # define myself Name = bacula-dir DIRport = 9101 # where we listen for UA connections QueryFile = "/usr/libexec/bacula/query.sql" WorkingDirectory = "/var/spool/bacula" PidDirectory = "/var/run" Maximum Concurrent Jobs = 1 Password = “osc2014" # Console password Messages = Daemon }
  32. 32. Baculaコミュニティ版設定 32 /etc/bacula/bacula-dir.conf Job { Name = "JOB-OSC" 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-OSCという名前のJobを登録できます。 バックアップ対象はbacula-fd(192.168.0.20)になります。
  33. 33. Baculaコミュニティ版設定 33 /etc/bacula/bacula-dir.conf FileSet { Name = "Full Set" Include { Options { signature = MD5 } File = / } Exclude { File = /var/spool/bacula File = /proc File = /sys File = /tmp } Includeはバックアップ対象にしたいディレ クトリを指定します。 Excludeはバックアップ非対象にしたいディ レクトリを指定します。
  34. 34. Baculaコミュニティ版設定 34 /etc/bacula/bacula-dir.conf FileSet { Name = "Full Set" Include { Options { signature = MD5 } File = /etc } Exclude { File = /etc/tmp } } Includeはバックアップ対象にしたいディレ クトリを指定します。 Excludeはバックアップ非対象にしたいディ レクトリを指定します。 /etc/tmpはデモ用に作成しています。 ※このスライドはデモ用です
  35. 35. Baculaコミュニティ版設定 35 /etc/bacula/bacula-dir.conf # Client (File Services) to backup Client { Name = bacula-fd Address = 192.168.0.20 FDPort = 9102 Catalog = MyCatalog Password = "osc2014" # password for FileDaemon File Retention = 30 days # 30 days Job Retention = 6 months # six months AutoPrune = yes # Prune expired Jobs/Files } バックアップ対象機を指定します。
  36. 36. Baculaコミュニティ版設定 36 /etc/bacula/bacula-dir.conf Storage { Name = File # Do not use "localhost" here Address = 192.168.0.10 # N.B. Use a fully qualified name here SDPort = 9103 Password = "osc2014" Device = FileStorage Media Type = File } ここではバックアップの保存先のサーバを指定します。 今回の構築ではDirectorデーモンとStorageデーモンは同じサーバにイ ンストールしていますので「192.168.0.10」を指定します。
  37. 37. Baculaコミュニティ版設定 37 /etc/bacula/bacula-dir.conf Catalog { Name = MyCatalog # Uncomment the following line if you want the dbi driver # dbdriver = "dbi:sqlite3"; dbaddress = 127.0.0.1; dbport = dbname = "bacula"; dbuser = "bacula"; dbpassword = "osc2014" } ここで設定するパスワードはDB(カタログ)の接続に使うので重要です。 デフォルトは空白になってます。
  38. 38. Baculaコミュニティ版設定 38 /etc/bacula/bacula-dir.conf Console { Name = bacula-mon Password = “osc2014" CommandACL = status, .status }
  39. 39. Baculaコミュニティ版設定 39 bacula-fd.confのリソース設定のポイント Director Directorとの接続情報を設定します。 FileDaemon Fileデーモンの基本情報を設定します。 Messages アラートなどのMessages送信情報を設定します。
  40. 40. Baculaコミュニティ版設定 40 /etc/bacula/bacula-fd.conf Director { Name = bacula-dir Password = "osc2014" } Director { Name = bacula-mon Password = "osc2014" Monitor = yes } FileDaemon { # this is me Name = bacula-fd FDport = 9102 # where we listen for the director WorkingDirectory = /var/spool/bacula Pid Directory = /var/run Maximum Concurrent Jobs = 20 } Messages { Name = Standard director = bacula-dir = all, !skipped, !restored } Baculaサーバ側、バックアップ対象側の両 方のファイルに設定を実施してください。
  41. 41. Baculaコミュニティ版設定 41 bacula-sd.confのリソース設定のポイント Storage Storageデーモンの基本情報を設定します。 Director Directorとのデーモンの基本情報を設定します。 Device バックアップデータを保存するデバイス情報を設定 します。
  42. 42. Baculaコミュニティ版設定 42 bacula-sd.confのリソース設定のポイント Messages アラートなどのMessages送信情報を設定します。
  43. 43. Baculaコミュニティ版設定 43 /etc/bacula/bacula-sd.conf Director { Name = bacula-dir Password = "osc2014" } Director { Name = bacula-mon Password = "osc2014" Monitor = yes }
  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 = localhost Password = "osc2014" }
  46. 46. Baculaコミュニティ版設定 46 Bacula実行 # service bacula-dir start # service bacula-fd start # service bacula-sd start # chkconfig bacula-dir on # chkconfig bacula-fd on # chkconfig bacula-sd on # chkconfig mysqld on 自動起動on Baculaサーバ側
  47. 47. Baculaコミュニティ版設定 47 Bacula実行 # service bacula-fd start # chkconfig bacula-fd on 自動起動on バックアップ対象側
  48. 48. Baculaコミュニティ版設定 48 確認していただきたいのは以下の3点 ・Passwordがデフォルトのままになっていませんか? ・Passwordをミスタイプしていませんか? ・DB(カタログ)のPasswordは設定しましたか? もしもここまででつまづいたら? とりあえずPasswordをきちんと設定できれば動くはず!
  49. 49. バックアップ 49
  50. 50. バックアップ 50 bconsole(CUIツール)でバックアップを取得し ます。 bconsoleを起動しlabelを作成します。 labelはバックアップ保存先を認識させるための目印として 作成します。 label作成後にrunコマンドを実行し、対話式でバックア ップを取得します。
  51. 51. バックアップ 51 そもそもBaculaはpoolという箱の中にVolumeという単位で データを保存します。 そしてlabelはVolumeの別名として使われデータを識別する ためにlabelを作成します。 /tmp Pool Label1 Volume1 labelとは? JOB1 結果 JOB2 結果 Label2 Volume2 JOB3 結果 JOB4 結果 Label3 Volume3 JOB5 結果 JOB6 結果
  52. 52. バックアップ 52 # bconsole bconsole起動 起動が成功するとコマンドプロンプトが以下のように*とな ります。
  53. 53. バックアップ 53 *label Automatically selected Catalog: MyCatalog Using Catalog "MyCatalog" Automatically selected Storage: File Enter new Volume name: osc-demo ←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.10:9103 ... Sending label command for Volume “osc-demo" Slot 0 ... 3000 OK label. VolBytes=194 DVD=0 Volume=" osc-demo " Device="FileStorage" (/tmp) Catalog record for Volume " osc-demo", Slot 0 successfully created. Requesting to mount FileStorage ... 3906 File device "FileStorage" (/tmp) is always mounted. ラベル作成 Labelの名前は任意で指定することが可能です。
  54. 54. バックアップ 54 *run A job name must be specified. The defined Job resources are: 1: OSC-JOB 2: BackupClient1 3: BackupCatalog 4: RestoreFiles Select Job resource (1-4): 1 ←実行するJobを選択 Run Backup job JobName: OSC-JOB Level: Full Client: bacula-fd FileSet: Full Set Pool: File (From Job resource) Storage: File (From Job resource) When: 2014-07-11 15:30:50 Priority: 10 OK to run? (yes/mod/no):yes ←yesを入力 バックアップ実行
  55. 55. バックアップ 55 *status Status available for: 1: Director 2: Storage 3: Client 4: All Select daemon type for status (1-4): 1 ←1を選択 (省略) Terminated Jobs: JobId Level Files Bytes Status Finished Name =========================================================== 1 Full 41,232 931.0 M OK 16- 7・014 15:09 BackupClient1 ==== バックアップ確認 実行したJobが「Terminated Jobs」になっていることを確認します。
  56. 56. リストア 56
  57. 57. リストア 57 bconsole(CUIツール)でリストアを実施します。 bconsoleを起動しrestoreコマンドを実行し、対話式でリス トアを実施します。 例として/etc/bacula/bacula-fd.confファイルをリストアし ます。
  58. 58. リストア 58 # bconsole bconsole起動 起動が成功するとコマンドプロンプトが以下のように*とな ります。
  59. 59. リストア 59 *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を選択します。 リストア実行
  60. 60. リストア 60 restoreコマンドを実行後に5を選択すると最新のバックア ップファイルのリストがbaculaサーバに作成されます。 問題なくリストが作成されれば、以下のようにコマンドプロ ンプトが$になります。
  61. 61. リストア 61 $ cd /etc/bacula $ ls bacula-fd.conf $ mark bacula-fd.conf 1 file marked. リストアするファイルをmarkコマンドで指定します。 対象のファイルがあるディレクトリに移動してmarkコマン ドを実行します。 markコマンドは*などを使用して一括指定することも可能 です。 /etc/bacula/bacula-fd.confをリストアします
  62. 62. リストア 62 $ done Run Restore job JobName: RestoreFiles Bootstrap: /var/spool/bacula/bacula-dir.restore.1.bsr Where: /tmp/bacula-restores ←この場所にリストアされます。 Replace: always FileSet: Full Set Backup Client: bacula-fd Restore Client: bacula-fd Storage: File When: 2014-07-14 11:37:58 Catalog: MyCatalog Priority: 10 Plugin Options: *None* OK to run? (yes/mod/no): yes リストアを実行します。doneコマンドを実行しま す。
  63. 63. リストア 63 # cd /tmp/bacula-restores # ls # etc # cd cd etc/bacula/ # ls # bacula-fd.conf # リストア確認をします。 バックアップ対象機でファイルを確認します。 bconsoleコマンドは必要ありません。
  64. 64. まとめ 64
  65. 65. まとめ • Baculaインストールはyumで一発インストール • 最低限必要な設定は4ファイルだけ • バックアップはlabelを作成しrunコマンド • リストアはrestoreコマンド 65
  66. 66. 参考サイト 66
  67. 67. 参考サイト 67 Bacula.jp http://www.bacula.jp/ Bacula EnterPrise Edition 概要 (株式会社サードウェア) http://www.3ware.co.jp/product/bacula- enterprise-edition/summary Bacula systems (開発元) http://www.baculasystems.com/
  68. 68. ご参考 68
  69. 69. bat 69 GUIベースのConsole Job実行、バックアップ実行、リストアが可能
  70. 70. bat 70
  71. 71. bweb 71 WebベースのConsole Job登録、 Job実行、バックアップ実行、リストアが可能
  72. 72. bweb 72
  73. 73. bweb 73 bwebのリストア
  74. 74. ご清聴ありがとうございました。 74

×