用于 Solaris OS 的 Sun Cluster 数据服务规划和管理指南

第 2 章 管理数据服务资源

本章说明如何使用 scrgadm(1M) 命令管理群集中的资源、资源组和资源类型。请参见数据服务资源管理的工具以确定您是否可以使用其他工具来完成过程。

本章包含以下过程。

有关资源类型、资源组和资源的概述信息,请参见第 1 章,规划 Sun Cluster 数据服务Sun Cluster 概念指南(适用于 Solaris OS) 文档。

管理数据服务资源

表 2–1 列出了说明数据服务资源的管理任务的各节。

表 2–1 任务对应关系:数据服务管理

任务 

有关说明,请转到… 

注册资源类型 

如何注册资源类型

升级资源类型 

如何将现有资源移植到新版本的资源类型

如何安装和注册资源类型的升级版

创建故障转移或可伸缩资源组 

如何创建故障转移资源组

如何创建可伸缩资源组

将逻辑主机名或共享地址和数据服务资源添加到资源组中 

如何将逻辑主机名资源添加到资源组

如何将共享地址资源添加到资源组

如何将故障转移应用程序资源添加到资源组

如何将可伸缩应用程序资源添加到资源组

启用资源和资源监视器、管理资源组、使资源组及其相关的资源联机 

如何使资源组联机

禁用和启用独立于资源的资源监视器 

如何禁用资源故障监视器

如何启用资源故障监视器

从群集中删除资源类型 

如何删除资源类型

从群集中删除资源组 

如何删除资源组

从资源组中删除资源 

如何删除资源

切换资源组的主节点 

如何切换资源组的当前主节点

禁用资源,并将其资源组转为 UNMANAGED 状态

如何禁用资源并将其资源组转为 UNMANAGED 状态

显示资源类型、资源组和资源配置信息 

显示资源类型、资源组和资源配置信息

更改资源类型、资源组和资源特性 

如何更改资源类型特性

如何更改资源组特性

如何更改资源特性

清除失败的 Resource Group Manager (RGM) 进程的错误标志 

如何清除资源上的 STOP_FAILED 错误标志

重新注册内置资源类型 LogicalHostnameSharedAddress

无意中删除之后如何重新注册预注册的资源类型

升级内置资源类型 LogicalHostnameSharedAddress

升级资源类型

升级预注册的资源类型

更新网络资源的网络接口 ID 列表,并更新资源组的节点列表 

将节点添加至资源组

从资源组中删除节点 

从资源组删除节点

为资源组设置 HAStorageHAStoragePlus,以便在这些资源组和磁盘设备组之间同步启动

如何为新资源设置 HAStorage 资源类型

设置 HAStoragePlus,为具有高 I/O 磁盘强度的故障转移数据服务启用高可用性的本地文件系统

如何设置 HAStoragePlus 资源类型

联机修改具有高可用性的文件系统的资源 

联机修改具有高可用性的文件系统的资源

升级 HAStoragePlus 资源类型

升级资源类型

升级 HAStoragePlus 资源类型

在群集节点之间分布联机资源组 

在群集节点之间分布联机资源组

配置资源类型以自动释放节点供关键数据服务使用。 

如何设置 RGOffload 资源

复制并升级资源组、资源类型和资源的配置数据 

复制和升级用于资源组、资源类型和资源的配置数据

调节用于 Sun Cluster 数据服务的故障监视器 

调节 Sun Cluster 数据服务的故障监视器


注意 –

本章中的过程说明如何使用scrgadm(1M) 命令来完成这些任务。您也可以使用其他工具管理资源。有关这些选项的详细信息,请参见数据服务资源管理的工具


配置和管理 Sun Cluster 数据服务

配置 Sun Cluster 数据服务是由若干个过程组成的单个任务。您可以使用这些过程执行以下任务。

在初始配置之后,请使用本章中的过程更新您的数据服务配置。例如,要更改资源类型、资源组和资源特性,请转到更改资源类型、资源组和资源特性

注册资源类型

资源类型提供了适用于所有给定类型资源的常用特性和回调方法的规范。在创建该类型资源之前,必须注册资源类型。有关资源类型的详细信息,请参见第 1 章,规划 Sun Cluster 数据服务

如何注册资源类型

要完成此过程,必须提供要注册的资源类型的名称。资源类型名称是数据服务名称的缩写。有关随 Sun Cluster 提供的数据服务的资源类型名称的信息,请参见关于您的 Sun Cluster 发行版本的发行说明。

有关附加信息,请参见scrgadm(1M) 手册页。


注意 –

请通过任一群集节点执行此过程。


  1. 成为某个群集成员的超级用户。

  2. 注册资源类型。


    # scrgadm -a -t resource-type
    
    -a

    添加指定的资源类型。

    -t resource-type

    指定要添加的资源类型的名称。请参见您的 Sun Cluster 发行版本的发行说明,以确定要提供的预定义名称。

  3. 检验是否已经注册该资源类型。


    # scrgadm -pv -t resource-type
    

示例 – 注册资源类型

下例注册 Sun Cluster HA for Sun Java System Web Server(内部名称 iws)。


# scrgadm -a -t SUNW.iws
# scrgadm -pv -t SUNW.iws
Res Type name:                                   SUNW.iws
  (SUNW.iws) Res Type description:               None registered
  (SUNW.iws) Res Type base directory:            /opt/SUNWschtt/bin
  (SUNW.iws) Res Type single instance:           False
  (SUNW.iws) Res Type init nodes:                All potential masters
  (SUNW.iws) Res Type failover:                  False
  (SUNW.iws) Res Type version:                   1.0
  (SUNW.iws) Res Type API version:               2
  (SUNW.iws) Res Type installed on nodes:        All
  (SUNW.iws) Res Type packages:                  SUNWschtt

从此处可转到何处

注册资源类型之后,您可以创建资源组并将资源添加到该资源组中。有关详细信息,请参见创建资源组

升级资源类型

发行更新版本的资源类型时,您需要安装和注册升级的资源类型。您可能还需要将现有资源升级到更新的资源类型版本。本节提供了以下过程,可用于安装和注册升级的资源类型以及将现有资源升级到新的资源类型版本。

如何安装和注册资源类型的升级版

此过程也可以使用 scsetup 的“资源组”选项来执行。有关 scsetup 的信息,请参见 scsetup(1M) 手册页。

  1. 在所有群集节点上安装资源类型升级软件包。


    注意 –

    如果未在所有节点上安装资源类型软件包,则需要执行附加步骤(步骤 3)。


    升级文档会指示是否需要以非群集模式引导节点以安装资源类型升级软件包。为避免停机时间,请以滚动升级方式添加新软件包(一次一个节点)。当该节点以非群集模式引导时,其他节点处于群集模式中。

  2. 注册新的资源类型版本。


    scrgadm -a -t resource_type -f path_to_new_RTR_file
    

    新的资源类型将具有以下格式的名称。


    vendor_id.rtname:version

    使用 scrgadm -pscrgadm -pv(详细)显示新注册的资源类型。

  3. 如果未在所有节点上安装新资源类型,请将 Installed_nodes 特性设置为实际已安装新资源类型的节点。


    # scrgadm -c -t resource_type -h installed_node_list
    

新版本的资源类型可能在以下方面与以前的版本不同。

如何将现有资源移植到新版本的资源类型

此过程也可以使用 scsetup 的“资源组”选项来执行。有关 scsetup 的信息,请参见 scsetup (1M) 手册页。

现有资源类型版本和新版本中的更改确定了如何移植到新版本类型。资源类型升级文档会告知您是否可以进行移植。如果不支持移植,请考虑删除该资源并用升级版本的新资源替换它,或以旧版本的资源类型保留该资源。

移植现有资源时,以下值可能会更改。

缺省特性值

如果升级版本的资源类型声明了缺省特性的新缺省值,则新的缺省值将由现有资源继承。

新资源类型版本的 VALIDATE 方法将进行检查以确保现有特性的设置是否适当。如果设置不适当,请将现有资源的特性编辑为适当的值。要编辑特性,请参见步骤 3

资源类型名称

RTR 文件包含用于构成资源类型的全限定名称的以下特性。

  • Vendor_id

  • Resource_type

  • RT_Version

注册升级版本的资源类型时,其名称将存储为 vendor_id.rtname:version。已经移植到新版本的资源将具有新的 Type 特性,该特性由以上列出的特性组成。

资源 type_version 特性

标准资源特性 Type_version 存储资源类型的 RT_Version 特性。Type_Version 特性不显示在 RTR 文件中。使用以下命令可编辑 Type_Version 特性。


scrgadm -c -j resource -y Type_version=new_version
  1. 将现有资源移植到新版本的资源类型之前,请阅读附带新资源类型的升级文档以确定是否可以进行移植。

    该文档将指定何时必须进行移植。

    • 任何时候

    • 在资源未被监视时

    • 在资源脱机时

    • 当资源被禁止时

    • 在资源组未受管理时


    注意 –

    移植可随时移植的资源之后,资源探测可能不会显示正确的资源类型版本。在此情况下,禁用并重新启用资源的故障监视器可以确保资源探测显示正确的资源类型版本。


    如果不支持移植,则必须删除该资源并用升级版本的新资源替换它,或以旧版本的资源类型保留该资源。

  2. 对于属于要移植资源类型的每个资源,请将资源或其资源组的状态更改为升级文档所指示的适当状态。

    例如,如果资源需要不被监视


    scswitch -M -n -j resource
    

    如果资源需要脱机


    scswitch -n -j resource
    

    如果资源需要被禁用


    scswitch -n -j resource
    

    如果资源组需要不受管理


    scsswitch -n -j resource-group
    scswitch -F -g resource_group
    scswitch -u -g resource_group
    
  3. 对于属于要移植资源类型的每个资源,请编辑资源,将其 Type_version 特性更改为新版本。


    scrgadm -c -j resource -y Type_version=new_version \
    -x extension_property=new_value -y extension_property=new_value
    

    如果需要,可以通过在命令行中添加附加的 -x 或 -y 选项,使用同一命令将同一资源的其他特性编辑为适当的值。

  4. 通过执行与在步骤 2 中键入的命令相反的命令,恢复资源或资源组的先前状态。

    例如,使资源重新被监视


    scswitch -M -e -j resource
    

    重新启用资源


    scswitch -e -j resource
    

    使资源组受管理并联机


    scswitch -o -g resource_group
    scswitch -Z -g resource_group
    

示例 1 – 将现有资源移植到新资源类型版本

此例说明了现有资源向新资源类型版本的移植。请注意,新资源类型软件包包含的方法位于新路径中。因为在安装期间方法不会被覆写,所以在安装升级的资源类型之前,资源无需被禁用。

此例假定以下条件。


 (按照供应商的说明在所有节点上安装新软件包。)
# scrgadm -a -t myrt -f /opt/XYZmyrt/etc/XYZ.myrt
# scswitch -n -j myresource
# scrgadm -c -j myresource -y Type_version=2.0
# scswitch -e -j myresource

示例 2 – 将现有资源移植到新资源类型版本

此例说明了现有资源向新资源类型版本的移植。请注意,新资源类型软件包仅包含监视器和 RTR 文件。因为在安装期间监视器会被覆写,所以在安装升级的资源类型之前,资源必须被禁用。

此例假定以下条件。


# scswitch -M -n -j myresource
(按照供应商的指示安装新软件包。)
# scrgadm -a -t myrt -f /opt/XYZmyrt/etc/XYZ.myrt
# scrgadm -c -j myresource -y Type_version=2.0
# scswitch -M -e -j myresourcee

降级资源类型

您可以将资源降级为其资源类型的早期版本。将资源降级为资源类型的早期版本比升级到资源类型的更新版本所需的条件更受限制。首先必须使资源组不受管理。此外,只能将资源降级到资源类型的可升级版本。可以通过使用 scrgadm -p 命令标识支持升级的版本。在输出中,支持升级的版本包含后缀 :version

如何将资源降级到其资源类型的早期版本

您可以将资源降级为其资源类型的早期版本。将资源降级为资源类型的早期版本比升级到资源类型的更新版本所需的条件更受限制。首先必须使资源组不受管理。此外,只能将资源降级到资源类型的可升级版本。可以通过使用 scrgadm -p 命令标识支持升级的版本。在输出中,支持升级的版本包含后缀 :version

  1. 将包含要降级资源的资源组切换为脱机状态。


    scswitch -F -g resource_group
    
  2. 禁用要降级的资源以及资源组中的所有资源。


    scswitch -n -j resource_to_downgrade
    scswitch -n -j resource1
    scswitch -n -j resource2
    scswitch -n -j resource3
    ...


    注意 –

    按依赖性的顺序禁用资源,从依赖性最强的资源(应用程序资源)开始,到依赖性最弱的资源(网络地址资源)结束。


  3. 使资源组不受管理。


    scswitch -u -g resource_group
    
  4. 您要降级到的旧版本的资源类型是否仍注册在群集中?

    • 如果是,请转到下一步。

    • 如果否,请重新注册所需的旧版本。


      scrgadm -a -t resource_type_name
      

  5. 通过为 Type_version 指定所需的旧版本来降级资源。


    scrgadm -c -j resource_to_downgrade -y Type_version=old_version
    

    如果需要,请使用同一命令将同一资源的其他特性编辑为适当的值。

  6. 使包含已降级资源的资源组转为受管理状态,启用所有资源并将组切换为联机状态。


    scswitch -Z -g resource_group
    

创建资源组

一个资源组包含一组资源,所有这些资源在给定节点或节点集上一起联机或脱机。必须先创建一个空资源组,然后再将资源放入该资源组。

两种资源组类型是故障转移可伸缩。故障转移资源组在任何时候只能在一个节点上联机,而可伸缩资源组可以同时在多个节点上联机。

以下过程说明如何使用 scrgadm(1M) 命令注册和配置数据服务。

请参见第 1 章,规划 Sun Cluster 数据服务Sun Cluster 概念指南(适用于 Solaris OS)文档以获得有关资源组的概念信息。

如何创建故障转移资源组

故障转移资源组包含网络地址(例如内置资源类型 LogicalHostnameSharedAddress)和故障转移资源(例如故障转移数据服务的数据服务应用程序资源)。当数据服务进行故障转移或切换时,网络资源及其相关数据服务资源在群集节点之间移动。

有关附加信息,请参见scrgadm(1M) 手册页。


注意 –

请通过任一群集节点执行此过程。


  1. 成为某个群集成员的超级用户。

  2. 创建故障转移资源组。


    # scrgadm -a -g resource-group [-h nodelist]
    -a

    添加指定的资源组。

    -g resource-group

    指定要添加的故障转移资源组的名称。此名称必须以 ASCII 字符开头。

    -h nodelist

    指定可控制此资源组的节点的可选的、有序的列表。如果未指定此列表,缺省值将为群集中所有的节点。

  3. 检验是否已经创建该资源组。


    # scrgadm -pv -g resource-group
    

