跳过导航链接
退出打印视图
| Oracle Solaris Cluster 系统管理指南

搜索范围:

- 本文档
- 整个文档库

### 管理群集概述

本节介绍了如何对整个全局群集或区域群集执行管理任务。下表列出了这些管理任务及相关过程。通常在全局区域中执行群集管理任务。要管理区域群集，必须以群集模式启动至少一台将托管该区域群集的计算机。不需要启动并运行所有区域群集节点；当目前不在群集中的节点重新加入该群集时，Oracle Solaris Cluster 将重放任何配置更改。

注 - 默认情况下，电源管理功能处于禁用状态，因此不会干扰群集。如果您对单节点群集启用电源管理功能，该群集仍会运行，但可能有几秒钟不可用。电源管理功能会尝试关闭节点，但不会成功。

在本章中，`phys-schost#` 表示全局群集提示符。`clzonecluster` 交互式 shell 提示符为 `clzc:schost>`。

表 9-1 任务列表：管理群集

任务 | 指导
--- | ---
在群集中添加或删除节点 | 第 8 章
更改群集的名称 | 如何更改群集名称
列出节点的 ID 及其相应的节点名称 | 如何将节点 ID 映射到节点名称
允许或拒绝新节点添加到群集中 | 如何使用对新群集节点的认证
使用网络时间协议 (Network Time Protocol, NTP) 更改群集时间 | 如何在群集中重置时间
关闭节点以显示 OpenBoot PROM `ok` 提示符（在基于 SPARC 的系统上）或在 GRUB 菜单中显示消息 "`Press any key to continue`"（在基于 x86 的系统上）。 | SPARC: 如何在节点上显示 OpenBoot PROM (OBP)
添加或更改专用主机名 | 如何为全局群集中的非投票节点添加专用主机名 如何更改节点专用主机名
使群集节点进入维护状态 | 如何使节点进入维护状态
重命名节点 | 如何重命名节点
使群集节点脱离维护状态 | 如何使节点脱离维护状态
配置每个节点的负载限制 | 如何在节点上配置负载限制
移动区域群集；为应用程序准备区域群集，删除区域群集 | 执行区域群集管理任务
从节点卸载 Oracle Solaris Cluster 软件 | 如何从群集节点中卸载 Oracle Solaris Cluster 软件
添加和管理 SNMP 事件 MIB | 如何启用 SNMP 事件 MIB 如何在节点上添加 SNMP 用户

# 如何更改群集名称

根据需要，您可以在初次安装后更改群集的名称。

`phys-schost#` 提示符表示全局群集提示符。此操作过程适用于全局群集。

此过程提供了 Oracle Solaris Cluster 命令的长格式。此外，大多数命令还有简短格式。这些命令除了名称长短的不同以外，其功能都是相同的。

1. 成为全局群集中任一节点上的超级用户。
2. 启动 `clsetup` 实用程序。

       phys-schost# clsetup

   显示“Main Menu”。

3. 要更改群集名称，请键入与“其他群集属性”选项对应的编号。

   这时将显示“Other Cluster Properties”菜单。

4. 从菜单进行选择并按屏幕提示操作。
5. 如果想让 Oracle Solaris Cluster 的服务标签反映新的群集名称，请删除现有的 Oracle Solaris Cluster 标签并重新启动群集。要删除 Oracle Solaris Cluster 服务标签实例，请针对群集中的所有节点完成以下子步骤。
   1. 列出所有的服务标签。

          phys-schost# stclient -x

   2. 查找 Oracle Solaris Cluster 服务标签实例编号，然后运行以下命令。

          phys-schost# stclient -d -i service_tag_instance_number

   3. 重新引导群集中的所有节点。

          phys-schost# reboot

示例 9-1 更改群集的名称

以下示例显示了由 `clsetup`(1CL) 实用程序生成的 `cluster`(1CL) 命令，此命令用于将群集名称更改为 `dromedary`。

    phys-schost# cluster -c dromedary

# 如何将节点 ID 映射到节点名称

Oracle Solaris Cluster 安装期间，会自动为每个节点分配一个唯一的节点 ID 号。该 ID 号是按节点首次加入群集的顺序分配的。节点 ID 编号一经指定，便不能再更改。节点 ID 编号经常在错误消息中使用，标识与消息有关的群集节点。请按照此过程来确定节点 ID 和节点名称之间的映射。

您不需要具有超级用户身份，即可列出全局群集或区域群集的配置信息。此过程的其中一个步骤是从全局群集的一个节点上执行的。另一个步骤是从区域群集节点执行的。

