Sun Cluster データサービスの計画と管理 (Solaris OS 版)

重要ではないリソースグループをオフロードすることによるノードリソースの解放


注 –

重要でないリソースグループをオフロードするもっとも簡単な方法は、リソースグループ間で強い否定的なアフィニティを使用することです。詳細は、「オンラインのリソースグループをクラスタノード間で分散する」を参照してください。


Prioritized Service Management (RGOffload) を使用すると、重要なデータサービス用にノードのリソースを自動的に解放できます。RGOffload は、重要なフェイルオーバーデータサービスを起動するために、重要でないスケーラブルデータサービスまたはフェイルオーバーデータサービスをオフラインにする必要があるときに使用します。RGOffload は、重要でないデータサービスを含むリソースグループをオフロードするときに使用します。


注 –

プライオリティが高いデータサービスはフェイルオーバー可能でなければなりません。オフロードするデータサービスは、フェイルオーバーデータサービスでもスケーラブルデータサービスでもかまいません。


RGOffload リソースを設定する

  1. クラスタメンバー上でスーパーユーザーになります。

  2. RGOffload リソースタイプが登録されているかどうかを調べます。

    次のコマンドは、リソースタイプのリストを出力します。


    # scrgadm -p|egrep SUNW.RGOffload
    
  3. 必要であれば、リソースタイプを登録します。


    # scrgadm -a -t SUNW.RGOffload
    

  4. RGOffload リソースでオフロードするリソースグループごとに、Desired_primaries をゼロに設定します。


    # scrgadm -c -g offload-rg -y Desired_primaries=0
    
  5. 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 リソースを追加するリソースグループを含めることはできません。


  6. RGOffload リソースを有効にします。


    # scswitch -ej rgoffload-resource
    
  7. 重要なフェイルオーバーリソースから RGOffload への依存関係を設定します。


    # scrgadm -c -j critical-resource \
    -y Resource_dependencies=rgoffload-resource
    

    Resource_dependencies_weak も使用できます。Resource_dependencies_weakRGOffload リソースタイプに使用すると、offload-rg のオフロード中にエラーが発生しても、重要なフェイルオーバーリソースを起動できます。

  8. オフロードするリソースグループを、オンラインにします。


    # scswitch -z -g offload-rg, offload-rg-2, ... -h [nodelist]

    リソースグループは、プライオリティが高いリソースグループがオフラインであるすべてのノード上でオンラインのままになります。障害モニターは、重要なリソースグループがオンラインであるノード上でリソースグループが動作しないようにします。

    オフロードするリソースグループの Desired_primaries はゼロに設定されているので (手順 4を参照)、“-Z” オプションを指定しても、このようなリソースグループはオンラインになりません。

  9. 重要なフェイルオーバーリソースグループがオンラインでない場合、オンラインにします。


    # scswitch -Z -g critical-rg
    

SPARC: 例 – RGOffload リソースを構成する

この例では、RGOffload リソース (rgofl)、RGOffload リソースを含む重要なリソースグループ (oracle_rg)、および重要なリソースグループがオンラインになったときにオフロードされるスケーラブルリソースグループ (IWS-SC, IWS-SC-2) を構成する方法について説明します。この例では、重要なリソースは oracle-server-rs です。

この例では、oracle_rgIWS-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 を使用します。Sun Cluster のすべての標準プロパティの詳細は、付録 A 「標準プロパティ」 を参照してください。

表 2–3RGOffload に設定できる拡張プロパティを示します。「調整可能」エントリは、いつプロパティを更新できるかを示します。

表 2–3 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-rgdesired_primaries はゼロに設定されているので、この後で利用可能になったノード上では、オフロードするリソースグループは再起動されません。したがって、RGOffload 障害モニターは maximum_primaries に到達するまで、重要なリソースをマスターするノード上では offload-rg をオフラインにしながら、可能な限りのプライマリ上で offload-rg を起動しようとします。

RGOffload は、MAINTENANCE 状態または UNMANAGED 状態でないかぎり、オフロードされたすべてのリソースを起動しようとします。リソースグループを UNMANAGED 状態にするには、scswitch コマンドを使用します。


# scswitch -u -g resourcegroup

フォルトモニター検証サイクルは、Thorough_probe_interval が実行されたあとにかならず呼び出されます。