Sun Cluster 3.1 データサービス開発ガイド

パッケージの問題

新しいリソースタイプをインストールするときは、次の 2 つの要件が満たされていなければなりません。

RTR ファイルの変更

リソースタイプをアップグレードしても、新しいメソッドまたはモニターコードが呼び出されない場合があります。たとえば、リソースプロパティのデフォルト値または tunable 属性の値だけが変更される場合があります。メソッドコードは変更されないので、読み取り可能な RTR ファイルの有効なパス名を指定するだけでアップグレードをインストールできます。

古いリソースタイプを登録し直す必要がない場合、新しい RTR ファイルによって以前のバージョンのものが上書きされます。それ以外の場合、新しい RTR ファイルは新しいパス名で配置できます。

アップグレードによってプロパティのデフォルト値または tunable 属性が変更される場合、移行時に新しいバージョンの Validate メソッドで既存のプロパティ属性が新しいリソースタイプでも有効かどうかを検査できます。アップグレードによってプロパティの minmax または type 属性が変更される場合、移行時に scrgadm コマンドでこれらの制約が自動的に検査されます。

アップグレード文書には、新しいデフォルトのプロパティ値をすべて記載する必要があります。この文書では、システム管理者に、Type_version コマンドを編集するコマンドを使って、新しいリソースタイプのバージョンにプロパティをアップグレードできるように、既存のリソースプロパティの値を変更できることを通知します。

アップグレードによってプロパティが追加または削除される場合、コールバックメソッドまたはモニターコードの一部を変更しなければならないことがあります。

モニターコードの変更

更新後のリソースタイプでモニターコードだけが変更される場合、パッケージのインストールによってモニターのバイナリが上書きされます。文書には、システム管理者向けの情報として、新しいパッケージをインストールする前に監視を一時停止する指示を記述します。

メソッドコードの変更

更新後のリソースタイプでメソッドコードだけが変更される場合、新しいメソッドコードが以前のバージョンのものと互換するかどうかを確認する必要があります。これにより、新しいメソッドコードを新しいパス名で格納するか、古いメソッドを上書きするかが決定します。

新しい StopPostnet_stop および Fini メソッドが宣言されていて、古いバージョンの Start Prenet_stop または Init メソッドによって初期化または起動されたリソースに適用できる場合、新しいメソッドで古いメソッドを上書きできます。

新しいメソッドコードが以前のバージョンのものと互換しない場合、アップグレードされたリソースタイプに移行する前に、古いバージョンのメソッドを使ってリソースを停止または構成を解除する必要があります。新しいメソッドが古いメソッドを上書きする場合、リソースタイプをアップグレードする前に、そのタイプのすべてのリソースを停止 (場合によっては、さらに管理対象外に設定) しなければならないことがあります。新しいメソッドが古いものと別の場所に格納されていて、両方に同時にアクセスできる場合は、後方互換性がなくても、新しいリソースタイプのバージョンをインストールし、リソースを 1 つずつアップグレードすることができます。

新しいメソッドに後方互換性がある場合でも、その他のリソースが古いメソッドを使用し続けている間は、リソースを 1 つずつアップグレードして、新しいメソッドを使用できるようにする必要があります。また、新しいメソッドは、古いメソッドを上書きすることがないように別のディレクトリに格納する必要があります。

個々のリソースタイプのバージョンのメソッドを別々のディレクトリに格納すると、新しいバージョンで問題が発生したとき、元のリソースタイプのバージョンに切り替える手続きが簡単であるという点で有利です。

引き続きサポートされている以前のバージョンをすべてパッケージに含めるという方法もあります。この方法では、古いメソッドのパスを上書きまたは削除することなく、新しいパッケージのバージョンで古いバージョンを置き換えることができます。サポートされる以前のバージョンの数は、リソースタイプ開発者が決定します。


注 –

メソッド、または現在クラスタ内にあるノード上の pkgrm/ pkgadd メソッドの上書きはお勧めしません。RGM がディスク上のアクセス不能なメソッドを呼び出そうとすると、予測できない結果を招くことがあります。実行中のメソッドのバイナリの削除または置き換えでも、予測できない結果を招く可能性があります。