Backup のクライアント/サーバーテクノロジーでは、ネットワーク用の遠隔手続き呼び出し (Remote Procedure Call, RPC) プロトコルを使ってデータをバックアップします。Backup サーバーソフトウェアはデーモンとプログラムから成っていて、バックアップと復旧の処理だけでなく、ストレージ管理クライアントの構成、クライアントファイルインデックスとメディアデータベースの監視も行います。Backup クライアントソフトウェアには、nsrexecd デーモンとユーザーインタフェースプログラムがあります。
この章では、Backup がどのようにバックアップと復旧を行うかについて概説します。バックアップと復旧の処理を図示して、Backup によるストレージ管理のしくみをわかりやすく説明します。
Backup は、バックアップ要求を受け取ると、デーモンとプログラムを呼び出します。これらのデーモンがバックアップと復旧に関連するタスクを調整し、バックアップ対象についての情報と、バックアップされたデータを格納しているメディアについての情報を記録します。
この節では、Backup サーバーとストレージノードで使われるデーモンとプログラムについて説明します。これらのデーモンとプログラムは、バックアップのためにクライアントと交信し、サーバーが持つクライアントファイルインデックスとメディアデータベースを保守します (ストレージノードの詳細は、「ストレージノードでの Backup の動作」を参照)。Backup のデーモンとプログラムの詳細は、Backup 関連のマニュアルページにも説明されています。表 A-1 に、サーバー側のデーモンとプログラムを示します。
表 A-1 サーバーのデーモンとプログラムの機能
デーモン/プログラム |
機能 |
---|---|
アクティブな save セッションまたは recover セッションを監視するデーモン。save セッションまたは recover セッションに応答して nsrd デーモンが生成するエージェントプロセスである |
|
個々のセーブセットの進行状況を監視するデーモン。savegrp プログラムによって起動されるエージェントプロセスである |
|
クライアントファイルインデックスの整合性を検査するデーモン。この整合性の確認が必要になった時点で nsrd デーモンによって起動される |
|
Backup のクライアントに対して RPC ベースの save サービスと recover サービスを提供する。マスターの Backup デーモンである |
|
サーバーが持つクライアントファイルインデックスを自動的に管理するデーモン。savegrp プログラムの終了時に起動される |
|
save プログラムが渡す情報に基づいて、クライアントファイルインデックスにエントリを挿入するデーモン |
|
デバイスをサポートし、マウント要求を生成し、マルチクライアントをバックアップする際のセーブセットデータを多重化するデーモン。nsrd デーモンを使って、デバイスの「Target Sessions」属性に指定されている数以下の nsrmmd デーモンを起動できる。メディア多重化デーモンである |
|
ローカルの nsrd と nsrmmd の両デーモンに対してメディアデータベースとセーブセットのデータベース管理サービスを行い、メディアデータベースにエントリを記述するデーモン。メディア管理データベースデーモンである |
|
save プロセスによって Backup クライアントのグループを実行するプログラム |
マスターの Backup サーバーデーモンである nsrd によって、次のタスクが行われます。
ほかのデーモンを起動する
サーバーマシンとストレージノードマシンでメディアデーモンを割り当てる
クライアントに対してバックアップサービスと復旧サービスを認証する
スケジュールされたバックアップのためにクライアントと交信する
Backup 構成情報を管理する
バックアップセッションと復旧セッションを監視する
サーバー統計情報とメッセージログを管理する
スケジュールされた、または必要性に応じたバックアップ要求を受け取ると、Backup サーバーデーモン nsrd は、Backup クライアントデーモン nsrexecd とクライアント側のプログラムを呼び出します。一時的なサーバーエージェントデーモンである ansrd は、Backup サーバー上でバックアップセッションの進行状況を監視します。表 A-2 に、クライアント側のデーモンとプログラムを示します。
表 A-2 クライアントのデーモンとプログラム
デーモン/プログラム |
機能 |
---|---|
Backup サーバーのリモートからの実行要求を認証し、クライアント上で save コマンドと savefs コマンドを実行するデーモン |
|
Backup サーバーが持つクライアントファイルインデックスをブラウズして、指定されたファイルを主ディスクストレージ上に復旧するプログラム |
|
nsrmmd デーモンによってメディアにバックアップし、nsrindexd デーモンによってエントリをクライアントファイルインデックスとメディアデータベースに挿入するために、指定されたファイルを多重化データストリームを介して Backup サーバーに送るプログラム |
|
クライアントをバックアップするために、セーブセットについての情報を送るプログラム。前回のレベルの save コマンド以後に変更されたセーブセットのデータを識別する |
Backup サーバー上でバックアップグループを構成するときに、バックアップグループの開始時間をスケジュールします。スケジュールされた時間になると、サーバーデーモン nsrd がサーバープログラム savegrp を起動してバックアップグループを保存します。
savegrp プログラムは、Backup サーバー上で構成済みのクライアントリソースに照会して、次のことを判断します。
サーバー上で構成済みのクライアントのうち、スケジュールされたグループのメンバー
実行しなければならないバックアップ (save) のレベル
並列に実行するセーブセットの数。これは、Backup サーバーで設定されている並列数によって決まります。
グループに対して前回バックアップが行われた時期
これらの情報のうち Backup サーバーで入手できないものがあると、savegrp プログラムはクライアント側の nsrexecd デーモンに要求を送り、バックアップグループに割り当てられているクライアントごとに savefs プログラムを実行して、必要な詳細情報を収集するよう依頼します。
savefs プログラムは、各クライアントのバックアップすべきオブジェクトを savegrp プログラムに知らせます。savegrp プログラムが、バックアップすべきオブジェクトの情報を受け取ったら、サーバー用にワークリストを作成します。このワークリストには、バックアップのために各クライアントに交信する順序が指定されています。この順序は、「Clients」リソースの「Client Property」属性で決まります。「Client Property」属性がもっとも小さい値のクライアントが、最初に交信されます。
前のバックアップセッション中にクライアントファイルインデックスに問題が起こった場合には、nsrd デーモンが nsrck デーモンを起動して、Backup サーバーが持つクライアントファイルインデックスとメディアデータベースの整合性と状態を検査します。そのあとで、nsrd デーモンがクライアントファイルインデックスのエントリ挿入デーモン nsrindexd を起動します。
savegrp プログラムは、サーバーのワークリストにある最初のクライアントに交信します。そのクライアントの nsrexecd デーモンが起動され、サーバーのワークリストにある最初のセーブセットの save セッションを起動します。save プログラムは、グループ、クライアント、セーブセット、ストレージノードのアフィニティ、保存データのレベルなどのすべての保存基準を nsrd デーモンに渡します。nsrd デーモンは、これらの情報によってデータを格納するボリュームのプールを決め、Backup サーバー上か、または Backup サーバーが制御しているストレージノード上の適切なメディアデーモンに、これらの情報を転送します。
メディアデーモン nsrmmd は、次の処理をします。
Backup サーバーのコンソールにメッセージを送り、nsrd デーモンが指定したボリュームプールに割り当てられているメディアをマウントするよう依頼する
save プログラムによって送られたデータをストレージメディアに書き込む
Backup サーバーのメディアデータベースに記録するため、保管情報を nsrmmdbd デーモンに転送する
クライアントから起動されるセーブセットの動作が少しでも休止すると、プロセスの動作に、Backup サーバーはグループ内で別のセーブセットを探そうとします。savegrp プログラムは、Backup サーバー構成の並列処理属性で指定されている上限値に達するまで、できるだけ多くのセーブセットを並行してバックアップしようと試みます。これによって、バックアップデバイスを最大限に活用できます。
savegrp プログラムは、サーバーのワークリストにある各項目の処理を、グループのすべてのクライアントがバックアップされるまで繰り返します。savegrp プログラムの処理が終わる前に、Backup サーバーがバックアップ中のグループに属しているか、あるいはこのサーバーが有効などのグループにも属していないことがわかると、nsrim デーモンが起動され、Backup サーバーの「ブートストラップ」ファイルがバックアップされます。ブートストラップファイルのバックアップが終わると、Backup サーバー用に構成されているデフォルトプリンタに、ブートストラップの出力結果が送られます。この出力結果は、Backup サーバーの復旧が必要になる場合に備えて、安全な場所に保管しておいてください。
savegrp プログラムの最終実行結果はサーバーに送り返され、セーブグループ完了レポートに記載されます。このレポートは、電子メールでスーパーユーザーに送られます。
図 A-1 に、スケジュールされた保存処理時に、Backup サーバーとクライアントのすべてのデーモンとプログラムが、どのように関係し合って動作するかを示します。
Backup がクライアントから recover 要求を受け取ると、サーバーデーモン nsrd が、サーバーのメディアデーモン nsrmmd に交信します。nsrmmd デーモンは、サーバーのメディアデータベースデーモン nsrmmdbd に交信して、recover プログラムが要求したセーブセットがどのメディアにあるかを判断します。セーブセットが格納されているメディアがわかったら、nsrmmd デーモンがマウント要求を出し、そのメディアがセーブセットの先頭に移され、マウントされたメディア内のセーブセットが nsrmmd デーモンに渡されます。nsrmmd デーモンは、このセーブセットをクライアントの recover プログラムに転送し、recover プログラムがデータをクライアントのファイルシステムに復旧します。
サーバーのメディアデータベースデーモン nsrmmdbd が必要なボリュームを探せない場合、あるいは Backup ストレージノードまたはサーバー上に nsrmmd デーモン (有効なデバイス) がない場合は、recover 要求は失敗します。recover を要求したクライアントマシンでは、次のような Backup からのメッセージが表示されます。
NSR server client: no matching devices on server-or-storage-node |
同時に、Backup サーバーの「Pending」ディスプレイにも、次のメッセージが表示されます。
media notice: no matching devices on server-or-storage-node for recover by client client media notice: enable or check device(s) on server-or-storage-node |
図 A-2 に、Backup クライアントにデータを復旧する際に、Backup サーバーとクライアントのデーモンとプログラムがどのように関係し合って動作するかを示します。
ストレージノードは、Backup クライアントと、メディア管理デーモンおよびプログラムが格納されているマシンです。ストレージノードは、バックアップと復旧のための Backup 動作に使われる 1 台または複数台のストレージデバイスに接続されています。ストレージノードマシンのメディア管理デーモンが、ストレージボリューム上のデータを読み書きします。
ストレージノードでのバックアップと復旧の動作は、Backup サーバーでのバックアップと復旧の動作に似ています。大きな相違点は、データが置かれている場所です。
ストレージノードは、Backup サーバーによって制御されます。Backup サーバーのマスターデーモン nsrd が、ストレージノードのメディア管理デーモン nsrmmd を起動します。バックアップ時に、「Clients」リソースで指定されている「Storage Node Affinity」属性に基づいて、Backup サーバーが適切なデータを各メディア管理デーモンに配信します。
ストレージノードマシン (リモートデバイス) に接続されているストレージデバイスにデータが書き込まれると、Backup サーバーがデータの位置を追跡します。Backup サーバーでは、nsrindexd デーモンがクライアントファイルインデックスにエントリを書き込んでセーブセット内の各ファイルの位置を追跡し、nsrmmdbd デーモンがメディアデータベースにエントリを書き込んでメディア上の各セーブセットの位置を追跡します。
図 A-3 に、Backup ストレージノードとリモートストレージデバイスの両方が設定されている場合に、スケジュールされた保存処理時に、Backup サーバー、クライアントおよびストレージノードのデーモンとプログラムがどのように関係し合って動作するかを示します。
Backup サーバーがクライアントの recover プログラムから要求を受けると、Backup サーバーは、サーバーマシン上ではなくストレージノード上のメディア管理デーモン nsrmmd と交信します。nsrmmd デーモンは、メディアのデータを読み取って Backup クライアントに送ります。そこで recover プログラムがデータを復元します。
図 A-4 に、ストレージノードとリモートストレージデバイスの両方が設定されている場合の復旧プロセスでの動作を示します。