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

Sun Cluster 上で Solaris SMF サービスを有効にする

SMF (Service Management Facility) を使用すると、ノードの起動中またはサービス障害中に自動的に SMF サービスを起動および再起動することができます。SMF は、単一ホスト上の SMF サービスに、ある程度の高可用性を実現します。この機能は、クラスタアプリケーションに高可用性とスケーラビリティーを実現する、Sun Cluster Resource Group Manager (RGM) に似ています。SMF サービスと RGM の機能は相互に補完的です。

Sun Cluster には、3 つの新しい SMF プロキシリソースタイプが含まれています。これらを使用すると、フェイルオーバー、マルチマスター、またはスケーラブル構成の Sun Cluster とともに SMF サービスが実行できるようになります。プロキシリソースタイプは次のとおりです。

SMF プロキシリソースタイプを使用すると、相互関係のある SMF サービスのセットを 1 つのリソースにカプセル化し、SMF プロキシリソースを Sun Cluster で管理することができます。この機能では、SMF は 1 つのノード上の SMF サービスの可用性を管理します。Sun Cluster は、SMF サービスの、クラスタ全体にわたる高い可用性とスケーラビリティーを提供します。

SMF プロキシリソースタイプを使用すると、独自の SMF の制御によるサービスを Sun Cluster に統合できます。これらのサービスには、ユーザーがコールバックメソッドやサービスマニフェストを書き換えることなく、クラスタ全体のサービス可用性が与えられます。SMF サービスを SMF プロキシリソースに統合したあとは、SMF サービスはデフォルトの再起動プログラムにより管理されなくなります。Sun Cluster により委任された再起動プログラムが、SMF サービスを管理します。

SMF プロキシリソースはほかのリソースと同じで、使用法に制限はありません。たとえば、SMF プロキシリソースは、ほかのリソースとともにリソースグループにグループ化することができます。SMF プロキシリソースは、ほかのリソースと同じように作成、管理することができます。SMF プロキシリソースは、1 点のみほかのリソースとは異なります。SMF プロキシリソースタイプのリソースを作成する場合、拡張プロパティー Proxied_service_instances を指定する必要があります。SMF リソースによってプロキシされる SMF サービスに関する情報を含めます。拡張プロパティーの値は、プロキシされるすべての SMF サービスを含むファイルへのパスです。ファイル内の各行は 1 つのSMF サービス専用で、svc fmri および対応するサービスマニフェストファイルのパスを指定します。

たとえば、リソースが 2 つのサービス、 restarter_svc_test_1:defaultrestarter_svc_test_2:default を管理する必要がある場合、ファイルには次に示す 2 行が含まれているはずです。


<svc:/system/cluster/restarter_svc_test_1:default>,\
</var/svc/manifest/system/cluster/restarter_svc_test_1.xml>

<svc:/system/cluster/restarter_svc_test_2:default>,\
</var/svc/manifest/system/cluster/restarter_svc_test_2.xml>

SMF プロキシリソースの下でカプセル化されたサービスは、大域ゾーンまたは非大域ゾーンに存在できます。ただし、同じプロキシリソースの下のすべてのサービスは同じゾーン内に配置します。


注意 – 注意 –

SMF svcadm は、プロキシリソース内にカプセル化される SMF サービスを有効または無効にするためには使用しないでください。プロキシリソースにカプセル化される SMF サービス (SMF リポジトリ内) のプロパティーは変更しないでください。


ProcedureSMF サービスのフェイルオーバープロキシリソース構成へのカプセル化

フェイルオーバー構成の詳細については、「リソースグループの作成」を参照してください。


注 –

