Veritas NetBackup 並列ストリームフレームワーク SDK 開発者ガイド

Last Published:
Product(s): NetBackup & Alta Data Protection (8.1.2)
  1. NetBackup Parallel Streaming Framework を使用したワークロードの保護
    1.  
      NetBackup Parallel Streaming Framework について
    2.  
      Parallel Streaming Framework SDK について
    3.  
      Parallel Streaming Framework を使用したバックアップ処理
    4.  
      Parallel Streaming Framework を使用したリストア処理
    5.  
      NetBackup Parallel Streaming Framework の用語
  2. NetBackup Parallel Streaming Framework プラグインアーキテクチャ
    1.  
      プラグインの操作
    2.  
      NetBackup Parallel Streaming Framework API アーキテクチャ
    3.  
      サポート対象の NetBackup 機能
  3. NetBackup Parallel Streaming Framework SDK の配備
    1.  
      オペレーティングシステムとプラットフォームの互換性
    2.  
      NetBackup Parallel Streaming Framework SDK のライセンス
    3.  
      NetBackup Parallel Streaming Framework SDK のダウンロード
    4.  
      NetBackup Parallel Streaming Framework SDK のインストール
  4. プラグイン開発の準備
    1.  
      NetBackup 環境の準備
    2. バックアップホストの管理
      1.  
        NetBackup マスターサーバー上の NetBackup クライアントのホワイトリスト
    3.  
      BigData バックアップポリシーの作成
    4.  
      認証機構の処理
    5.  
      NetBackup での作業負荷クレデンシャルの追加
    6.  
      セキュリティの考慮事項
    7.  
      プラグインを利用できるようにするために必要な認証
  5. サンプルプラグインの使用
    1.  
      サンプルプラグインについて
    2.  
      サンプルプラグインの開発
  6. 作業負荷プラグインの開発
    1.  
      プラグインの開発フェーズについて
    2.  
      プラグインの初期化フェーズについて
    3.  
      プラグインの要求フェーズについて
    4.  
      プラグインのアンロードフェーズについて
    5. 作業負荷検出フェーズについて
      1.  
        作業負荷ファイルについて
    6.  
      データバックアップフェーズについて
    7.  
      リストアフェーズについて
    8.  
      リカバリフェーズについて
    9.  
      API の実行時間の管理
    10.  
      開発中のプラグインの検証およびテスト
    11.  
      作業負荷プラグインのパッケージ化
  7. ワークロードプラグインの配備
    1.  
      NetBackup File Checksum Validator ツールを使用したプラグインの検証
    2.  
      バックアップホストへの作業負荷プラグインのインストール
    3.  
      作業負荷向けの NetBackup の構成
    4.  
      作業負荷のバックアップとリストアの実行
  8. NetBackup Parallel Streaming Framework API リファレンス
    1.  
      aapi_close_object
    2.  
      aapi_close_server
    3.  
      aapi_create_object
    4.  
      aapi_delete_object
    5.  
      aapi_discovery
    6.  
      aapi_flush
    7.  
      aapi_get_object_prop
    8.  
      aapi_get_object_prop_byname
    9.  
      aapi_get_server_prop
    10.  
      aapi_get_snappath_from_realpath
    11.  
      aapi_open_object
    12.  
      aapi_open_server
    13.  
      aapi_pgn_claim
    14.  
      aapi_pgn_init
    15.  
      aapi_postprocess
    16.  
      aapi_read_object
    17.  
      aapi_set_object_utimes
    18.  
      aapi_terminate
    19.  
      aapi_write_object
    20.  
      aapi_restore_preprocess
    21.  
      aapi_restore_postprocess
    22.  
      NetBackup Parallel Streaming Framework API の戻り値
  9. ログとトラブルシューティング
    1.  
      プラグインのログの有効化

プラグインのログの有効化

このセクションには、次のトピックが含まれます。

NetBackup ログについて

NetBackup は、NetBackup サーバーおよびクライアントのさまざまな処理についての情報を、ログディレクトリに記録します。NetBackup 管理者は、ログに含める詳細を決めるため、ログレベルを構成できます。ログレベルの範囲は 0 から 5 で、数が大きいほどログは詳細になります。

BigData ポリシー操作のすべてのログは、次の場所のサブディレクトリに書き込まれます。

  • Windows の場合: <install_path>\NetBackup\logs

  • UNIX の場合: /usr/openv/netbackup/logs

メモ:

ログが書き込まれるようにするには、ログのフォルダがすでに存在する必要があります。フォルダが存在しない場合は、手動で作成する必要があります。

ログおよびログ記録について詳しくは、次を参照してください。

NetBackup プラグインのログについて

次の表に、NetBackup プラグインで利用可能なログに関する情報を一覧表示します。

表: NetBackup プラグインで利用可能なログ

ログディレクトリ

ログメッセージが関連する事項

ログが利用可能な場所

Windows の場合:

<install_path>/NetBackup/logs/bpVMutil

UNIX の場合:

/usr/openv/netbackup/logs/bpVMutil

ポリシーの構成および検証

