ステータス:非推奨

この記事では、サポートされなくなったバージョンのUbuntuについて説明します。 現在Ubuntu12.04を実行しているサーバーを運用している場合は、サポートされているバージョンのUbuntuにアップグレードまたは移行することを強くお勧めします。

理由:
Ubuntu 12.04は2017年4月28日に保守終了(EOL)に達しました and no longer receives security patches or updates. This guide is no longer maintained.

代わりに参照してください:
このガイドは参照として役立つ場合がありますが、他のUbuntuリリースでは機能しない場合があります。 可能な場合は、使用しているUbuntuのバージョン用に作成されたガイドを使用することを強くお勧めします。 ページ上部の検索機能を使用して、より新しいバージョンを見つけることができます。

の意味

このチュートリアルでは、ユーザーが入力またはカスタマイズする必要のある行はになります。 残りはほとんどコピーアンドパスタブルである必要があります。

序章

Baculaは、クライアントサーバーモデルを活用してローカルバックアップとリモートバックアップを処理できる高度なバックアップソリューションです。 バックアップ環境を完全に制御できる非常に柔軟な構成オプションがあります。

このガイドでは、バックアップクラウドサーバーと完全にバックアップされるクライアントマシンを含むリモートバックアップを設定します。

2つの別々のサーバーインスタンスが必要になります。 最初のサーバーは、 Ubuntu 12.04VPSガイドへのBaculaのインストールと構成で概説されている構成に従ってセットアップする必要があります。 2番目のサーバーは別のUbuntu12.04マシンになります。

このガイドでは、バックアップVPSのホスト名は BackupServer で、クライアントマシン’のホスト名はClientMachineです。 これらの値を変更して、使用しているマシンのサーバー名を反映させます。

目次

  1. クライアントのインストール
  2. クライアントマシンの構成
  3. バックアップサーバーの構成
  4. 構成の確認とサービスの再起動
  5. リモートバックアップのテスト
  6. リモート復元のテスト
  7. ファイルシステムの確認

クライアントのインストール

ローカルバックアップはリモートクライアントマシンに保存されないため、すべてのBaculaコンポーネントをインストールする必要はありません。

bacula-clientメタパッケージを使用してapt-getを使用して、このマシンにbacula-fd(ファイルデーモン)とbconsole(baculaコンソール)をインストールします。

sudo apt-get update
sudo apt-get install bacula-client

これで、必要なコンポーネントがインストールされ、構成する準備が整いました。

クライアントマシンの構成

クライアント環境の構成は比較的簡単です。 baculaファイルデーモン構成ファイルのみを編集します。 次のコマンドを使用して、root権限でファイルを開きます。

sudo nano /etc/bacula/bacula-fd.conf

いくつかの項目を変更し、サーバー構成に必要な情報を保存する必要があります。 Directorセクションを見つけることから始めます。

バキュラディレクターはバックアップVPSにあります。 「Name」パラメータをバックアップサーバーのホスト名に変更し、その後に「-dir」を続けます。

また、baculaがクライアントファイルデーモン用に生成したパスワードを、バックアップサーバー設定を構成するときに使用できる場所にコピーする必要があります。

Director {
  Name = BackupServer-dir
  Password = "u2LK-yBrQzfiEsc6NWftHEhymmdPWsklN"  # Copy this password for later reference!
}

次に、FileDaemonセクションの1つのパラメーターを調整する必要があります。 クライアントマシンのIPアドレスまたはドメイン名と一致するように「FDAddress」パラメータを変更します。 「Name」パラメータには、クライアントファイルデーモン名がすでに正しく入力されている必要があります。

FileDaemon {                          # this is me
  Name = ClientMachine-fd
  FDport = 9102                  # where we listen for the director
  WorkingDirectory = /var/lib/bacula
  Pid Directory = /var/run/bacula
  Maximum Concurrent Jobs = 20
  FDAddress = ClientMachine.DomainName.com
}

また、ログメッセージをバックアップクラウドサーバーに渡すようにこのデーモンを構成する必要があります。 メッセージセクションを見つけて、バックアップクラウドサーバー’の名前と一致するように「director」パラメーターを変更します。

Messages {
  Name = Standard
  director =  BackupServer-dir = all, !skipped, !restored
}

ファイルを保存して終了します。

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

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

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

sudo service bacula-fd restart

これで、クライアントマシンが正しく構成されました。

この例では、この同じマシン上のフォルダーに復元します。 次のコマンドを使用して、ファイル構造を作成し、セキュリティのためにアクセス許可と所有権をロックダウンします。

sudo mkdir -p /bacula/restore
sudo chown -R bacula:bacula /bacula
sudo chmod -R 700 /bacula

これで、クライアントマシンが正しく構成されました。 次に、クライアントからファイルデータをプルするようにバックアップクラウドサーバーを構成します。