この手順は、任意のクラスタノードから実行します。


  1. クラスタメンバーで、スーパーユーザーになるか、solaris.cluster.modify RBAC の承認を提供する役割になります。

  2. プロキシ SMF フェイルオーバーリソースタイプを登録します。


    # clresourcetype register -f\
    /opt/SUNWscsmf/etc/SUNW.Proxy_SMF_failover SUNW.Proxy_SMF_failover
    
  3. 登録されたプロキシリソースタイプを確認します。


    # clresourcetype show 
    
  4. SMF フェイルオーバーリソースグループを作成します。


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

    このリソースグループをマスターできるゾーンの、コンマ区切りの順序付けされたリストを指定します。リスト内の各エントリの形式は node:zone です。この形式では、 node はノード名を指定し、zone は非大域 Solaris ゾーンの名前を指定します。大域ゾーンを指定する、または非大域ゾーンを持たないノードを指定するには、node のみを指定します。

    このリストはオプションです。このリストを省略すると、クラスタノードのすべての大域ゾーン上でリソースグループが構成されます。


    注 –

    最高の可用性を実現するには、同一ノード上の異なるゾーンではなく、SMF フェイルオーバーリソースグループのノードリストの異なるノード上でゾーンを指定します。


    resource-group

    追加するスケーラブルリソースグループの名前を指定します。任意の名前の先頭文字は ASCII にする必要があります。

  5. SMF リソースグループが作成されていることを確認します。


    # clresourcegroup status resource-group
    
  6. SMF フェイルオーバーアプリケーションリソースをリソースグループに追加します。


    # clresource create -g resource-group -t SUNW.Proxy_SMF_failover \
    [-p "extension-property[{node-specifier}]"=value, …] [-p standard-property=value, …] resource
    

    リソースは有効状態で作成されます。

  7. SMF フェイルオーバーアプリケーションリソースが追加され、妥当性が検査されていることを確認します。


    # clresource show resource
    
  8. フェイルオーバーリソースグループをオンラインにします。


    # clresourcegroup online -M +
    

例 2–46 SMF プロキシフェイルオーバーリソースタイプの登録

次の例では、SUNW.Proxy_SMF_failover リソースタイプを登録します。


# clresourcetype register SUNW.Proxy_SMF_failover
# clresourcetype show SUNW.Proxy_SMF_failover

Resource Type:              SUNW.Proxy_SMF_failover
RT_description:             Resource type for proxying failover SMF services 
RT_version:                 3.2
API_version:                6
RT_basedir:                 /opt/SUNWscsmf/bin
Single_instance:            False
Proxy:                      False
Init_nodes:                 All potential masters
Installed_nodes:            <All>
Failover:                   True
Pkglist:                    SUNWscsmf 
RT_system:                  False
Global_zone:			       False


例 2–47 SMF プロキシフェイルオーバーアプリケーションリソースのリソースグループへの追加

次の例に、プロキシリソースタイプ SUN.Proxy_SMF_failover のリソースグループ resource-group-1 への追加を示します。


# clresource create -g resource-group-1 -t SUNW.Proxy_SMF_failover
-x proxied_service_instances=/var/tmp/svslist.txt resource-1
# clresource show resource-1

=== Resources ===

  Resource:                                  resource-1
  Type:                                      SUNW.Proxy_SMF_failover
  Type_version:                              3.2 
  Group:                                     resource-group-1
  R_description:                             
  Resource_project_name:                     default
  Enabled{phats1}:                           True 
  Monitored{phats1}:                         True
 

