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.  
      NetBackupParallel 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,插件使用该 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 调用中的第一个参数。此指定字符串以每条日志消息为前缀,以便更容易标识日志文件中的插件特定条目