1. 使用 `clnode`(1CL) 命令可列出全局群集的群集配置信息。

       phys-schost# clnode show | grep Node

2. 还可以列出区域群集的节点 ID。区域群集节点具有与它所运行在的全局群集节点相同的节点 ID。

       phys-schost# zlogin sczone clnode -v | grep Node

示例 9-2 将节点 ID 映射到节点名称

下面的示例显示了全局群集的节点 ID 分配。

    phys-schost# clnode show | grep Node
    === Cluster Nodes ===
    Node Name:                phys-schost1
      Node ID:                1
    Node Name:                 phys-schost2
      Node ID:                2
    Node Name:                phys-schost3
      Node ID:                3

# 如何使用对新群集节点的认证

使用 Oracle Solaris Cluster 可以确定新节点是否可将自身添加到全局群集中以及要使用的验证的类型。您可以允许任何新的节点通过公共网络加入群集、拒绝新节点加入群集或指定可以加入群集的具体节点。新节点可以通过使用标准 UNIX 或者 Diffie-Hellman (DES) 认证来进行认证。如果选择的是 DES 认证，还必须在节点加入前配置所有需要的加密密钥。有关更多信息，请参见 `keyserv`(1M) 和 `publickey`(4) 手册页。

`phys-schost#` 提示符表示全局群集提示符。此操作过程适用于全局群集。

此过程提供了 Oracle Solaris Cluster 命令的长格式。此外，大多数命令还有简短格式。这些命令除了名称长短的不同以外，其功能都是相同的。

1. 成为全局群集中任一节点上的超级用户。
2. 启动 `clsetup`(1CL) 实用程序。

       phys-schost# clsetup

   显示“Main Menu”。

3. 要使用群集验证，请键入与新节点选项相对应的编号。

   这时将显示“New Nodes”菜单。

4. 从菜单进行选择并按屏幕提示操作。

示例 9-3 防止将新计算机添加到全局群集中

`clsetup` 实用程序生成 `claccess` 命令。下面的示例显示了可防止将新计算机添加到群集的 `claccess` 命令。

    phys-schost# claccess deny -h hostname

示例 9-4 允许将所有新计算机添加到全局群集中

`clsetup` 实用程序生成 `claccess` 命令。下面的示例显示了使所有新计算机都可以添加到群集的 `claccess` 命令。

    phys-schost# claccess allow-all

示例 9-5 指定要添加到全局群集中的新计算机

`clsetup` 实用程序生成 `claccess` 命令。下面的示例显示了使单个新计算机可以添加到群集的 `claccess` 命令。

    phys-schost# claccess allow -h hostname

示例 9-6 将验证设置为标准 UNIX

`clsetup` 实用程序生成 `claccess` 命令。下面的示例显示了使加入群集的新节点重置为标准 UNIX 验证的 `claccess` 命令。

    phys-schost# claccess set -p protocol=sys

示例 9-7 将验证设置为 DES

`clsetup` 实用程序生成 `claccess` 命令。下面的示例显示了对加入群集的新节点使用 DES 验证的 `claccess` 命令。

    phys-schost# claccess set -p protocol=des

如果采用 DES 验证，您还必须配置所有必要的加密密钥，然后才能将节点加入群集。有关更多信息，请参见 `keyserv`(1M) 和 `publickey`(4) 手册页。

# 如何在群集中重置时间

Oracle Solaris Cluster 软件使用网络时间协议 (Network Time Protocol, NTP) 来保持群集节点间的时间同步。节点进行时间同步时，全局群集会根据需要自动进行调整。有关更多信息，请参见《Oracle Solaris Cluster Concepts Guide》和《Network Time Protocol User's Guide》。

| 注意 - 如果使用的是 NTP，请不要在群集处于打开和运行状态时调整群集时间。请不要以交互方式使用 `date`(1)、`rdate`(1M)、`xntpd`(1M) 或 `svcadm`(1M) 命令来调整时间，或在 `cron`(1M) 脚本中使用这些命令来调整时间。

`phys-schost#` 提示符表示全局群集提示符。此操作过程适用于全局群集。

此过程提供了 Oracle Solaris Cluster 命令的长格式。此外，大多数命令还有简短格式。这些命令除了名称长短的不同以外，其功能都是相同的。

1. 成为全局群集中任一节点上的超级用户。
2. 关闭全局群集。

       phys-schost# cluster shutdown -g0 -y -i 0