ProcedureSMF サービスのマルチマスタープロキシリソース構成へのカプセル化

  1. クラスタメンバーで、スーパーユーザーになるか、solaris.cluster.modify RBAC の承認を提供する役割になります。

  2. SMF プロキシマルチマスターリソースタイプを登録します。


    # clresourcetype register -f\ 
    /opt/SUNWscsmf/etc/SUNW.Proxy_SMF_multimaster SUNW.Proxy_SMF_multimaster
    
  3. SMF マルチマスターリソースグループを作成します。


    # clresourcegroup create\-p Maximum_primaries=m\-p Desired_primaries=n\
    [-n node-zone-list]\
    resource-group
    
    -p Maximum_primaries=m

    このリソースグループのアクティブな主ノードの最大数を指定します。

    -p Desired_primaries=n

    リソースグループが起動するアクティブな主ノードの数を指定します。

    -n node-zone-list

    このリソースグループが使用可能となる、コンマ区切りの順序付けられたリストを指定します。リスト内の各エントリの形式は node:zone です。この形式では、 node はノード名を指定し、zone は非大域 Solaris ゾーンの名前を指定します。大域ゾーンを指定する、または非大域ゾーンを持たないノードを指定するには、node のみを指定します。

    このリストはオプションです。このリストを省略すると、クラスタノードの大域ゾーン上でリソースグループが構成されます。

    resource-group

    追加するスケーラブルリソースグループの名前を指定します。任意の名前の先頭文字は ASCII にする必要があります。

  4. SMF プロキシマルチマスターリソースグループが作成されたことを確認します。


    # clresourcegroup show resource-group
    
  5. SMF プロキシマルチマスターリソースをリソースグループに追加します。


    # clresource create -g resource-group -t SUNW.Proxy_SMF_multimaster\
    [-p "extension-property[{node-specifier}]"=value, …] [-p standard-property=value, …] resource
    
    -g resource-group

    以前に作成したスケーラブルサービスリソースグループの名前を指定します。

    -p "extension-property[{node-specifier}]"=value, …

    リソース用に設定する拡張プロパティーのコンマ区切りリストを指定します。設定できる拡張プロパティーはリソースタイプに依存します。どの拡張プロパティーを設定するかを決定するには、リソースタイプのマニュアルを参照してください。

    node-specifier は、-p オプションおよび -x オプションに対する「オプション」の修飾子です。この修飾子は、指定された 1 つまたは複数のノードまたはゾーン上でのみ、1 つまたは複数の拡張プロパティーがリソースの作成時に設定されることを示します。指定した拡張プロパティーは、クラスタ内のほかのノードまたはゾーン上では、設定されません。node-specifier を指定しないと、クラスタ内のすべてのノードおよびゾーン上の指定された拡張プロパティーが設定されます。node-specifier にはノード名またはノード識別子を指定できます。node-specifier の構文例を次に示します。


    -p "myprop{phys-schost-1}"
    

    中括弧 ({}) は、指定した拡張プロパティーをノード phys-schost-1 でのみ設定することを示します。大部分のシェルでは、二重引用符 (") が必要です。

    また次の構文を使用して、2 つの異なるノード上の 2 つの異なるゾーン内で拡張プロパティーを設定することもできます。


    -x "myprop{phys-schost-1:zoneA,phys-schost-2:zoneB}"
    
    -p standard-property=value, …

    リソース用に設定する標準プロパティーのコンマ区切りリストを指定します。設定できる標準プロパティーはリソースタイプに依存します。スケーラブルサービスの場合、通常は Port_listLoad_balancing_weights、および Load_balancing_policy プロパティーを設定します。どの標準プロパティーを設定するかを決定するには、リソースタイプのマニュアルと付録 B 「標準プロパティー」を参照してください。

    resource

    追加するリソースの名前を指定します。

    リソースは有効状態で作成されます。

  6. SMF プロキシマルチマスターアプリケーションリソースが追加され、妥当性が検査されていることを確認します。


    # clresource show resource
    
  7. マルチマスターリソースグループをオンラインにします。


    # clresourcegroup online -M +
    

例 2–48 SMF プロキシマルチマスターリソースタイプの登録

次の例では、 SUNW.Proxy_SMF_multimaster リソースタイプを登録します。


# clresourcetype register SUNW.Proxy_SMF_multimaster
# clresourcetype show SUNW.Proxy_SMF_multimaster

Resource Type:            SUNW.Proxy_SMF_multimaster
RT_description:           Resource type for proxying multimastered SMF services 
RT_version:               3.2
API_version:              6
RT_basedir:               /opt/SUNWscsmf/bin
Single_instance:          False
Proxy:                    False
Init_nodes:               All potential masters
Installed_nodes:          <All>
Failover:                  True
Pkglist:                   SUNWscsmf 
RT_system:                 False
Global_zone:				   False


例 2–49 SMF プロキシマルチマスターアプリケーションリソースの作成とリソースグループへの追加

次の例に、マルチマスタープロキシリソースタイプ SUN.Proxy_SMF_multimaster の作成とリソースグループ resource-group-1 への追加を示します。


# clresourcegroup create\
-p Maximum_primaries=2\
-p Desired_primaries=2\
-n phys-schost-1, phys-schost-2\
resource-group-1
# clresourcegroup show resource-group-1

=== Resource Groups and Resources ===          

Resource Group:                        resource-group-1
RG_description:                        <NULL>
RG_mode:                               multimastered
RG_state:                              Unmanaged
RG_project_name:                       default
RG_affinities:                         <NULL>
Auto_start_on_new_cluster:             True
Failback:                              False
Nodelist:                              phys-schost-1 phys-schost-2
Maximum_primaries:                      2
Desired_primaries:                      2
Implicit_network_dependencies:         True
Global_resources_used:                 <All>
Pingpong_interval:                      3600
Pathprefix:                            <NULL>
RG_System:                             False
Suspend_automatic_recovery:                      False

# clresource create -g resource-group-1 -t SUNW.Proxy_SMF_multimaster
-x proxied_service_instances=/var/tmp/svslist.txt resource-1
# clresource show resource-1

=== Resources ===

  Resource:                               resource-1
  Type:                                  SUNW.Proxy_SMF_multimaster
  Type_version:                          3.2 
  Group:                                 resource-group-1
  R_description:                         
  Resource_project_name:                 default
  Enabled{phats1}:                       True 
  Monitored{phats1}:                     True
 

ProcedureSMF サービスのスケーラブルプロキシリソース構成へのカプセル化

スケーラブル構成の詳細については、「スケーラブルリソースグループを作成する」を参照してください。


注 –

この手順は、任意のクラスタノードから実行します。


  1. クラスタメンバーで、スーパーユーザーになるか、solaris.cluster.modify RBAC の承認を提供する役割になります。

  2. SMF プロキシスケーラブルリソースタイプを登録します。


    # clresourcetype register -f\
    /opt/SUNWscsmf/etc/SUNW.Proxy_SMF_scalable SUNW.Proxy_SMF_scalable  
    
  3. スケーラブルリソースグループが使用する共有アドレスを保持する SMF フェイルオーバーリソースグループを作成します。フェイルオーバーリソースグループの作成については、「フェイルオーバーリソースグループを作成する」を参照してください。

  4. SMF プロキシスケーラブルリソースグループを作成します。


    # clresourcegroup create\-p Maximum_primaries=m\-p Desired_primaries=n\
    -p RG_dependencies=depend-resource-group\
    [-n node-zone-list]\
    resource-group
    
    -p Maximum_primaries=m

    このリソースグループのアクティブな主ノードの最大数を指定します。

    -p Desired_primaries=n

    リソースグループが起動するアクティブな主ノードの数を指定します。

    -p RG_dependencies=depend-resource-group

    作成されるリソースグループが依存する共有アドレスリソースを含むリソースグループを指定します。

    -n node-zone-list

    このリソースグループが使用可能となる、コンマ区切りの順序付けられたリストを指定します。リスト内の各エントリの形式は node:zone です。この形式では、 node はノード名を指定し、zone は非大域 Solaris ゾーンの名前を指定します。大域ゾーンを指定する、または非大域ゾーンを持たないノードを指定するには、node のみを指定します。

    このリストはオプションです。このリストを省略すると、クラス内のすべてのノード上でリソースグループが作成されます。

    スケーラブルリソースのノードリストは、共有アドレスリソースのノードリストと同じリストまたは nodename:zonename ペアのサブセットを含むことができます。

    resource-group

    追加するスケーラブルリソースグループの名前を指定します。任意の名前の先頭文字は ASCII にする必要があります。

  5. スケーラブルリソースグループが作成されていることを確認します。


    # clresourcegroup show resource-group
    
  6. SMF プロキシスケーラブルリソースをリソースグループに追加します。


    # clresource create-g resource-group -t SUNW.Proxy_SMF_scalable \
    -p Network_resources_used=network-resource[,network-resource...] \
    -p Scalable=True
    [-p "extension-property[{node-specifier}]"=value, …] [-p standard-property=value, …] resource
    
    -g resource-group

    以前に作成したスケーラブルサービスリソースグループの名前を指定します。

    -p Network_resources_used= network-resource[,network-resource...]

    このリソースが依存するネットワークリソース (共有アドレス) のリストを指定します。

    -p Scalable=True

    このリソースがスケーラブルであることを指定します。

    -p "extension-property[{node-specifier}]"=value, …

    リソースの拡張プロパティーを設定していることを指定します。どの拡張プロパティーを設定するかを決定するには、リソースタイプのマニュアルを参照してください。

    node-specifier は、-p オプションおよび -x オプションに対する「オプション」の修飾子です。この修飾子は、指定された 1 つまたは複数のノードまたはゾーン上でのみ、1 つまたは複数の拡張プロパティーがリソースの作成時に設定されることを示します。指定した拡張プロパティーは、クラスタ内のほかのノードまたはゾーン上では、設定されません。node-specifier を指定しないと、クラスタ内のすべてのノードおよびゾーン上の指定された拡張プロパティーが設定されます。node-specifier にはノード名またはノード識別子を指定できます。node-specifier の構文例を次に示します。


    -p "myprop{phys-schost-1}"
    

    中括弧 ({}) は、指定した拡張プロパティーをノード phys-schost-1 でのみ設定することを示します。大部分のシェルでは、二重引用符 (") が必要です。

    また次の構文を使用して、2 つの異なるノード上の 2 つの異なるゾーン内で拡張プロパティーを設定することもできます。


    -x "myprop{phys-schost-1:zoneA,phys-schost-2:zoneB}"
    
    -p standard-property=value, …

    リソース用に設定する標準プロパティーのコンマ区切りリストを指定します。設定できる標準プロパティーはリソースタイプに依存します。スケーラブルサービスの場合、通常は Port_listLoad_balancing_weights、および Load_balancing_policy プロパティーを設定します。どの標準プロパティーを設定するかを決定するには、リソースタイプのマニュアルと付録 B 「標準プロパティー」を参照してください。

    resource

    追加するリソースの名前を指定します。

    リソースは有効状態で作成されます。

  7. SMF プロキシスケーラブルアプリケーションリソースが追加され、妥当性が検査されていることを確認します。


    # clresource show resource
    
  8. SMF プロキシスケーラブルリソースグループをオンラインにします。


    # clresourcegroup online -M +
    

例 2–50 SMF プロキシスケーラブルリソースタイプの登録

次の例では、SUNW.Proxy_SMF_scalable リソースタイプを登録します。


# clresourcetype register SUNW.Proxy_SMF_scalable
# clresourcetype show SUNW.Proxy_SMF_scalable

Resource Type:           SUNW.Proxy_SMF_scalable
RT_description:          Resource type for proxying scalable SMF services 
RT_version:              3.2
API_version:             6
RT_basedir:              /opt/SUNWscsmf/bin
Single_instance:          False
Proxy:                    False
Init_nodes:               All potential masters
Installed_nodes:          <All>
Failover:                 True
Pkglist:                  SUNWscsmf 
RT_system:                 False
Global_zone:				  False


例 2–51 SMF プロキシスケーラブルアプリケーションリソースの作成とリソースグループへの追加

この例では、スケーラブルプロキシリソースタイプ SUN.Proxy_SMF_scalalble の作成と resource-group-1 への追加を示します。


# clresourcegroup create\
-p Maximum_primaries=2\
-p Desired_primaries=2\
-p RG_dependencies=resource-group-2\
-n phys-schost-1, phys-schost-2\
resource-group-1
# clresourcegroup show resource-group-1

=== Resource Groups and Resources ===          

Resource Group:                      resource-group-1
RG_description:                     <NULL>
RG_mode:                             Scalable
RG_state:                            Unmanaged
RG_project_name:                     default
RG_affinities:                       <NULL>
Auto_start_on_new_cluster:           True
Failback:                            False
Nodelist:                            phys-schost-1 phys-schost-2
Maximum_primaries:                   2
Desired_primaries:                   2
RG_dependencies:                     resource-group2
Implicit_network_dependencies:       True
Global_resources_used:               <All>
Pingpong_interval:                   3600
Pathprefix:                          <NULL>
RG_System:                            False
Suspend_automatic_recovery:           False

# clresource create -g resource-group-1 -t SUNW.Proxy_SMF_scalable
-x proxied_service_instances=/var/tmp/svslist.txt resource-1
# clresource show resource-1

=== Resources ===

  Resource:                            resource-1
  Type:                                SUNW.Proxy_SMF_scalable
  Type_version:                        3.2 
  Group:                               resource-group-1
  R_description:                       
  Resource_project_name:               default
  Enabled{phats1}:                     True 
  Monitored{phats1}:                   True