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

リソースグループへのノードの追加と削除

この節の手順では、次の作業を行います。

ノードの追加や削除をフェイルオーバーリソースグループに対して行うのか、スケーラブルリソースグループに対して行うのかによって、手順は異なります。

フェイルオーバーリソースグループは、フェイルオーバーとスケーラブルの両方のサービスによって使用されるネットワークリソースを含みます。クラスタに接続される各 IP サブネットワークは、指定された独自のネットワークリソースを持ち、フェイルオーバーリソースグループに含まれます。このネットワークリソースは、論理ホスト名または共有アドレスリソースのいずれかになります。各ネットワークリソースは、それが使用する IPMPグループのリストを含んでいます。フェイルオーバーリソースグループの場合は、リソースグループ (netiflist リソースプロパティー) に含まれる各ネットワークリソースに対し、IPMPグループの完全なリストを更新する必要があります。

スケーラブルリソースグループの手順には、次の手順が含まれます。

  1. スケーラブルリソースによって使用されるネットワークリソースを含むフェイルオーバーグループのための手順を繰り返す

  2. スケーラブルグループをホストの新しいセット上でマスターされるように変更する

詳細は、clresourcegroup(1CL) のマニュアルページを参照してください。


注 –

いずれの手順も任意のクラスタノードから実行できます。


リソースグループにノードを追加する

ノードをリソースグループに追加する手順は、リソースグループがスケーラブルリソースグループであるか、フェイルオーバーリソースグループであるかによって異なります。詳細の手順については、以下の節を参照してください。

この手順を実行するには、次の情報が必要になります。

さらに、新しいノードがすでにクラスタメンバーになっていることも確認してください。

Procedureスケーラブルリソースグループにノードを追加する

  1. リソースグループ内のスケーラブルリソースが使用する各ネットワークリソースごとに、そのネットワークリソースが配置されているリソースグループが新しいノードで実行されるようにします。

    詳細は、以下の作業の手順 1 から手順 5 を参照してください。

  2. スケーラブルリソースグループをマスターできるノードのリスト (nodelist リソースグループプロパティー) に新しいノードを追加します。

    この手順は、nodelist の値を上書きするため、リソースグループをマスターできるすべてのノードをここに含める必要があります。


    # clresourcegroup set [-n node-zone-list] resource-group
    
    -n node-zone-list

    このリソースグループをマスターできるノードの、コンマ区切りの順序付けされたリストを指定します。このリソースグループは、このノード以外のすべてのノードでオフラインに切り替えられます。リスト内の各エントリの形式は node:zone です。この形式では、node はノード名を指定し、zone はグローバルクラスタ非投票ノードの名前を指定します。グローバルクラスタ投票ノードを指定する、またはグローバルクラスタ非投票ノードのないノードを指定するには、node のみを指定します。

    このリストはオプションです。このリストを省略すると、Nodelist プロパティーがクラスタ内のすべてのノードに対して設定されます。

    resource-group

    ノードが追加されるリソースグループの名前を指定します。

  3. (省略可能) スケーラブルリソースの Load_balancing_weights プロパティーを更新し、リソースグループに追加するノードにウエイトを割り当てます。

    ウエイトを割り当てない場合は、デフォルトで 1 になります。詳細は、clresourcegroup(1CL) のマニュアルページを参照してください。