3. 检验该节点是否显示 `ok` 提示符（在基于 SPARC 的系统上）或在 GRUB 菜单中显示消息 "`Press any key to continue`"（在基于 x86 的系统上）。
4. 以非群集模式引导节点。

   - 在基于 SPARC 的系统上，运行以下命令。

         ok boot -x

   - 在基于 x86 的系统上，运行以下命令。

         # shutdown -g -y -i0

         Press any key to continue

   1. 在 GRUB 菜单中，使用方向键选择适当的 Oracle Solaris 条目，然后键入 `e` 编辑其命令。

      GRUB 菜单显示如下内容：

          GNU GRUB version 0.95 (631K lower / 2095488K upper memory)
          +-------------------------------------------------------------------------+
          | Solaris 10 /sol_10_x86                                                  |
          | Solaris failsafe                                                        |
          |                                                                         |
          +-------------------------------------------------------------------------+
          Use the ^ and v keys to select which entry is highlighted.
          Press enter to boot the selected OS, 'e' to edit the
          commands before booting, or 'c' for a command-line.

      有关基于 GRUB 的引导的更多信息，请参见《系统管理指南：基本管理》中的"使用 GRUB 引导基于 x86 的系统（任务图）"。

   2. 在引导参数屏幕中，使用方向键选择内核条目，然后键入 `e` 编辑该条目。

      GRUB 引导参数屏幕的显示与以下内容类似：

          GNU GRUB version 0.95 (615K lower / 2095552K upper memory)
          +----------------------------------------------------------------------+
          | root (hd0,0,a)                                                       |
          | kernel /platform/i86pc/multiboot                                     |
          | module /platform/i86pc/boot_archive                                  |
          +----------------------------------------------------------------------+
          Use the ^ and v keys to select which entry is highlighted.
          Press 'b' to boot, 'e' to edit the selected command in the
          boot sequence, 'c' for a command-line, 'o' to open a new line
          after ('O' for before) the selected line, 'd' to remove the
          selected line, or escape to go back to the main menu.

   3. 在命令中添加 `-x` 以指定将系统引导至非群集模式。

          [ Minimal BASH-like line editing is supported. For the first word, TAB
          lists possible command completions. Anywhere else TAB lists the possible
          completions of a device/filename. ESC at any time exits. ]

          grub edit> kernel /platform/i86pc/multiboot -x

   4. 按 Enter 键接受所做更改，并返回到引导参数屏幕。

      屏幕将显示编辑后的命令。

          GNU GRUB version 0.95 (615K lower / 2095552K upper memory)
          +----------------------------------------------------------------------+
          | root (hd0,0,a)                                                       |
          | kernel /platform/i86pc/multiboot -x                                  |
          | module /platform/i86pc/boot_archive                                  |
          +----------------------------------------------------------------------+
          Use the ^ and v keys to select which entry is highlighted.
          Press 'b' to boot, 'e' to edit the selected command in the
          boot sequence, 'c' for a command-line, 'o' to open a new line
          after ('O' for before) the selected line, 'd' to remove the
          selected line, or escape to go back to the main menu.-

   5. 键入 `b` 将节点引导至非群集模式。

      注 - 对内核引导参数命令所做的这一更改在系统引导后将失效。下次重新引导节点时，系统将引导至群集模式。如果希望引导至非群集模式，请重新执行上述步骤，并将 `-x` 选项添加到内核引导参数命令中。

5. 在单个节点上，通过运行 `date` 命令设置时间。

       phys-schost# date HHMM.SS

6. 在其他计算机上，通过运行 `rdate`(1M) 命令使其时间与上述节点的时间同步。

       phys-schost# rdate hostname

7. 引导每个节点以重新启动该群集。

       phys-schost# reboot

8. 检验是否所有群集节点都已进行了更改。

   在每个节点上，运行 `date` 命令。

       phys-schost# date

# SPARC: 如何在节点上显示 OpenBoot PROM (OBP)

如果需要配置或更改 OpenBoot™ PROM 设置，请使用此过程。

`phys-schost#` 提示符表示全局群集提示符。此操作过程适用于全局群集。

此过程提供了 Oracle Solaris Cluster 命令的长格式。此外，大多数命令还有简短格式。这些命令除了名称长短的不同以外，其功能都是相同的。

1. 连接到要关闭的节点上的控制台。

       # telnet tc_name tc_port_number

   tc_name

     指定终端集中器的名称。

   tc_port_number

     指定终端集中器上的端口号。端口号取决于配置。通常，端口 2 和 3（5002 和 5003）供站点上所安装的第一个群集使用。

2. 依次执行 `clnode evacuate` 命令和 `shutdown` 命令使群集节点正常关机。`clnode evacuate` 命令可将指定节点上的所有设备组切换到下一个首选节点。该命令还将全局群集的指定投票或非投票节点中的所有资源组切换到下一个首选的投票或非投票节点。

       phys-schost# clnode evacuate node
       # shutdown -g0 -y

   | 注意 - 不要在群集控制台上用 `send brk` 来关闭群集节点。

