前書き
このチュートリアルでは、ネットワーク接続を介してリモートUbuntu 14.04ホストのバックアップを作成するためにBaculaをセットアップする方法を示します。 これには、リモートホストへのBacula Clientソフトウェアのインストールと構成、および既存のBaculaサーバーの構成への追加が含まれます(前提条件で説明されています)。
CentOS 7ホストのバックアップを作成しようとしている場合は、代わりに次のリンクに従ってください:https://www.digitalocean.com/community/tutorials/how-to-back-up-a-centos-7-server-with-bacula [BaculaでCentOS 7サーバーをバックアップする方法]。
前提条件
このチュートリアルでは、次のリンクで説明されているように、Bacula Serverコンポーネントを実行しているサーバーがあることを前提としています。https://www.digitalocean.com/community/tutorials/how-to-install-bacula-server-on-ubuntu-14- 04 [Ubuntu 14.04にBaculaサーバーをインストールする方法]。
また、バックアップサーバーとクライアントの通信にプライベートネットワークインターフェイスを使用していると想定しています。 サーバーのプライベートFQDN(プライベートIPアドレスを指すFQDN)を参照します。 IPアドレスを使用している場合は、必要に応じて接続情報を置き換えてください。
このチュートリアルの残りの部分では、Bacula Serverを「BaculaServer」、「Bacula Server」、または「Backup Server」と呼びます。 バックアップされるリモートホストを「ClientHost」、「Client Host」、または「Client」と呼びます。
Baculaサーバーの設定を簡単に変更して始めましょう。
Bacula Director構成の整理(サーバー)
-
Baculaサーバー*で、このセクションを1回実行します。
Bacula Serverをセットアップする際、設定ファイルが非常に長いことに気づいたかもしれません。 Bacula Directorの構成を少し整理して、ジョブ、ファイルセット、プールなどの新しい構成を追加するために個別のファイルを使用します。
Baculaの設定ファイルを整理するのに役立つディレクトリを作成しましょう:
sudo mkdir /etc/bacula/conf.d
次に、Bacula Director構成ファイルを開きます。
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 +`ファイルを開きます:
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」プールを定義します。これは、後で作成するバックアップジョブで使用します。 必要に応じてパラメーターを自由に変更してください。
まだBacula Directorを再起動する必要はありませんが、設定にエラーがないことを確認しましょう。
sudo bacula-dir -tc /etc/bacula/bacula-dir.conf
エラーがなければ、Bacula Clientのセットアップに進む準備ができています。
Bacula Clientのインストールと構成
Baculaセットアップに追加する*クライアントホスト*でこのセクションを実行します。
まず、apt-getを更新します。
sudo apt-get update
次に、 `+ bacula-client +`パッケージをインストールします。
sudo apt-get install bacula-client
これにより、「Baculaクライアント」と呼ばれることが多いBacula File Daemon(FD)がインストールされます。
クライアントを構成する
クライアントファイルデーモンを構成する前に、このチュートリアルの残りの部分で使用される以下の情報を検索する必要があります。
-
クライアントホスト名::この例では「ClientHost」を使用します
-
*クライアントプライベートFQDN:*これを「client_private_FQDN」と呼び、「+ clienthost.private.example.com +」のように見える場合があります
-
* Bacula Serverホスト名:*この例では「BackupServer」を使用します
実際の設定は例とは異なるため、必要に応じて置換を行ってください。
ファイルデーモン構成を開きます。
sudo vi /etc/bacula/bacula-fd.conf
いくつかの項目を変更し、サーバー構成に必要な情報を保存する必要があります。
クライアントのホスト名にちなんで名付けられたDirectorリソースを見つけることから始めます(例: 「ClientHost-dir」)。 このクライアントを制御したいBacula DirectorはBaculaサーバーにあるため、「Name」パラメーターをバックアップサーバーのホスト名に「-dir」を付けて変更します。 「BackupServer」をBaculaサーバーのホスト名として使用した例に従って、更新後は次のようになります。
bacula-fd.conf-ディレクター名の更新
Director {
Name = -dir
Password = "IrIK4BHRA2o5JUvw2C_YNmBX_70oqfaUi"
}
また、File Daemonへの接続に使用される自動生成されたパスワードである `+ Password +`をコピーし、将来の参照のために保存する必要があります。 これは、クライアントのファイルデーモンに接続するために、今後のステップで設定するバックアップサーバーのディレクター構成で使用されます。
次に、FileDaemonリソースの1つのパラメーターを調整する必要があります。 クライアントマシンのプライベートFQDNと一致するように、「+ FDAddress 」パラメーターを変更します。 ` Name +`パラメータには、クライアントファイルデーモン名がすでに正しく設定されているはずです。 リソースは次のようになります(実際のFQDNまたはIPアドレスを置き換えます)。
bacula-fd.conf-FDAddressの更新
FileDaemon { # this is me
Name = -fd
FDport = 9102 # where we listen for the director
WorkingDirectory = /var/lib/bacula
Pid Directory = /var/run/bacula
Maximum Concurrent Jobs = 20
FDAddress =
}
また、ログメッセージをバックアップサーバーに渡すようにこのデーモンを構成する必要があります。 Messagesリソースを見つけて、「+ diror +」パラメーターを変更して、バックアップサーバーのホスト名に「-dir」サフィックスを付けます。 これは次のようになります。
bacula-fd.conf-更新ディレクター
Messages {
Name = Standard
director = -dir = all, !skipped, !restored
}
ファイルを保存して終了します。 これで、ファイルデーモン(Bacula Client)がプライベートネットワーク経由の接続をリッスンするように構成されました。
次のコマンドを使用して、構成ファイルの構文が正しいことを確認してください。
sudo bacula-fd -tc /etc/bacula/bacula-fd.conf
コマンドが出力を返さない場合、構成ファイルには有効な構文があります。 ファイルデーモンを再起動して、新しい設定を使用します。
sudo service bacula-fd restart
Baculaサーバーがファイルを復元できるディレクトリを設定しましょう。 次のコマンドを使用して、ファイル構造を作成し、セキュリティのためにアクセス許可と所有権をロックダウンします。
sudo mkdir -p /bacula/restore
sudo chown -R bacula:bacula /bacula
sudo chmod -R 700 /bacula
これで、クライアントマシンが正しく構成されました。 次に、Bacula Clientに接続できるようにバックアップサーバーを設定します。
ファイルセットの追加(サーバー)
Bacula FileSetは、ファイルまたはディレクトリのセットを定義して、バックアップ選択からファイルを含めたり除外したりし、Baculaサーバー上のバックアップジョブによって使用されます。
Baculaサーバーのコンポーネントをセットアップする前提条件チュートリアルに従った場合、「フルセット」と呼ばれるファイルセットをすでに持っています。 バックアップクライアント上のほぼすべてのファイルを含むバックアップジョブを実行する場合、ジョブでそのFileSetを使用できます。 ただし、サーバー上のすべてのバックアップを必要としない、または必要としないことが多く、データのサブセットで十分であることがわかる場合があります。
FileSetに含まれるファイルをより選択的にすると、バックアップサーバーがバックアップジョブを実行するために必要なディスク容量と時間を削減できます。 また、復元するファイルを見つけるために「フルセット」をふるいにかける必要がないため、復元が簡単になります。
バックアップする対象をより選択できるように、新しいFileSetリソースを作成する方法を示します。
-
Bacula Server *で、先ほど作成したBacula Director設定ディレクトリで、 `+ filesets.conf +`というファイルを開きます。
sudo vi /etc/bacula/conf.d/filesets.conf
バックアップジョブで使用する特定のファイルセットごとにFileSetリソースを作成します。 この例では、ホームディレクトリとetcディレクトリのみを含むFileSetを作成します。
filesets.conf-ホームおよびその他のファイルセットを追加
FileSet {
Name = ""
Include {
Options {
signature = MD5
compression = GZIP
}
}
Exclude {
}
}
このファイルでは多くのことが行われていますが、留意すべき詳細がいくつかあります。
-
ファイルセット名は一意である必要があります
-
バックアップしたいファイルまたはパーティションを含めます
-
バックアップしたくないが、インクルードファイル内に存在する結果として選択されたファイルを除外します
必要に応じて、複数のファイルセットを作成できます。 完了したら、保存して終了します。
これで、新しいFileSetを使用するバックアップジョブを作成する準備が整いました。
クライアントとバックアップジョブをBaculaサーバーに追加する
これで、クライアントをBaculaサーバーに追加する準備が整いました。 これを行うには、新しいクライアントとジョブのリソースでBacula Directorを設定する必要があります。
`+ conf.d / clients.conf +`ファイルを開きます:
sudo vi /etc/bacula/conf.d/clients.conf
クライアントリソースを追加
クライアントリソースは、クライアントホストに接続するために必要な情報でディレクターを構成します。 これには、クライアントのファイルデーモンの名前、アドレス、およびパスワードが含まれます。
このクライアントリソース定義をファイルに貼り付けます。 クライアントのホスト名、プライベートFQDN、およびパスワード(クライアントの `+ bacula-fd.conf +`から)を必ず置き換えてください(強調表示されている場合)。
conf.d / clients.conf-クライアントリソースの追加
Client {
Name = -fd
Address =
FDPort = 9102
Catalog = MyCatalog
Password = "" # 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 = "Backup"
JobDefs = "DefaultJob"
Client = -fd
Pool = RemoteFile
FileSet="Home and Etc"
}
これにより、「BackupClientHost」というバックアップジョブが作成され、「Home and Etc」ファイルセットで定義されているように、クライアントホストのホームディレクトリなどがバックアップされます。 「DefaultJob」JobDefsおよび「RemoteFile」Poolリソースで指定された設定を使用します。どちらもメインの `+ bacula-dir.conf `ファイルで定義されています。 デフォルトでは、 ` JobDefs =" DefaultJob "+`を指定するジョブは毎週実行されます。
完了したら保存して終了します。
ディレクター構成の確認
Director構成ファイルに構文エラーがないことを確認しましょう。
sudo bacula-dir -tc /etc/bacula/bacula-dir.conf
シェルプロンプトに戻った場合、Bacula Directorの設定ファイルに構文エラーはありません。
Bacula Directorを再起動します
行った設定変更を有効にするには、Bacula Directorを再起動します:
sudo service bacula-director restart
これで、クライアント、またはリモートホストは、Baculaサーバーによってバックアップされるように設定されました。
クライアント接続のテスト
Bacula DirectorがBacula Clientに接続できることを確認する必要があります。
Baculaサーバーで、Baculaコンソールに入ります:
sudo bconsole
status client
Select Client resource: ClientHost-fdThe defined Client resources are:
1: BackupServer-fd
2: ClientHost-fd
Select Client (File daemon) resource (1-2):
クライアントのファイルデーモンのステータスはすぐに返されます。 そうでなく、接続エラーがある場合、Baculaサーバーまたはクライアントのファイルデーモンの構成に何か問題があります。
バックアップジョブのテスト
バックアップジョブを実行して、機能することを確認します。
-
Bacula Server *で、まだコンソールにいる間に、次のコマンドを使用します。
run
実行するジョブを選択するよう求められます。 以前に作成したものを選択します。 “4. BackupClientHost」:
Select Job resource: BackupClientHostThe defined Job resources are:
1: BackupLocalFiles
2: BackupCatalog
3: RestoreLocalFiles
4: BackupClientHost
Select Job resource (1-4):
確認プロンプトで、「yes」と入力します。
Confirmation prompt:
OK to run? (yes/mod/no):
メッセージとステータスを確認する
ジョブを実行すると、Baculaはメッセージがあることを通知します。 メッセージは、ジョブの実行によって生成された出力です。
次を入力してメッセージを確認します。
messages
メッセージには、「以前のフルバックアップジョブレコードが見つかりません」と表示され、バックアップジョブが開始されたことが示されます。 エラーがある場合、何かが間違っているので、ジョブが実行されなかった理由についてのヒントを提供する必要があります。
ジョブのステータスを確認する別の方法は、ディレクターのステータスを確認することです。 これを行うには、bconsoleプロンプトで次のコマンドを入力します。
status director
すべてが正常に機能している場合、ジョブが実行中または「OK」ステータスで終了していることがわかります。
復元を実行する
新しいBaculaクライアントを初めて設定するときは、復元が適切に機能することをテストする必要があります。
復元を実行したい場合、Baculaコンソールで `+ restore +`コマンドを使用します:
restore all
選択メニューには、さまざまなオプションが表示されます。これらのオプションは、復元するバックアップセットを識別するために使用されます。 バックアップは1つしかないため、「最新のバックアップを選択する」-オプション5を選択します。
Select item (1-13):5
次に、復元するクライアントを指定する必要があります。 設定したばかりのリモートホストを復元したい 「ClientHost-fd」:
Select the Client: ClientHost-fdDefined Clients:
1: BackupServer-fd
2: ClientHost-fd
Select the Client (1-2):
これにより、バックアップしたディレクトリ構造全体を含む仮想ファイルツリーにドロップされます。 このシェルのようなインターフェイスにより、単純なコマンドを使用して、復元するファイルをマークおよびマーク解除することができます。
「すべて復元する」ことを指定したため、バックアップされたすべてのファイルはすでに復元対象としてマークされています。 マークされたファイルは、先頭の「+ * +」文字で示されます。
選択を微調整する場合は、「ls」コマンドと「cd」コマンドを使用してファイルをナビゲートおよびリストし、「マーク」で復元するファイルをマークし、「マーク解除」でファイルのマークを解除します。 コンソールに「help」と入力すると、コマンドの完全なリストが利用できます。
復元の選択が完了したら、次のように入力して続行します。
done
復元ジョブを実行することを確認します。
OK to run? (yes/mod/no):yes
メッセージとステータスを確認する
バックアップジョブと同様に、復元ジョブを実行した後、メッセージとDirectorのステータスを確認する必要があります。
次を入力してメッセージを確認します。
messages
復元ジョブが開始されたか、「復元OK」ステータスで終了したことを示すメッセージが表示されます。 エラーがある場合、何かが間違っているので、ジョブが実行されなかった理由についてのヒントを提供する必要があります。
繰り返しますが、Directorのステータスを確認することは、復元ジョブの状態を確認するための優れた方法です。
status director
復元が終了したら、「+ exit +」と入力してBaculaコンソールを終了します。
exit
すべてが正常に機能した場合、復元されたファイルはクライアントホストの `+ / bacula / restore +`ディレクトリにあります。 単に復元プロセスをテストする場合は、そのディレクトリの内容を削除する必要があります。
結論
これで、リモートBacula ClientからファイルをバックアップしているBaculaサーバーができました。 ニーズに合ったスケジュールで正しいFileSetsをバックアップしていることが確実になるまで、構成を確認および修正してください。 CentOS 7ホストのバックアップを作成しようとしている場合は、https://www.digitalocean.com/community/tutorials/how-to-back-up-a-centos-7-server-with-bacula [ BaculaでCentOS 7サーバーをバックアップする方法]。
次にすべきことは、バックアップしたい追加のUbuntu 14.04サーバーについて、このチュートリアルの関連セクションを繰り返すことです。