バックアップホスト

Windows の場合:

<install_path>/NetBackup/logs/nbaapidiscv

UNIX の場合:

/usr/openv/netbackup/logs/nbaapidiscv

PSF フレームワーク、検出、事前処理と事後処理、およびプラグインのログ

バックアップホスト

Windows の場合:

<install_path>/NetBackup/logs/bpbrm

UNIX の場合:

/usr/openv/netbackup/logs/bpbrm

ポリシー検証、バックアップ、およびリストア操作

メディアサーバー

Windows の場合:

<install_path>/NetBackup/logs/bpbkar

UNIX の場合:

/usr/openv/netbackup/logs/bpbkar

バックアップ処理

バックアップホスト

Windows の場合:

<install_path>/NetBackup/logs/tar

UNIX の場合:

/usr/openv/netbackup/logs/tar

リストアプロセス

バックアップホスト

NetBackup PSF SDK API では、他の NetBackup プロセスと一貫性がある方法でプラグインの情報がログ記録されます。プラグインでは、aapi_session_def_t->sd_log 関数を使用して NetBackup と同じファイルにメッセージをログ記録します。たとえば、検出アプリケーションとプラグインの検出セッションのログメッセージは、照合されて、<install_path>/NetBackup/logs/nbaapidiscv ディレクトリに配置されている同じファイルに記録されます。統合ログメッセージには、関連する情報が順番に表示され、プラグインの問題をトラブルシューティングするのに役立ちます。ログメッセージにはタイムスタンプとプロセス ID が含まれており、複数のプロセスが同時に実行されるときに便利です。

ログファイルのデバッグレベル

ログファイルにはさまざまなデバッグレベルを適用でき、プラグイン開発者に適用可能なレベルは aapi_common.h ファイルで定義します。sd_log メソッドで、次のレベルの重大度パラメータのいずれかを使用します。トラブルシューティングにログを活用できるようにするために、適切なデバッグ重大度レベルを使用するようにします。

次のリストに、ログレベルとその説明を示します。

ログレベルの値

説明

AAPI_ESINFO

情報を示します。

AAPI_ESWARN

警告を示します。

AAPI_ESDEBUG

デバッグを示します。

AAPI_ESERROR

エラーを示します。

AAPI_ESCRITICAL

重大なエラーを示します。

ログレベルを最小に設定した場合でも、重大なエラー、エラー、および警告は記録されます。

ログレベルについて詳しくは、次の記事を参照してください。

「グローバルログレベルについて」

プラグインのログの有効化

検出、バックアップ、またはリストア操作用にすでに作成されている NetBackup の関連ログにエントリを追加するように、プラグインを設定できます。プラグインでは、セッションオブジェクトが提供する sd_log メソッドを呼び出す必要があります。これにより、操作に固有のログ方式が識別されます。セッションオブジェクトは、初期の aapi_pgn_open_server API で利用可能で、プラグインが作業負荷と通信するために使用します。

次の例は、ログを有効にするために、プラグインでセッションオブジェクトを使用する方法を示します。

const aapi_session_def_t *g_session_definition;
//holds the session object globally

void setGlobalSessionDef(const aapi_session_def_t * sd)
{
	g_session_definition = sd;
}
const aapi_session_def_t * getGlobalSessionDef() {
return g_session_definition;
}

#define INFO getGlobalSessionDef(), AAPI_ESINFO, __FUNCTION__
#define WARNING getGlobalSessionDef(), AAPI_ESWARN, __FUNCTION__
#define DEBUG getGlobalSessionDef(), AAPI_ESDEBUG, __FUNCTION__
#define ERROR getGlobalSessionDef(), AAPI_ESERROR, __FUNCTION__
#define CRITICAL getGlobalSessionDef(), AAPI_ESCRITICAL, __FUNCTION__
#define SAMPLEPGN_LOG(x) LogMsg x;

//open_server implementation gets the session object stored
in the global session instance

pgn_open_server

(const aapi_session_def_t *session, const aapi_server_name_t aapi_server_name,
const aapi_cred_t *credentials, aapi_pgn_server_handle_t *sh)

{
	setGlobalSessionDef(session);
	SAMPLEPGN_LOG(DEBUG,"entering");
	...
}
//The wrapper log method is used to write to NetBackup logs.
//This method can either directly use the global session object, or
//accept the session instance as an input parameter for log writing

void LogMsg
(const aapi_session_def_v1_t *sd, aapi_severity_v1_t severity_level,
char *function, char *fmt, ...)

{
	//format the log message
	//log to NetBackup logs using session's sd_log method
	sd->sd_log("PLUGIN_APPTYPE_VERSION", formatted_message, severity_level);
}

ログコードの実装について詳しくは、サンプルプラグインについて のトピックを参照してください。

プラグインの sd_log の呼び出しの最初のパラメータとして、一意かつ特定の文字列 (理想的にはプラグインの種類とバージョン) を使用することをお勧めします。ここで指定した文字列は、各ログメッセージの先頭に追加されます。これにより、ログファイルでプラグインに固有のエントリを識別しやすくなります。