3. 执行 OBP 命令。

# 如何更改节点专用主机名

使用此过程可在安装完成后更改群集节点的专用主机名。

首次安装群集时，系统会指定默认专用主机名。默认专用主机名的格式为：`clusternode`< nodeid>`-priv`，例如：`clusternode3-priv`。只有当专用主机名已在域中使用，您才能更改它。

| 注意 - 不要尝试给新的专用主机名分配 IP 地址。群集软件将进行分配。

`phys-schost#` 提示符表示全局群集提示符。此操作过程适用于全局群集。

此过程提供了 Oracle Solaris Cluster 命令的长格式。此外，大多数命令还有简短格式。这些命令除了名称长短的不同以外，其功能都是相同的。

1. 在群集的所有节点上，禁用所有数据服务资源或其他可能高速缓存专用主机名的应用程序。

       phys-schost# clresource disable resource[,...]

   禁用的应用程序应包括：

   - HA-DNS 和 HA-NFS 服务（如果已配置）

   - 已通过定制操作配置为使用该专用主机名的任何应用程序

   - 任何正由客户机通过专用互连使用的应用程序

   有关使用 `clresource` 命令的信息，请参见 `clresource`(1CL) 手册页和《Oracle Solaris Cluster Data Services Planning and Administration Guide》。

2. 如果网络时间协议 (Network Time Protocol, NTP) 配置文件引用了要更改的专用主机名，请在群集的每个节点上关闭 NTP 守护进程。

   使用 `svcadm` 命令关闭网络时间协议 (Network Time Protocol, NTP) 守护程序。有关 NTP 守护进程的更多信息，请参见 `svcadm`(1M) 手册页。

       phys-schost# svcadm disable ntp

3. 运行 `clsetup`(1CL) 实用程序以更改相应节点的专用主机名。

   仅从群集中的一个节点运行此实用程序。

   注 - 选择新的专用主机名时，请确保该名称对于群集节点是唯一的。

4. 键入与专用主机名选项相对应的编号。
5. 键入与更改专用主机名选项相对应的编号。

   根据提示回答问题。系统会要求您提供要更改专用主机名的节点的名称 (`clusternode`< nodeid>`-priv`) 以及新的专用主机名。

6. 刷新名称服务高速缓存。

   请在群集每个节点上执行此步骤。刷新操作可避免群集应用程序和数据服务访问旧的专用主机名。

       phys-schost# nscd -i hosts

7. 如果您在 NTP 配置文件中更改了专用主机名，请更新每个节点上的 NTP 配置文件（`ntp.conf` 或 `ntp.conf.cluster`）。
   1. 使用您选择的编辑工具。

      如果在安装时执行此步骤，还要记得删除所配置的节点的名称。默认模板中预先配置有 16 个节点。通常，每个群集节点上的 `ntp.conf.cluster` 文件都相同。

   2. 检验是否能从所有群集节点成功 ping 到新的专用主机名。
   3. 重新启动 NTP 守护进程。

      对群集的每个节点执行本步骤。

      使用 `svcadm` 命令重新启动 NTP 守护程序。

          # svcadm enable ntp

8. 启用在步骤 1 中禁用的所有数据服务资源和其他应用程序。

       phys-schost# clresource enable resource[,...]

   有关使用 `clresource` 命令的信息，请参见 `clresource`(1CL) 手册页和《Oracle Solaris Cluster Data Services Planning and Administration Guide》。

示例 9-8 更改专用主机名

以下示例在节点 `phys-schost-2` 上将专用主机名从 `clusternode2-priv` 更改为 `clusternode4-priv`。

    [Disable all applications and data services as necessary.]
    phys-schost-1# /etc/init.d/xntpd stop
    phys-schost-1# clnode show | grep node
     ...
     private hostname:                           clusternode1-priv
     private hostname:                           clusternode2-priv
     private hostname:                           clusternode3-priv
     ...
    phys-schost-1# clsetup
    phys-schost-1# nscd -i hosts
    phys-schost-1# vi /etc/inet/ntp.conf
     ...
     peer clusternode1-priv
     peer clusternode4-priv
     peer clusternode3-priv
    phys-schost-1# ping clusternode4-priv
    phys-schost-1# /etc/init.d/xntpd start
    [Enable all applications and data services disabled at the beginning of the procedure.]

# 如何为全局群集中的非投票节点添加专用主机名

