コマンド同期は、フェイルオーバーによって中断されたユーザー定義コマンドを回復し、フェイルオーバーの後に新しいメイン SSP 上でこれらのコマンドを再実行します。コマンド同期の処理は、以下のとおりです。
フェイルオーバーの後に再起動するコマンドを指定するコマンド同期リストをスペア SSP で保守する。各コマンドはユーザー ssp として実行される。
フェイルオーバーの後に、指定のユーザーコマンドを再実行する。
フェイルオーバーの後に、指定した任意のポイント (各スクリプト内で指定します) から指定のユーザースクリプトの処理を再開する。
これらのユーザースクリプトは、スクリプト内のラベルを付けたマーカーポイントから処理が再開できるように構成する必要があります。
フェイルオーバーの後にユーザーコマンドを自動回復したい場合は、以下の節で説明するように、同期のためにこれらのコマンドを準備する必要があります。
runcmdsync(1M) コマンドは、自動再起動のためにユーザーコマンドを準備します。runcmdsync は、ユーザーコマンドをコマンド同期リストに追加します。このリストによって、フェイルオーバーの後に再実行するコマンドを特定します。
ユーザー名 ssp でメイン SSP にログインし、以下のように入力します。
ssp% runcmdsync script_name [parameters] |
ここで、script_name は再起動するユーザーコマンドの名前で、parameters は指定のコマンドに関連するオプションです。指定のコマンドは、フェイルオーバーの後に新しいメイン SSP 上で自動的に再実行されます。
スクリプト内の指定した任意のポイント (位置) からユーザースクリプト処理を再開する場合は、以下の同期コマンドをユーザースクリプトに入れる必要があります。
initcmdsync(1M) は、特定のスクリプトと関連データを特定するコマンド同期記述子を作成します。
これらの記述子は、自動フェイルオーバーの後に再起動するユーザースクリプトを判別するコマンド同期リストに記載されます。
savecmdsync(1M) は、スクリプトが再起動できるマーカーポイントを指定します。
cancelcmdsync(1M) は、コマンド同期リストからコマンド同期記述子を削除します。
同期のためにスクリプトを初期化してコマンド同期リストからコマンドを削除するには、各スクリプトに initcmdsync と cancelcmdsync コマンドを入れる必要があります。同期コマンドの詳細は、cmdsync(1M) マニュアルページを参照してください。
これは、経験豊富なプログラマ向けの同期コマンドです。回復のためにスクリプトを準備するには、この節で説明した同期コマンドの代わりに runcmdsync(1M) コマンドを使用することができます。ただし、runcmdsync(1M) コマンドは指定のマーカーポイントからではなく最初から再実行するようにスクリプトを準備します。
以下の手順は、これらの同期コマンドの使用方法です。
SSP フェイルオーバーの後やシングル SSP 構成では、SSP フェイルオーバーは使用不可です。フェイルオーバーが使用不可である場合は、同期コマンドを含むスクリプトによって、プラットフォームログファイルに対するエラーメッセージが生成され、ゼロ以外の終了コードが返されます。これらのエラーメッセージは、無視することもできます。
ユーザースクリプトに以下のように入力し、スクリプトを識別するコマンド同期記述子を作成します。
initcmdsync script_name [parameters] |
ここで、script_name はスクリプト名で、parameters は指定スクリプトに関連するオプションです。initcmdsync コマンドから返される出力は、コマンド同期記述子として機能します。
ユーザースクリプトに以下のように入力し、処理を再開できる実行ポイントを指定します。
savecmdsync -M identifier cmdsync_descriptor |
ここで、-M identifier はスクリプトを再起動できる実行ポイントを指定する正の整数で、cmdsync_descriptor は initcmdsync コマンドによって出力されるコマンド同期記述子です。
ユーザースクリプトの最後のシーケンスの後に、以下のように入力します。
cancelcmdsync cmdsync_descriptor |
ここで、cmdsync_descriptor は initcmdsync コマンドによって出力されるコマンド同期記述子です。指定の記述子がコマンド同期リストから削除され、フェイルオーバーの後に新しいメイン SSP 上でユーザースクリプトが実行されないようになります。
メイン SSP 上で showcmdsync(1M) コマンドを使用して、自動フェイルオーバーの後に新しいメイン SSP 上で再起動されるユーザーコマンドを特定するコマンド同期リストを見直します。
showcmdsync (1M) コマンドによって出力されるコマンド同期リストの例を次に示します。
ssp% showcmdsync DESCRIPTOR IDENTIFIER CMD 0 -1 c1 c2 a2 |
詳細は、showcmdsync(1M) マニュアルページを参照してください。
SSP 3.4 では、スクリプト内での同期コマンドの使用方法を示すユーザースクリプトのサンプルが添付されています。このスクリプトは、/opt/SUNWssp/examples/cmdsync ディレクトリにあります。このディレクトリには、このスクリプトの機能を説明する README ファイルも含まれています。