Ubuntu14.04にBaculaServerをインストールする方法

前書き

Baculaは、コンピューターシステムのバックアップを作成し、データ回復を実行できるオープンソースのネットワークバックアップソリューションです。非常に柔軟で強力なため、構成が少し面倒で、多くの状況でのバックアップに適しています。データ損失からの回復は通常、災害回復計画の重要な部分であるため、バックアップシステムはほとんどのサーバーインフラストラクチャで重要なコンポーネントです。

このチュートリアルでは、Ubuntu14.04サーバーにBaculaのサーバーコンポーネントをインストールして構成する方法を示します。毎週のジョブを実行し、ローカルバックアップ(つまり、独自のホストのバックアップ)を作成するようにBaculaを構成します。これ自体はBaculaの特に魅力的な使用法ではありませんが、他のサーバー(つまり、バックアップクライアント)のバックアップを作成するための良い出発点を提供します。このシリーズの次のチュートリアルでは、Baculaクライアントをインストールして構成し、Baculaサーバーを構成することにより、他のリモートサーバーのバックアップを作成する方法を紹介します。

準備 ##

sudoコマンドを使用できる非rootアカウントを持つUbuntu サーバーがセットアップされ、ファイアウォールがオンになっています。サーバーをお持ちでない方は[こちら](https://cloud.tencent.com/product/cvm?from=10680)から購入できますが、個人的には無料のTencent Cloud [Developer Lab](https://cloud.tencent.com/developer/labs?from=10680)を使って実験し、[サーバーを購入]( https://cloud.tencent.com/product/cvm?from=10680)。

bacula.private.example.comなどのサーバーのプライベートFQDNを使用するようにBaculaを構成します。 DNS設定がない場合は、代わりに対応するIPアドレスを使用してください。プライベートネットワークを有効にしていない場合は、このチュートリアルのすべてのネットワーク接続情報を、関連するサーバーからアクセスできるネットワークアドレス(たとえば、パブリックIPアドレスやV **トンネル)に置き換えてください。

まず、Baculaコンポーネントの概要を見てみましょう。

Baculaコンポーネントの概要

Baculaはいくつかのソフトウェアコンポーネントで構成されていますが、サーバークライアントバックアップモデルに従います。説明を簡単にするために、単一のBaculaコンポーネントではなく、バックアップサーバーと**バックアップクライアントに焦点を当てます。それでも、さまざまなBaculaコンポーネントを大まかに理解することは依然として重要なので、ここでそれらについて説明します。

「バックアップサーバー」とも呼ばれるBacula ** Server **には、次のコンポーネントがあります。

注:Baculaサーバーコンポーネントは同じサーバー上で実行する必要はありませんが、連携してバックアップサーバー機能を提供します。

バックアップするサーバーであるBacula ** Client は、 File Daemon(FD)**コンポーネントを実行します。ファイルデーモンは、Baculaサーバー(特にDirector)にバックアップするデータへのアクセスを提供するソフトウェアです。これらのサーバーを「バックアップクライアント」または「クライアント」とも呼びます。

はじめに述べたように、独自のファイルシステムのバックアップを作成するようにバックアップサーバーを構成します。これは、バックアップサーバーがバックアップクライアントでもあり、ファイルデーモンコンポーネントを実行することを意味します。

インストールを始めましょう。

MySQLをインストール

Baculaは、SQLデータベース(MySQLやPostreSQLなど)を使用してバックアップディレクトリを管理します。このチュートリアルではMySQLを使用します。

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

sudo apt-get update

次に、apt-getを使用してMy [SQL Server](https://cloud.tencent.com/product/sqlserver?from=10680)をインストールします。

sudo apt-get install mysql-server

MySQLデータベース管理ユーザーrootのパスワードを入力するように求められます。パスワードを入力して確認します。

このパスワードはBaculaのインストールプロセス中に使用されるため、覚えておいてください。

Baculaをインストール

apt-getを使用して、Baculaサーバーとクライアントコンポーネントをインストールします。

sudo apt-get install bacula-server bacula-client

Baculaが使用するPostfixの構成に使用されるいくつかの情報を入力するように求められます。

次に、Baculaデータベースの設定に使用する情報を入力するように求められます。

インストールの最後のステップは、Baculaがカタログバックアップジョブで使用するスクリプトのアクセス許可を更新することです。

sudo chmod 755/etc/bacula/scripts/delete_catalog_backup

これで、Baculaサーバー(およびクライアント)コンポーネントがインストールされました。バックアップと復元のディレクトリを作成しましょう。

バックアップおよび復元ディレクトリを作成する

Baculaには、バックアップアーカイブを保存するための** backup ディレクトリと復元されたファイルが配置される restore **ディレクトリが必要です。システムに複数のパーティションがある場合は、十分なスペースのあるディレクトリにディレクトリを作成してください。

次の2つの目的で新しいディレクトリを作成しましょう。

sudo mkdir -p /bacula/backup /bacula/restore

baculaプロセス(およびスーパーユーザー)のみがこれらの場所にアクセスできるように、ファイルのアクセス許可を変更する必要があります。

sudo chown -R bacula:bacula /bacula
sudo chmod -R 700/bacula

これで、BaculaDirectorを構成する準備が整いました。

BaculaDirectorを構成する

Baculaには、正しく機能するために個別に構成する必要のあるいくつかのコンポーネントがあります。構成ファイルは / etc / baculaディレクトリにあります。

バキュラ監督から始めましょう。

お気に入りのテキストエディタでBaculaDirector構成ファイルを開きます。 viを使用します:

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

ローカルジョブを構成する

Baculaジョブは、バックアップおよび復元操作を実行するために使用されます。ジョブリソースは、クライアントの名前、バックアップまたは復元するFileSetなど、特定のジョブが実行する操作の詳細情報を定義します。

ここでは、ローカルファイルシステムのバックアップを実行するために使用されるジョブを構成します。

Director構成で、「BackupClient1」という名前のジョブリソースを見つけます(「BackupClient1」を検索します)。 Nameの値を" BackupLocalFiles "に変更して、次のようにします。

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

次に、「RestoreFiles」という名前の** job **リソースを見つけます(「RestoreFiles」を検索します)。この作業では、「Name」の値を「RestoreLocalFiles」に更新することと、「Where」の値を「/ bacula / restore」に更新することの2つを変更します。次のようになります。

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

これにより、RestoreLocalFilesジョブが構成され、 / bacula / restoreファイルが前に作成したディレクトリに復元されます。

構成ファイルセット

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

「フルセット」という名前のFileSetリソースを見つけます(コメント「#バックアップするファイルのリスト」にあります)。ここでは、3つの変更を行います。(1)gzipを使用してバックアップを圧縮するオプションを追加し、(2)インクルードファイルを / usr / sbinから/に変更し、(3)2番目の除外ファイルを変更します。 / baculaに変更します。コメントを削除すると、次のようになります。

FileSet {
 Name ="Full Set"
 Include {
 Options {
  signature = MD5
  compression = GZIP
    }    
File =/}
 Exclude {
 File =/var/lib/bacula
 File =/bacula
 File =/proc
 File =/tmp
 File =/.journal
 File =/.fsck
  }}

「フルセット」ファイルセットに加えた変更を確認しましょう。まず、バックアップアーカイブを作成するときにgzip圧縮を有効にしました。次に、ルートパーティションである /バックアップを含めます。第3に、Baculaのバックアップと復元ファイルを冗長的にバックアップしたくないため、 / baculaを除外します。

注:/にパーティションがマウントされていて、これらのパーティションをFileSetに含めたい場合は、パーティションごとにファイルレコードを追加する必要があります。

幅広いファイルセット(「フルセット」など)が常にバックアップジョブで使用される場合、バックアップには、バックアップ選択のより具体的なディスクスペースよりも多くのディスクスペースが必要になることに注意してください。たとえば、カスタム構成ファイルとデータベースを含むFileSetだけで十分な場合があります。明確な回復計画がある場合は、必要なソフトウェアパッケージをインストールし、回復したファイルを適切な場所に配置するように詳細に指定し、1つだけを使用します。バックアップアーカイブ用のディスクスペースのごく一部。

ストレージデーモン接続を構成します

Bacula Director構成ファイルで、Storageリソースは、Directorが接続する必要のあるStorageDaemonを定義します。実際のストレージデーモンを短時間で構成します。

ストレージリソースを見つけて、Addressの値を localhostバックアップサーバーの専用FQDN(または専用IPアドレス)に置き換えます。次のようになります(Address =の後のフレーズを置き換えます):

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

これが必要なのは、リモートクライアントが接続できるように専用のネットワークインターフェイスでリッスンするようにストレージデーモンを構成するためです。

プールの構成

プールリソースは、バックアップを書き込むためにBaculaが使用するセーブセットを定義します。ストレージボリュームとしてファイルを使用します。ローカルバックアップに適切なラベルが付けられるように、ラベルを更新する必要があります。

「File」という名前のプールリソース(コメント「#FilePooldefinition」の下にあります)を見つけて、ラベル形式を指定する行を追加します。完了すると、次のようになります。

# File Pool definition
Pool {
 Name = File
 Pool Type = Backup
 Label Format = Local-
 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
}

保存して終了。これで、BaculaDirectorの構成がようやく完了しました。

Director構成を確認してください:

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

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

エラーメッセージがない場合、 bacula-dir.confファイルには構文エラーはありません。

次に、ストレージデーモンを構成します。

ストレージデーモンを構成する

Baculaサーバーはほぼセットアップされていますが、ストレージデーモンを構成する必要があるため、Baculaはバックアップを保存する場所を認識しています。

お気に入りのテキストエディタでSD構成を開きます。 viを使用します:

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

ストレージリソースを構成する

ストレージリソースを見つけます。これは、SDプロセスが接続をリッスンする場所を定義します。 SDAddressパラメータを追加し、バックアップサーバーの専用FQDN(または専用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 = backup_server_private_FQDN
}

ストレージデバイスを構成する

次に、「FileStorage」という名前のデバイスリソースを見つけ(「FileStorage」を検索)、バックアップディレクトリに一致するように「ArchiveDevice」の値を更新します。

Device {
 Name = FileStorage
 Media Type = File
 Archive Device =/bacula/backup 
 LabelMedia = yes;                   # lets Bacula label unlabeled media
 Random Access = Yes;
 AutomaticMount = yes;               # when device opened, read it
 RemovableMedia = no;
 AlwaysOpen = no;}

保存して終了。

ストレージデーモンの構成を確認します

StorageDaemon構成ファイルに構文エラーがあるかどうかを確認しましょう。

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

エラーメッセージがない場合、 bacula-sd.confファイルには構文エラーはありません。

Baculaの設定が完了しました。 Baculaサーバーコンポーネントを再起動する準備ができました。

BaculaDirectorとStorageDaemonを再起動します

行った構成変更を有効にするには、次のコマンドを使用してBaculaDirectorとStorageDaemonを再起動します。

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

両方のサービスが再起動されたので、バックアップジョブを実行して、サービスが正しく機能しているかどうかをテストしましょう。

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

Baculaコンソールを使用して最初のバックアップジョブを実行します。問題なく動作する場合は、Baculaが正しく構成されていることがわかります。

次に、次のコマンドを使用してコンソールに入ります。

sudo bconsole

これにより、 *プロンプトで示されるBaculaConsoleプロンプトが表示されます。

ラベルを作成

最初に labelコマンドを発行します。

label

ボリューム名を入力するように求められます。任意の名前を入力してください。

MyVolume

次に、バックアップで使用するプールを選択します。以前に構成した「ファイル」プールを使用し、「2」と入力します。

2

バックアップジョブを手動で実行する

Baculaは、バックアップ用のデータを書き込む方法を認識しました。これで、バックアップを実行して、機能しているかどうかをテストできます。

run

実行するジョブを選択するように求められます。 「BackupLocalFiles」ジョブを実行したいので、プロンプトで「1」を入力します。

1

「バックアップジョブの実行」確認プロンプトで詳細を確認し、「はい」と入力してジョブを実行します。

yes

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

仕事を終えた後、バキュラはあなたにニュースがあることを教えてくれます。メッセージは、ジョブの実行によって生成された出力です。

メールを確認するには、次のように入力します。

messages

「以前の完全なバックアップジョブレコードが見つかりませんでした」というメッセージが表示され、バックアップジョブが開始されました。エラーがある場合、それは間違っており、ジョブが実行されていないことを示唆するはずです。

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

status director

すべて問題がなければ、作業が実行されていることがわかります。このようなもの:

Running Jobs:
Console connected at 09-Apr-1512:16
 JobId Level   Name                       Status
======================================================================3 Full    BackupLocalFiles.2015-04-09_12.31.41_06 is running
====

作業が完了すると、以下に示すように、ステータスレポートの[終了したジョブ]セクションに移動します。

Terminated Jobs:
 JobId  Level    Files      Bytes   Status   Finished        Name
====================================================================3 Full    161,124877.5 M  OK       09-Apr-1512:34 BackupLocalFiles

「OK」ステータスは、バックアップジョブが問題なく実行されていることを意味します。おめでとう! Baculaサーバーの「フルセット」バックアップがあります。

次のステップは、復元ジョブをテストすることです。

復元ジョブのテスト

バックアップが作成されたので、正しく復元できるかどうかを確認することが重要です。 restoreコマンドを使用すると、バックアップされたファイルを復元できます。

すべてのジョブの復元を実行します

実例を示すために、最後のバックアップからすべてのファイルを復元します。

restore all

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

5

クライアントはBaculaサーバーの1つしかないため、自動的に選択されます。

次のプロンプトでは、使用するFileSetを尋ねられます。 「フルセット」を選択します。2になります。

2

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

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

選択を微調整する場合は、「ls」および「cd」コマンドを使用してファイルをナビゲートおよびリストし、「mark」を使用して復元するファイルにマークを付け、「unmark」を使用してファイルのマークを解除します。コンソールで「help」と入力すると、コマンドの完全なリストを取得できます。

リカバリの選択が完了したら、次のように入力します。

done

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

yes

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

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

メールを確認するには、次のように入力します。

messages

復元ジョブが開始または終了し、「通常の復元」ステータスになったことを示すメッセージが表示されます。エラーがある場合、それは間違っており、ジョブが実行されていないことを示唆するはずです。

同様に、Directorのステータスを確認することは、復元ジョブのステータスを表示するための良い方法です。

status director

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

exit

復元を確認します

復元ジョブが選択したファイルを実際に復元したことを確認するには、 / bacula / restoreディレクトリ(Director構成の" RestoreLocalFiles "ジョブで定義)を表示できます。

sudo ls -la /bacula/restore

「RestoreLocalFiles」ジョブの「Exclude」セクションにリストされているファイルとディレクトリを除いて、ルートファイルシステムに復元されたファイルのコピーが表示されます。データ損失から回復しようとしている場合は、復元されたファイルを適切な場所にコピーできます。

復元されたファイルを削除する

復元されたファイルを削除して、ディスク領域を解放することをお勧めします。これを行うには、次のコマンドを使用します。

sudo -u root bash -c "rm -rf /bacula/restore/*"

復元されたファイルの多くはrootが所有しているため、この rmコマンドをrootとして実行する必要があることに注意してください。

結論として ##

これで、ローカルファイルシステムをバックアップおよび復元するための基本的なBaculaセットアップが完了しました。次のステップは、データが失われた場合にそれらを復元するために、バックアップクライアントとして他のサーバーを追加することです。

その他のUbuntuチュートリアルについては、[Tencent Cloud + Community](https://cloud.tencent.com/developer?from=10680)にアクセスして詳細を確認してください。

参照:「Ubuntu14.04にBaculaサーバーをインストールする方法」

Recommended Posts

Ubuntu14.04にBaculaServerをインストールする方法
Ubuntu16.04サーバーにZabbixをインストールする方法
Ubuntu18.04にSquidプロキシサーバーをインストールする方法
Ubuntu20.04にRubyをインストールする方法
Ubuntu20.04にMemcachedをインストールする方法
Ubuntu20.04にJavaをインストールする方法
Ubuntu20.04にMySQLをインストールする方法
Ubuntu20.04にVirtualBoxをインストールする方法
Ubuntu20.04にElasticsearchをインストールする方法
UbuntuにProtobuf3をインストールするための詳細なチュートリアル
Ubuntu20.04にNginxをインストールする方法
Ubuntu20.04にApacheをインストールする方法
Ubuntu20.04にGitをインストールする方法
Ubuntu16.04にNode.jsをインストールする方法
Ubuntu20.04にMySQLをインストールする方法
Ubuntu20.04にVagrantをインストールする方法
Ubuntu14.04にBacula-Webをインストールする方法
Ubuntu16.04にPostgreSQLをインストールする方法
Ubuntu20.04にGitをインストールする方法
Ubuntu18.04にAnaconda3をインストールする方法
Ubuntu18.04にMemcachedをインストールする方法
Ubuntu16.04にJenkinsをインストールする方法
Ubuntu14.04にMemSQLをインストールする方法
Ubuntu20.04にGoをインストールする方法
Ubuntu16.04にMongoDBをインストールする方法
Ubuntu14.04にMailpileをインストールする方法
Ubuntu16.04にPrestaShopをインストールする方法
Ubuntu20.04にSkypeをインストールする方法
Ubuntu20.04にJenkinsをインストールする方法
Ubuntu18.04にPython3.8をインストールする方法
Ubuntu18.04にKVMをインストールする方法
Ubuntu20.04にKVMをインストールする方法
ubuntu14.04にopencv3.0.0をインストールする方法
Ubuntu20.04にAnacondaをインストールする方法
Ubuntu16.04にPrometheusをインストールする方法
Ubuntu18.04にJenkinsをインストールする方法
Ubuntu20.04にApacheをインストールする方法
Ubuntu20.04にRをインストールする方法
Ubuntu16.04にMoodleをインストールする方法
Ubuntu14.04にSolr5.2.1をインストールする方法
Ubuntu16.04にTeamviewerをインストールする方法
Ubuntu20.04にMariaDBをインストールする方法
Ubuntu20.04にNginxをインストールする方法
Ubuntu20.04にMonoをインストールする方法
Ubuntu20.04にGoをインストールする方法
Ubuntu20.04にZoomをインストールする方法
Ubuntu16.04にNginxをインストールする方法
Ubuntu20.04にOpenCVをインストールする方法
Ubuntu20.04にSpotifyをインストールする方法
Ubuntu18.04にPostmanをインストールする方法
Ubuntu16.04にGo1.6をインストールする方法
Ubuntu18.04にGoをインストールする方法
Ubuntu14.04にMySQLをインストールする方法
Ubuntu20.04にPostgreSQLをインストールする方法
Ubuntu18.04にVLCをインストールする方法
Ubuntu20.04にTeamViewerをインストールする方法
Ubuntu20.04にWebminをインストールする方法
Ubuntu18.04にDockerComposeをインストールする方法
RaspberryPiにUbuntuをインストールする方法
Ubuntu 18.04(linux)にMySQLをインストールする方法
Ubuntu16.04でSambaサーバーを使用する方法