使用此过程可在安装完成后为全局群集中的非投票节点添加专用主机名。在本章的操作过程中，`phys-schost#` 表示全局群集提示符。此操作过程仅适用于全局群集。

1. 运行 `clsetup`(1CL) 实用程序以在相应区域中添加专用主机名。

       phys-schost# clsetup

2. 键入与专用主机名选项相对应的编号，然后按 Return 键。
3. 键入与添加区域专用主机名选项相对应的编号，然后按 Return 键。

   根据提示回答问题。全局群集非投票节点专用主机名没有默认值。您需要提供一个主机名。

# 如何更改全局群集中的非投票节点的专用主机名

使用此过程可在安装完成后更改非投票节点的专用主机名。

专用主机名是在首次安装群集时分配的。专用主机名的格式为：`clusternode`< nodeid>`-priv`，例如：`clusternode3-priv`。只有当专用主机名已在域中使用，您才能更改它。

| 注意 - 不要尝试给新的专用主机名分配 IP 地址。群集软件将进行分配。

`phys-schost#` 提示符表示全局群集提示符。此操作过程适用于全局群集。

此过程提供了 Oracle Solaris Cluster 命令的长格式。此外，大多数命令还有简短格式。这些命令除了名称长短的不同以外，其功能都是相同的。

1. 在全局群集的所有节点上，禁用所有数据服务资源或其他可能高速缓存专用主机名的应用程序。

       phys-schost# clresource disable resource1, resource2

   禁用的应用程序应包括：

   - HA-DNS 和 HA-NFS 服务（如果已配置）

   - 已通过定制操作配置为使用该专用主机名的任何应用程序

   - 任何正由客户机通过专用互连使用的应用程序

   有关使用 `clresource` 命令的信息，请参见 `clresource`(1CL) 手册页和《Oracle Solaris Cluster Data Services Planning and Administration Guide》。

2. 运行 `clsetup`(1CL) 实用程序以更改全局群集中的相应非投票节点的专用主机名。

       phys-schost# clsetup

   只需在群集的一个节点上执行此步骤即可。

   注 - 选择新的专用主机名时，请确保该名称对于群集是唯一的。

3. 键入与专用主机名选项相对应的编号，然后按回车键。
4. 键入与添加区域专用主机名选项相对应的编号，然后按 Return 键。

   全局群集非投票节点的专用主机名无默认值。您需要提供一个主机名。

5. 键入与更改区域专用主机名选项相对应的编号。

   根据提示回答问题。系统会要求您提供要更改专用主机名的非投票节点的名称 (`clusternode`< nodeid>`-priv`) 以及新的专用主机名。

6. 刷新名称服务高速缓存。

   请在群集每个节点上执行此步骤。刷新操作可避免群集应用程序和数据服务访问旧的专用主机名。

       phys-schost# nscd -i hosts

7. 启用在步骤 1 中禁用的所有数据服务资源和其他应用程序。

# 如何删除全局群集中的非投票节点的专用主机名

使用此过程可删除全局群集中非投票节点的专用主机名。此操作过程仅适用于全局群集。

1. 运行 `clsetup`(1CL) 实用程序以在相应区域中删除专用主机名。
2. 键入与区域专用主机名选项相对应的编号。
3. 键入与删除区域专用主机名选项相对应的编号。
4. 键入要删除专用主机名的非投票节点的名称。

# 如何重命名节点

可以更改作为 Oracle Solaris Cluster 配置组成部分的节点的名称。必须先重命名 Oracle Solaris 主机名才能重命名节点。使用 `clnode rename` 命令重命名节点。

以下说明适用于全局群集中运行的任何应用程序。

1. 在全局群集中，成为超级用户或成为可提供 `solaris.cluster.modify` RBAC 授权的角色。
2. 如果要重命名属于 Oracle Solaris 配置的伙伴关系的 Oracle Solaris Cluster Geographic Edition 群集中的节点，必须执行额外步骤。如果执行重命名过程的群集是保护组的主群集，而且您希望使保护组中的应用程序联机，可以在重命名过程中将保护组切换到辅助群集。有关 Geographic Edition 群集和节点的更多信息，请参见《Oracle Solaris Cluster Geographic Edition System Administration Guide》中的第 5 章 "Administering Cluster Partnerships"。
3. 通过完成《系统管理指南：高级管理》中的"如何更改系统的主机名"中的步骤来重命名 Oracle Solaris 主机名，但在过程结束时不执行重新引导。而是在完成这些步骤后执行群集关闭。
4. 将所有群集节点引导至非群集模式。

       ok> boot -x

