原生風格
支援非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;