示例 – 创建故障转移资源组

此例说明了故障转移资源组 (resource-group-1) 的添加,两个节点(phys-schost-1phys-schost-2)可控制该资源组。


# scrgadm -a -g resource-group-1 -h phys-schost1,phys-schost-2
# scrgadm -pv -g resource-group-1
Res Group name:                                          resource-group-1
  (resource-group-1) Res Group RG_description:           <NULL>
  (resource-group-1) Res Group management state:         Unmanaged
  (resource-group-1) Res Group Failback:                 False
  (resource-group-1) Res Group Nodelist:                 phys-schost-1  
                                                         phys-schost-2
  (resource-group-1) Res Group Maximum_primaries:        1
  (resource-group-1) Res Group Desired_primaries:        1
  (resource-group-1) Res Group RG_dependencies:          <NULL>
  (resource-group-1) Res Group mode:                     Failover
  (resource-group-1) Res Group network dependencies:     True
  (resource-group-1) Res Group Global_resources_used:    All
  (resource-group-1) Res Group Pathprefix:

从此处可转到何处

创建故障转移资源组之后,您可以将应用程序资源添加到此资源组。有关过程,请参见将资源添加到资源组

如何创建可伸缩资源组

可伸缩资源组与可伸缩服务一起使用。共享地址功能是 Sun Cluster 的联网工具,可以使可伸缩服务的多个实例显示为单个服务。必须先创建包含可伸缩资源所依赖的共享地址的故障转移资源组。然后再创建可伸缩资源组,并将可伸缩资源添加到该组。

有关附加信息,请参见scrgadm(1M) 手册页。


注意 –

请通过任一群集节点执行此过程。


  1. 成为某个群集成员的超级用户。

  2. 创建用于保存可伸缩资源要使用的共享地址的故障转移资源组。

  3. 创建可伸缩资源组。


    # scrgadm -a -g resource-group \
    -y Maximum_primaries=m \
    -y Desired_primaries=n \
    -y RG_dependencies=depend-resource-group \
    -h nodelist]
    -a

    添加可伸缩资源组。

    -g resource-group

    指定要添加的可伸缩资源组的名称。

    -y Maximum_primaries =m

    指定此资源组的活动主节点的最大数目。

    -y Desired_primaries =n

    指定尝试启动资源组的活动主节点的数目。

    -y RG_dependencies =depend-resource-group

    标识包含共享地址资源(正在创建的资源组所依赖)的资源组。

    -h nodelist

    指定其中此资源组即将可用的节点的可选列表。如果未指定此列表,缺省值将为所有节点。

  4. 检验是否已经创建该可伸缩资源组。


    # scrgadm -pv -g resource-group
    

示例 – 创建可伸缩资源组

此例说明了可伸缩资源组 (resource-group-1) 的添加,该资源组将在两个节点(phys-schost-1phys-schost-2)上托管。可伸缩资源组依赖于包含共享地址的故障转移资源组 (resource-group-2)。


# scrgadm -a -g resource-group-1 \
-y Maximum_primaries=2 \
-y Desired_primaries=2 \
-y RG_dependencies=resource-group-2 \
-h phys-schost-1,phys-schost-2
# scrgadm -pv -g resource-group-1
Res Group name:                                          resource-group-1
  (resource-group-1) Res Group RG_description:           <NULL>
  (resource-group-1) Res Group management state:         Unmanaged
  (resource-group-1) Res Group Failback:                 False
  (resource-group-1) Res Group Nodelist:                 phys-schost-1
                                                         phys-schost-2
  (resource-group-1) Res Group Maximum_primaries:        2
  (resource-group-1) Res Group Desired_primaries:        2
  (resource-group-1) Res Group RG_dependencies:          resource-group-2
  (resource-group-1) Res Group mode:                     Scalable
  (resource-group-1) Res Group network dependencies:     True
  (resource-group-1) Res Group Global_resources_used:    All
  (resource-group-1) Res Group Pathprefix:

从此处可转到何处

创建可伸缩资源组之后,您可以将可伸缩应用程序资源添加到该资源组。有关详细信息,请参见如何将可伸缩应用程序资源添加到资源组

将资源添加到资源组

资源是资源类型的实例。必须先将资源添加到资源组,RGM 才能管理资源。本节说明了以下三种资源类型。

请始终将逻辑主机名资源和共享地址资源添加到故障转移资源组。将用于故障转移数据服务的数据服务资源添加到故障转移资源组。故障转移资源组包含用于数据服务的逻辑主机名资源和应用程序资源。可伸缩资源组仅包含用于可伸缩服务的应用程序资源。可伸缩服务所依赖的共享地址资源必须位于单独的故障转移资源组中。必须指定可伸缩应用程序资源与共享地址资源之间的依赖性,以便数据服务在各群集节点间伸缩。

有关资源的详细信息,请参见Sun Cluster 概念指南(适用于 Solaris OS)文档和第 1 章,规划 Sun Cluster 数据服务

如何将逻辑主机名资源添加到资源组

要完成此过程,必须提供以下信息。


注意 –

在将逻辑主机名资源添加到资源组时,该资源的扩展特性将被设置为缺省值。要指定一个非缺省值,则必须在将资源添加到资源组之后修改该资源。有关更多信息,请参见如何修改逻辑主机名资源或共享地址资源


有关附加信息,请参见scrgadm(1M) 手册页。


注意 –

请通过任一群集节点执行此过程。


  1. 成为某个群集成员的超级用户。

  2. 将逻辑主机名资源添加到资源组。


    # scrgadm -a -L [-j resource] -g resource-group -l hostnamelist, … [-n netiflist]
    -a

    添加逻辑主机名资源。

    -L

    指定命令的逻辑主机名资源格式。

    -j resource

    指定您选择的可选的资源名称。如果未指定此选项,则缺省名称为使用 -l 选项指定的第一个主机名。

    -g resource-group

    指定此资源所在的资源组的名称。

    -l hostnamelist, …

    指定 UNIX 主机名(逻辑主机名)(以逗号分隔)列表,客户机使用该主机名与资源组中的服务进行通信。

    -n netiflist

    指定一个可选的、用逗号分隔的列表,该列表标识各节点上的 IP 网络多路径处理 组。netiflist 中的每个元素的格式必须为 netif@nodenetif 可被指定为 IP 网络多路径处理 组的名称,例如 sc_ipmp0。节点可由节点名称或节点 ID 标识,例如 sc_ipmp0@1sc_ipmp@phys-schost-1


    注意 –

    Sun Cluster 目前不支持将适配器名称用作 netif


  3. 检验是否已经添加该逻辑主机名资源。


    # scrgadm -pv -j resource
    

    添加资源会使 Sun Cluster 软件验证该资源。如果验证成功,则您可以启用该资源,并可以将资源组转为 RGM 可对其进行管理的状态。如果验证失败,则 scrgadm 命令将生成错误消息并退出。如果验证失败,请针对错误消息查看每个节点上的 syslog。错误消息显示在执行验证的节点上,不一定显示在运行 scrgadm 命令的节点上。

示例 – 将逻辑主机名资源添加到资源组

此例说明了将逻辑主机名资源 (resource-1) 添加到资源组 (resource-group-1)。


# scrgadm -a -L -j resource-1 -g resource-group-1 -l schost-1
# scrgadm -pv -j resource-1
Res Group name: resource-group-1
(resource-group-1) Res name:                              resource-1
  (resource-group-1:resource-1) Res R_description:
  (resource-group-1:resource-1) Res resource type:        SUNW.LogicalHostname
  (resource-group-1:resource-1) Res resource group name:  resource-group-1
  (resource-group-1:resource-1) Res enabled:              False
  (resource-group-1:resource-1) Res monitor enabled:      True

从此处可转到何处

添加逻辑主机名资源之后,请使用过程如何使资源组联机使其联机。

如何将共享地址资源添加到资源组

要完成此过程,必须提供以下信息。


注意 –

在将共享地址资源添加到资源组时,该资源的扩展特性将被设置为缺省值。要指定一个非缺省值,则必须在将资源添加到资源组之后修改该资源。有关更多信息,请参见如何修改逻辑主机名资源或共享地址资源


有关附加信息,请参见scrgadm(1M) 手册页。


注意 –

请通过任一群集节点执行此过程。


  1. 成为某个群集成员的超级用户。

  2. 将共享地址资源添加到资源组。


    # scrgadm -a -S [-j resource] -g resource-group -l hostnamelist, … \
    [-X auxnodelist] [-n netiflist]
    -a

    添加共享地址资源。

    -S

    指定命令的共享地址资源格式。

    -j resource

    指定您选择的可选的资源名称。如果未指定此选项,则缺省名称为使用 -l 选项指定的第一个主机名。

    -g resource-group

    指定资源组名称。

    -l hostnamelist, …

    指定共享地址主机名(以逗号分隔)列表。

    -X auxnodelist

    指定物理节点名称或 ID(以逗号分隔)列表,这些节点名称或 ID 标识可托管共享地址但在发生故障转移时从不作为主节点的群集节点。这些节点与资源组的节点列表中标识为潜在主节点的节点相互排斥。

    -n netiflist

    指定一个可选的、用逗号分隔的列表,该列表标识各节点上的 IP 网络多路径处理 组。netiflist 中的每个元素的格式必须为 netif@nodenetif 可被指定为 IP 网络多路径处理 组的名称,例如 sc_ipmp0。节点可由节点名称或节点 ID 标识,例如 sc_ipmp0@1sc_ipmp@phys-schost-1


    注意 –

    Sun Cluster 目前不支持将适配器名称用作 netif


  3. 检验是否已经添加并验证了共享地址资源。


    # scrgadm -pv -j resource
    

    添加资源会使 Sun Cluster 软件验证该资源。如果验证成功,则您可以启用该资源,并可以将资源组转为 RGM 可对其进行管理的状态。如果验证失败,则 scrgadm 命令将生成错误消息并退出。如果验证失败,请针对错误消息查看每个节点上的 syslog。错误消息显示在执行验证的节点上,不一定显示在运行 scrgadm 命令的节点上。

示例 – 将共享地址资源添加到资源组

此例说明了将共享地址资源 (resource-1) 添加到资源组 (resource-group-1)。


# scrgadm -a -S -j resource-1 -g resource-group-1 -l schost-1
# scrgadm -pv -j resource-1
(resource-group-1) Res name:                                resource-1
    (resource-group-1:resource-1) Res R_description:
    (resource-group-1:resource-1) Res resource type:        SUNW.SharedAddress
    (resource-group-1:resource-1) Res resource group name:  resource-group-1
    (resource-group-1:resource-1) Res enabled:              False
    (resource-group-1:resource-1) Res monitor enabled:      True

从此处可转到何处

添加共享资源之后,请使用过程如何使资源组联机启用该资源。

如何将故障转移应用程序资源添加到资源组

故障转移应用程序资源是使用先前在故障转移资源组中创建的逻辑主机名的应用程序资源。

要完成此过程,必须提供以下信息。

有关附加信息,请参见scrgadm(1M) 手册页。


注意 –

请通过任一群集节点执行此过程。


  1. 成为某个群集成员的超级用户。

  2. 将故障转移应用程序资源添加到资源组。


    # scrgadm -a -j resource -g resource-group -t resource-type \
    [-x Extension_property=value, …] [-y Standard_property=value, …]
    -a

    添加资源。

    -j resource

    指定要添加的资源的名称。

    -g resource-group

    指定先前创建的故障转移资源组的名称。

    -t resource-type

    指定资源的资源类型名称。

    -x Extension_property =value, …

    指定依赖于特定数据服务的扩展特性(以逗号分隔)列表。请参见各数据服务的文档以确定该数据服务是否需要此特性。

    -y Standard_property =value, …

    指定依赖于特定数据服务的标准特性(以逗号分隔)列表。请参见各数据服务的文档和附录 A,标准特性 以确定该数据服务是否需要此特性。


    注意 –

    您可以设置其他特性。有关详细信息,请参见附录 A,标准特性 和本书中有关如何安装和配置故障转移数据服务的文档。


  3. 检验是否已经添加并验证了故障转移应用程序资源。


    # scrgadm -pv -j resource
    

    添加资源会使 Sun Cluster 软件验证该资源。如果验证成功,则您可以启用该资源,并可以将资源组转为 RGM 可对其进行管理的状态。如果验证失败,则 scrgadm 命令将生成错误消息并退出。如果验证失败,请针对错误消息查看每个节点上的 syslog。错误消息显示在执行验证的节点上,不一定显示在运行 scrgadm 命令的节点上。

示例 – 将故障转移应用程序资源添加到资源组

此例说明了将资源 (resource-1) 添加到资源组 (resource-group-1)。该资源依赖于逻辑主机名资源(schost-1schost-2),逻辑主机名资源必须位于先前定义的同一故障转移资源组中。


# scrgadm -a -j resource-1 -g resource-group-1 -t resource-type-1 \
-y Network_resources_used=schost-1,schost2 \
# scrgadm -pv -j resource-1
(resource-group-1) Res name:                                resource-1
    (resource-group-1:resource-1) Res R_description:
    (resource-group-1:resource-1) Res resource type:        resource-type-1
    (resource-group-1:resource-1) Res resource group name:  resource-group-1
    (resource-group-1:resource-1) Res enabled:              False
    (resource-group-1:resource-1) Res monitor enabled:      True

从此处可转到何处

添加故障转移应用程序资源之后,请使用过程如何使资源组联机启用该资源。

如何将可伸缩应用程序资源添加到资源组

可伸缩应用程序资源是使用故障转移资源组中的共享地址的应用程序资源。

要完成此过程,必须提供以下信息:

有关附加信息,请参见scrgadm(1M) 手册页。


注意 –