バックアップサーバーの構成

バックアップクラウドサーバーにログインして、構成のこの段階を完了します。

構成の大部分は、実際にはバックアップサーバーで行われます。 これは、Baculaの「ディレクター」が他のすべてのBaculaプロセスを管理し、さまざまなコンポーネントと正しく通信できる必要があるためです。

開始するには、管理者権限で「bacula-dir.conf」ファイルを開きます。

sudo nano /etc/bacula/bacula-dir.conf

ジョブ構成

ジョブセクションを見つけることから始めます。 現在の構成は「BackupClient1」という名前で、バックアップサーバーのローカルバックアップに使用されます。 これを反映するために名前を変更する必要があります。

Job {
  Name = "LocalBackup"
  JobDefs = "DefaultJob"
}

最初のジョブをローカルマシンでのバックアップとして識別したので、リモートクライアントをバックアップするための同様のジョブを作成します。 これを行うには、変更したジョブ定義の下にジョブ定義をコピーして貼り付けます。

これがリモートバックアップシナリオであるという事実を反映するように名前を変更します。 「Client」パラメーターは、リモートクライアントファイルデーモンをバックアップのターゲットとして識別します。 Poolパラメーターを使用すると、baculaはローカルバックアップとは別にリモートバックアップを保存できます。 参照するプールは、ファイルの後半で定義します。

Job {
  Name = "RemoteBackup"
  JobDefs = "DefaultJob"
  Client = ClientMachine-fd
  Pool = RemoteFile
}

次に、リモートバックアップを復元する場所を定義します。 クライアントマシン上に作成したディレクトリを使用して、リモートバックアップを復元します。

「RestoreFiles」ジョブ定義を見つけます。 現在のエントリをコピーして、下に貼り付けます。 次に、いくつかのエントリを変更して、正確にラベルを付け、クライアントマシンで動作します。

Job {
  Name = "RestoreRemote"
  Type = Restore
  Client=ClientMachine-fd
  FileSet="Full Set"
  Storage = File     
  Pool = Default
  Messages = Standard
  Where = /bacula/restore
}

クライアント構成

クライアントの定義を見つけます。 localhostを使用する代わりに、実際のバックアップクラウドサーバーのIPアドレスを反映するように「Address」パラメーターを変更します。 パスワードは、ローカルマシンに対してすでに正しく設定されている必要があります。

Client {
  Name = BackupServer-fd
  Address = BackupServer.DomainName.com
  FDPort = 9102
  Catalog = MyCatalog
  Password = "CRQF7PW-mJumFtENX2lqGvJ6gixPTyRQp"          # password for Local FileDaemon
  File Retention = 30 days            # 30 days
  Job Retention = 6 months            # six months
  AutoPrune = yes                     # Prune expired Jobs/Files
}

次のステップは、構成で参照しているクライアントマシンを実際に定義することです。 変更したClientエントリをコピーして、現在の定義の下に貼り付けます。 この新しい定義は、バックアップしているリモートマシン用です。

名前をクライアントマシンのホスト名に一致させ、その後に「-fd」を付けます。 「アドレス」行は、クライアントマシンのIPアドレスまたはドメイン名とも一致する必要があります。

最後に、ここで、リモートクライアントのファイルデーモン構成ファイルからコピーしたパスワードを入力します。 このパスワード値を変更してください。変更しないと、baculaが正しく機能しません。

Client {
  Name = ClientMachine-fd
  Address = ClientMachine.DomainName.com
  FDPort = 9102 
  Catalog = MyCatalog
  Password = "u2LK-yBrQzfiEsc6NWftHEhymmdPWsklN"          # password for Remote FileDaemon
  File Retention = 30 days            # 30 days
  Job Retention = 6 months            # six months
  AutoPrune = yes                     # Prune expired Jobs/Files
}

ストレージ構成

次に、 Storage セクションの「Address」パラメータを、バックアップVPSのIPアドレスまたはドメイン名に変更します。 繰り返しになりますが、パスワードはここですでに正しいはずです。

Storage {
  Name = File
# Do not use "localhost" here   
  Address = BackupServer.DomainName.com                # N.B. Use a fully qualified name here
  SDPort = 9103
  Password = "097dnj3jw1Yynpz2AC38luKjy5QTnGoxS"
  Device = FileStorage
  Media Type = File
}

プール構成

プールの定義セクションを見つけます。 まず、「ファイル」プール定義にパラメーターを追加します。 「ラベル形式」パラメータを定義に追加し、ローカルファイルのバックアップに名前を付けるプレフィックスを選択します。 このガイドでは、ローカルバックアップのプレフィックスとして「Local-」が付けられます。