5. 在重命名 Oracle Solaris 主机名的节点上的非群集模式下，重命名该节点并对每个重命名的主机运行 `cmd` 命令。一次重命名一个节点。

       # clnode rename -n newnodename oldnodename

6. 在群集中运行的应用程序中更新对以前主机名的任何现有引用。
7. 检查命令消息和日志文件以确认节点已被重命名。
8. 将所有节点重新引导至群集模式。

       # sync;sync;sync;/etc/reboot

9. 检验节点是否显示新名称。

       # clnode status -v

10. 如果您在 Geographic Edition 群集节点上重命名一个节点，但该群集的包含此重命名节点的伙伴群集仍然引用以前的节点名，则保护组的同步状态将显示为错误。必须使用 `geopg update <pg>` 命令从包含重命名节点的伙伴群集的一个节点更新保护组。完成此步骤后，运行 `geopg start -e global <pg>` 命令。之后，您可以将保护组切换回包含重命名节点的群集。
11. 可以选择更改逻辑主机名资源的 `hostnamelist` 属性。有关此可选步骤的说明，请参见如何更改现有 Oracle Solaris Cluster 逻辑主机名资源使用的逻辑主机名。

# 如何更改现有 Oracle Solaris Cluster 逻辑主机名资源使用的逻辑主机名

您可以按照如何重命名节点中的步骤，选择在重命名节点之前或之后更改逻辑主机名资源的 `hostnamelist` 属性。此步骤是可选的。

1. 在全局群集中，成为超级用户或成为可提供 `solaris.cluster.modify` RBAC 授权的角色。
2. （可选）您可以更改任何现有 Oracle Solaris Cluster 逻辑主机名资源使用的逻辑主机名。

   以下步骤说明了如何配置 `apache-lh-res` 资源以使用新的逻辑主机名，而且必须在群集模式下执行。

   1. 在群集模式下，使包含逻辑主机名的 Apache 资源组脱机。

          # clrg offline apache-rg

   2. 禁用 Apache 逻辑主机名资源。

          # clrs disable appache-lh-res

   3. 提供新主机名列表。

          # clrs set -p HostnameList=test-2 apache-lh-res

   4. 在 `hostnamelist` 属性中更改应用程序对以前条目的引用来引用新条目。
   5. 启用新 Apache 逻辑主机名资源。

          # clrs enable apache-lh-res

   6. 使 Apache 资源组联机。

          # clrg online apache-rg

   7. 通过运行以下命令检查客户机，确认应用程序正确启动。

          # clrs status apache-rs

# 如何使节点进入维护状态

如果要使某个全局群集节点在很长一段时间内停止服务，请将该节点置于维护状态。这样，在维护节点时，该节点不参与法定计数。要将某个节点置于维护状态，必须先使用 `clnode`(1CL) evacuate 和 `cluster`(1CL) shutdown 命令关闭该节点。

注 - 使用 Oracle Solaris `shutdown` 命令关闭单个节点。仅当关闭整个群集时，才能使用 `cluster shutdown` 命令。

当群集节点关闭并置于维护状态后，配置到该节点端口的所有法定设备的法定选票计数均会减 1。当该节点脱离维护模式并恢复联机状态后，节点和法定设备的投票计数会递增 1。

使用 `clquorum`(1CL) disable 命令可将群集节点置于维护状态。

`phys-schost#` 提示符表示全局群集提示符。此操作过程适用于全局群集。

此过程提供了 Oracle Solaris Cluster 命令的长格式。此外，大多数命令还有简短格式。这些命令除了名称长短的不同以外，其功能都是相同的。

1. 在要置于维护状态的全局群集节点上，成为超级用户或成为可提供 `solaris.cluster.modify` RBAC 授权的角色。
2. 从节点中清除所有资源组和设备组。`clnode evacuate` 命令可将指定节点上的所有资源组和设备组（包括所有非投票节点）切换到下一个首选节点。

       phys-schost# clnode evacuate node

3. 关闭已清除的节点。

       phys-schost# shutdown -g0 -y-i 0

4. 在群集的另一节点上成为超级用户或成为可提供 `solaris.cluster.modify` RBAC 授权的角色。然后，将您在步骤 3 中关闭的节点置于维护状态。

       phys-schost# clquorum disable  node

   `node`

     指定要置于维护模式的节点的名称。

5. 检验该全局群集节点现在是否处于维护状态。

       phys-schost# clquorum status node

   如果节点置于维护状态，则它的 `Status` 值应为 `offline`，`Present` 和 `Possible` 法定投票数均应为 `0`（零）。

示例 9-9 将全局群集节点置于维护状态