请通过任一群集节点执行此过程。


  1. 成为某个群集成员的超级用户。

  2. 将可伸缩应用程序资源添加到资源组。


    # scrgadm -a -j resource -g resource-group -t resource-type \
    -y Network_resources_used=network-resource[,network-resource...] \
    -y Scalable=True
    [-x Extension_property=value, …] [-y Standard_property=value, …]
    -a

    添加资源。

    -j resource

    指定要添加的资源的名称。

    -g resource-group

    指定先前创建的可伸缩服务资源组的名称。

    -t resource-type

    指定此资源的资源类型名称。

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

    指定此资源所依赖的网络资源(共享地址)的列表。

    -y Scalable =True

    指定此资源是可伸缩的。

    -x Extension_property =value, …

    指定依赖于特定数据服务的扩展特性(以逗号分隔)列表。请参见各数据服务的文档以确定该数据服务是否需要此特性。

    -y Standard_property =value, …

    指定依赖于特定数据服务的标准特性(以逗号分隔)列表。请参见各数据服务的文档和附录 A,标准特性 以确定该数据服务是否需要此特性。

    -y Standard_property =value, …

    指定依赖于特定数据服务的标准特性(以逗号分隔)列表。请参见各数据服务的文档和附录 A,标准特性 以确定该数据服务是否需要此特性。


    注意 –

    您可以设置其他特性。有关其他可配置特性的信息,请参见附录 A,标准特性 和本书中有关如何安装和配置可伸缩数据服务的文档。尤其对于可伸缩服务,通常设置 Port_listLoad_balancing_weightsLoad_balancing_policy 特性,这在附录 A,标准特性 中进行了说明。


  3. 检验是否已经添加并验证了可伸缩应用程序资源。


    # scrgadm -pv -j resource
    

    添加资源会使 Sun Cluster 软件验证该资源。如果验证成功,则您可以启用该资源,并可以将资源组转为 RGM 可对其进行管理的状态。如果验证失败,则 scrgadm 命令将生成错误消息并退出。如果验证失败,请针对错误消息查看每个节点上的 syslog。错误消息显示在执行验证的节点上,不一定显示在运行 scrgadm 命令的节点上。

示例 – 将可伸缩应用程序资源添加到资源组

此例说明了将资源 (resource-1) 添加到资源组 (resource-group-1)。请注意,resource-group-1 依赖于包含使用中的网络地址(下例中的 schost-1schost-2)的故障转移资源组。该资源依赖于共享地址资源(schost-1schost-2),共享地址资源必须位于先前定义的一个或多个故障转移资源组中。


# scrgadm -a -j resource-1 -g resource-group-1 -t resource-type-1 \
-y Network_resources_used=schost-1,schost-2 \
-y Scalable=True
# scrgadm -pv -j resource-1
(resource-group-1) Res name:                                resource-1
    (resource-group-1:resource-1) Res R_description:
    (resource-group-1:resource-1) Res resource type:        resource-type-1
    (resource-group-1:resource-1) Res resource group name:  resource-group-1
    (resource-group-1:resource-1) Res enabled:              False
    (resource-group-1:resource-1) Res monitor enabled:      True

从此处可转到何处

添加可伸缩应用程序资源之后,请按照过程如何使资源组联机启用该资源。

使资源组联机

要启用资源以开始提供 HA 服务,您必须在资源组中启用资源、启用资源监视器、使资源组处于被管理状态并使资源组联机。您可以分别执行这些任务,也可以使用以下过程执行这些任务。有关详细信息,请参见scswitch(1M) 手册页。


注意 –

请通过任一群集节点执行此过程。


如何使资源组联机

  1. 成为某个群集成员的超级用户。

  2. 启用资源,并使资源组联机。


    # scswitch -Z -g rg-list
    

    如果资源监视器已被禁用,也将启用资源监视器。


    注意 –

    如果已故意禁用必须保持禁用状态的资源或故障监视器,请指定 -z 选项而非 -Z 选项。


    -Z

    通过先启用资源组的资源和故障监视器来使资源组联机。

    -g rg-list

    指定要联机资源组的名称(以逗号分隔)列表。资源组必须存在。该列表可能包含一个资源组名称,也可能包含多个资源组名称。

    您可以省略 -g rg-list 选项。如果省略此选项,则所有资源组都将联机。


    注意 –

    如果要联机的任一资源组声明与其他资源组有强关联,则此操作可能会失败。有关更多信息,请参见在群集节点之间分布联机资源组


  3. 检验资源是否已联机。

    在任一群集节点上运行以下命令,并查看资源组状态字段以检验每个资源组均已在节点列表中指定的节点上联机。


    # scstat -g
    

示例 – 使资源组联机

此例说明了如何使资源组 (resource-group-1) 联机并检验其状态。


# scswitch -Z -g resource-group-1
# scstat -g

从此处可转到何处

使资源组联机之后,将配置该资源组,然后便可以使用。如果资源或节点失败,RGM 将在其他节点上使资源组联机以维护资源组的可用性。

禁用和启用资源监视器

以下过程禁用或启用资源故障监视器,而不是资源本身。当资源的故障监视器被禁用时,该资源可以继续正常运行。但是,如果故障监视器被禁用并且数据服务发生故障,则不会启动自动故障恢复。

有关附加信息,请参见scswitch(1M) 手册页。


注意 –

请通过任一群集节点运行此过程。


如何禁用资源故障监视器

  1. 成为某个群集成员的超级用户。

  2. 禁用资源故障监视器。


    # scswitch -n -M -j resource
    
    -n

    禁用资源或资源监视器。

    -M

    禁用指定资源的故障监视器。

    -j resource

    资源的名称。

  3. 检验是否已经禁用资源故障监视器。

    在每个群集节点上运行以下命令,并查看监视字段 (RS Monitored)。


    # scrgadm -pv
    

示例 – 禁用资源故障监视器

此例说明了如何禁用资源故障监视器。


# scswitch -n -M -j resource-1
# scrgadm -pv
...
RS Monitored: no...

如何启用资源故障监视器

  1. 成为某个群集成员的超级用户。

  2. 启用资源故障监视器。


    # scswitch -e -M -j resource
    
    -e

    启用资源或资源监视器。

    -M

    启用指定资源的故障监视器。

    -j resource

    指定资源的名称。

  3. 检验是否已经启用资源故障监视器。

    在每个群集节点上运行以下命令,并查看监视字段 (RS Monitored)。


    # scrgadm -pv
    

示例 – 启用资源故障监视器

此例说明了如何启用资源故障监视器。


# scswitch -e -M -j resource-1
# scrgadm -pv
...
RS Monitored: yes...

删除资源类型

您无需删除未使用的资源类型。但是,如果要删除资源类型,可以使用此过程来执行操作。

有关附加信息,请参见scrgadm(1M)scswitch(1M) 手册页。


注意 –

请通过任一群集节点执行此过程。


如何删除资源类型

在删除资源类型之前,必须在群集的所有资源组中禁用和删除属于该类型的所有资源。使用 scrgadm -pv 命令可标识群集中的资源和资源组。

  1. 成为某个群集成员的超级用户。

  2. 禁用属于要删除的资源类型的每个资源。


    # scswitch -n -j resource
    
    -n

    禁用资源。

    -j resource

    指定要禁用的资源的名称。

  3. 删除属于要删除的资源类型的每个资源。


    # scrgadm -r -j resource
    
    -r

    删除指定的资源。

    -j

    指定要删除的资源的名称。

  4. 删除资源类型。


    # scrgadm -r -t resource-type
    
    -r

    删除指定的资源类型。

    -t resource-type

    指定要删除的资源类型的名称。

  5. 检验是否已经删除该资源类型。


    # scrgadm -p
    

示例 – 删除资源类型

此例说明了如何禁用和删除属于某一资源类型 (resource-type-1) 的所有资源,然后再删除资源类型本身。在此例中,resource-1 是资源类型为 resource-type-1 的资源。


# scswitch -n -j resource-1
# scrgadm -r -j resource-1
# scrgadm -r -t resource-type-1

删除资源组

要删除资源组,必须先删除资源组中的所有资源。

有关附加信息,请参见scrgadm(1M)scswitch(1M) 手册页。


注意 –

请通过任一群集节点执行此过程。


如何删除资源组

  1. 成为某个群集成员的超级用户。

  2. 运行以下命令以将资源组切换为脱机状态。


    # scswitch -F -g resource-group
    
    -F

    将资源组切换为脱机状态。

    -g resource-group

    指定要脱机的资源组的名称。

  3. 禁用属于资源组的所有资源。

    您可以使用 scrgadm -pv 命令查看资源组中的资源。禁用要删除的资源组中的所有资源。


    # scswitch -n -j resource
    
    -n

    禁用资源。

    -j resource

    指定要禁用的资源的名称。

    如果资源组中存在任何相关数据服务资源,则在禁用依赖于该资源的所有资源之前,您不能禁用该资源。

  4. 从资源组中删除所有资源。

    使用 scrgadm 命令可执行以下任务。

    • 删除资源。

    • 删除资源组。


    # scrgadm -r -j resource
    # scrgadm -r -g resource-group
    
    -r

    删除指定的资源或资源组。

    -j resource

    指定要删除的资源的名称。

    -g resource-group

    指定要删除的资源组的名称。

  5. 检验是否已经删除该资源组。


    # scrgadm -p
    

示例 – 删除资源组

此例说明了如何在删除资源组 (resource-group-1) 的资源 (resource-1) 之后删除该资源组。


# scswitch -F -g resource-group-1
# scrgadm -r -j resource-1
# scrgadm -r -g resource-group-1

删除资源

在从资源组删除资源之前,请先禁用该资源。

有关附加信息,请参见scrgadm(1M)scswitch(1M) 手册页。


注意 –

请通过任一群集节点执行此过程。


如何删除资源

  1. 成为某个群集成员的超级用户。

  2. 禁用要删除的资源。


    # scswitch -n -j resource
    
    -n

    禁用资源。

    -j resource

    指定要禁用的资源的名称。

  3. 删除资源。


    # scrgadm -r -j resource
    
    -r

    删除指定的资源。

    -j resource

    指定要删除的资源的名称。

  4. 检验是否已经删除该资源。


    # scrgadm -p
    

示例 – 删除资源

此例说明了如何禁用和删除资源 (resource-1)。


# scswitch -n -j resource-1
# scrgadm -r -j resource-1

切换资源组的当前主节点

请使用以下过程将资源组从其当前主节点切换到将成为新主节点的另一个节点。

有关附加信息,请参见scrgadm(1M)scswitch(1M) 手册页。


注意 –

请通过任一群集节点执行此过程。


如何切换资源组的当前主节点

要完成此过程,必须提供以下信息。

  1. 成为某个群集成员的超级用户。

  2. 将主节点切换为潜在主节点。


    # scswitch -z -g resource-group -h nodelist
    
    -z

    将指定的资源组切换为联机状态。

    -g resource-group

    指定要切换的资源组的名称。

    -h nodelist

    指定要联机或保持联机状态的资源组所在节点的名称(以逗号分隔)列表。该列表可能包含一个节点名称,也可能包含多个节点名称。随后此资源组在所有其他节点上被切换为脱机状态。


    注意 –

    如果要切换的任一资源组声明与其他资源组有强关联,则切换尝试可能会失败或被委托。有关更多信息,请参见在群集节点之间分布联机资源组


  3. 检验资源组是否已切换到新的主节点。

    运行以下命令,并查看已切换资源组的状态输出。


    # scstat -g
    

示例 – 将资源组切换到新的主节点

此例说明了如何将资源组 (resource-group-1) 从其当前主节点 (phys-schost-1) 切换到潜在主节点 (phys-schost-2)。首先,检验资源组在 phys-schost-1 上是否处于联机状态。其次,执行切换。最后,检验该组是否在 phys-schost-2 上被切换为联机状态。


phys-schost-1# scstat -g
...
Resource Group Name:          resource-group-1
  Status                                           
    Node Name:                phys-schost-1
    Status:                   Online

    Node Name:                phys-schost-2
    Status:                   Offline
...
phys-schost-1# scswitch -z -g resource-group-1 -h phys-schost-2
phys-schost-1# scstat -g
...
Resource Group Name:          resource-group-1
  Status                                           
    Node Name:                phys-schost-2
    Status:                   Online

    Node Name:                phys-schost-1
    Status:                   Offline
...

禁用资源并将其资源组转为 UNMANAGED 状态

有时,必须使资源组转为 UNMANAGED 状态,才能在其上执行管理过程。在将资源组转为 UNMANAGED 状态之前,必须禁用属于资源组的所有资源并使资源组脱机。

有关附加信息,请参见scrgadm(1M)scswitch(1M) 手册页。


注意 –

请通过任一群集节点执行此过程。


如何禁用资源并将其资源组转为 UNMANAGED 状态

要完成此过程,必须提供以下信息。

要确定此过程所需的资源和资源组的名称,请使用 scrgadm -pv 命令。


注意 –

当某个共享地址资源被禁用时,该资源可能仍然能够响应来自某些主机的 ping(1M) 命令。为确保已禁用的共享地址资源不能响应 ping 命令,您必须将资源的资源组转为 UNMANAGED 状态。


  1. 成为某个群集成员的超级用户。

  2. 禁用资源。

    对资源组中的所有资源重复此步骤。


    # scswitch -n -j resource
    
    -n

    禁用资源。

    -j resource

    指定要禁用的资源的名称。

  3. 运行以下命令以将资源组切换为脱机状态。


    # scswitch -F -g resource-group
    
    -F

    将资源组切换为脱机状态。

    -g resource-group

    指定要脱机的资源组的名称。

  4. 将资源组转为 UNMANAGED 状态。


    # scswitch -u -g resource-group
    
    -u

    将指定的资源组转为 UNMANAGED 状态。

    -g resource-group

    指定要转为 UNMANAGED 状态的资源组的名称。

  5. 检验是否已禁用资源并且资源组是否处于 UNMANAGED 状态。


    # scrgadm -pv -g resource-group
    

示例 – 禁用资源并将资源组转为 UNMANAGED 状态

此例说明了如何禁用资源 (resource-1),然后将资源组 (resource-group-1) 转为 UNMANAGED 状态。


# scswitch -n -j resource-1
# scswitch -F -g resource-group-1
# scswitch -u -g resource-group-1
# scrgadm -pv -g resource-group-1
Res Group name:                                               resource-group-1
  (resource-group-1) Res Group RG_description:                <NULL>
  (resource-group-1) Res Group management state:              Unmanaged
  (resource-group-1) Res Group Failback:                      False
  (resource-group-1) Res Group Nodelist:                      phys-schost-1
                                                              phys-schost-2
  (resource-group-1) Res Group Maximum_primaries:             2
  (resource-group-1) Res Group Desired_primaries:             2
  (resource-group-1) Res Group RG_dependencies:               <NULL>
  (resource-group-1) Res Group mode:                          Failover
  (resource-group-1) Res Group network dependencies:          True
  (resource-group-1) Res Group Global_resources_used:         All
  (resource-group-1) Res Group Pathprefix:
 
  (resource-group-1) Res name:                                resource-1
    (resource-group-1:resource-1) Res R_description:
    (resource-group-1:resource-1) Res resource type:          SUNW.apache
    (resource-group-1:resource-1) Res resource group name:    resource-group-1
    (resource-group-1:resource-1) Res enabled:                True
    (resource-group-1:resource-1) Res monitor enabled:        False
    (resource-group-1:resource-1) Res detached:               False

显示资源类型、资源组和资源配置信息

在对资源、资源组或资源类型执行管理过程之前,请使用以下过程查看这些对象的当前配置设置。

有关附加信息,请参见scrgadm(1M)scswitch(1M) 手册页。