Procedureフェイルオーバーリソースグループにノードを追加する

  1. 現在のノードリスト、およびリソースグループ内の各リソース用に構成された IPMPグループの現在のリストを表示します。


    # clresourcegroup show -v resource-group | grep -i nodelist
    # clresourcegroup show -v resource-group | grep -i netiflist
    

    注 –

    nodelistnetiflist のコマンド行出力では、ノード名でノードが識別されます。ノード ID を識別するには、コマンド clnode show -v | grep -i node-id を実行してください。


  2. ノードの追加によって影響を受けるネットワークリソースの netiflist を更新します。

    この手順は、netiflist の値を上書きするため、すべての IPMPグループをここに含める必要があります。


    # clresource set  -p netiflist=netiflist network-resource
    
    -p netiflist=netiflist

    各ノード上の IPMPグループをコンマで区切って指定します。netiflist の各要素は、netif@node の形式にする必要があります。netif は IPMP グループ名 (sc_ipmp0 など) として指定できます。ノードは、ノード名またはノード ID (sc_ipmp0@1sc_ipmp@phys-schost-1 など) で識別できます。

    network-resource

    netiflist エントリ上でホストされているネットワークリソースの名前 (論理ホスト名または共有アドレス) を指定します。

  3. HAStoragePlus AffinityOn 拡張プロパティーが True に等しい場合、適切なディスクセットまたはデバイスグループにノードを追加します。

    • Solaris Volume Manager を使用している場合は、metaset コマンドを使用します。


      # metaset -s disk-set-name -a -h node-name
      
      -s disk-set-name

      metaset コマンドの実行対象となるディスクセットの名前を指定します。

      -a

      指定したディスクセットにドライブまたはホストを追加します。

      -h node-name

      ディスクセットに追加するノードを指定します。

    • SPARC:Veritas Volume Manager を使用している場合は clsetup ユーティリティーを使用します。

      1. アクティブなクラスタメンバー上で clsetup ユーティリティーを起動します。


        # clsetup
        

        メインメニューが表示されます。

      2. メインメニューで、デバイスグループおよびボリュームのオプションに対応する数字を入力します。

      3. 「デバイスグループとボリューム」メニューで、ノードを VxVM デバイスグループに追加するためのオプション対応する数字を入力します。

      4. プロンプトに応答し、VxVM デバイスグループにノードを追加します。

  4. このリソースグループをマスターできるすべてのノードを含めるように、ノードリストを更新します。

    この手順は、nodelist の値を上書きするため、リソースグループをマスターできるすべてのノードをここに含める必要があります。


    # clresourcegroup set [-n node-zone-list] resource-group
    
    -n node-zone-list

    このリソースグループをマスターできるグローバルクラスタ非投票ノードの、コンマ区切りの順序付けされたリストを指定します。このリソースグループは、このノード以外のすべてのノードでオフラインに切り替えられます。リスト内の各エントリの形式は node:zone です。この形式では、node はノード名を指定し、zone はグローバルクラスタ非投票ノードの名前を指定します。グローバルクラスタ投票ノードを指定する、またはグローバルクラスタ非投票ノードのないノードを指定するには、node のみを指定します。

    このリストはオプションです。このリストを省略すると、Nodelist プロパティーがクラスタ内のすべてのノードに対して設定されます。

    resource-group

    ノードが追加されるリソースグループの名前を指定します。

  5. 更新された情報を確認します。


    # clresourcegroup show -vresource-group | grep -i nodelist
    # clresourcegroup show -vresource-group | grep -i netiflist
    

例 2–29 リソースグループにノードを追加する

次に、リソースグループ (resource-group-1) にグローバルクラスタ投票ノード (phys-schost-2) を追加する例を示します。このリソースグループは、論理ホスト名リソース (schost-2) を含んでいます。


