Prioritized Service Management (RGOffload) を使用すると、重要なデータサービスのためにノードのリソースを自動的に解放できます。RGOffload は、重要なフェイルオーバーデータサービスを起動するために、重要でないスケーラブルデータサービスまたはフェイルオーバーデータサービスをオフラインにする必要がある場合に使用します。また、RGOffload は、重要でないデータサービスを含むリソースグループを取り外す場合にも使用します。
重要なデータサービスはフェイルオーバー可能でなければなりません。取り外されるデータサービスは、フェイルオーバーデータサービスでもスケーラブルデータサービスでもかまいません。
クラスタメンバー上でスーパーユーザーになります。
RGOffload リソースタイプが登録されているかどうかを調べます。
次のコマンドは、リソースタイプのリストを出力します。
# scrgadm -p|egrep SUNW.RGOffload |
必要であれば、リソースタイプを登録します。
# scrgadm -a -t SUNW.RGOffload |
RGOffload リソースで取り外すリソースグループごとに、Desired_primaries をゼロに設定します。
# scrgadm -c -g offload-rg -y Desired_primaries=0 |
RGOffload リソースを重要なフェイルオーバーリソースグループに追加して、拡張プロパティを設定します。
リソースグループを複数のリソースの rg_to_offload リストに追加してはいけません。リソースグループを複数の rg_to_offload リストに追加すると、リソースグループはオフラインになった後にオンラインになるという動作を繰り返すことになります。
拡張プロパティについては、RGOffload 拡張プロパティの構成を参照してください。
# scrgadm -aj rgoffload-resource\ -t SUNW.RGOffload -g critical-rg \ -x rg_to_offload=offload-rg-1, offload-rg-2, ...\ -x continue_to_offload=TRUE \ -x max_offload_retry=15 |
この場合、rg_to_offload 以外の拡張プロパティはデフォルト値で表示されます。rg_to_offload は、お互いに依存しないリソースグループをコンマで区切ったリストです。このリストには、RGOffload リソースを追加するリソースグループが含まれていてはいけません。
RGOffload リソースを有効にします。
# scswitch -ej rgoffload-resource |
重要なフェイルオーバーリソースから RGOffload への依存関係を設定します。
# scrgadm -c -j critical-resource \ -y Resource_dependencies=rgoffload-resource |
Resource_dependencies_weak も使用できます。Resource_dependencies_weak を RGOffload リソースタイプに使用すると、offload-rg の取り外し中にエラーが発生しても、重要なフェイルオーバーリソースを起動できます。
リソースグループを、取り外し可能なオンライン状態にします。
# scswitch -z -g offload-rg, offload-rg-2, ... -h [nodelist] |
リソースグループは、重要なリソースグループがオフラインであるすべてのノード上でオンラインのままになります。障害モニターは、重要なリソースグループがオンラインであるノード上でリソースグループが動作しないようにします。
取り外されるリソースグループの Desired_primaries はゼロに設定されているので (手順 4を参照)、“-Z” オプションを指定しても、このようなリソースグループはオンラインになりません。
重要なフェイルオーバーリソースグループがオンラインでない場合、オンラインにします。
# scswitch -Z -g critical-rg |
この例では、RGOffload リソース (rgofl)、RGOffload リソースを含む重要なリソースグループ (oracle_rg)、および重要なリソースグループがオンラインになったときに取り外されるスケーラブルリソースグループ (IWS-SC, IWS-SC-2) を構成する方法について説明します。この例では、重要なリソースは oracle-server-rs です。
この例では、oracle_rg、IWS-SC、および IWS-SC-2 はクラスタ "triped" の任意のノード、つまり、phys-triped-1、phys-triped-2、phys-triped-3 上でマスターできます。
[SUNW.RGOffload リソースタイプが登録されているかどうかを判断する] # scrgadm -p|egrep SUNW.RGOffload [必要に応じて、リソースタイプを登録する] # scrgadm -a -t SUNW.RGOffload [RGOffload によって取り外される各リソースグループで、Desired_primaries をゼロに設定する] |
通常、拡張プロパティは RGOffload リソースを作成するときに、コマンド行から scrgadm -x parameter=value を実行して構成します。Sun Cluster の全標準プロパティについては、付録 A 「標準プロパティ」 を参照してください。
表 15–2に RGOffload に構成できる拡張プロパティを示します。 「調整」エントリは、いつプロパティを更新できるかを示します。
表 15–2 RGOffload 拡張プロパティ
名前/データタイプ |
デフォルト |
---|---|
rg_to_offload (文字列) |
重要なフェイルオーバーリソースグループがノード上で起動するときに、当該ノード上で取り外す必要があるリソースグループをコンマで区切ったリスト。このリストには、お互いに依存するリソースグループが含まれてはいけません。このプロパティにはデフォルト設定値がないので、必ず設定する必要があります。
RGOffload は、rg_to_offload 拡張プロパティに設定されたリソースグループのリストにおける依存関係ループを検査しません。たとえば、リソースグループ RG-B が RG-A に依存する場合、RG-A と RG-B は両方とも rg_to_offload に含まれてはいけません。
デフォルト:なし 調整: 任意の時点 |
continue_to_offload (ブール型) |
リソースグループの取り外し中にエラーが発生した後に、rg_to_offload リスト内の残りのリソースグループの取り外し続けるかどうかを示すブール型。
このプロパティは START メソッドだけが使用します。
デフォルト:True 調整: 任意の時点 |
max_offload_retry (整数) |
クラスタまたはリソースグループの再構成による障害時の起動中に、リソースグループの取り外しを試みる回数。再試行の間には 10 秒の間隔があります。
(取り外されるリソースグループの数 * max_offload_retry * 10 秒)
の値が RGOffload の Start_timeout の値より少なくなるように
max_offload_retry を設定します。この値が Start_timeout の値に近い (あるいは、より大きい) 場合、最大再試行数に到達する前に、RGOffload リソースの START メソッドがタイムアウトする可能性があります。
このプロパティは START メソッドだけが使用します。
デフォルト:15 調整: 任意の時点 |
RGOffload リソースの障害モニター検証は、重要なリソースをマスターするノード上で、rg_to_offload 拡張プロパティに指定されたリソースグループをオフラインにし続けるために使用されます。各検証サイクルで障害モニターは、重要なリソースをマスターするノード上で、取り外すリソースグループ (offload-rg) がオフラインであることを確認します。重要なリソースをマスターするノード上で offload-rg がオンラインである場合、障害モニターは重要なリソースをマスターするノード以外のノード上で offload-rg を起動し、同時に、重要なリソースをマスターするノード上では offload-rg をオフラインにしようとします。
offload-rg の desired_primaries はゼロに設定されているので、この後で利用可能になったノード上では、取り外すリソースグループは再起動されません。したがって、 RGOffload 障害モニターは maximum_primaries に到達するまで、重要なリソースをマスターするノード上では offload-rg をオフラインにしながら、可能な限りのプライマリ上で offload-rg を起動しようとします。
RGOffload は、取り外されたリソースグループが MAINTENANCE または UNMANAGED 状態でない限り、取り外されたすべてのリソースグループを起動しようとします。リソースグループを UNMANAGED 状態にするには、scswitch コマンドを使用します。
# scswitch -u -g resourcegroup |
障害モニター検証サイクルは、Thorough_probe_interval が実行された後に毎回呼び出されます。