注意 –

请通过任一群集节点执行此过程。


显示资源类型、资源组和资源配置信息

scrgadm 命令提供了以下三个级别的配置状态信息。

您也可以使用 -t-g -j (分别用于资源类型、资源组和资源)选项,后跟要查看的对象的名称,以查看有关特定资源类型、资源组和资源的状态信息。例如,以下命令仅指定要查看有关资源 apache-1 的特定信息。


# scrgadm -p[v[v]] -j apache-1

有关详细信息,请参阅 scrgadm(1M) 手册页。

更改资源类型、资源组和资源特性

Sun Cluster 定义了用于配置资源类型、资源组和资源的标准特性。以下各节中介绍了这些标准特性:

资源还具有扩展特性,这些扩展特性是为表示资源的数据服务预定义的。有关数据服务的扩展特性的说明,请参见数据服务的文档。

要确定是否可以更改特性,请参见该特性的说明中的特性的“可调”条目。

以下过程介绍了如何更改用于配置资源类型、资源组和资源的特性。

如何更改资源类型特性

要完成此过程,必须提供以下信息。


注意 –

请通过任一群集节点执行此过程。


  1. 成为某个群集成员的超级用户。

  2. 运行 scrgadm 命令以确定此过程所需的资源类型的名称。


    # scrgadm -pv
    
  3. 更改资源类型特性。

    对于资源类型,您只能更改某些特性。要确定是否可以更改特性,请参见资源类型特性中的特性的“可调”条目。


    # scrgadm -c -t resource-type [-h installed-node-list] [-y property=new-value]
    -c

    更改指定的资源类型特性。

    -t resource-type

    指定资源类型的名称。

    -h installed-node-list

    指定安装了此资源类型的节点的名称。

    -y property =new-value

    指定要更改的标准特性的名称以及该特性的新值。

    您不能显式更改 Installed_nodes 特性。要更改此特性,请指定 scrgadm 命令的 -h installed-node-list 选项。

  4. 检验是否已经更改资源类型特性。


    # scrgadm -pv -t resource-type
    

示例 – 更改资源类型特性

此例说明了如何更改 SUNW.apache 特性以定义在两个节点(phys-schost-1phys-schost-2)上安装此资源类型。


# scrgadm -c -t SUNW.apache -h phys-schost-1,phys-schost-2
# scrgadm -pv -t SUNW.apache
Res Type name:                               SUNW.apache
  (SUNW.apache) Res Type description:        Apache Resource Type
  (SUNW.apache) Res Type base directory:     /opt/SUNWscapc/bin
  (SUNW.apache) Res Type single instance:    False
  (SUNW.apache) Res Type init nodes:         All potential masters
  (SUNW.apache) Res Type failover:           False
  (SUNW.apache) Res Type version:            1.0
  (SUNW.apache) Res Type API version:        2
  (SUNW.apache) Res Type installed on nodes: phys-schost1 phys-schost-2
  (SUNW.apache) Res Type packages:           SUNWscapc

如何更改资源组特性

要完成此过程,必须提供以下信息。

此过程说明了更改资源组特性的步骤。有关资源组特性的完整列表,请参见附录 A,标准特性


注意 –

请通过任一群集节点执行此过程。


  1. 成为某个群集成员的超级用户。

  2. 更改资源组特性。


    # scrgadm -c -g resource-group -y property=new_value
    
    -c

    更改指定的特性。

    -g resource-group

    指定资源组的名称。

    -y property

    指定要更改的特性的名称。

  3. 检验是否已经更改资源组特性。


    # scrgadm -pv -g resource-group
    

示例 – 更改资源组特性

此例说明了如何更改资源组 (resource-group-1) 的 Failback 特性。


# scrgadm -c -g resource-group-1 -y Failback=True
# scrgadm -pv -g resource-group-1

如何更改资源特性

要完成此过程,必须提供以下信息。

此过程说明了更改资源特性的步骤。有关资源组特性的完整列表,请参见附录 A,标准特性


注意 –

请通过任一群集节点执行此过程。


  1. 成为某个群集成员的超级用户。

  2. 运行 scrgadm -pvv 命令以查看当前资源特性设置。


    # scrgadm -pvv -j resource
    
  3. 更改资源特性。


    # scrgadm -c -j resource -y property=new_value | -x extension_property=new_value
    
    -c

    更改指定的特性。

    -j resource

    指定资源的名称。

    -y property =new_value

    指定要更改的标准特性的名称。

    -x extension_property =new_value

    指定要更改的扩展特性的名称。有关数据服务的扩展特性的说明,请参见数据服务的文档。

  4. 检验是否已经更改资源特性。


    # scrgadm pvv -j resource
    

示例 – 更改标准资源特性

此例说明了如何更改资源 (resource-1) 的系统定义的 Start_timeout 特性。


# scrgadm -c -j resource-1 -y start_timeout=30
# scrgadm -pvv -j resource-1

示例 – 更改扩展资源特性

此例说明了如何更改资源 (resource-1) 的扩展特性 (Log_level)。


# scrgadm -c -j resource-1 -x Log_level=3
# scrgadm -pvv -j resource-1

如何修改逻辑主机名资源或共享地址资源

缺省情况下,逻辑主机名资源和共享地址资源使用名称服务进行名称解析。您可以将群集配置为使用在该群集中运行的名称服务。当逻辑主机名资源或共享地址资源进行故障转移时,运行在该群集中的名称服务也可能会进行故障转移。如果逻辑主机名资源或共享地址资源使用正在进行故障转移的名称服务,则该资源将无法进行故障转移。


注意 –

将群集配置为使用在同一群集中运行的名称服务器可能会削弱该群集中其他服务的可用性。


为防止此类故障转移失败,请修改逻辑主机名资源或共享地址资源以绕过名称服务。要修改资源以绕过名称服务,请将资源的 CheckNameService 扩展特性设置为 false。您可以随时修改 CheckNameService 特性。


注意 –

如果资源类型的版本是 2 以前的版本,则必须在尝试修改该资源之前升级资源类型。有关更多信息,请参见升级预注册的资源类型


  1. 成为某个群集成员的超级用户。

  2. 更改资源特性。


    # scrgadm -c -j resource -x CheckNameService=false
    
    -j resource

    指定要修改的逻辑主机名资源或共享地址资源的名称

    -y CheckNameService=false

    将资源的 CheckNameService 扩展特性设置为 false

清除资源上的 STOP_FAILED 错误标志

如果将 Failover_mode 资源特性设置为 NONESOFT 并且资源的 STOP 失败,则单个资源将进入 STOP_FAILED 状态,资源组将进入 ERROR_STOP_FAILED 状态。您不能使处于此状态的资源组在任一节点上联机,也不能编辑该资源组(创建或删除资源,或者更改资源组或资源特性)。

如何清除资源上的 STOP_FAILED 错误标志

要完成此过程,必须提供以下信息。

有关附加信息,请参见scswitch(1M) 手册页。


注意 –

请通过任一群集节点执行此过程。


  1. 成为某个群集成员的超级用户。

  2. 标识哪些资源已经进入 STOP_FAILED 状态并位于哪些节点上。


    # scstat -g
    
  3. 在资源处于 STOP_FAILED 状态的节点上手动停止资源及其监视器。

    此步骤可能需要您终止进程,或者运行针对资源类型的命令或其他命令。

  4. 在手动停止了资源的所有节点上将这些资源的状态手动设置为 OFFLINE


    # scswitch -c -h nodelist -j resource -f STOP_FAILED
    
    -c

    清除标志。

    -h nodelist

    指定其中的资源处于 STOP_FAILED 状态的节点的名称(以逗号分隔)列表。该列表可能包含一个节点名称,也可能包含多个节点名称。

    -j resource

    指定要切换为脱机状态的资源的名称。

    -f STOP_FAILED

    指定标志名称。

  5. 查看在步骤 4 中清除了STOP_FAILED 标志的节点上的资源组状态。

    资源组状态此时应为 OFFLINEONLINE


    # scstat -g
    

    命令 scstat -g 表示资源组是否保持 ERROR_STOP_FAILED 状态。如果资源组仍处于 ERROR_STOP_FAILED 状态,则运行以下 scswitch 命令以在适合的节点上将资源组切换为脱机状态。


    # scswitch -F -g resource-group
    

    -F

    在可以控制组的所有节点上将资源组切换为脱机状态。

    -g resource-group

    指定要切换为脱机状态的资源组的名称。

    如果 STOP 方法失败,并且无法停止的资源与资源组中的其他资源具有依赖性,则在将资源组切换为脱机状态时会发生此种情况。否则,在对所有 STOP_FAILED 资源运行步骤 4 中的命令后,资源组将自动恢复为 ONLINEOFFLINE 状态。

    此时您可以将资源组切换为 ONLINE 状态。

升级预注册的资源类型

在 Sun Cluster 3.1 9/04 中,以下预注册的资源类型得到了增强:

增强这些资源类型的目的是使您能够修改逻辑主机名资源和共享地址资源以绕过名称服务进行名称解析。

如果适用下列所有条件,请升级这些资源类型:

有关如何升级资源类型的一般说明,请参见升级资源类型。以下各小节提供了完成预注册的资源类型的升级所需的信息。

注册新资源类型版本的信息

下表显示了每种预注册的资源类型的版本和 Sun Cluster 的版本之间的关系。Sun Cluster 的版本表示资源类型版本是在哪个版本中引入的。

资源类型 

资源类型版本 

Sun Cluster 版本 

SUNW.LogicalHostname

 

1.0 

3.0 

3.1 9/04 

SUNW.SharedAddress

 

1.0 

3.0 

3.1 9/04 

要确定被注册的资源类型的版本,请使用下表中的命令之一:


实例 2–1 注册 SUNW.LogicalHostname 资源类型的新版本

此例说明了升级过程中用于注册 SUNW.LogicalHostname 资源类型的版本 2 的命令。


# scrgadm -a -t SUNW.LogicalHostname:2

移植资源类型现有实例的信息

移植预注册的资源类型的实例所需的信息如下:


实例 2–2 移植逻辑主机名资源

此例说明了用于移植逻辑主机名资源 lhostrs 的命令。作为移植的结果,该资源被修改为绕过名称服务进行名称解析。


# scrgadm -c -j lhostrs -y Type_version=2 -x CheckNameService=false

无意中删除之后重新注册预注册的资源类型

两种预注册的资源类型为 SUNW.LogicalHostnameSUNW.SharedAddress。所有逻辑主机名和共享地址资源都使用这两种资源类型。您从不需要注册这两种资源类型,但是可能会意外地删除它们。如果您在无意中删除了这两种资源类型,请使用以下过程重新注册这些资源类型。


注意 –

如果要升级预注册的资源类型,请按照升级预注册的资源类型中的说明注册新的资源类型版本。


有关附加信息,请参见scrgadm(1M) 手册页。


注意 –

请通过任一群集节点执行此过程。


无意中删除之后如何重新注册预注册的资源类型

    重新注册资源类型。


    # scrgadm -a -t SUNW.resource-type
    
    -a

    添加资源类型。

    -t SUNW.resource-type

    指定要添加(重新注册)的资源类型。资源类型可以是 SUNW.LogicalHostnameSUNW.SharedAddress

示例 – 无意中删除之后重新注册预注册的资源类型

此例说明了如何重新注册 SUNW.LogicalHostname 资源类型。


# scrgadm -a -t SUNW.LogicalHostname

将节点添加到资源组或从资源组删除节点

本节中的过程使您可以执行以下任务。

根据您是在故障转移资源组中添加或删除节点还是在可伸缩资源组中添加或删除节点,过程会稍有不同。

故障转移资源组包含故障转移服务和可伸缩服务使用的网络资源。每个连接到群集的 IP 子网均具有自己的网络资源,该资源在故障转移资源组中指定并包含在其中。网络资源是逻辑主机名资源或共享地址资源。每个网络资源包括其使用的 IP 网络多路径处理组的列表。对于故障转移资源组,必须更新资源组包括的每个网络资源的 IP 网络多路径处理组的完整列表(netiflist 资源特性)。

对于可伸缩资源组,除了将可伸缩组更改为在新的主机集上受控制以外,还必须重复用于故障转移组(包含可伸缩资源所用的网络资源)的过程。

有关附加信息,请参见scrgadm(1M) 手册页。


注意 –

请通过任一群集节点运行以上过程之一。


将节点添加至资源组

将节点添加到资源组要遵循的步骤取决于资源组是可伸缩资源组还是故障转移资源组。有关详细说明,请参见以下章节:

要完成此过程,必须提供以下信息。

此外,请确保检验新节点已经是群集成员。

如何将节点添加到可伸缩资源组

  1. 对于资源组中的可伸缩资源所用的每个网络资源,使网络资源所在的资源组在新节点上运行。

    有关详细信息,请参见以下过程的步骤 1步骤 4

  2. 将新节点添加到可控制可伸缩资源组的节点的列表(nodelist 资源组特性)。

    此步骤将覆写 nodelist 的先前的值,因此必须在此处包括可控制资源组的所有节点。


    # scrgadm -c -g resource-group -h nodelist
    
    -c

    更改资源组。

    -g resource-group

    指定要向其中添加节点的资源组的名称。

    -h nodelist

    指定可以控制资源组的节点的名称(以逗号分隔)列表。

  3. (可选的) 更新可伸缩资源的 Load_balancing_weights 特性,以便为要添加到资源组的节点指定权数。

    否则,权数缺省值将为 1。有关详细信息,请参见scrgadm(1M) 手册页。

如何将节点添加到故障转移资源组

  1. 显示当前节点列表以及为资源组中的每个资源配置的 IP 网络多路径处理组的当前列表。


    # scrgadm -pvv -g resource-group | grep -i nodelist
    # scrgadm -pvv -g resource-group | grep -i netiflist
    

    注意 –

    nodelistnetiflist 的命令行输出用节点名称标识节点。要标识节点 ID,请运行命令 scconf -pv | grep -i node_id


  2. 更新节点添加操作所影响的网络资源的 netiflist

    此步骤将覆写 netiflist 的先前的值,因此必须在此处包括所有 IP 网络多路径处理组。


    # scrgadm -c -j network-resource -x netiflist=netiflist
    
    -c

    更改网络资源。

    -j network-resource

    指定 netiflist 条目托管的网络资源(逻辑主机名或共享地址)的名称。

    -x netiflist =netiflist

    指定一个用逗号分隔的列表,该列表标识各节点上的 IP 网络多路径处理组。netiflist 中每个元素的格式必须为 netif@nodenetif 可被指定为 IP 网络多路径处理 组的名称,例如 sc_ipmp0。节点可由节点名称或节点 ID 标识,例如 sc_ipmp0@1sc_ipmp@phys-schost-1

  3. 更新节点列表以包括当前可控制此资源组的所有节点。

    此步骤将覆写 nodelist 的先前的值,因此必须在此处包括可控制资源组的所有节点。


    # scrgadm -c -g resource-group -h nodelist
    
    -c

    更改资源组。

    -g resource-group

    指定要向其中添加节点的资源组的名称。

    -h nodelist

    指定可以控制资源组的节点的名称(以逗号分隔)列表。

  4. 检验更新的信息。


    # scrgadm -pvv -g resource-group | grep -i nodelist
    # scrgadm -pvv -g resource-group | grep -i netiflist
    

