日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

ネイティブ形式

寄稿者 netapp-nsriram このページの PDF をダウンロード

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

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

プラグインが実行可能である必要があります

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

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

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

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

  • プラグインは、特定の構文を使用して結果をサーバに渡す必要があります

一般的なプラグイン処理

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

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

の形式で入力し

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

プラグインスタブを使用する

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

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

休止

必須

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

休止解除

必須

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

clone_pre

任意。

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

clone_post をクリックしてください

任意。

この STUB は、クローニング後のタスクの実行を担当します。このパラメータは、組み込みの 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;