Ubuntu12.04VPSでBaculaを使用してリモートバックアップを構成する方法
ステータス:非推奨
この記事では、サポートされなくなったバージョンの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です。 これらの値を変更して、使用しているマシンのサーバー名を反映させます。
目次
クライアントのインストール
ローカルバックアップはリモートクライアントマシンに保存されないため、すべての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
ご覧のとおり、ファイルシステムはこのフォルダに正しく復元されています。