示例 – 将节点添加到资源组

此例说明了如何将节点 (phys-schost-2) 添加到包含逻辑主机名资源 (schost-2) 的资源组 (resource-group-1)。


# scrgadm -pvv -g resource-group-1 | grep -i nodelist
(resource-group-1) Res Group Nodelist:    phys-schost-1 phys-schost-3
# scrgadm -pvv -g resource-group-1 | grep -i netiflist
(resource-group-1:schost-2) Res property name: NetIfList
(resource-group-1:schost-2:NetIfList) Res property class: extension
(resource-group-1:schost-2:NetIfList) List of IP 网络多路径处理  
interfaces on each node
(resource-group-1:schost-2:NetIfList) Res property type: stringarray
(resource-group-1:schost-2:NetIfList) Res property value: sc_ipmp0@1 sc_ipmp0@3
 
(只有节点 1 和 3 已被指定给 IP 网络多路径处理 组。
您必须为节点 2 添加 IP 网络多路径处理 组。)

# scrgadm -c -j schost-2 -x netiflist=sc_ipmp0@1,sc_ipmp0@2,sc_ipmp0@3
# scrgadm -c -g resource-group-1 -h phys-schost-1,phys-schost-2,phys-schost-3
# scrgadm -pvv -g resource-group-1 | grep -i nodelist
(resource-group-1) Res Group Nodelist:     phys-schost-1 phys-schost-2
                                           phys-schost-3
# scrgadm -pvv -g resource-group-1 | grep -i netiflist
(resource-group-1:schost-2:NetIfList) Res property value: sc_ipmp0@1 sc_ipmp0@2
                                                          sc_ipmp0@3

从资源组删除节点

从资源组删除节点要遵循的步骤取决于该资源组是可伸缩资源组还是故障转移资源组。有关详细说明,请参见以下章节:

有关示例,请参见示例 – 从资源组删除节点

要完成此过程,必须提供以下信息。

此外,请确保检验资源组不受要删除的节点控制。如果资源组要删除的节点控制,请运行 scswitch 命令以从该节点上将资源组切换为脱机状态。以下 scswitch 命令将使资源组从给定节点上脱机(如果 new-masters 不包含该节点)。


# scswitch -z -g resource-group -h new-masters
-g resource-group

指定要将其切换为脱机状态的资源组(受要删除的节点控制)的名称。

-h new-masters

指定当前控制资源组的节点。

有关附加信息,请参见scswitch(1M) 手册页。


注意 – 注意 –

如果要从所有资源组删除某个节点,并且您使用的是可伸缩服务配置,请先从可伸缩资源组删除该节点。然后,再从故障转移组删除该节点。


如何从可伸缩资源组删除节点

可伸缩服务被配置为两个资源组,如下所示。

此外,将设置可伸缩资源组的 RG_dependencies 特性,以配置与故障转移资源组具有依赖性的可伸缩组。有关此特性的详细信息,请参见附录 A,标准特性

有关可伸缩服务配置的详细信息,请参见Sun Cluster 概念指南(适用于 Solaris OS)文档。

从可伸缩资源组删除节点会使可伸缩服务在该节点上不再联机。要从可伸缩资源组删除节点,请执行以下步骤。

  1. 从可控制可伸缩资源组的节点的列表(nodelist 资源组特性)中删除节点。


    # scrgadm -c -g scalable-resource-group -h nodelist
    
    -c

    更改资源组。

    -g scalable-resource-group

    指定要从中删除节点的资源组的名称。

    -h nodelist

    指定可以控制此资源组的节点的名称(以逗号分隔)列表。

  2. (可选)从包含共享地址资源的故障转移资源组中删除节点。

    有关详细信息,请参见如何从包含共享地址资源的故障转移资源组删除节点

  3. (可选)更新可伸缩资源的 Load_balancing_weights 特性,以删除要从资源组中删除的节点的权数。

    有关详细信息,请参见scrgadm(1M) 手册页。

如何从故障转移资源组删除节点

请执行以下步骤以从故障转移资源组中删除节点。


注意 – 注意 –

如果要从所有资源组删除某个节点,并且您使用的是可伸缩服务配置,请先从可伸缩资源组删除该节点。然后,使用此过程从故障转移组中删除该节点。



注意 –

如果故障转移资源组包含可伸缩服务所使用的共享地址资源,请参见如何从包含共享地址资源的故障转移资源组删除节点


  1. 更新节点列表以包括当前可控制此资源组的所有节点。

    此步骤将删除节点并覆写节点列表的先前的值。请确保在此处包括可控制资源组的所有节点。


    # scrgadm -c -g failover-resource-group -h nodelist
    

    -c

    更改资源组。

    -g failover-resource-group

    指定要从中删除节点的资源组的名称。

    -h nodelist

    指定可以控制此资源组的节点的名称(以逗号分隔)列表。

  2. 显示为资源组中的每个资源配置的 IP 网络多路径处理组的当前列表。


    # scrgadm -pvv -g failover-resource-group | grep -i netiflist
    

  3. 更新节点删除操作所影响的网络资源的 netiflist

    此步骤将覆写 netiflist 的先前的值。请确保在此处包括所有 IP 网络多路径处理组。


    # scrgadm -c -j network-resource -x netiflist=netiflist
    


    注意 –

    上一命令行的输出用节点名称标识节点。运行命令行 scconf -pv | grep “Node ID” 可查找节点 ID。


    -c

    更改网络资源。

    -j network-resource

    指定 netiflist 条目托管的网络资源的名称。

    -x netiflist=netiflist

    指定一个用逗号分隔的列表,该列表标识各节点上的 IP 网络多路径处理组。netiflist 中每个元素的格式必须为 netif@nodenetif 可被指定为 IP 网络多路径处理 组的名称,例如 sc_ipmp0。节点可由节点名称或节点 ID 标识,例如 sc_ipmp0@1sc_ipmp@phys-schost-1


    注意 –

    Sun Cluster 目前不支持将适配器名称用作 netif


  4. 检验更新的信息。


    # scrgadm -pvv -g failover-resource-group | grep -i nodelist
    # scrgadm -pvv -g failover-resource-group | grep -i netiflist
    

如何从包含共享地址资源的故障转移资源组删除节点

在包含可伸缩服务使用的共享地址资源的故障转移资源组中,节点可以显示在以下位置。

要从故障转移资源组的节点列表中删除节点,请按照过程如何从故障转移资源组删除节点进行操作。

要修改共享地址资源的 auxnodelist,必须删除并重新创建共享地址资源。

如果从故障转移组的节点列表中删除节点,您可以继续使用该节点上的共享地址资源以提供可伸缩服务。要执行此操作,您必须将节点添加到共享地址资源的 auxnodelist。要将节点添加到 auxnodelist,请执行以下步骤。


注意 –

您也可以使用以下过程从共享地址资源的 auxnodelist删除节点。要从 auxnodelist 中删除节点,必须删除并重新创建共享地址资源。


  1. 使可伸缩服务资源切换为脱机状态。

  2. 从故障转移资源组删除共享地址资源。

  3. 创建共享地址资源。

    将从故障转移资源组删除的节点的节点 ID 或节点名称添加到 auxnodelist


    # scrgadm -a -S -g failover-resource-group \
     -l shared-address -X new-auxnodelist
    
    failover-resource-group

    用于包含共享地址资源的故障转移资源组的名称。

    shared-address

    共享地址的名称。

    new-auxnodelist

    添加或删除了所需节点的、已修改的新 auxnodelist

示例 – 从资源组删除节点

此例说明了如何从包含逻辑主机名资源 (schost-1) 的资源组 (resource-group-1) 删除节点 (phys-schost-3)。


# scrgadm -pvv -g resource-group-1 | grep -i nodelist
(resource-group-1) Res Group Nodelist:       phys-schost-1 phys-schost-2
                                             phys-schost-3
# scrgadm -c -g resource-group-1 -h phys-schost-1,phys-schost-2
# scrgadm -pvv -g resource-group-1 | grep -i netiflist
(resource-group-1:schost-1) Res property name: NetIfList
(resource-group-1:schost-1:NetIfList) Res property class: extension
(resource-group-1:schost-1:NetIfList) List of IP 网络多路径处理 
interfaces on each node
(resource-group-1:schost-1:NetIfList) Res property type: stringarray
(resource-group-1:schost-1:NetIfList) Res property value: sc_ipmp0@1 sc_ipmp0@2
                                                          sc_ipmp0@3

(sc_ipmp0@3 是要删除的 IP 网络多路径处理 组。)

# scrgadm -c  -j schost-1 -x  netiflist=sc_ipmp0@1,sc_ipmp0@2
# scrgadm -pvv -g resource-group-1 | grep -i nodelist
(resource-group-1) Res Group Nodelist:       phys-schost-1 phys-schost-2
# scrgadm -pvv -g resource-group-1 | grep -i netiflist
(resource-group-1:schost-1:NetIfList) Res property value: sc_ipmp0@1 sc_ipmp0@2

使资源组和磁盘设备组之间的启动同步

在群集引导或服务故障转移到其他节点后,可能需要等一会儿才可以使用全局设备和群集文件系统。但是,在数据服务所依赖的全局设备和群集文件系统实现联机之前,该数据服务可以运行其 START 方法。在此实例中,START 方法超时,您必须重置数据服务使用的资源组的状态并手动重新启动该数据服务。资源类型 HAStorageHAStoragePlus 将监视全局设备和群集文件系统,并导致同一资源组中其他资源的 START 方法等待直到其可用。(要确定要创建哪个资源类型,请参见HAStorageHAStoragePlus 之间进行选择。)为避免附加的管理任务,请为所有资源组设置 HAStorageHAStoragePlus,这些资源组的数据服务资源取决于全局设备或群集文件系统。

要创建 HAStorage 资源类型,请参见如何为新资源设置 HAStorage 资源类型

要创建 HAStoragePlus 资源类型,请参见如何设置 HAStoragePlus 资源类型

如何为新资源设置 HAStorage 资源类型

Sun Cluster 的未来发行版可能不支持 HAStorage。HAStoragePlus 支持相同的功能。要从 HAStorage 升级到 HAStoragePlus,请参见从 HAStorage 升级到 HAStoragePlus

在下例中,资源组 resource-group-1 包含三种数据服务。

要为 resource-group-1 中的新资源创建类型为 HAStorage 的资源 hastorage-1,请阅读使资源组和磁盘设备组之间的启动同步,然后再执行以下步骤。

要创建 HAStoragePlus 资源类型,请参见启用具有高可用性的本地文件系统

  1. 成为某个群集成员的超级用户。

  2. 创建资源组 resource-group-1


    # scrgadm -a -g resource-group-1
    

  3. 确定是否已注册资源类型。

    使用以下命令可显示已注册资源类型的列表。


    # scrgadm -p | egrep Type
    
  4. 如果需要,请注册资源类型。


    # scrgadm -a -t SUNW.HAStorage
    

  5. 创建类型为 HAStorage 的资源 hastorage-1,并定义服务路径。


    # scrgadm -a -j hastorage-1 -g resource-group-1 -t SUNW.HAStorage \
    -x ServicePaths=/global/resource-group-1,/dev/global/dsk/d5s2,dsk/d6
    

    ServicePaths 可以包含以下值。

    • 全局设备组名称,例如 nfs-dg

    • 全局设备的路径,例如 /dev/global/dsk/d5s2dsk/d6

    • 群集文件系统装载点,例如 /global/nfs


    注意 –

    如果 ServicePaths 包含群集文件系统路径,则全局设备组可能与对应的资源组不在同一位置。


  6. 启用 hastorage-1 资源。


    # scswitch -e -j hastorage-1
    

  7. 将资源(Sun Java System Web Server、Oracle 和 NFS)添加到 resource-group-1,并将其依赖性设置为 hastorage-1

    例如,对于 Sun Java System Web Server,请运行以下命令。


    # scrgadm -a -j resource \-g resource-group-1 -t SUNW.iws \
    -x Confdir_list=/global/iws/schost-1 -y Scalable=False \
    -y Network_resources_used=schost-1 -y Port_list=80/tcp \
    -y Resource_dependencies=hastorage-1
    

  8. 检验是否已经正确地配置了资源依赖性。


    # scrgadm -pvv -j resource | egrep strong
    
  9. resource-group-1 设置为 MANAGED 状态,并使 resource-group-1 联机。


    # scswitch -Z -g resource-group-1
    

HAStorage 资源类型包含另一个扩展特性 AffinityOn,该特性是一个布尔值,用于指定 HAStorage 是否必须对 ServicePaths 中定义的全局设备和群集文件系统执行关系切换。有关详细信息,请参见 SUNW.HAStorage(5) 手册页。


注意 –

如果资源组可伸缩,则 HAStorage 和 HAStoragePlus 不允许将 AffinityOn 设置为 TRUEHAStorageHAStoragePlus 将检查 AffinityOn 的值,并针对可伸缩资源组将该值内部重置为 FALSE


如何为现有资源设置 HAStorage 资源类型

Sun Cluster 的未来发行版可能不支持 HAStorage。HAStoragePlus 支持相同的功能。要从 HAStorage 升级到 HAStoragePlus,请参见从 HAStorage 升级到 HAStoragePlus

要为现有资源创建类型为 HAStorage 的资源,请阅读使资源组和磁盘设备组之间的启动同步,然后执行以下步骤。

  1. 确定是否已注册资源类型。

    使用以下命令可显示已注册资源类型的列表。


    # scrgadm -p | egrep Type
    
  2. 如果需要,请注册资源类型。


    # scrgadm -a -t SUNW.HAStorage
    

  3. 创建类型为 HAStorage 的资源 hastorage-1


    # scrgadm -a -g resource-group -j hastorage-1 -t SUNW.HAStorage \
    -x ServicePaths= … -x AffinityOn=True
    

  4. 启用 hastorage-1 资源。


    # scswitch -e -j hastorage-1
    

  5. 根据需要为每个现有资源设置依赖性。


    # scrgadm -c -j resource -y Resource_Dependencies=hastorage-1
    

  6. 检验是否已经正确地配置了资源依赖性。


    # scrgadm -pvv -j resource | egrep strong
    

从 HAStorage 升级到 HAStoragePlus