以下示例将一个群集节点置于维护状态并检验结果。`clnode status` 的输出内容显示，phys-schost-1 的 `Node votes` 值为 `0`（零），状态为 `Offline`。`Quorum Summary` 也应显示投票计数已减少。视具体的配置情况而定，`Quorum Votes by Device` 的输出信息可能也会表明某些法定磁盘设备已脱机。

    [On the node to be put into maintenance state:]
    phys-schost-1# clnode evacuate phys-schost-1
    phys-schost-1# shutdown -g0 -y -i0

    [On another node in the cluster:]
    phys-schost-2# clquorum disable phys-schost-1
    phys-schost-2# clquorum status phys-schost-1

    -- Quorum Votes by Node --

    Node Name           Present       Possible       Status
    ---------           -------       --------       ------
    phys-schost-1       0             0              Offline
    phys-schost-2       1             1              Online
    phys-schost-3       1             1              Online

###### 另请参见

要使节点恢复联机状态，请参见如何使节点脱离维护状态。

# 如何使节点脱离维护状态

使用以下过程可使全局群集节点恢复联机状态，并将法定投票计数重置为默认值。对于群集节点，默认法定计数为 1。对于法定设备，默认法定计数为 N-1，其中 N 是具有指向该法定设备的端口且投票计数不为零的节点的数目。

当节点置于维护状态后，其法定选票计数会减 1。所有配置了到该节点的端口的法定设备也将减少其法定选票计数。重置法定选票计数并使节点脱离维护状态后，该节点的法定选票计数和法定设备选票计数均会加 1。

只要在全局群集节点已置于维护状态的情况下运行此过程，即可使该节点脱离维护状态。

| 注意 - 如果您既未指定 `globaldev` 选项，也未指定 `node` 选项，则会重置整个群集的法定计数。

`phys-schost#` 提示符表示全局群集提示符。此操作过程适用于全局群集。

此过程提供了 Oracle Solaris Cluster 命令的长格式。此外，大多数命令还有简短格式。这些命令除了名称长短的不同以外，其功能都是相同的。

1. 在全局群集中的任一不处于维护状态的节点上，成为超级用户或成为可提供 `solaris.cluster.modify` RBAC 授权的角色。
2. 根据全局群集配置中的节点数，执行以下步骤之一：

   - 如果群集配置中有两个节点，请转至步骤 4。

   - 如果群集配置中有两个以上的节点，请转至步骤 3。

3. 如果要脱离维护状态的节点将具有法定设备，请从某个不处于维护状态的节点上重置群集法定计数。

   重新引导处于维护状态的节点之前，必须先从其他任一节点上重置法定计数，否则该节点可能会挂起，等待达到法定数目。

       phys-schost# clquorum reset

   `reset`

     用于重置法定数目的更改标志。

4. 引导要脱离维护状态的节点。
5. 检验法定选票计数。

       phys-schost# clquorum status

   如果节点已脱离维护状态，它的状态应为 `online`，且 `Present` 和 `Possible` 法定投票均显示相应的投票计数。

示例 9-10 使群集节点脱离维护状态并重置法定选票计数

以下示例将群集节点及其法定设备的法定计数重置为默认值并检验结果。`cluster status` 的输出内容显示，`phys-schost-1` 的 `Node votes` 值为 `1`，状态为 `online`。`Quorum Summary` 也应显示投票计数增加了。

    phys-schost-2# clquorum reset

- 在基于 SPARC 的系统上，运行以下命令。

      ok boot

