序章

このチュートリアルでは、ネットワーク接続を介してリモートUbuntu14.04ホストのバックアップを作成するようにBaculaを設定する方法を示します。 これには、リモートホストにBacula Clientソフトウェアをインストールして構成し、既存のBaculaサーバーの構成にいくつかの追加を行うことが含まれます(前提条件で説明されています)。

CentOS 7ホストのバックアップを作成しようとしている場合は、代わりに次のリンクをたどってください:Baculaを使用してCentOS7サーバーをバックアップする方法。

前提条件

このチュートリアルは、次のリンクで説明されているように、BaculaServerコンポーネントを実行しているサーバーがあることを前提としています: Ubuntu14.04にBaculaServerをインストールする方法。

また、バックアップサーバーとクライアントの通信にプライベートネットワークインターフェイスを使用していることも前提としています。 サーバーのプライベートFQDN(プライベートIPアドレスを指すFQDN)を参照します。 IPアドレスを使用している場合は、必要に応じて接続情報に置き換えてください。

このチュートリアルの残りの部分では、Baculaサーバーを「BaculaServer」、「Baculaサーバー」、または「バックアップサーバー」と呼びます。 バックアップされるリモートホストを「ClientHost」、「Client Host」、または「Client」と呼びます。

Baculaサーバーの構成にいくつかの簡単な変更を加えることから始めましょう。

Bacula Director構成の整理(サーバー)

Bacula Server で、このセクションを1回実行します。

Bacula Serverをセットアップするときに、構成ファイルが長すぎることに気付いたかもしれません。 Bacula Directorの構成を少し整理して、ジョブ、ファイルセット、プールなどの新しい構成を追加するために個別のファイルを使用するようにします。

Baculaの設定ファイルを整理するのに役立つディレクトリを作成しましょう。

  1. sudo mkdir /etc/bacula/conf.d

次に、BaculaDirector構成ファイルを開きます。

  1. sudo vi /etc/bacula/bacula-dir.conf

ファイルの最後に、次の行を追加します。

bacula-dir.conf —ファイルの終わりに追加
@|"find /etc/bacula/conf.d -name '*.conf' -type f -exec echo @{} \;"

保存して終了。 この行により、Directorは/etc/bacula/conf.dディレクトリで、追加する追加の構成ファイルを探します。 つまり、そこに追加された.confファイルは、構成の一部としてロードされます。

RemoteFileプールを追加する

Bacula Director構成にプールを追加します。これを使用して、リモートバックアップジョブを構成します。

conf.d/pools.confファイルを開きます。

  1. sudo vi /etc/bacula/conf.d/pools.conf

次のプールリソースを追加します。

conf.d / pools.conf —プールリソースを追加します
Pool {
  Name = RemoteFile
  Pool Type = Backup
  Label Format = Remote-
  Recycle = yes                       # Bacula can automatically recycle Volumes
  AutoPrune = yes                     # Prune expired volumes
  Volume Retention = 365 days         # one year
    Maximum Volume Bytes = 50G          # Limit Volume size to something reasonable
  Maximum Volumes = 100               # Limit number of Volumes in Pool
}

保存して終了。 これにより、後で作成するバックアップジョブで使用する「RemoteFile」プールが定義されます。 自分のニーズに合わせて、パラメータを自由に変更してください。

まだBaculaDirectorを再起動する必要はありませんが、構成にエラーがないことを確認しましょう。

  1. sudo bacula-dir -tc /etc/bacula/bacula-dir.conf

エラーがない場合は、Baculaクライアントのセットアップに進む準備ができています。

Baculaクライアントのインストールと設定

Baculaのセットアップに追加するクライアントホストでこのセクションを実行します。

まず、apt-getを更新します。

  1. sudo apt-get update

次に、bacula-clientパッケージをインストールします。

  1. sudo apt-get install bacula-client

これにより、「Baculaクライアント」と呼ばれることが多いBaculaファイルデーモン(FD)がインストールされます。

クライアントの構成

クライアントファイルデーモンを構成する前に、このチュートリアルの残りの部分で使用される次の情報を確認する必要があります。

  • クライアントのホスト名::この例では「ClientHost」を使用します
  • クライアントプライベートFQDN:これを「client_private_FQDN」と呼びます。これはclienthost.private.example.comのようになります。
  • Baculaサーバーのホスト名:この例では「BackupServer」を使用します