Pool {
  Name = File
  Pool Type = Backup
  Recycle = yes                       # Bacula can automatically recycle Volumes
  Label Format = Local-
  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
}

次に、変更したセクションをコピーして、現在のエントリの下に貼り付ける必要があります。 これは、リモートバックアップストレージ用に設定されます。

リモートバックアップを保存するジョブを反映するように、新しいプールの名前を変更します。 また、「LabelFormat」パラメータを「Remote-」に調整してプレフィックスを変更します

Pool { 
  Name = RemoteFile
  Pool Type = Backup
  Recycle = yes                       # Bacula can automatically recycle Volumes
  Label Format = Remote-
  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
}

ファイルを保存して閉じます。

bacula-sd.confの編集

次に、root権限で「bacula-sd.conf」ファイルを開きます。

sudo nano /etc/bacula/bacula-sd.conf

「SDAddress」パラメータを変更して、バックアップサーバーのIPアドレスまたはドメイン名を反映します。

Storage {                             # definition of myself
  Name = BackupServer-sd
  SDPort = 9103                  # Director's port
  WorkingDirectory = "/var/lib/bacula"
  Pid Directory = "/var/run/bacula"
  Maximum Concurrent Jobs = 20
  SDAddress = BackupServer.DomainName.com
}

ファイルを保存して閉じます。

構成の確認とサービスの再起動

次のコマンドで構成を確認します。

sudo bacula-dir /etc/bacula/bacula-dir.conf
sudo bacula-sd /etc/bacula/bacula-sd.conf

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

sudo service bacula-director restart
sudo service bacula-sd restart

リモートバックアップのテスト

baculaコンソールにログインして、バックアップ機能をテストします。

sudo bconsole

次のように入力して、BaculaDirectorがリモートマシンに接続できることをテストします。

status
Status available for:
     1: Director
     2: Storage
     3: Client
     4: All
Select daemon type for status (1-4): 

#3を選択してクライアント接続を確認してから、リモートマシンを選択します。

3: Client
2: ClientMachine-fd

リモートファイルデーモンに接続できることを確認する、いくつかの統計を含む要約が返されるはずです。

次のコマンドを入力して、リモートシステムのテストバックアップを実行します。

run
Automatically selected Catalog: MyCatalog
Using Catalog "MyCatalog"
A job name must be specified.
The defined Job resources are:
     1: LocalBackup
     2: RemoteBackup
     3: BackupCatalog
     4: RestoreFiles
     5: RestoreRemote
Select Job resource (1-5): 

「RemoteBackup」オプションを選択して、リモートマシンのバックアップを実行します。 「yes」と入力してバックアップを開始します。

2: RemoteBackup

ディレクターはバックアップタスクをリモートファイルデーモンに送信し、リモートファイルデーモンはその情報をバックアップサーバーのストレージデーモンに渡します。 上記のように「status」コマンドを使用して、ジョブのステータスを確認できます。 また、「messages」コマンドを使用してメッセージを確認する必要があります。

messages

メッセージを引き続き確認すると、最終的にバックアップ操作の概要が表示されます。 すべてが期待どおりに進んだ場合は、「終了:バックアップOK」という行が含まれている必要があります。

リモート復元のテスト

次に、復元機能をテストします。

restore all

[クライアントの最新のバックアップを選択する]オプションを選択します。 バックアップしたばかりのリモートクライアントを選択します。

5: Select the most recent backup for a client
2: ClientMachine-fd

「マーク」および「マーク解除」コマンドを使用して、復元するファイルを選択できるファイルツリーに移動します。

すべてを復元することを選択したので、「done」と入力するだけで先に進むことができます。 リモート復元用に定義したジョブを選択し、「yes」と入力して復元を実行します。

done
2: RestoreRemote

ここでも、「status」コマンドと「messages」コマンドを使用して復元を確認できます。 最終的に、「Termination:RestoreOK」という行を含むメッセージに要約が表示されます。 これは、復元が成功したことを意味します。 「exit」と入力して、Baculaコンソールを終了します。

exit

ファイルシステムの確認

次のコマンドを使用して、リモートバックアップファイルのファイル形式が正しいことを確認できます。

sudo ls /bacula/backup
LocalBackup   Remote-0002

ご覧のとおり、リモートシステムのバックアップファイルは、提供した命名規則に適合しています。 ローカルバックアップは、変更前のものであるため、慣例に従って名前が付けられていません。

リモートクライアントマシンにログインすると、次の行で復元を確認できます。

sudo ls /bacula/restore
bin   dev  home        lib	   media  opt	run   selinux  sys  var
boot  etc  initrd.img  lost+found  mnt	  root	sbin  srv      usr  vmlinuz

ご覧のとおり、ファイルシステムはこのフォルダに正しく復元されています。

ジャスティン・エリングウッド