Sun Cluster 的未来发行版可能不支持 HAStorage。HAStoragePlus 支持相同的功能。要从 HAStorage 升级到 HAStoragePlus,请参见以下各节。

使用设备组或 CFS 时如何从 HAStorage 升级到 HAStoragePlus

Sun Cluster 的未来发行版可能不支持 HAStorage。HAStoragePlus 支持相同的功能。要在使用设备组或 CFS 时从 HAStorage 升级到 HAStoragePlus,请完成以下步骤。

下例使用通过 HAStorage 激活的简单 HA-NFS 资源。ServicePaths 是磁盘组 nfsdg,AffinityOn 特性为 TRUE。并且,HA-NFS 资源已将 Resource_Dependencies 设置为 HAStorage 资源。

  1. 删除应用程序资源与 HAStorage 的依赖性。


    # scrgadm -c -j nfsserver-rs -y Resource_Dependencies=""
    
  2. 禁用 HAStorage 资源。


    # scswitch -n -j nfs1storage-rs
    
  3. 从应用程序资源组删除 HAStorage 资源。


    # scrgadm -r -j nfs1storage-rs
    
  4. 取消注册 HAStorage 资源类型。


    # scrgadm -r -t SUNW.HAStorage
    
  5. 注册 HAStoragePlus 资源类型。


    # scrgadm -a -t SUNW.HAStoragePlus
    
  6. 创建 HAStoragePlus 资源。

    要指定文件系统装载点,请输入以下文本。


    # scrgadm -a -j nfs1-hastp-rs -g nfs1-rg -t \
    SUNW.HAStoragePlus -x FilesystemMountPoints=/global/nfsdata -x \
    AffinityOn=True
    

    要指定全局设备路径,请输入以下文本。


    # scrgadm -a -j nfs1-hastp-rs -g nfs1-rg -t \
    SUNW.HAStoragePlus -x GlobalDevicePaths=nfsdg -x AffinityOn=True
    

    注意 –

    您必须使用 HAStoragePlus 的 GlobalDevicePaths 或 FilesystemMountPoints 特性,而不要使用 HAStorage 的 ServicePaths 特性。FilesystemMountPoint 扩展特性必须与 /etc/vfstab 中指定的序列相匹配。


  7. 启用 HAStoragePlus 资源。


    # scswitch -e -j nfs1-hastp-rs
    
  8. 在应用服务器和 HAStoragePlus 之间设置依赖性。


    # scrgadm -c -j nfsserver-rs -y \
    Resource_Depencencies=nfs1=hastp-rs
    

如何从带有 CFS 的 HAStorage 升级到带有故障转移文件系统的 HAStoragePlus

Sun Cluster 的未来发行版可能不支持 HAStorage。HAStoragePlus 支持相同的功能。要从带有 CFS 的 HAStorage 升级到带有故障转移文件系统 (FFS) 的 HAStoragePlus,请完成以下步骤。

下例使用通过 HAStorage 激活的简单 HA-NFS 资源。ServicePaths 是磁盘组 nfsdg,AffinityOn 特性为 TRUE。并且,HA-NFS 资源已将 Resource_Dependencies 设置为 HAStorage 资源。

  1. 删除应用程序资源与 HAStorage 资源的依赖性。


    # scrgadm -c -j nfsserver-rs -y Resource_Dependencies=""'
  2. 禁用 HAStorage 资源。


    # scswitch -n -j nfs1storage-rs
    
  3. 从应用程序资源组删除 HAStorage 资源。


    # scrgadm -r -j nfs1storage-rs
    
  4. 取消注册 HAStorage 资源类型。


    # scrgadm -r -t SUNW.HAStorage
    
  5. 修改 /etc/vfstab 以删除全局标志,并将“引导时装入”更改为“否”。

  6. 创建 HAStoragePlus 资源。

    要指定文件系统装载点,请输入以下文本。


    # scrgadm -a -j nfs1-hastp-rs -g nfs1-rg -t \
    SUNW.HAStoragePlus -x FilesystemMountPoints=/global/nfsdata -x \
    AffinityOn=True
    

    要指定全局设备路径,请输入以下文本。


    # scrgadm -a -j nfs1-hastp-rs -g nfs1-rg -t \
    SUNW.HAStoragePlus -x GlobalDevicePaths=nfsdg -x AffinityOn=True
    

    注意 –

    您必须使用 HAStoragePlus 的 GlobalDevicePaths 或 FilesystemMountPoints 特性,而不要使用 HAStorage 的 ServicePaths 特性。FilesystemMountPoints 扩展特性必须与 /etc/vfstab 中指定的序列相匹配。


  7. 启用 HAStoragePlus 资源。


    # scswitch -e -j nfs1-hastp-rs
    
  8. 在应用服务器和 HAStoragePlus 之间设置依赖性。


    # scrgadm -c -j nfsserver-rs -y \
    Resource_Depencencies=nfs1=hastp-rs
    

启用具有高可用性的本地文件系统

HAStoragePlus 资源类型可用于使本地文件系统在 Sun Cluster 环境中具有高可用性。本地文件系统的各个分区必须位于启用了关系切换的全局磁盘组中,并且必须对 Sun Cluster 环境进行配置以进行故障转移。这将使用户能够实现以下目的:即让多主机磁盘上的任何文件系统都可通过与多主机磁盘直接相连的任何主机进行访问。(无法通过 HAStoragePlus 使根文件系统高度可用。)资源组和设备组的故障恢复设置必须相同。

强烈建议您对某些 I/O 密集型数据服务使用高可用性的本地文件系统,有关如何配置 HAStoragePlus 资源类型的过程已经添加到这些数据服务的注册和配置过程。有关如何为这些数据服务设置 HAStoragePlus 资源类型的过程,请参见以下各节。

有关为其他数据服务设置 HAStoragePlus 资源类型的过程,请参见如何设置 HAStoragePlus 资源类型


注意 –

本节中的说明解释了如何在 UNIX 文件系统中使用 HAStoragePlus 资源类型。有关在 Sun StorEdgeTM QFS 文件系统中使用 HAStoragePlus 资源类型的信息,请参见 Sun StorEdge QFS 文档。


如何设置 HAStoragePlus 资源类型

在 Sun Cluster 3.0 5/02 中新增了 HAStoragePlus 资源类型。这种新的资源类型与 HAStorage 执行相同的功能,并且同步资源组和磁盘设备组之间的启动。HAStoragePlus 还具有使本地文件系统具有高可用性的附加功能。(有关使本地文件系统高度可用的背景信息,请参见启用具有高可用性的本地文件系统。)要使用这两个功能,请设置 HAStoragePlus 资源类型。

要设置 HAStoragePlus,本地文件系统的各个分区必须位于启用了关系切换的全局磁盘组中,并且必须对 Sun Cluster 环境进行配置以进行故障转移。

下例使用了简单 NFS 服务,该服务从本地装载的 /global/local-fs/nfs/export/home 目录分配起始目录数据。此例假定以下条件:

  1. 成为某个群集成员的超级用户。

  2. 确定是否已注册资源类型。

    使用以下命令可显示已注册资源类型的列表。


    # scrgadm -p | egrep Type
    
  3. 如果需要,请注册资源类型。


    # scrgadm -a -t SUNW.nfs
    

  4. 创建故障转移资源组 nfs-r


    # scrgadm -a -g nfs-rg -y PathPrefix=/global/local-fs/nfs
    

  5. 创建类型为 SUNW.LogicalHostname 的逻辑主机资源。


    # scrgadm -a -j nfs-lh-rs -g nfs-rg -L -l log-nfs
    

  6. 向群集注册 HAStoragePlus 资源类型。


    # scrgadm -a -t SUNW.HAStoragePlus
    

  7. 创建类型为 HAStoragePlus 的资源 nfs-hastp-rs


    # scrgadm -a -j nfs-hastp-rs -g nfs-rg -t SUNW.HAStoragePlus \
    -x FilesystemMountPoints=/global/local-fs/nfs \
    -x AffinityOn=TRUE
    


    注意 –

    FilesystemMountPoints 扩展特性可用于指定一个或多个文件系统装载点的列表。此列表可以由本地和全局文件系统装载点组成。对于全局文件系统,HAStoragePlus 将忽略引导时装载的标志。


  8. 在某个群集节点上使资源组 nfs-rg 联机。

    此节点将成为 /global/local-fs/nfs 文件系统的基础全局设备分区的主节点。文件系统 /global/local-fs/nfs 随后将在此节点上进行本地装载。


    # scswitch -Z -g nfs-rg
    
  9. 向群集注册 SUNW.nfs 资源类型。创建类型为 SUNW.nfs 的资源 nfs-rs,并指定其与资源 nfs-hastp-rs 的资源依赖性。

    dfstab.nfs-rs 将显示在 /global/local-fs/nfs/SUNW.nfs 中。


    # scrgadm -a -t SUNW.nfs
    # scrgadm -a -g nfs-rg -j nfs-rs -t SUNW.nfs \
    -y Resource_dependencies=nfs-hastp-rs
    


    注意 –

    必须先使 nfs-hastp-rs 资源联机,然后才能在 nfs 资源中设置依赖性。


  10. 使资源 nfs-rs 联机。


    # scswitch -Z -g nfs-rg
    

注意 – 注意 –

请确保仅以资源组级别进行切换。在设备组级别进行切换会使资源组发生混乱,从而导致资源组进行故障转移。


现在,无论何时将服务移植到新节点上,/global/local-fs/nfs 的主 I/O 路径都将始终处于联机状态,并与 NFS 服务器处于相同的位置。在启动 NFS 服务器之前,文件系统 /global/local-fs/nfs 将进行本地装载。

联机修改具有高可用性的文件系统的资源

在修改表示文件系统的资源时,您可能需要使具有高可用性的文件系统保持其可用性。例如,您可能需要使文件系统保持其可用性,因为系统正在对存储设备进行动态置备。在此情况下,请在表示具有高可用性的文件系统的资源处于联机状态时修改该资源。

在 Sun Cluster 环境中,具有高可用性的文件系统由 HAStoragePlus 资源表示。Sun Cluster 使您可以对 HAStoragePlus 联机资源进行以下修改:


注意 –

Sun Cluster 不允许您在文件系统处于联机状态时重命名该文件系统。


如何将文件系统添加到联机 HAStoragePlus 资源中

在将文件系统添加到 HAStoragePlus 资源中时,HAStoragePlus 资源对本地文件系统的处理与对全局文件系统的处理不同。

有关 AffinityOn 扩展特性的信息,请参见使资源组和磁盘设备组之间的启动同步

  1. 在群集的一个节点上成为超级用户。

  2. 在群集的每个节点上的 /etc/vfstab 文件中,为要添加的每个文件系统的装入点添加一个条目。

    对于每个条目,请按如下所示设置“引导时装入”字段和“装入选项”字段:

    • 将“引导时装入”字段设置为

    • 如果文件系统是全局文件系统,则将“装入选项”字段设置为包含全局选项。

  3. 检索 HAStoragePlus 资源已经管理的文件系统的装入点列表。


    # scha_resource_get -O extension -R hasp-resource -G hasp-rg \
    FileSystemMountPoints
    
    -R hasp-resource

    指定要向其中添加文件系统的 HAStoragePlus 资源

    -G hasp-rg

    指定包含 HAStoragePlus 资源的资源组

  4. 修改 HAStoragePlus 资源的 FileSystemMountPoints 扩展特性使其包含以下装入点:

    • HAStoragePlus 资源已经管理的文件系统的装入点

    • 要添加到 HAStoragePlus 资源的文件系统的装入点


    # scrgadm -c -j hasp-resource -x FileSystemMountPoints="mount-point-list"
    
    -j hasp-resource

    指定要向其中添加文件系统的 HAStoragePlus 资源

    -x FileSystemMountPoints="mount-point-list "

    指定 HAStoragePlus 资源已经管理的文件系统的装入点以及要添加的文件系统的装入点(以逗号分隔)列表

  5. 确认 HAStoragePlus 资源的装入点列表与您在步骤 4 中指定的列表之间相匹配。


    # scha_resource_get -O extension -R hasp-resource -G hasp-rg \
     FileSystemMountPoints
    
    -R hasp-resource

    指定要向其中添加文件系统的 HAStoragePlus 资源

    -G hasp-rg

    指定包含 HAStoragePlus 资源的资源组

  6. 确认 HAStoragePlus 资源处于联机状态并且未出现故障。

    如果 HAStoragePlus 资源处于联机状态但出现故障,资源的验证将会成功,但 HAStoragePlus 尝试装入文件系统的操作会失败。


    # scstat -g
    

实例 2–3 将文件系统添加到联机 HAStoragePlus 资源中

此例说明了如何将文件系统添加到联机 HAStoragePlus 资源中。

该示例假定每个群集节点上的 /etc/vfstab 文件已经包含要添加的文件系统的条目。


# scha_resource_get -O extension -R rshasp -G rghasp FileSystemMountPoints
STRINGARRAY
/global/global-fs/fs1
# scrgadm -c -j rshasp \
-x FileSystemMountPoints="/global/global-fs/fs1,/global/global-fs/fs2"
# scha_resource_get -O extension -R rshasp -G rghasp FileSystemMountPoints
STRINGARRAY
/global/global-fs/fs1
/global/global-fs/fs2
# scstat -g

 -- Resource Groups and Resources --

             Group Name      Resources
             ----------      ---------
  Resources: rghasp          rshasp


 -- Resource Groups --

             Group Name      Node Name    State
             ----------      ---------    -----
      Group: rghasp          node46       Offline
      Group: rghasp          node47       Online


 -- Resources --

             Resource Name   Node Name    State     Status Message
             -------------   ---------    -----     --------------
   Resource: rshasp          node46       Offline   Offline
   Resource: rshasp          node47       Online    Online

如何从联机 HAStoragePlus 资源中删除文件系统

在从 HAStoragePlus 资源中删除文件系统时,HAStoragePlus 资源对本地文件系统的处理与对全局文件系统的处理不同。

有关 AffinityOn 扩展特性的信息,请参见使资源组和磁盘设备组之间的启动同步


注意 – 注意 –