実際の設定は例とは異なるため、必要に応じて置換してください。

ファイルデーモン構成を開きます。

  1. sudo vi /etc/bacula/bacula-fd.conf

いくつかの項目を変更し、サーバー構成に必要な情報を保存する必要があります。

クライアントのホスト名にちなんで名付けられたDirectorリソースを見つけることから始めます(例: 「clientHost-dir」)。 このクライアントを制御するBaculaDirectorはBaculaServer上にあるため、「Name」パラメーターをバックアップサーバーのホスト名に変更し、その後に「-dir」を付けます。 この例に従って、Baculaサーバーのホスト名として「BackupServer」を使用すると、更新後は次のようになります。

bacula-fd.conf —ディレクター名を更新
Director {
  Name = BackupServer-dir
  Password = "IrIK4BHRA2o5JUvw2C_YNmBX_70oqfaUi"
}

また、ファイルデーモンへの接続に使用される自動生成されたパスワードであるPasswordをコピーし、後で参照できるように保存する必要があります。 これは、バックアップサーバーのDirector構成で使用されます。これは、次の手順で設定し、クライアントのファイルデーモンに接続します。

次に、FileDaemonリソースの1つのパラメーターを調整する必要があります。 FDAddressパラメーターを変更して、クライアントマシンのプライベートFQDNに一致させます。 Nameパラメーターには、クライアントファイルデーモン名が正しく入力されているはずです。 リソースは次のようになります(実際のFQDNまたはIPアドレスに置き換えてください)。

bacula-fd.conf —FDAddressを更新します
FileDaemon {                          # this is me
  Name = ClientHost-fd
  FDport = 9102                  # where we listen for the director
  WorkingDirectory = /var/lib/bacula
  Pid Directory = /var/run/bacula
  Maximum Concurrent Jobs = 20
  FDAddress = client_private_FQDN
}

また、ログメッセージをバックアップサーバーに渡すようにこのデーモンを構成する必要があります。 メッセージリソースを見つけ、directorパラメータを変更して、バックアップサーバーのホスト名を「-dir」サフィックスと一致させます。 次のようになります。

bacula-fd.conf —アップデートディレクター
Messages {
  Name = Standard
  director =  BackupServer-dir = all, !skipped, !restored
}

ファイルを保存して終了します。 これで、ファイルデーモン(Baculaクライアント)がプライベートネットワーク経由の接続をリッスンするように構成されました。

次のコマンドを使用して、構成ファイルの構文が正しいことを確認します。

  1. sudo bacula-fd -tc /etc/bacula/bacula-fd.conf

コマンドが出力を返さない場合、構成ファイルの構文は有効です。 ファイルデーモンを再起動して、新しい設定を使用します。

  1. sudo service bacula-fd restart

Baculaサーバーがファイルを復元できるディレクトリを設定しましょう。 次のコマンドを使用して、ファイル構造を作成し、セキュリティのためにアクセス許可と所有権をロックダウンします。

  1. sudo mkdir -p /bacula/restore
  2. sudo chown -R bacula:bacula /bacula
  3. sudo chmod -R 700 /bacula

これで、クライアントマシンが正しく構成されました。 次に、Baculaクライアントに接続できるようにバックアップサーバーを構成します。

ファイルセットの追加(サーバー)

Bacula FileSetは、バックアップ選択にファイルを含めたり除外したりするファイルまたはディレクトリのセットを定義し、Baculaサーバーのバックアップジョブによって使用されます。

Bacula Serverコンポーネントをセットアップする前提条件のチュートリアルに従った場合、「フルセット」と呼ばれるFileSetがすでにあります。 バックアップクライアント上のほぼすべてのファイルを含むバックアップジョブを実行する場合は、そのFileSetをジョブで使用できます。 ただし、サーバー上のすべてのバックアップが必要ない、または必要ない場合が多く、データのサブセットで十分である場合があります。

FileSetに含めるファイルをより選択的にすると、バックアップサーバーがバックアップジョブを実行するために必要なディスク容量と時間が減少します。 また、復元するファイルを見つけるために「フルセット」をふるいにかける必要がないため、復元が簡単になります。

バックアップするものをより選択できるように、新しいFileSetリソースを作成する方法を説明します。

Bacula Server で、前に作成したBaculaDirector構成ディレクトリにあるfilesets.confというファイルを開きます。

  1. sudo vi /etc/bacula/conf.d/filesets.conf

