重要でないリソースグループをオフロードするもっとも簡単な方法は、リソースグループ間で強い否定的なアフィニティーを使用することです。詳細については、「オンラインのリソースグループをクラスタノード間で分散する」を参照してください。
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 拡張プロパティーの詳細については、「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 を次のように構成する方法について説明します。
重要なリソースグループ oracle_rg には RGOffload リソースが含まれています。
重要なリソースは、oracle-server-rs です。
重要なリソースグループがオンラインになったときに、スケーラブルリソースグループ IWS-SC および IWS-SC-2 はオフロードされます。
リソースグループ 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 を ゼロに設定する] # scrgadm -c -g IWS-SC-2 -y Desired_primaries=0 # scrgadm -c -g IWS-SC -y Desired_primaries=0 [プライオリティーが高いリソースグループに RGOffload リソースを追加し、拡張プロパティーを 設定する] # scrgadm -aj rgofl -t SUNW.RGOffload -g oracle_rg \ -x rg_to_offload=IWS-SC,IWS-SC-2 -x continue_to_offload=TRUE \ -x max_offload_retry=15 [RGOffload リソースを有効にする] # scswitch -ej rgofl [プライオリティーが高いフェイルオーバーリソースの RGOffload リソースに対する依存性を設定 する] # scrgadm -c -j oracle-server-rs -y Resource_dependencies=rgofl [オフロードされるリソースグループをすべてのノードでオンラインにする] # scswitch -z -g IWS-SC,IWS-SC-2 -h phys-triped-1,phys-triped-2,phys-triped-3 [プライオリティーが高いフェイルオーバーリソースグループがオンラインでない場合は、それをオン ラインにする] # scswitch -Z -g oracle_rg |
この節では、RGOffload に対して構成可能な拡張プロパティーを示します。「調整可能」の欄には、そのプロパティーをいつ変更できるかが示されています。
通常、RGOffload リソースを作成するとき、拡張プロパティーを構成するには、コマンド行 scrgadm -x parameter=value を使用します。
リソースグループのオフロード中にエラーが発生したあとに、rg_to_offload リスト内の残りのリソースグループをオフロードし続けるかどうかを指定します。
このプロパティーは START メソッドだけが使用します。
初期値: True
調整: 任意の時点
クラスタ再構成またはリソースグループ再構成によりオフロードに障害が発生した場合の起動中に、リソースグループをオフロードしようとする回数を指定します。連続する再試行の間の間隔は 10 秒です。
max_offload_retry が高すぎると、最大オフロード試行回数に到達する前に、RGOffload リソースの START メソッドがタイムアウトする可能性があります。この可能性を避けるために、次の式を使用して max_offload_retry を計算します。
max-offload-retry < start-timeout /(num-rg × offload-retry-interval)
max_offload_retry 拡張プロパティーの値
RGOffload リソースの Start_timeout プロパティーの値
オフロードされるリソースグループの数
連続する再試行の間の間隔 (10 秒)
このプロパティーは START メソッドだけが使用します。
初期値: 15
調整: 任意の時点
プライオリティーが高いフェイルオーバーリソースグループがノード上で起動するときに、当該ノード上でオフロードされるリソースグループのコンマ区切りリストを指定します。このプロパティーにはデフォルト設定値がないので、必ず設定する必要があります。
このリストには、互いに依存するリソースグループが含まれてはいけません。RGOffload は、rg_to_offload 拡張プロパティーに設定されたリソースグループのリストにおける依存関係ループを検査しません。
たとえば、リソースグループ RG-B が何らかの形で RG-A に依存する場合、両方のリソースグループが rg_to_offload に含まれてはいけません。
初期値: なし
調整: 任意の時点
RGOffload 障害モニターは、重要なリソースをマスターするノード上で、重要ではないリソースグループがオンラインになるのを防止します。障害モニターは、重要なリソースをマスターするノード上で、重要ではないリソースグループがオンラインであることを検出する場合があります。このような場合、障害モニターはそのほかのノードでリソースグループを起動しようとします。また障害モニターは、重要なリソースをマスターするノード上でリソースグループをオフラインにします。
重要でないリソースグループの desired_primaries はゼロに設定されているので、このあとで利用可能になったノード上では、オフロードされたリソースグループは再起動されません。したがって、RGOffload 障害モニターは、maximum_primaries の上限に到達するまで、可能な限り多くの主ノードで重要でないリソースグループを起動しようとします。ただし、障害モニターは、重要なリソースをマスターするノード上では、重要でないリソースグループをオフラインのままにします。
RGOffload は、リソースグループが MAINTENANCE 状態または UNMANAGED 状態でないかぎり、オフロードされたすべてのリソースグループを起動しようとします。リソースグループを UNMANAGED にするには、scswitch コマンドを使用します。
# scswitch -u -g resourcegroup |
RGOffload リソースの Thorough_probe_interval プロパティーの値は、障害モニターの検証の間の間隔を指定します。