在从联机 HAStoragePlus 资源中删除文件系统之前,请确保没有任何应用程序正在使用此文件系统。在从联机 HAStoragePlus 资源中删除文件系统时,可能会强制卸载该文件系统。如果某个应用程序正在使用的文件系统被强制卸载,该应用程序可能会出现故障或挂起。


  1. 在群集的一个节点上成为超级用户。

  2. 检索 HAStoragePlus 资源已经管理的文件系统的装入点列表。


    # scha_resource_get -O extension -R hasp-resource -G hasp-rg \
    FileSystemMountPoints
    
    -R hasp-resource

    指定要从中删除文件系统的 HAStoragePlus 资源

    -G hasp-rg

    指定包含 HAStoragePlus 资源的资源组

  3. 修改 HAStoragePlus 资源的 FileSystemMountPoints 扩展特性,使其包含要保留在 HAStoragePlus 资源中的文件系统的装入点。


    # scrgadm -c -j hasp-resource -x FileSystemMountPoints="mount-point-list"
    
    -j hasp-resource

    指定要从中删除文件系统的 HAStoragePlus 资源。

    -x FileSystemMountPoints="mount-point-list "

    指定要保留在 HAStoragePlus 资源中的文件系统的装入点(以逗号分隔)列表。此列表不能包含要删除的文件系统的装入点。

  4. 确认 HAStoragePlus 资源的装入点列表与您在步骤 3 中指定的列表之间相匹配。


    # scha_resource_get -O extension -R hasp-resource -G hasp-rg \
    FileSystemMountPoints
    
    -R hasp-resource

    指定要从中删除文件系统的 HAStoragePlus 资源

    -G hasp-rg

    指定包含 HAStoragePlus 资源的资源组

  5. 确认 HAStoragePlus 资源处于联机状态并且未出现故障。

    如果 HAStoragePlus 资源处于联机状态但出现故障,资源的验证将会成功,但 HAStoragePlus 尝试卸载文件系统的操作会失败。


    # scstat -g
    
  6. (可选的) 从群集的每个节点上的 /etc/vfstab 文件中,删除要删除的每个文件系统的装入点条目。


实例 2–4 从联机 HAStoragePlus 资源中删除文件系统

此例说明了如何从联机 HAStoragePlus 资源中删除文件系统。


# scha_resource_get -O extension -R rshasp -G rghasp FileSystemMountPoints
STRINGARRAY
/global/global-fs/fs1
/global/global-fs/fs2
# scrgadm -c -j rshasp -x FileSystemMountPoints="/global/global-fs/fs1"
# scha_resource_get -O extension -R rshasp -G rghasp FileSystemMountPoints
STRINGARRAY
/global/global-fs/fs1
 # scstat -g

 -- Resource Groups and Resources --

             Group Name      Resources
             ----------      ---------
  Resources: rghasp          rshasp


 -- Resource Groups --

             Group Name      Node Name    State
             ----------      ---------    -----
      Group: rghasp          node46       Offline
      Group: rghasp          node47       Online


 -- Resources --

             Resource Name   Node Name    State     Status Message
             -------------   ---------    -----     --------------
   Resource: rshasp          node46       Offline   Offline
   Resource: rshasp          node47       Online    Online

如何在修改 HAStoragePlus 资源之后从故障中恢复

如果在修改 FileSystemMountPoints 扩展特性的过程中出现故障,HAStoragePlus 资源的状态为联机而有故障。更正故障之后,HAStoragePlus 资源的状态为联机。

  1. 确定导致修改尝试失败的故障。


    # scstat -g
    

    有故障 HAStoragePlus 资源的状态消息指明了相应的故障。可能的故障如下所示:

    • 文件系统应位于其上的设备不存在。

    • fsck 命令尝试检修文件系统的操作失败。

    • 尝试添加的文件系统的装入点不存在。

    • 无法装入尝试添加的文件系统。

    • 无法卸载尝试删除的文件系统。

  2. 更正导致修改尝试失败的故障。

  3. 重复用于修改 HAStoragePlus 资源的 FileSystemMountPoints 扩展特性的步骤。


    # scrgadm -c -j hasp-resource -x FileSystemMountPoints="mount-point-list"
    
    -j hasp-resource

    指定要修改的 HAStoragePlus 资源

    -x FileSystemMountPoints="mount-point-list "

    指定装入点(以逗号分隔)列表,这些装入点是在修改具有高可用性的文件系统的失败尝试中指定的

  4. 确定 HAStoragePlus 资源处于联机状态并且未出现故障。


    # scstat -g
    

实例 2–5 出现故障的 HAStoragePlus 资源的状态

此例说明了出现故障的 HAStoragePlus 资源的状态。此资源的故障原因是 fsck 命令尝试修理文件系统失败。


# scstat -g

 -- Resource Groups and Resources --

             Group Name      Resources
             ----------      ---------
  Resources: rghasp          rshasp


 -- Resource Groups --

             Group Name      Node Name    State
             ----------      ---------    -----
      Group: rghasp          node46       Offline
      Group: rghasp          node47       Online


 -- Resources --

           Resource Name   Node Name    State   Status Message
           -------------   ---------    -----   --------------
 Resource: rshasp          node46       Offline Offline
 Resource: rshasp          node47       Online  Online Faulted - Failed
to fsck: /mnt.

升级 HAStoragePlus 资源类型

在 Sun Cluster 3.1 9/04 中,HAStoragePlus 资源类型得到了增强,您可以联机修改具有高可用性的文件系统。如果符合下列所有条件,则请升级 HAStoragePlus 资源类型:

有关如何升级资源类型的一般说明,请参见升级资源类型。以下各小节中提供了完成 HAStoragePlus 资源类型的升级所需的信息。

注册新资源类型版本的信息

下表中显示了资源类型版本和 Sun Cluster 的版本之间的关系。Sun Cluster 的版本表示资源类型版本是在哪个版本中引入的。

资源类型版本 

Sun Cluster 版本 

1.0 

3.0 5/02 

3.1 9/04 

要确定被注册的资源类型的版本,请使用下表中的命令之一:

此资源类型的资源类型注册 (RTR) 文件为 /usr/cluster/lib/rgm/rtreg/SUNW.HAStoragePlus

移植资源类型现有实例的信息

移植 HAStoragePlus 资源类型的实例所需的信息如下所示:

在群集节点之间分布联机资源组

为了获得最大可用性或最佳性能,某些服务组合需要在群集节点之间对联机资源组进行特定的分布。分布联机资源组包括在资源组之间创建关联,以用于以下目的:

此节提供了以下示例,以说明如何使用资源组关联在群集节点之间分布联机资源组:

资源组关联

资源组之间的关联限制了在哪些节点上可使资源组同时联机。在每个关联中,源资源组可声明与一个或若干个目标资源组有关联。要在资源组之间创建关联,请按如下所示设置源资源组的 RG_affinities 资源组特性:


-y RG_affinities=operator target-rg-list

注意 –

operatortarget-rg-list 之间不包含空格。


operator

指定要创建的关联的类型。有关更多信息,请参见表 2–2

target-rg-list

指定资源组(以逗号分隔)列表,这些资源组是要创建的关联的目标资源组。您可以在列表中指定单个资源组。

表 2–2 资源组之间的关联的类型

操作员 

关联类型 

作用 

+

弱正

如果可能,使源资源组在目标资源组处于联机状态或启动状态的一个或多个节点上联机。不过,系统允许源资源组和目标资源组在不同的节点上联机。 

++

强正

使源资源组仅在目标资源组处于联机状态或启动状态的一个或多个节点上联机。允许源资源组和目标资源组在不同的节点上联机。

-

弱负

如果可能,使源资源组在目标资源组处于联机状态或启动状态的一个或多个节点上联机。不过,系统允许源资源组和目标资源组在同一节点上联机。

--

强负

使源资源组仅在目标资源组未处于联机状态的一个或多个节点上联机。允许源资源组和目标资源组在同一节点上联机。

+++

包含故障转移委托的强正

与强正相同,唯一区别是将源资源组的故障转移尝试委托给目标资源组。有关更多信息,请参见委托资源组的故障转移或切换转移

弱关联在 Nodelist 优先级排序中享有优先权。

其他资源组的当前状态可以防止在任何节点上满足强关联。在此情况下,该关联的源资源组将保持脱机状态。如果其他资源组的状态发生更改,从而使强关联得到满足,则该关联的源资源组将恢复联机。


注意 –

在源资源组上为多个目标资源组声明强关联时要小心。如果无法全部满足所有已声明的强关联,则源资源组将保持脱机状态。


强制一个资源组与另一个资源组位于同一位置

一个资源组所表示的服务可能非常强烈地依赖于另一个资源组中的服务,从而要求这两种服务必须在同一节点上运行。例如,由多个相互依赖的服务守护进程组成的应用程序可能需要所有守护进程都在同一节点上运行。

在此情况下,应强制依赖服务的资源组与另一个服务的资源组位于同一节点上。要强制某个资源组与另一个资源组位于同一位置,请在该资源组上为另一个资源组声明强正关联。


# scrgadm -c|-a -g source-rg -y RG_affinities=++target-rg
-g source-rg

指定强正关联的源资源组。此资源组是要在其上声明与另一个资源组有强正关联的资源组。

-y RG_affinities=++target-rg

指定强正关联的目标资源组。此资源组是要声明与其有强正关联的资源组。

资源组跟在与其有强正关联的资源组的后面。但是,声明强正关联的资源组无法故障转移到关联的目标资源组尚未在其上运行的节点。


注意 –

仅禁止资源监视器启动的故障转移。如果源资源组和目标资源组正在其上运行的节点发生故障,则这两个资源组将在仍然可用的同一节点上重新启动。


例如,资源组 rg1 为资源组 rg2 声明强正关联。如果 rg2 故障转移到另一个节点,则 rg1 也将故障转移到该节点。即使 rg1 中的所有资源均运行正常,仍将发生此故障转移。但是,如果 rg1 中的资源尝试将 rg1 故障转移到 rg2 未在其上运行的节点,此尝试将被阻止。

如果需要允许声明强正关联的资源组进行故障转移,则必须委托故障转移。有关更多信息,请参见委托资源组的故障转移或切换转移


实例 2–6 强制一个资源组与另一个资源组位于同一位置

此例说明了用于修改资源组 rg1 以声明与资源组 rg2 有强正关联的命令。由于存在此关联关系,因此 rg1 仅在 rg2 运行所在的节点上联机。此例假定两个资源组都存在。


# scrgadm -c -g rg1 -y RG_affinities=++rg2

指定一个资源组与另一个资源组的首选共同位置

一个资源组所表示的服务可以使用另一个资源组中的服务。这样,当这些服务在同一节点上运行时,其运行将最有效。例如,如果应用程序与它所使用的数据库在同一节点上运行,应用程序的运行将最有效。但是,这些服务可以在不同的节点上运行,因为有效性的降低比资源组的附加故障转移造成的破坏要小。

在此情况下,请指定两个资源组应位于同一位置(如果可能)。要指定一个资源组与另一个资源组的首选共同位置,请在该资源组上为另一个资源组声明弱正关联。


# scrgadm -c|-a -g source-rg -y RG_affinities=+target-rg
-g source-rg

指定弱正关联的源资源组。此资源组是要在其上声明与另一个资源组有弱正关联的资源组。

-y RG_affinities=+target-rg

指定弱正关联的目标资源组。此资源组是要声明与其有弱正关联的资源组。

通过在一个资源组上声明与另一个资源组有弱正关联,可以增加两个资源组在同一节点上运行的可能性。弱正关联的源资源组将首先在弱正关联的目标资源组已经在其上运行的节点上联机。但是,如果资源监视器导致关联的目标资源组发生故障转移,弱正关联的源资源组将不会进行故障转移。同样地,如果关联的目标资源组被切换转移,弱正关联的源资源组也不会进行故障转移。在这两种情况下,源资源组在其运行所在的节点上仍处于联机状态。


注意 –

如果源资源组和目标资源组正在其上运行的节点出现故障,则这两个资源组将在仍然可用的同一节点上重新启动。



实例 2–7 指定一个资源组与另一个资源组的首选共同位置

此例说明了用于修改资源组 rg1 以声明与资源组 rg2 有弱正关联的命令。由于存在此关联关系,因此将首先在同一节点上使 rg1rg2 联机。但是,如果 rg2 中的资源导致 rg2 发生故障转移,rg1 将在这两个资源组最初联机的节点上保持联机状态。此例假定两个资源组都存在。


# scrgadm -c -g rg1 -y RG_affinities=+rg2

在群集节点之间平均分布一组资源组

一组资源组中的每个资源组都可能在群集上强加相同的负载。在此情况下,通过在群集节点之间平均分布资源组,可以平衡群集上的负载。

要在群集节点之间平均分布一组资源组,请在每个资源组上声明与集合中的其他资源组有弱负关联。


# scrgadm -c|-a -g source-rg -y RG_affinities=-target-rg-list
-g source-rg

指定弱负关联的源资源组。此资源组是要在其上声明与其他资源组有弱负关联的资源组。

-y RG_affinities=-target-rg-list

指定资源组(以逗号分隔)列表,这些资源组是弱负关联的目标资源组。这些资源组是要声明与其有弱负关联的资源组。

通过在一个资源组上声明与其他资源组有弱负关联,能够确保使资源组始终在群集中负载最轻的节点上联机。仅有极少的其他资源组在该节点上运行。因此,只有极少数弱负关联被破坏。


实例 2–8 在群集节点之间平均分布一组资源组

此例说明了用于修改资源组 rg1rg2rg3rg4 以确保在群集中的可用节点之间平均分布这些资源组的命令。此例假定资源组 rg1rg2rg3rg4 都存在。


# scrgadm -c -g rg1 RG_affinities=-rg2,-rg3,-rg4
# scrgadm -c -g rg2 RG_affinities=-rg1,-rg3,-rg4
# scrgadm -c -g rg3 RG_affinities=-rg1,-rg2,-rg4
# scrgadm -c -g rg4 RG_affinities=-rg1,-rg2,-rg3

指定关键服务优先

可以将群集配置为运行任务关键的服务和非关键服务的组合。例如,支持关键用户服务的数据库与非关键调查任务可以在同一群集中运行。

为确保非关键服务不影响关键服务的性能,请指定关键服务优先。通过指定关键服务优先,可以防止非关键服务在关键服务所在的节点上运行。

如果所有节点均运行正常,关键服务和非关键服务将在不同的节点上运行。但是,如果关键服务出现故障,则可能会导致该服务故障转移到非关键服务正在其上运行的节点。在此情况下,非关键服务将立即脱机,以确保该节点的计算资源完全用于任务关键的服务。

要指定关键服务优先,请在每个非关键服务的资源组上声明与包含关键服务的资源组有强负关联。


# scrgadm -c|-a -g noncritical-rg -y RG_affinities=--critical-rg
-g noncritical-rg

指定包含非关键服务的资源组。此资源组是要在其上声明与另一个资源组有强负关联的资源组。

-y RG_affinities=--critical-rg

指定包含关键服务的资源组。此资源组是要声明与其有强负关联的资源组。

资源组将从与其有强负关联的资源组移走。


实例 2–9 指定关键服务优先

此例说明了用于修改非关键资源组 ncrg1ncrg2 以确保关键资源组 mcdbrg 比这些资源组优先的命令。此例假定资源组 mcdbrgncrg1ncrg2 都存在。