バックアップジョブで使用する特定のファイルセットごとにFileSetリソースを作成します。 この例では、homeディレクトリとetcディレクトリのみを含むFileSetを作成します。

filesets.conf —ホームおよびその他のFileSetを追加します
FileSet {
  Name = "Home and Etc"
  Include {
    Options {
      signature = MD5
      compression = GZIP
    }
    File = /home
    File = /etc
  }
  Exclude {
    File = /home/bacula/not_important
  }
}

このファイルでは多くのことが行われていますが、次の点に注意してください。

  • FileSet名は一意である必要があります
  • バックアップしたいファイルまたはパーティションを含めます
  • バックアップしたくないが、含まれているファイル内に存在する結果として選択されたファイルを除外します

必要に応じて、複数のファイルセットを作成できます。 終了したら、保存して終了します。

これで、新しいFileSetを使用するバックアップジョブを作成する準備が整いました。

クライアントとバックアップジョブをBaculaサーバーに追加する

これで、クライアントをBaculaサーバーに追加する準備が整いました。 これを行うには、新しいクライアントおよびジョブリソースを使用してBaculaDirectorを構成する必要があります。

conf.d/clients.confファイルを開きます。

  1. sudo vi /etc/bacula/conf.d/clients.conf

クライアントリソースの追加

クライアントリソースは、クライアントホストに接続するために必要な情報を使用してDirectorを構成します。 これには、クライアントのファイルデーモンの名前、アドレス、およびパスワードが含まれます。

このクライアントリソース定義をファイルに貼り付けます。 クライアントのホスト名、プライベートFQDN、およびパスワード(クライアントのbacula-fd.confから)を、強調表示されている場所に必ず置き換えてください。

conf.d/clients.conf —クライアントリソースを追加します
Client {
  Name = ClientHost-fd
  Address = client_private_FQDN
  FDPort = 9102 
  Catalog = MyCatalog
  Password = "IrIK4BHRA2o5JUvw2C_YNmBX_70oqfaUi"          # password for Remote FileDaemon
  File Retention = 30 days            # 30 days
  Job Retention = 6 months            # six months
  AutoPrune = yes                     # Prune expired Jobs/Files
}

これは、クライアントごとに1回だけ実行する必要があります。

バックアップジョブを作成します。

一意の名前が必要なバックアップジョブは、バックアップするクライアントとデータの詳細を定義します。

次に、このバックアップジョブをファイルに貼り付け、強調表示されたテキストをクライアントのホスト名に置き換えます。

conf.d/clients.conf —バックアップジョブリソースを追加します
Job {
  Name = "BackupClientHost"
  JobDefs = "DefaultJob"
  Client = ClientHost-fd
  Pool = RemoteFile
  FileSet="Home and Etc"
}

これにより、「BackupClientHost」と呼ばれるバックアップジョブが作成され、「Homeandetc」ファイルセットで定義されているようにクライアントホストのホームディレクトリなどがバックアップされます。 メインのbacula-dir.confファイルで定義されている「DefaultJob」JobDefsおよび「RemoteFile」プールリソースで指定された設定を使用します。 デフォルトでは、JobDefs = "DefaultJob"を指定するジョブは毎週実行されます。

完了したら、保存して終了します。

Directorの構成を確認する

Director構成ファイルに構文エラーがないことを確認しましょう。

  1. sudo bacula-dir -tc /etc/bacula/bacula-dir.conf

シェルプロンプトに戻った場合、BaculaDirectorの構成ファイルに構文エラーはありません。

BaculaDirectorを再起動します

行った構成変更を有効にするには、BaculaDirectorを再起動します。

  1. sudo service bacula-director restart

これで、クライアントまたはリモートホストがBaculaサーバーによってバックアップされるように構成されました。

クライアント接続のテスト

BaculaDirectorがBaculaクライアントに接続できることを確認する必要があります。

Baculaサーバーで、Baculaコンソールに入ります。

  1. sudo bconsole
  1. status client
Select Client resource: ClientHost-fd
The defined Client resources are: 1: BackupServer-fd 2: ClientHost-fd Select Client (File daemon) resource (1-2): 2

クライアントのファイルデーモンステータスはすぐに戻るはずです。 そうでない場合、および接続エラーがある場合は、Baculaサーバーまたはクライアントのファイルデーモンの構成に問題があります。

