Skip to main content
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

原生模式

贡献者

SnapCenter 支持使用非 Perl 编程或脚本语言来创建插件。这称为原生模式编程,可以是脚本或批处理文件。

本机模式插件必须遵循以下特定约定:

此插件必须是可执行的

  • 对于 Unix 系统,运行代理的用户必须对此插件具有执行权限

  • 对于 Windows 系统, PowerShell 插件的后缀必须为 .ps1 ,而其他 Windows 脚本的后缀必须为 .cmd 或 .bat ,并且必须可由用户执行

  • 插件必须对命令行参数做出响应,例如 "-quiesce" , "-unquiesce"

  • 如果未实施某项操作或功能,插件必须返回退出代码 99

  • 插件必须使用特定语法将结果传递回服务器

常规插件处理

记录错误消息

每个操作都可以将消息发送回服务器,服务器将显示和存储内容。消息包含消息级别,时间戳和消息文本。支持多行消息。

格式。

SC_MSG#<level>#<timestamp>#<message>
SC_MESSAGE#<level>#<timestamp>#<message>

使用插件存根

SnapCenter 插件必须实施插件存根。这些方法是 SnapCenter 服务器根据特定工作流调用的。

插件存根 可选 / 必需 目的

暂停

Required

此存根负责执行暂停。它将放置 将应用程序置于可以创建Snapshot的状态。这在执行存储Snapshot操作之前调用。

取消静默

Required

此存根负责执行静默。它的位置 处于正常状态的应用程序。这在存储后称为 Snapshot操作。

clone_pre

可选

此存根负责执行克隆前任务。此操作假定您使用的是内置的 SnapCenter 克隆接口,并且只有在执行操作 "clone_vol 或 clone_LUN" 时才会触发此接口。

clone_post

可选

此存根负责执行克隆后任务。这假定您使用的是内置的 SnapCenter 克隆接口,并且只有在执行 "clone_vol 或 clone_lun" 操作时才会触发此接口。

restore_pre

可选

此存根负责执行还原前任务。这假定您使用的是内置的 SnapCenter 还原界面,并且仅在执行还原操作时触发。

还原

可选

此存根负责执行所有还原操作。此操作假定您未使用内置还原界面。它会在执行还原操作时触发。

示例

Windows PowerShell

检查是否可以在您的系统上执行此脚本。如果无法执行此脚本,请为此脚本设置 Set-ExecutionPolicy bypass ,然后重试此操作。

if ($args.length -ne 1) {
  write-warning "You must specify a method";
  break;
}
function log ($level, $message) {
  $d = get-date
  echo "SC_MSG#$level#$d#$message"
}
function quiesce {
  $app_name = (get-item env:APP_NAME).value
  log "INFO" "Quiescing application using script $app_name";
  log "INFO" "Quiescing application finished successfully"
}
function unquiesce {
  $app_name = (get-item env:APP_NAME).value
  log "INFO" "Unquiescing application using script $app_name";
  log "INFO" "Unquiescing application finished successfully"
}
  switch ($args[0]) {
    "-quiesce" {
    quiesce;
}
"-unquiesce" {
    unquiesce;
}
default {
    write-error "Function $args[0] is not implemented";
    exit 99;
  }
}
exit 0;