本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

原生風格

支援非Perl程式設計或指令碼語言來建立外掛程式。SnapCenter這稱為原生樣式程式設計、可以是指令碼或批次檔。

原生型外掛程式必須遵循下列特定慣例:

外掛程式必須可執行

  • 對於Unix系統、執行代理程式的使用者必須擁有外掛程式的執行權限

  • 對於Windows系統、PowerShell外掛程式必須有.ps1字尾、其他Windows指令碼必須有.cmd或.bat字尾、而且必須由使用者執行

  • 外掛程式必須回應命令列引數、例如「-quiesce」、「-unquiesce」

  • 外掛程式必須傳回結束代碼99、以防未實作任何作業或功能

  • 外掛程式必須使用特定語法、才能將結果傳回伺服器

一般外掛處理

記錄錯誤訊息

每項作業都能將訊息傳回伺服器、以顯示及儲存內容。訊息包含訊息層級、時間戳記及訊息文字。支援多行訊息。

格式:

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

使用外掛程式存根

選購外掛程式必須實作外掛程式存根。SnapCenter以上是SnapCenter 根據特定工作流程、由伺服器呼叫的方法。

外掛程式Stub 選用/必要 目的

靜止

必要

此存根負責執行靜止。它會將應用程式置於可建立Snapshot複本的狀態。這在儲存Snapshot複製作業之前稱為。

取消靜止

必要

此存根負責執行取消靜止。它會將應用程式置於正常狀態。這是在儲存Snapshot複製作業之後呼叫的。

Clone預先複製

選用

此存根負責執行預先複製工作。這是假設您使用內建SnapCenter 的還原複製介面、而且只會在執行「clone_vol或clone_LUN」動作時觸發。

Clone複製POST

選用

此存根負責執行複製後的工作。這假設您使用內建SnapCenter 的還原複製介面、而且只會在執行「clone_vol或clone_LUN」作業時觸發。

reet_pre

選用

此存根負責執行預先還原工作。這假設您使用內建SnapCenter 的還原介面、而且只有在執行還原作業時才會觸發。

還原

選用

此存根負責執行所有還原動作。假設您未使用內建還原介面。在執行還原作業時觸發。

範例

Windows PowerShell

檢查指令碼是否可在您的系統上執行。如果無法執行指令碼、請為指令碼設定Set-ExecutionPolicy略過、然後重試該作業。

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;