# scrgadm -c -g ncrg1 RG_affinities=--mcdbrg
# scrgadm -c -g ncrg2 RG_affinities=--mcdbrg

委托资源组的故障转移或切换转移

强正关联的源资源组不能故障转移到或被切换转移到关联的目标资源组没有在其上运行的节点上。如果需要允许强正关联的源资源组能够进行故障转移或被切换转移,则必须将故障转移委托给目标资源组。关联的目标资源组进行故障转移时,将强制关联的源资源组与目标资源组一起进行故障转移。


注意 –

您可能需要切换转移由 ++ 操作符指定的强正关联的源资源组。在此情况下,将同时切换转移关联的目标资源组和源资源组。


要将某个资源组的故障转移或切换转移委托给另一个资源组,请在该资源组上声明与另一个资源组有包含故障转移委托的强正关联。


# scrgadm -c|-a -g source-rg -y RG_affinities=+++target-rg
-g source-rg

指定委托故障转移或切换转移的资源组。此资源组是要在其上声明与另一个资源组有包含故障转移委托的强正关联的资源组。

-y RG_affinities=+++target-rg

指定 source-rg 将故障转移或切换转移委托到的资源组。此资源组是要声明与其有包含故障转移委托的强正关联的资源组。

资源组最多只能声明与一个资源组有包含故障转移委托的强正关联。不过,给定资源组可以是任意多个其他资源组声明的包含故障转移委托的强正关联的目标资源组。

包含故障转移委托的强正关联不完全对称。目标资源组可以在源资源组保持脱机状态的情况下联机。但是,如果目标资源处于脱机状态,源资源组将无法联机。

如果目标资源组声明与第三个资源组有包含故障转移委托的强正关联,故障转移或切换转移将被进一步委托给第三个资源组。第三个资源组将执行故障转移或切换转移,还将强制其他资源组进行故障转移或切换转移。


实例 2–10 委托资源组的故障转移或切换转移

此例说明了用于修改资源组 rg1 以声明与资源组 rg2 有包含故障转移委托的强正关联的命令。由于存在此关联关系,rg1 将故障转移或切换转移委托给 rg2。此例假定两个资源组都存在。


# scrgadm -c -g rg1 -y RG_affinities=+++rg2

组合资源组之间的关联

您可以通过组合多个关联来创建更复杂的操作。例如,可以由相关的拷贝服务器来记录应用程序的状态。此例的节点选择要求如下:

按以下所示为应用程序和拷贝服务器配置资源组可以满足这些要求:


实例 2–11 组合资源组之间的关联

此例说明了用于组合以下资源组之间的关联的命令。

在此例中,资源组声明了以下关联:

此例假定两个资源组都存在。


# scrgadm -c -g app-rg RG_affinities=+rep-rg
# scrgadm -c -g rep-rg RG_affinities=--app-rg

通过卸载非关键资源组释放节点资源


注意 –

在资源组之间使用强负关联为卸载非关键资源组提供了一个更简单的方法。有关更多信息,请参见在群集节点之间分布联机资源组


Prioritized Service Management (RGOffload) 使群集能够自动为关键数据服务释放节点资源。当关键故障转移数据服务的启动要求使非关键的可伸缩或故障转移数据服务脱机时,将使用 RGOffloadRGOffload 用于卸载包含非关键数据服务的资源组。


注意 –

关键的数据服务必须是故障转移数据服务。所要卸载的数据服务可以是故障转移数据服务,也可以是可伸缩数据服务。


如何设置 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。如果对 RGOffload 资源类型使用 Resource_dependencies_weak,那么,即使在卸载 offload-rg 的过程中出现错误,也仍会启动关键故障转移资源。

  8. 使要卸载的资源组联机。


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

    在关键资源组已经脱机的所有节点上,该资源组将保持联机状态。故障监视器可防止该资源组在具有以下特点的节点上运行:其中的关键资源组仍处于联机状态。

    因为要卸载的资源组的 Desired_primaries 已设置为 0(请参见步骤 4),所以“-Z”选项不能使这些资源组联机。

  9. 如果关键的故障转移资源组没有联机,请使其联机。


    # scswitch -Z -g critical-rg
    

SPARC: 示例 – 配置 RGOffload 资源

此例说明了如何配置 RGOffload 资源 (rgofl)、包含 RGOffload 资源的关键资源组 (oracle_rg) ,以及在关键资源组联机时被卸载的可伸缩资源组(IWS-SCIWS-SC-2)。此例中的关键资源为 oracle-server-rs

在此例中,oracle_rgIWS-SCIWS-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–3 介绍了可为 RGOffload 配置的各种扩展特性。“可调”条目说明何时可以更新该特性。

表 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,以便

 

(要卸载的资源组的数目 * max_offload_retry * 10 秒)

 

小于 RGOffload 资源的 Start_timeout。如果此数值接近或大于 Start_timeout 的数值,则 RGOffload 资源的 START 方法可能会在完成最大卸载尝试次数之前超时。

 

此特性仅用于 START 方法。 

 

缺省值:15

可调:随时

故障监视器

RGOffload 资源的故障监视器探测可用于使 rg_to_offload 扩展特性中指定的资源组在控制关键资源的节点上保持脱机状态。在每个探测周期内,故障监视器将检验所要卸载的资源组 (offload-rg) 在控制关键资源的节点上是否为脱机状态。如果 offload-rg 在控制关键资源的节点上处于联机状态,则故障监视器将在除控制关键资源的那个节点之外的某个节点上尝试启动 offload-rg,从而使得 offload-rg 在控制关键资源的那个节点上脱机。

由于 offload-rgdesired_primaries 被设置为 0,因此在后来可用的节点上不会重新启动已卸载的资源组。因此,在使 offload-rg 在控制关键资源的节点上保持脱机的同时,RGOffload 故障监视器会在尽可能多的主节点上尝试启动 offload-rg,直到达到 maximum_primaries 限制。

RGOffload 会尝试启动所有已卸载的资源组,除非这些资源组处于 MAINTENANCEUNMANAGED 状态。要将资源组置于 UNMANAGED 状态,请使用 scswitch 命令。


# scswitch -u -g resourcegroup

在每个 Thorough_probe_interval 之后,都将调用故障监视器探测循环。

复制和升级用于资源组、资源类型和资源的配置数据

如果在两个群集上需要相同的资源配置数据,您可以将数据复制到第二个群集以省去再次进行设置的繁琐任务。使用 scsnapshot 可以将资源配置信息从一个群集传播到另一个群集。要省去繁琐步骤,请在将信息复制到第二个群集之前确保与资源相关的配置稳定,并且您无需对资源配置进行任何主要更改。

可以从群集配置系统信息库 (CCR) 中检索用于资源组、资源类型和资源的配置数据,并且可以将这些配置数据的格式设为 shell 脚本。此脚本可以用于执行以下任务:

scsnapshot 工具可以检索存储在 CCR 中的配置数据。其他配置数据将被忽略。scsnapshot 工具将忽略不同资源组、资源类型和资源的动态状态。

如何在不包含已配置的资源组、资源类型和资源的群集上复制配置数据

此过程用于在不包含已配置的资源组、资源类型和资源的群集上复制配置数据。在此过程中,将从一个群集中复制配置数据,并使用此配置数据副本生成另一个群集上的配置数据。

  1. 使用系统管理员角色,登录到您要从其中复制配置数据的群集中的任一节点。

    例如,node1

    系统管理员角色使您具有以下基于角色的存取控制 (RBAC) 权限:

    • solaris.cluster.resource.read

    • solaris.cluster.resource.modify

  2. 从群集中检索配置数据。


    node1 % scsnapshot -s scriptfile
    

    scsnapshot 工具可以生成一个名为 scriptfile 的脚本。有关使用 scsnapshot 工具的更多信息,请参见 scsnapshot(1m) 手册页。

  3. 编辑脚本,使其符合您要在其中复制配置数据的群集的特定特性。

    例如,您可能需要更改脚本中列出的 IP 地址和主机名。

  4. 从您要在其中复制配置数据的群集中的任一节点上启动脚本。

    此脚本会将本地群集的特征与生成此脚本的群集的特征进行比较。如果二者的特征不同,脚本将写入错误并结束运行。系统将显示一条消息,询问您是否要使用 -f 选项重新运行此脚本。-f 选项将强制运行此脚本,并忽略所有特征差异。如果使用 -f 选项,请确保未在群集中创建不一致的内容。

    此脚本将检验本地群集上是否存在 Sun Cluster 资源类型。如果本地群集上不存在该资源类型,脚本将写入错误并结束运行。系统将显示一条消息,询问您再次运行此脚本之前是否要安装缺少的资源类型。

如何在包含已配置的资源组、资源类型和资源的群集上升级配置数据

此过程用于在已配置了资源组、资源类型和资源的群集上升级配置数据。此过程也可用于生成资源组、资源类型和资源的配置模板。

在此过程中,cluster1 上的配置数据将被升级为与 cluster2 上的配置数据相匹配。

  1. 使用系统管理员角色,登录到 cluster1 中的任一节点。

    例如,node1

    系统管理员角色使您具有以下 RBAC 权限:

    • solaris.cluster.resource.read

    • solaris.cluster.resource.modify

  2. 通过使用 scsnapshot 工具的映像文件选项从群集中检索配置数据:


    node1% scsnapshot -s scriptfile1 -o imagefile1
    

    node1 上运行时,scsnapshot 工具将生成一个名为 scriptfile1 的脚本。此脚本将把用于资源组、资源类型和资源的配置数据存储在名为 imagefile1 的映像文件中。有关使用 scsnapshot 工具的更多信息,请参见 scsnapshot(1M) 手册页。

  3. cluster2 的某个节点上重复步骤 1步骤 2


    node2 % scsnapshot -s scriptfile2 -o imagefile2
    
  4. node1 上,生成一个脚本以使用 cluster2 上的配置数据升级 cluster1 上的配置数据:


    node1 % scsnapshot -s scriptfile3 imagefile1 imagefile2
    

    此步骤将使用您在步骤 2步骤 3 中所生成的映像文件,并生成一个名为 scriptfile3 的新脚本。

  5. 编辑您在步骤 4 中生成的脚本,以使其符合 cluster1 的特定特性,并删除 cluster2 特有的数据。

  6. node1 启动此脚本以升级配置数据。

    此脚本会将本地群集的特征与生成此脚本的群集的特征进行比较。如果二者的特征不同,脚本将写入错误并结束运行。系统将显示一条消息,询问您是否要使用 -f 选项重新运行此脚本。-f 选项将强制运行此脚本,并忽略所有特征差异。如果使用 -f 选项,请确保未在群集中创建不一致的内容。

    此脚本将检验本地群集上是否存在 Sun Cluster 资源类型。如果本地群集上不存在该资源类型,脚本将写入错误并结束运行。系统将显示一条消息,询问您再次运行此脚本之前是否要安装缺少的资源类型。

调节 Sun Cluster 数据服务的故障监视器

Sun Cluster 产品附带的每种数据服务都包含一个内置故障监视器。故障监视器可执行以下功能:

故障监视器包含在相应的资源中,该资源表示编写数据服务时所针对的应用程序。您在注册并配置数据服务时便创建了此资源。有关更多信息,请参见数据服务的文档。

此资源的系统特性和扩展特性控制故障监视器的行为。这些特性的缺省值确定了故障监视器的预设行为。预设行为应该适用于大多数 Sun Cluster 安装。因此,当需要修改此预设行为时才应调节故障监视器。

调节故障监视器涉及到以下任务:

在注册和配置数据服务时执行这些任务。有关更多信息,请参见数据服务的文档。


注意 –

使包含某个资源的资源组联机时将启动该资源的故障监视器。您无需显式启动该故障监视器。


设置两次故障监视器探测之间的间隔

为确定资源是否运行正常,故障监视器将定期探测此资源。两次故障监视器探测之间的间隔将影响资源的可用性以及系统的性能,如下所述:

两次故障监视器探测之间的最佳间隔还与对资源中的故障做出响应所需的时间有关。该时间依赖于资源的复杂性影响执行操作(如重新启动该资源)所需的时间的程度。

要设置两次故障监视器探测之间的间隔,请将资源的 Thorough_probe_interval 系统特性设置为所需的间隔(以秒为单位)。

设置故障监视器探测超时时间

故障监视器探测超时时间指定故障监视器等待所探测的资源做出响应的时间长度。如果故障监视器在这段超时时间内没有接收到响应,则故障监视器将认为资源出现故障。 资源对故障监视器探测做出响应所需的时间依赖于故障监视器探测该资源时所执行的操作。有关数据服务的故障监视器执行的用于探测资源的操作的信息,请参见数据服务的文档。

资源做出响应所需的时间还依赖于与故障监视器或应用程序无关的因素,例如:

要为故障监视器探测设置超时,请将资源的 Probe_timeout 扩展特性设置为所需的超时值(以秒为单位)。

定义持久性故障的标准

为了尽可能地降低由于资源中的瞬态故障引起的中断所带来的影响,故障监视器将重新启动资源以响应这类故障。对于持久性故障,需要比重新启动资源更具破坏性的操作:

如果在指定的重试间隔内资源的完全故障次数超出了指定阈值,故障监视器将该故障视为持久性故障。为持久性故障定义标准使您能够根据群集的性能特点和可用性要求来设置阈值和重试间隔。

资源的完全故障和部分故障

故障监视器将资源的某些故障视为完全故障。通常,完全故障会导致服务完全丢失。以下故障为完全故障的示例:

每发生一次完全故障,故障监视器会将重试间隔中的完全故障计数增加 1。

故障监视器将资源的其他故障视为部分故障。部分故障没有完全故障严重,它通常会导致服务降级,但不会导致服务完全丢失。例如,在故障监视器探测超时之前来自数据服务服务器的不完整响应,便是一个部分故障的例子。

每发生一次部分故障,故障监视器会将重试间隔内的完全故障计数增加一个分数值。部分故障在重试间隔内将继续累积。

部分故障的以下特性取决于数据服务:

有关数据服务的故障监视器检测到的故障的信息,请参见数据服务的文档。

阈值和重试间隔与其他特性的依赖性

重新启动一次出现故障的资源所需的最长时间是以下特性的值的总和:

为了确保在重试间隔内达到阈值之前您具有足够的时间,请使用以下表达式来计算重试间隔和阈值:

retry-intervalthreshold × (thorough-probe-interval + probe-timeout)

用来设置阈值和重试间隔的系统特性

要设置阈值和重试间隔,请设置资源的以下系统特性:

指定资源的故障转移行为

资源的故障转移行为决定了 RGM 如何响应以下故障:

要指定资源的故障转移行为,请设置该资源的 Failover_mode 系统特性。有关此特性的可能值的信息,请参见资源特性中对 Failover_mode 系统特性的说明。