# clresourcegroup show -v resource-group-1 | grep -i nodelist
( Nodelist:    phys-schost-1 phys-schost-3
# clresourcegroup show -v resource-group-1 | grep -i netiflist
( Res property name: NetIfList
 Res property class: extension
 List of IPMP
interfaces on each node
 Res property type: stringarray
 Res property value: sc_ipmp0@1 sc_ipmp0@3
 
(Only nodes 1 and 3 have been assigned IPMP groups. 
You must add an IPMP group for node 2.)

# clresource set  -p netiflist=sc_ipmp0@1,sc_ipmp0@2,sc_ipmp0@3 schost-2
# metaset -s red -a -h phys-schost-2
# clresourcegroup set -n  phys-schost-1,phys-schost-2,phys-schost-3 resource-group-1
# clresourcegroup show -v resource-group-1 | grep -i nodelist
 Nodelist:     phys-schost-1 phys-schost-2
               phys-schost-3
# clresourcegroup show -v resource-group-1 | grep -i netiflist
 Res property value: sc_ipmp0@1 sc_ipmp0@2
                     sc_ipmp0@3

リソースグループからノードを削除する

ノードをリソースグループから削除する手順は、リソースグループがスケーラブルリソースグループであるか、フェイルオーバーリソースグループであるかによって異なります。詳細の手順については、以下の節を参照してください。

この手順を実行するには、次の情報が必要になります。

さらに、削除するノード上でリソースグループがマスターされていないことを確認してください。削除するノード上でマスターされている場合は、clresourcegroup コマンドを実行し、そのノードでリソースグループをオフラインに切り替えてください。次の clresourcegroup コマンドは、指定されたノードからリソースグループをオフラインにします。この場合、new-masters にこのノードが含まれていてはなりません。


# clresourcegroup switch -n new-masters resource-group
-n new-masters

このリソースグループを現在マスターできるノードを指定します。

resource-group

切り替えるリソースグループの名前を指定します。このリソースグループは、削除するノード上でマスターされます。

詳細は、clresourcegroup(1CL) のマニュアルページを参照してください。


注意 – 注意 –

すべてのリソースグループからノードを削除する場合で、スケーラブルサービス構成を使用するときは、最初にスケーラブルリソースグループからそのノードを削除してください。続いて、フェイルオーバーグループからそのノードを削除します。


Procedureスケーラブルリソースグループからノードを削除する

スケーラブルサービスは、次に示すように 2 つのリソースグループとして構成されます。

スケーラブルリソースグループの RG_dependencies プロパティーは、フェイルオーバーリソースグループへの依存性を使用してスケーラブルグループを構成するように設定されます。このプロパティーの詳細については、付録 B 標準プロパティーを参照してください。

スケーラブルサービス構成の詳細は、『Sun Cluster の概念 (Solaris OS 版)』を参照してください。

スケーラブルリソースグループからノードを削除すると、そのスケーラブルサービスはそのノード上でオンラインにすることができなくなります。スケーラブルリソースグループからノードを削除するには、以下の作業を行なってください。

  1. スケーラブルリソースグループをマスターできるノードのリスト (nodelist リソースグループプロパティー) からノードを削除します。


    # clresourcegroup set [-n node-zone-list] scalable-resource-group
    
    -n node-zone-list

    このリソースグループをマスターできるノードの、コンマ区切りの順序付けされたリストを指定します。このリソースグループは、このノード以外のすべてのノードでオフラインに切り替えられます。リスト内の各エントリの形式は node:zone です。この形式では、node はノード名を指定し、zone はグローバルクラスタ非投票ノードの名前を指定します。グローバルクラスタ投票ノードを指定する、またはグローバルクラスタ非投票ノードのないノードを指定するには、node のみを指定します。

    このリストはオプションです。このリストを省略すると、Nodelist プロパティーがクラスタ内のすべてのノードに対して設定されます。

    scalable-resource-group

    ノードが削除されるリソースグループの名前を指定します。

  2. (省略可能) 共有アドレスリソースが入ったフェイルオーバーリソースグループからノードを削除します。

    詳細については、「共有アドレスリソースを含むフェイルオーバーリソースグループからノードを削除する」を参照してください。

  3. (省略可能) スケーラブルリソースの Load_balancing_weights プロパティーを更新し、リソースグループから削除するノードのウエイトを削除します。

参照

clresourcegroup(1CL) のマニュアルページ。

Procedureフェイルオーバーリソースグループからノードを削除する

フェイルオーバーリソースグループからノードを削除するには、以下の作業を行なってください。


注意 – 注意 –

すべてのリソースグループからノードを削除する場合で、スケーラブルサービス構成を使用するときは、最初にスケーラブルリソースグループからそのノードを削除してください。続いて、この方法を使用してフェイルオーバーグループからノードを削除します。



注 –

フェイルオーバーリソースグループに、スケーラブルサービスが使用する共有アドレスリソースが含まれる場合は、「共有アドレスリソースを含むフェイルオーバーリソースグループからノードを削除する」を参照してください。


  1. このリソースグループをマスターできるすべてのノードを含めるように、ノードリストを更新します。

    この手順はノードを削除してノードリストの値を上書きするため、リソースグループをマスターできるすべてのノードをここに含める必要があります。


    # clresourcegroup set [-n node-zone-list] failover-resource-group
    
    -n node-zone-list

    このリソースグループをマスターできるノードの、コンマ区切りの順序付けされたリストを指定します。このリソースグループは、このノード以外のすべてのノードでオフラインに切り替えられます。リスト内の各エントリの形式は node:zone です。この形式では、node はノード名を指定し、zone はグローバルクラスタ非投票ノードの名前を指定します。グローバルクラスタ投票ノードを指定する、またはグローバルクラスタ非投票ノードのないノードを指定するには、node のみを指定します。

    このリストはオプションです。このリストを省略すると、Nodelist プロパティーがクラスタ内のすべてのノードに対して設定されます。

    failover-resource-group

    ノードが削除されるリソースグループの名前を指定します。

  2. リソースグループ内の各リソース用に構成した IPMPグループの現在のリストを表示します。


    # clresourcegroup show -v failover-resource-group | grep -i netiflist
    
  3. ノードの削除によって影響を受けるネットワークリソースの netiflist を更新します。

    この手順は netiflist の値を上書きするため、すべての IPMPグループをここに含める必要があります。


    # clresource set -p netiflist=netiflist network-resource
    

    注 –

    上記コマンド行の出力は、ノード 名によってノードを識別します。ノード ID を識別するには、コマンド clnode show -v | grep -i "Node ID" を実行してください。


    -p netiflist=netiflist

    各ノード上の IPMPグループをコンマで区切って指定します。netiflist の各要素は、netif@node の形式にする必要があります。netif は IPMP グループ名 (sc_ipmp0 など) として指定できます。ノードは、ノード名またはノード ID (sc_ipmp0@1sc_ipmp@phys-schost-1 など) で識別できます。

    network-resource

    netiflist エントリ上でホストされているネットワークリソースの名前を指定します。


    注 –

    Sun Cluster では、netif にアダプタ名を使用できません。


  4. 更新された情報を確認します。


    # clresourcegroup show -vfailover-resource-group | grep -i nodelist
    # clresourcegroup show -vfailover-resource-group | grep -i netiflist 
    

Procedure共有アドレスリソースを含むフェイルオーバーリソースグループからノードを削除する

スケーラブルサービスが使用する共有アドレスリソースを含むフェイルオーバーリソースグループでは、ノードは次の場所に現れます。

フェイルオーバーリソースグループのノードリストからノードを削除するには、「フェイルオーバーリソースグループからノードを削除する」に示されている作業を行なってください。

共有アドレスリソースの auxnodelist を変更するには、共有アドレスリソースを削除して作成し直す必要があります。

フェイルオーバーグループのノードリストからノードを削除すると、そのノード上の共有アドレスリソースを継続して使用し、スケーラブルサービスを提供できます。共有アドレスリソースを継続して使用するには、共有アドレスリソースの auxnodelist にそのノードを追加する必要があります。auxnodelist にノードを追加するには、以下の作業を行なってください。


注 –

以下の作業は、共有アドレスリソースの auxnodelist からノードを削除するためにも使用できます。auxnodelist からノードを削除するには、共有アドレスリソースを削除して作成し直す必要があります。


  1. スケーラブルサービスリソースをオフラインに切り替えます。

  2. フェイルオーバーリソースグループから共有アドレスリソースを削除します。

  3. 共有アドレスリソースを作成します。

    フェイルオーバーリソースグループから削除したノードのノード ID またはノード名を auxnodelist に追加します。


    # clressharedaddress create -g failover-resource-group \
     -X new-auxnodelist shared-address 
    
    failover-resource-group

    共有アドレスリソースを含めるために使用されたフェイルオーバーリソースグループの名前

    new-auxnodelist

    妥当なノードの追加または削除によって変更された新しい auxnodelist

    shared-address

    共有アドレスの名前

例 – リソースグループからのノードの削除

次に、リソースグループ (resource-group-1) からノード (phys-schost-3) を削除する例を示します。このリソースグループは、論理ホスト名リソース (schost-1) を含んでいます。


# clresourcegroup show -v resource-group-1 | grep -i nodelist
Nodelist:       phys-schost-1 phys-schost-2
                                             phys-schost-3
# clresourcegroup set -n phys-schost-1,phys-schost-2 resource-group-1
# clresourcegroup show -v resource-group-1 | grep -i netiflist
( Res property name: NetIfList
Res property class: extension
( List of IPMP 
interfaces on each node
( Res property type: stringarray
 Res property value: sc_ipmp0@1 sc_ipmp0@2
                     sc_ipmp0@3

(sc_ipmp0@3 is the IPMP group to be removed.)

# clresource set  -p  netiflist=sc_ipmp0@1,sc_ipmp0@2 schost-1
# clresourcegroup show -v resource-group-1 | grep -i nodelist
Nodelist:       phys-schost-1 phys-schost-2
# clresourcegroup show -v resource-group-1 | grep -i netiflist
 Res property value: sc_ipmp0@1 sc_ipmp0@2