- 在基于 x86 的系统上，运行以下命令。

  显示 GRUB 菜单后，选择相应的 Oracle Solaris 条目，然后按 Enter 键。GRUB 菜单显示如下内容：

      GNU GRUB version 0.95 (631K lower / 2095488K upper memory)
      +-------------------------------------------------------------------------+
      | Solaris 10 /sol_10_x86                                                  |
      | Solaris failsafe                                                        |
      |                                                                         |
      +-------------------------------------------------------------------------+
      Use the ^ and v keys to select which entry is highlighted.
      Press enter to boot the selected OS, 'e' to edit the
      commands before booting, or 'c' for a command-line.

    phys-schost-1# clquorum status

    --- Quorum Votes Summary ---

                Needed   Present   Possible
                ------   -------   --------
                4        6         6

    --- Quorum Votes by Node ---

    Node Name        Present       Possible      Status
    ---------        -------       --------      ------
    phys-schost-2    1             1             Online
    phys-schost-3    1             1             Online

    --- Quorum Votes by Device ---

    Device Name           Present      Possible      Status
    -----------           -------      --------      ------
    /dev/did/rdsk/d3s2    1            1             Online
    /dev/did/rdsk/d17s2   0            1             Online
    /dev/did/rdsk/d31s2   1            1             Online
    `

#### 配置负载限制

可以通过设置负载限制来启用资源组负载在各节点或区域间的自动分配。可为每个群集节点配置一组负载限制。将负载因子分配给资源组，负载因子与节点的已定义负载限制相对应。默认行为是跨资源组节点列表中的所有可用节点均匀分配资源组负载。

资源组由 RGM 从资源组节点列表中的某个节点启动，以便不会超出该节点的负载限制。在资源组由 RGM 分配给节点后，每个节点上资源组的负载因子将会汇总来提供总负载。然后总负载会与该节点的负载限制相比较。

负载限制包含以下项：

- 用户指定的名称。

- 软限制值－可以临时超出软负载限制。

- 硬限制值－绝不能超出硬负载限制，并且应严格执行此限制。

可以使用一个命令同时设置硬限制和软限制。如果没有明确设置其中某一限制，则会使用默认值。可使用 `clnode create-loadlimit`、`clnode set-loadlimit` 和 `clnode delete-loadlimit` 命令创建和修改每个节点的硬/软负载限制。有关更多信息，请参见 `clnode`(1CL) 手册页。

可以将某个资源组配置为具有较高优先级，以减小其从特定节点被替换的可能性。还可以设置 `preemption_mode` 属性，以确定某个资源组是否会由于节点过载而被优先级较高的资源组从节点中抢占。`concentrate_load` 属性还允许您将资源组负载集中分配给尽可能少的节点。默认情况下，`concentrate_load` 属性的默认值为 `FALSE`。

注 - 您可以在全局群集或区域群集中配置节点的负载限制。可以使用命令行、`clsetup` 实用程序或 Oracle Solaris Cluster Manager 界面配置负载限制。以下过程说明如何使用命令行配置负载限制。

# 如何在节点上配置负载限制

1. 在全局群集的任意一个节点上，成为超级用户或成为可提供 `solaris.cluster.modify` RBAC 授权的角色。
2. 为要使用负载平衡的的节点创建并设置负载限制。

       # clnode create-loadlimit -p limitname=mem_load -Z zc1 -p softlimit=11 -p hardlimit=20 node1 node2 node3

   在此例中，区域群集名称为 `zc1`。样例属性名为 `mem_load`，软限制值为 11，硬负载限制值为 20。软限制和硬限制是可选参数，如果您没有特别定义，则默认为无限制。有关更多信息，请参见 `clnode`(1CL) 手册页。

3. 为每个资源组指定负载因子值。

       # clresourcegroup set -p load_factors=mem_load@50,factor2@1 rg1 rg2

   在此例中，为两个资源组（即 rg1 和 rg2）设置了负载因子。负载因子设置与节点的已定义负载限制相对应。还可以使用 `clresourceroup create` 命令在资源组创建期间执行此步骤。有关更多信息，请参见 `clresourcegroup`(1CL) 手册页。

4. 如果需要，可以重新分配现有负载 (clrg remaster)。

       # clresourcegroup remaster rg1 rg2

   此命令可将资源组从当前主节点移至其他节点，以实现均匀负载分配。

5. 如果需要，可以将某些资源组的优先级设置为高于其他资源组。

       # clresourcegroup set -p priority=600 rg1

   默认优先级为 500。在节点分配中，具有较高优先级值的资源组优先于具有较低优先级的资源组。

6. 如果需要，可以设置 `Preemption_mode` 属性。

       # clresourcegroup set -p Preemption_mode=No_cost rg1

   有关 `HAS_COST`、`NO_COST` 和 `NEVER` 选项的更多信息，请参见 `clresourcegroup`(1CL) 手册页。

7. 如果需要，还可以设置 `Concentrate_load` 标志。

       # cluster set -p Concentrate_load=TRUE

8. 如果需要，可以指定资源组之间的关联。

   正向或负向强关联优先于负载分配。不得违反强关联，也不得违反硬负载限制。如果同时设置了强关联和硬负载限制，那么假如无法满足这两项约束，可能会强制某些资源组保持脱机状态。

   以下示例指定区域群集 `zc1` 中的资源组 `rg1` 与区域群集 `zc2` 中的资源组 `rg2` 之间的正向强关联。

       # clresourcegroup set -p RG_affinities=++zc2:rg2 zc1:rg1

9. 检验群集中所有全局群集节点和区域群集节点的状态。

       # clnode status -Z all -v

   输出中包含为节点或其非全局区域定义的任何负载限制设置。

版权所有 © 2000, 2010, Oracle 和/或其附属公司。 保留所有权利。 法律声明 |