リソースタイプパッケージのインストール要件とパッケージを決定する際には、次の 2 つの要件を考慮します。
新しいリソースタイプが登録されている場合、ディスク上の RTR ファイルにアクセスできなければなりません。
新しいタイプのリソースを作成した場合、新しいタイプのすべての宣言済みメソッドのパス名および監視プログラムがディスク上に存在し、実行可能でなければなりません。リソースが使用されている間は、以前のメソッドおよび監視プログラムを定位置に確保しておく必要があります。
使用すべき適切なパッケージを決定するには、次の点を考慮する必要があります。
RTR ファイルが変更されたか
プロパティーのデフォルト値または tunable 属性が変更されたか
プロパティーの min または max 値が変更されたか
アップグレードによってプロパティーが追加されたか、または削除されたか
モニターコードが変更されたか
メソッドコードが変更されたか
新しいメソッド、モニターコード、またはその両方が以前のバージョンと互換性があるか
これらの点を確認しておくと、新しいリソースタイプに使用する適切なパッケージの決定に役立ちます。
リソースタイプを変更する場合、必ずしも新しいメソッドやモニターコードを作成する必要はありません。たとえば、リソースプロパティーのデフォルト値や Tunable 属性のみを変更する場合があります。この場合、メソッドコードを変更していないため、読み取り可能な RTR ファイルへの新しい有効なパス名のみが必要になります。
古いリソースタイプを再登録する必要がない場合、新しい RTR ファイルは以前のバージョンを上書きできます。再登録する必要がある場合、新しいパスに新しい RTR ファイルを配置します。
アップグレードによりプロパティーのデフォルト値または Tunable 属性が変更された場合、リソースタイプの新しいバージョンに対して Validate メソッドを使用し、既存のプロパティー属性が新しいリソースタイプに対して有効であることを確認します。有効でない場合、クラスタ管理者は既存のリソースのプロパティーを正しい値に変更できます。アップグレードによりプロパティーの min 属性、max 属性、または type 属性が変更された場合は、クラスタ管理者がリソースタイプを更新したときに clresourcetype(1CL) コマンドによりこれらの制約が自動的に検査されます。
アップグレードにより新しいプロパティーが追加された場合や古いプロパティーが削除された場合、通常、コールバックメソッドまたはモニターコードを変更する必要があります。
リソースタイプのモニターコードのみを変更した場合、パッケージのインストールではモニターのバイナリを上書きできます。
リソースタイプでメソッドコードのみを変更した場合、新しいメソッドコードが古いメソッドコードと互換性があるかどうかを判断する必要があります。この判断により、新しいメソッドコードを新しいパス名で格納する必要があるかどうか、または古いメソッドを上書きできるかどうかが決定します。
古いバージョンの Start、Prenet_stop、Init メソッドにより初期化または起動されたリソースに対して、新しい Stop、Postnet_stop、Fini メソッド (宣言されている場合) を適用できる場合は、新しいメソッドで古いメソッドを上書きできます。
プロパティーに新しいデフォルト値を適用することで、Stop、Postnet_stop、Fini などのメソッドが失敗する場合、リソースタイプのアップグレード時に、クラスタ管理者はそれに従ってリソースの状態を制限する必要があります。
Type_version プロパティーの Tunable 属性を制限することにより、クラスタ管理者が、アップグレード時のリソースの状態を制限できるようにすることができます。
パッケージの 1 つの方法としては、引き続きサポートされている以前のバージョンのリソースタイプをすべてパッケージに含めるという方法もあります。この方法では、メソッドへの古いパスを上書きまたは削除することなく、新しいパッケージのバージョンで古いバージョンのパッケージを置き換えることができます。サポートする以前のバージョンの数は、リソースタイプ開発者が決定する必要があります。
次の表に、新しいリソースタイプに使用すべきパッケージスキーマの概要を示します。
表 4–1 使用するパッケージスキーマの決定
変更のタイプ |
Tunable 属性の値 |
パッケージスキーマ |
---|---|---|
RTR ファイルのみでプロパティーを変更します。 |
ANYTIME |
新しい RTR ファイルのみを提供します。 |
メソッドを更新します。 |
ANYTIME |
古いメソッドとは異なるパスに、更新されたメソッドを配置します。 |
新しい監視プログラムをインストールします。 |
WHEN_UNMONITORED |
モニターの直前のバージョンのみを上書きします。 |
メソッドを更新します。 新しい Update および Stop メソッドと古い Start メソッドの間には互換性がありません。 |
WHEN_OFFLINE |
古いメソッドとは異なるパスに、更新されたメソッドを配置します。 |
メソッドを更新し、RTR ファイルに新しいプロパティーを追加します。新しいメソッドには新しいプロパティーが必要です。 目的は、ノード上でリソースグループがオフライン状態からオンライン状態に移行した場合に、リソースの所属リソースグループをオンラインのまま保持しながらリソースがオンラインになるのを防ぐことです。 |
WHEN_DISABLED |
以前のバージョンのメソッドを上書きします。 |
メソッドを更新し、RTR ファイルに新しいプロパティーを追加します。新しいメソッドは新しいプロパティーを必要としません。 |
ANYTIME |
以前のバージョンのメソッドを上書きします。 |
メソッドを更新します。新しい Fini メソッドと古い Init メソッドには互換性がありません。 |
WHEN_UNMANAGED |
古いメソッドとは異なるパスに、更新されたメソッドを配置します。 |
メソッドを更新します。RTR ファイルは変更されていません。 |
該当しない。RTR ファイルは変更されていません。 |
以前のバージョンのメソッドを上書きします。RTR ファイルには変更を加えていないため、リソースを登録またはアップグレードする必要はありません。 |