以下では、リソースタイプのインストールとアップグレードの例をいくつか紹介します。 Tunable 属性とパッケージ情報は、リソースタイプ実装の変更に基づいて選択されています。 Tunable 属性は、リソースを新しいリソースタイプに移行するときに適用されます。
すべての例は、次の条件に従うものとします。
リソースタイプは Solaris パッケージで配布されています。 pkgadd(1M) および pkgrm(1M) のマニュアルページを参照してください。
リソースタイプの以前のバージョンは 1 つしかないので、新しい RTR ファイル内には #$upgrade_from ディレクティブが 1 つしかありません。
RGM がディスクから削除されたメソッドを呼び出すことができる場合、インストールによってメソッドが削除または上書きされることはありません。
特に注記がない場合、新しいメソッドと古いメソッドには互換性があります。
リソースおよびリソースグループは、インストールまたは移行前に正しい scswitch(1M) コマンド (または同等のコマンド) により適切な状態に設定されます。 次に示すのは、リソースグループを管理対象外に設定する例です。
scswitch -M -n -j resource scswitch -n -j resource scswitch -F -g resource_group scswitch -u -g resource_group |
リソースタイプの登録は次のコマンドで行います。
scrgadm -a -t resource_type -f path_to_RTR_file |
リソースの移行は次のコマンドで行います。
scrgadm -c -j resource -y Type_version=version \ -y property=value \ -x property=value ... |
リソースおよびリソースグループは、移行後に適切な scswitch (1M) コマンド (または同等のコマンド) により以前の状態に戻されます。
scswitch -M -e -j resource scswitch -e -j resource scswitch -o -g resource_group scswitch -Z -g resource_group |
場合によっては、リソースタイプ開発者は、例で使用されているものより制限の厳しい Tunable 属性の値を指定する必要があります。 Tunable 属性の値は、リソースタイプ実装の変更内容によって決定します。 リソースタイプ開発者は、例で使用されている Solaris パッケージ以外のパッケージスキーマを選択することもできます。
表 3–1 リソースタイプのアップグレード例
変更の種類 |
Tunable 属性 |
パッケージ処理 |
手続き |
---|---|---|---|
プロパティの変更は、RTR ファイルのみに加えられました。 |
Anytime |
新しい RTR ファイルを配布するだけです。 |
新しい RTR ファイルの pkgadd をすべてのノード上で実行します。 新しいリソースタイプを登録します。 リソースを移行します。 |
メソッドが更新されました。 |
Anytime |
更新されたメソッドを古いメソッドとは異なったパスに配置します。 |
更新されたメソッドの pkgadd をすべてのノード上で実行します。 新しいリソースタイプを登録します。 リソースを移行します。 |
新しいモニタープログラムです。 |
When_unmonitored |
以前のバージョンのモニターを上書きするだけです。 |
監視を無効化します。 新しい監視プログラムの pkgadd をすべてのノード上で実行します。 新しいリソースタイプを登録します。 リソースを移行します。 監視を有効化します。 |
メソッドが更新されました。 新しい Update/ Stop メソッドと古い Start メソッドには互換性がありません。 |
When_offline |
更新されたメソッドを古いメソッドとは異なったパスに配置します。 |
更新されたメソッドの pkgadd をすべてのノード上で実行します。 新しいリソースタイプを登録します。 リソースをオフラインにします。 リソースを移行します。 リソースをオンラインにします。 |
メソッドが更新され、RTR ファイルに新しいプロパティが追加されました。 新しいメソッドには新しいプロパティが必要です。 リソースの所属リソースグループをオンラインのまま保持しながらリソースがオンラインになることを防ぐ必要があります。このためには、リソースグループをノード上でオフラインの状態からオンラインの状態に変更します。 |
When_disabled |
以前のバージョンのメソッドを上書きします。 |
リソースを無効にします。
新しいリソースタイプを登録します。 リソースを移行します。 リソースを有効にします。 |
メソッドが更新され、RTR ファイルに新しいプロパティが追加されました。 新しいメソッドは新しいプロパティを必要としません。 |
Anytime |
以前のバージョンのメソッドを上書きします。 |
この手続きの間に、RGM は新しいメソッドを呼び出します。これは、まだ移行が完了しておらず、新しいプロパティが構成されていない場合でも変わりません。 新しいメソッドは、新しいプロパティなしで正常に機能しなければなりません。 新しいリソースタイプを登録します。 リソースを移行します。 |
メソッドが更新されました。 新しい Fini メソッドと古い Init メソッドには互換性がありません。 |
When_unmanaged |
更新されたメソッドを古いメソッドとは異なったパスに配置します。 |
リソースの所属リソースグループを管理対象外にします。 更新されたメソッドの pkgadd をすべてのノード上で実行します。 リソースタイプを登録します。 リソースを移行します。 リソースの所属リソースグループを管理対象にします。 |
メソッドが更新されました。 RTR ファイルは変更されていません。 |
該当しません。 RTR ファイルは変更されていません。 |
以前のバージョンのメソッドを上書きします。 |
RTR ファイルが変更されなかったので、リソースを登録または移行する必要はありません。 |