SnapCenter Software 4.9

to English version

ネイティブ スタイル

SnapCenterでは、プラグインを作成するためにPerl以外のプログラミング言語やスクリプト言語がサポートされています。これはネイティブ スタイル プログラミングと呼ばれ、スクリプト ファイルまたはバッチ ファイルを使用できます。

ネイティブ形式のプラグインは、以下に示す特定の規則に従う必要があります。

プラグインが実行可能である

  • UNIXシステムの場合、エージェントを実行するユーザーには、プラグインに対する実行権限が必要

  • Windowsシステムの場合、PowerShellプラグインには.ps1というサフィックス、その他のWindowsスクリプトには.cmdまたは.batというサフィックスが必要で、プラグインをユーザーが実行可能である必要がある

  • プラグインは、「-quiesce」、「-unquiesce」などのコマンドライン引数に対して応答する必要がある

  • 処理または関数が実装されていない場合、プラグインは終了コード99を返す必要がある

  • プラグインは、結果をサーバーに返すために特定の構文を使用する必要がある

一般的なプラグイン処理

エラー メッセージのロギング

各処理は、コンテンツを表示して保存するサーバーにメッセージを送り返すことができます。メッセージには、メッセージ レベル、タイムスタンプ、およびメッセージ テキストが含まれます。複数行メッセージがサポートされています。

形式:

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

プラグイン スタブの使用

SnapCenterプラグインにはプラグイン スタブが実装されている必要があります。これらは、SnapCenter Serverが特定のワークフローに基づいて呼び出すメソッドです。

プラグイン スタブ オプション / 必須 目的

quiesce

必須

このスタブは休止を実行します。これにより、 Snapshotコピーを作成できる状態にアプリケーションが置かれます。これは、ストレージSnapshotコピー処理の前に呼び出されます。

unquiesce

必須

このスタブは休止解除を実行します。これにより、アプリケーションは通常状態に置かれます。これは、ストレージSnapshotコピー処理のあとに呼び出されます。

clone_pre

オプション

このスタブは、クローニング前のタスクを実行します。これは、組み込みのSnapCenterクローニング インターフェイスを使用していることを前提にしています。なお、「clone_vol」または「clone_lun」アクションの実行時にのみトリガーされます。

clone_post

オプション

このスタブは、クローニング後のタスクを実行します。これは、組み込みのSnapCenterクローニング インターフェイスを使用していることを前提にしています。なお、「clone_vol」または「clone_lun」処理の実行時にのみトリガーされます。

restore_pre

オプション

このスタブは、リストア前のタスクを実行します。これは、組み込みのSnapCenterリストア インターフェイスを使用していることを前提にしています。リストア処理の実行時にのみトリガーされます。

restore

オプション

このスタブは、すべてのリストア処理を実行します。これは、組み込みのリストア インターフェイスを使用していないことを前提としています。リストア処理の実行時にトリガーされます。

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;
Top of Page