バックアップジョブのテスト

バックアップジョブを実行して、動作することを確認しましょう。

Bacula Server で、コンソールにいる間に、次のコマンドを使用します。

  1. run

実行するジョブを選択するように求められます。 以前に作成したものを選択します。例: 「4。 BackupClientHost」:

Select Job resource: BackupClientHost
The defined Job resources are: 1: BackupLocalFiles 2: BackupCatalog 3: RestoreLocalFiles 4: BackupClientHost Select Job resource (1-4): 4

確認プロンプトで、「はい」と入力します。

Confirmation prompt:
OK to run? (yes/mod/no): yes

メッセージとステータスを確認する

ジョブを実行した後、Baculaはメッセージがあることを通知します。 メッセージは、実行中のジョブによって生成された出力です。

次のように入力してメッセージを確認します。

  1. messages

メッセージには、「以前の完全バックアップジョブレコードが見つかりません」と表示され、バックアップジョブが開始されたことが示されます。 エラーがある場合は、何かが間違っているので、ジョブが実行されなかった理由についてのヒントが得られるはずです。

ジョブのステータスを確認するもう1つの方法は、ディレクターのステータスを確認することです。 これを行うには、bconsoleプロンプトで次のコマンドを入力します。

  1. status director

すべてが正常に機能している場合は、ジョブが実行中であるか、「OK」ステータスで終了していることを確認する必要があります。

復元を実行する

新しいBaculaClientを初めてセットアップするときは、復元が正しく機能することをテストする必要があります。

復元を実行する場合は、Baculaコンソールでrestoreコマンドを使用します。

  1. restore all

選択メニューが表示され、復元元のバックアップセットを識別するために使用されるさまざまなオプションが表示されます。 バックアップは1つしかないため、「最新のバックアップを選択」してみましょう。オプション5を選択します。

Select item (1-13):
5

次に、復元するクライアントを指定する必要があります。 セットアップしたばかりのリモートホストを復元したい。 「clientHost-fd」:

Select the Client: ClientHost-fd
Defined Clients: 1: BackupServer-fd 2: ClientHost-fd Select the Client (1-2): 2

これにより、バックアップしたディレクトリ構造全体を含む仮想ファイルツリーに移動します。 このシェルのようなインターフェースにより、復元するファイルにマークを付けたり、マークを外したりする簡単なコマンドが可能になります。

「すべてを復元」するように指定したため、バックアップされたすべてのファイルはすでに復元のマークが付けられています。 マークされたファイルは、先頭の*文字で示されます。

選択を微調整したい場合は、「ls」および「cd」コマンドでファイルをナビゲートして一覧表示し、復元するファイルに「mark」でマークを付け、「unmark」でファイルのマークを外すことができます。 コンソールに「help」と入力すると、コマンドの完全なリストを利用できます。

復元の選択が終了したら、次のように入力します。

  1. done

復元ジョブを実行することを確認します。

OK to run? (yes/mod/no):
yes

メッセージとステータスを確認する

バックアップジョブと同様に、復元ジョブを実行した後、メッセージとDirectorのステータスを確認する必要があります。

次のように入力してメッセージを確認します。

  1. messages

復元ジョブが開始されたか、「復元OK」ステータスで終了したことを示すメッセージが表示されるはずです。 エラーがある場合は、何かが間違っているので、ジョブが実行されなかった理由についてのヒントが得られるはずです。

繰り返しになりますが、Directorのステータスを確認することは、復元ジョブの状態を確認するための優れた方法です。

  1. status director

復元が終了したら、exitと入力して、Baculaコンソールを終了します。

  1. exit

すべてが正常に機能した場合、復元されたファイルはクライアントホストの/bacula/restoreディレクトリにあります。 単に復元プロセスをテストしている場合は、そのディレクトリの内容を削除する必要があります。

結論

これで、リモートのBaculaクライアントからファイルをバックアップしているBaculaサーバーができました。 ニーズに合ったスケジュールで正しいファイルセットをバックアップしていることが確実になるまで、構成を確認して修正してください。 CentOS 7ホストのバックアップを作成しようとしている場合は、次のリンクをたどってください:Baculaを使用してCentOS7サーバーをバックアップする方法。

次に行うべきことは、バックアップする追加のUbuntu 14.04サーバーについて、このチュートリアルの関連セクションを繰り返すことです。