JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris Cluster 系统管理指南     Oracle Solaris Cluster 4.0 (简体中文)
search filter icon
search icon

文档信息

前言

1.  Oracle Solaris Cluster 管理简介

2.  Oracle Solaris Cluster 和 RBAC

3.  关闭和引导群集

4.  数据复制方法

5.  管理全局设备、磁盘路径监视和群集文件系统

6.  管理法定

7.  管理群集互连和公共网络

8.  添加和删除节点

9.  管理群集

管理群集概述

如何更改群集名称

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

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

如何在群集中重置时间

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

如何更改节点专用主机名

如何重命名节点

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

如何使节点进入维护状态

如何使节点脱离维护状态

如何从群集节点卸载 Oracle Solaris Cluster 软件

对节点卸载进行故障排除

未删除的群集文件系统条目

设备组中列出的未删除项

创建、设置和管理 Oracle Solaris Cluster SNMP 事件 MIB

如何启用 SNMP 事件 MIB

如何禁用 SNMP 事件 MIB

如何更改 SNMP 事件 MIB

如何在节点上使 SNMP 主机能够接收 SNMP 陷阱

如何在节点上禁止 SNMP 主机接收 SNMP 陷阱

如何在节点上添加 SNMP 用户

如何从节点中删除 SNMP 用户

配置负载限制

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

更改服务或管理代理的端口号

如何使用 Common Agent Container 更改服务或管理代理的端口号

执行区域群集管理任务

如何删除区域群集

如何从区域群集中删除文件系统

如何从区域群集中删除存储设备

故障排除

在全局群集外部运行应用程序

如何从在非群集模式下引导的节点中获取 Solaris Volume Manager 元集

恢复损坏的磁盘组

如何保存 Solaris Volume Manager 软件配置

如何清除损坏的磁盘集

如何重新创建 Solaris Volume Manager 软件配置

10.  对 CPU 使用控制的配置

11.  更新您的软件

12.  备份和恢复群集

A.  示例

索引

管理群集概述

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


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


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

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

任务
指导
在群集中添加或删除节点
更改群集的名称
列出节点的 ID 及其相应的节点名称
允许或拒绝新节点添加到群集中
使用 NTP 更改群集的时间
关闭节点以显示 OpenBoot PROM ok 提示符(在基于 SPARC 的系统上)或在 GRUB 菜单中显示消息 "Press any key to continue"(在基于 x86 的系统上)。
添加或更改专用主机名
使群集节点进入维护状态
重命名节点
使群集节点脱离维护状态
从群集节点卸载群集软件
添加和管理 SNMP 事件 MIB
配置每个节点的负载限制
移动区域群集;为应用程序准备区域群集,删除区域群集

如何更改群集名称

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

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

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

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

    这时将显示主菜单。

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

    这时将显示“其他群集属性”菜单。

  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 实用程序生成的 cluster 命令将群集名称更改为 dromedary

phys-schost# cluster rename -c dromedary

有关更多信息,请参见 cluster(1CL)clsetup(1CL) 手册页。

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

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

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

  1. 使用 clnode 命令列出全局群集的群集配置信息。
    phys-schost# clnode show | grep Node

    有关更多信息,请参见 clnode(1CL) 手册页。

  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 实用程序。
    phys-schost# clsetup

    这时将显示主菜单。

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

    这时将显示“新节点”菜单。

  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 软件使用 NTP 来维护群集节点间的时间同步。节点进行时间同步时,全局群集会根据需要自动进行调整。有关更多信息,请参见《Oracle Solaris Cluster Concepts Guide》http://download.oracle.com/docs/cd/E19065-01/servers.10k/ 处的《Network Time Protocol's User's Guide》(《网络时间协议用户指南》)。


注意

注意 - 如果使用的是 NTP,请不要在群集处于打开和运行状态时调整群集时间。不要使用 daterdatesvcadm 命令以交互方式调整时间,也不要在 cron 脚本中调整时间。有关更多信息,请参见 date(1)rdate(1M)svcadm(1M)cron(1M) 手册页。ntpd(1M) 手册页是在 service/network/ntp Oracle Solaris 11 软件包中提供的。


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 菜单随即显示。

      有关基于 GRUB 的引导的更多信息,请参见《Booting and Shutting Down Oracle Solaris on x86 Platforms》中的"Booting an x86 Based System Interactively"

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

      GRUB 引导参数屏幕随即显示。

    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/kernel/$ISADIR/unix _B $ZFS-BOOTFS -x
    4. 按 Enter 键接受所做更改,并返回到引导参数屏幕。

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

    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(tm) 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. 如果 NTP 配置文件引用了您要更改的专用主机名,请在群集的每个节点上关闭 NTP 守护进程。

    可使用 svcadm 命令关闭 NTP 守护进程。有关 NTP 守护进程的更多信息,请参见 svcadm(1M) 手册页。

    phys-schost# svcadm disable ntp
  3. 运行 clsetup 实用程序以更改相应节点的专用主机名。

    请仅从群集中的某一个节点运行此实用程序。有关更多信息,请参见 clsetup(1CL) 手册页。


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


    也可以运行 clnode 命令以代替 clsetup 实用程序来更改专用主机名。在下面的示例中,群集节点名称为 pred1。在运行下面的 clnode 命令后,转到步骤 6

    phys-schost# /usr/cluster/bin/clnode set -p privatehostname=New-private-nodename pred1
  4. clsetup 实用程序中,键入专用主机名选项对应的编号。
  5. clsetup 实用程序中,键入与更改专用主机名选项对应的编号。

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

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

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

    phys-schost# nscd -i hosts
  7. 如果您在 NTP 配置或 include 文件中更改了专用主机名,请在每个节点上更新 NTP 文件。如果您在 NTP 配置文件 (/etc/inet/ntp.conf) 中更改了某个专用主机名,并且 NTP 配置文件 (/etc/inet/ntp.conf.include) 中存在对等主机条目或存在指向对等主机的 include 文件的指针,请在每个节点上更新该文件。如果您在 NTP include 文件中更改了专用主机名,请在每个节点上更新 /etc/inet/ntp.conf.sc 文件。
    1. 使用您选择的编辑工具。

      如果在安装时执行此步骤,还要记得删除所配置的节点的名称。通常,各个群集节点上的 ntp.conf.scr 文件完全相同。

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

      请在群集的每个节点上执行此步骤。

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

      # svcadm enable svc:network/ntp:default
  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# svcadm disable ntp
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.sc
 ...
 peer clusternode1-priv
 peer clusternode4-priv
 peer clusternode3-priv
phys-schost-1# ping clusternode4-priv
phys-schost-1# svcadm enable ntp
[Enable all applications and data services disabled at the beginning of the procedure.]

如何重命名节点

您可以更改 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 Administration: Common Tasks》中的"How to Change a System’s Identity (nodename)"中的步骤来重命名 Oracle Solaris 主机名,但在过程结束时执行重新引导。

    而是在完成这些步骤后执行群集关闭。

  4. 将所有群集节点引导至非群集模式。
    ok> boot -x
  5. 在非群集模式下,在您重命名了 Oracle Solaris 主机名的节点上,重命名节点并在每个重命名后的主机上运行 cmd 命令。

    一次重命名一个节点。

    # clnode rename -n newnodename oldnodename
  6. 更新群集上运行的应用程序中现有的对以前主机名的任何引用。
  7. 检查命令消息和日志文件以确认节点已被重命名。
  8. 将所有节点重新引导至群集模式。
    # sync;sync;sync;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 -emM apache-rg
    7. 通过运行以下命令检查客户机,确认应用程序正确启动。
      # clrs status apache-rs

如何使节点进入维护状态

如果要使某个全局群集节点在很长一段时间内停止服务,请将该节点置于维护状态。这样,在维护节点时,该节点不参与法定计数。要将某个节点置于维护状态,必须使用 clnode evacuatecluster shutdown 命令关闭该节点。有关更多信息,请参见 clnode(1CL)cluster(1CL) 手册页。


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


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

使用 clquorum disable 命令可将群集节点置于维护状态。有关更多信息,请参见 clquorum(1CL) 手册页。

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 值应为 offlinePresentPossible 法定选票数均应为 0(零)。

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

以下示例将一个群集节点置于维护状态并检验结果。clnode status 的输出内容显示,phys-schost-1 的 Node votes 值为 0(零),状态为 OfflineQuorum 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,且 PresentPossible 法定选票均显示相应的选票计数。

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

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

phys-schost-2# clquorum reset
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
`

如何从群集节点卸载 Oracle Solaris Cluster 软件

在将某个全局群集节点从完全建立的群集配置断开之前,执行此过程从该节点取消配置 Oracle Solaris Cluster 软件。您可以使用此过程从群集中剩余的最后一个节点中卸载软件。


注 - 如果要从尚未加入群集的节点或仍处于安装模式的节点中卸载 Oracle Solaris Cluster 软件,请不要执行此过程。而应转至《Oracle Solaris Cluster 软件安装指南》中的"如何取消 Oracle Solaris Cluster 软件的配置以更正安装问题"


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

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

  1. 要删除某个群集节点,请确保您已经正确地完成了任务列表中的所有先决任务。

    请参见表 8-2

    继续执行此过程之前,请确保您已使用 clnode remove 命令从群集配置中删除该节点。其他步骤可能包括将您计划卸载的节点添加到群集的节点验证列表中、卸载区域群集,等等。


    注 - 要取消配置节点但保留节点上安装的 Oracle Solaris Cluster 软件,则在运行 clnode remove 命令后不要再继续执行进一步操作。


  2. 成为要卸载的节点的超级用户。
  3. 如果节点具有用于全局设备名称空间的专用分区,请将全局群集节点重新引导至非群集模式。
    • 在基于 SPARC 的系统上,运行以下命令。

      # shutdown -g0 -y -i0 ok boot -x
    • 在基于 x86 的系统上,运行以下命令。

      # shutdown -g0 -y -i0
      ...
                            <<< Current Boot Parameters >>>
      Boot path: /pci@0,0/pci8086,2545@3/pci8086,1460@1d/pci8086,341a@7,1/
      sd@0,0:a
      Boot args:
      
      Type    b [file-name] [boot-flags] <ENTER>  to boot with options
      or      i <ENTER>                           to enter boot interpreter
      or      <ENTER>                             to boot with defaults
      
                        <<< timeout in 5 seconds >>>
      Select (b)oot or (i)nterpreter: b -x
  4. /etc/vfstab 文件中,删除/global/.devices 全局挂载点以外的所有以全局方式挂载的文件系统条目。
  5. 将该节点重新引导至非群集模式。
    • 在基于 SPARC 的系统上,执行以下命令:
      ok boot -x
    • 在基于 x86 的系统上,执行以下命令:
      1. 在 GRUB 菜单中,使用方向键选择适当的 Oracle Solaris 条目,然后键入 e 编辑其命令。

        有关基于 GRUB 的引导的更多信息,请参见《Booting and Shutting Down Oracle Solaris on x86 Platforms》中的"Booting an x86 Based System to a Specified State (Task Map)"

      2. 在引导参数屏幕中,使用方向键选择 kernel 条目,然后键入 e 以编辑该条目。
      3. 在命令中添加 -x 以指定将系统引导至非群集模式。
      4. 按 Enter 键接受更改,并返回到引导参数屏幕。

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

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

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


  6. 转到不包含 Oracle Solaris Cluster 软件包提供的任何文件的目录,如根 (/) 目录。
    phys-schost# cd /
  7. 要取消配置节点并删除 Oracle Solaris Cluster 软件,请运行以下命令。
    phys-schost# scinstall -r [-b bename]
    -r

    删除群集配置信息并从群集节点卸载 Oracle Solaris Cluster 框架和数据服务软件。然后,您可以重新安装节点或从群集删除节点。

    -b bootenvironmentname

    指定新引导环境的名称,在卸载过程完成后将引导到该引导环境。指定名称这一操作是可选的。如果您没有为引导环境指定名称,将会自动生成一个名称。

    有关更多信息,请参见 scinstall(1M) 手册页。

  8. 如果卸载完成后要在此节点上重新安装 Oracle Solaris Cluster 软件,请重新引导节点以引导至新引导环境。
  9. 如果不打算在此群集上重新安装 Oracle Solaris Cluster 软件,请断开与其他群集设备之间的传输电缆和传输交换机(如果有)。
    1. 如果卸载的节点与使用并行 SCSI 接口的存储设备相连接,请在断开传输电缆的连接后将 SCSI 端接器安装到存储设备的开路 SCSI 连接器。

      如果卸载的节点与使用光纤通道接口的存储设备连接,则不需要端接器。

    2. 有关断开连接过程,请根据您的主机适配器和服务器附带的文档进行操作。

    提示 - 有关将全局设备名称空间迁移到 lofi 的更多信息,请参见迁移全局设备名称空间


对节点卸载进行故障排除

本节介绍运行 clnode remove 命令时可能收到的错误消息以及相应的纠正措施。

未删除的群集文件系统条目

以下错误消息表示已删除的全局群集节点在其 vfstab 文件中仍引用了群集文件系统。

Verifying that no unexpected global mounts remain in /etc/vfstab ... failed
clnode:  global-mount1 is still configured as a global mount.
clnode:  global-mount1 is still configured as a global mount.
clnode:  /global/dg1 is still configured as a global mount.
 
clnode:  It is not safe to uninstall with these outstanding errors.
clnode:  Refer to the documentation for complete uninstall instructions.
clnode:  Uninstall failed.

要纠正此错误,请返回到如何从群集节点卸载 Oracle Solaris Cluster 软件,并重复执行其中的过程。在重新运行 步骤 4 命令前,请确保已成功完成此过程中的Step 4

设备组中列出的未删除项

以下错误消息表明已删除的节点仍列在某个设备组中。

Verifying that no device services still reference this node ... failed
clnode:  This node is still configured to host device service "
service".
clnode:  This node is still configured to host device service "
service2".
clnode:  This node is still configured to host device service "
service3".
clnode:  This node is still configured to host device service "
dg1".
 
clnode:  It is not safe to uninstall with these outstanding errors.          
clnode:  Refer to the documentation for complete uninstall instructions.
clnode:  Uninstall failed.

创建、设置和管理 Oracle Solaris Cluster SNMP 事件 MIB

本节介绍了如何创建、设置和管理简单网络管理协议 (Simple Network Management Protocol, SNMP) 事件管理信息库 (Management Information Base, MIB)。此外,本节还介绍了如何启用、禁用和更改 Oracle Solaris Cluster SNMP 事件 MIB。

Oracle Solaris Cluster 软件目前支持一个 MIB,即事件 MIB。SNMP 管理器软件可实时捕获群集事件。一经启用,SNMP 管理器就会自动向 clsnmphost 命令所定义的所有主机发送陷阱通知。MIB 维护着一张只读表,其中包含了最近发生的 50 个事件。由于群集会生成大量通知,因此,只有严重程度为 warning 或更高的事件才会作为陷阱通知发送。系统重新引导后此信息将不再存在。

SNMP 事件 MIB 是在 sun-cluster-event-mib.mib 文件中定义的,并位于 /usr/cluster/lib/mib 目录中。您可以使用此定义来解释 SNMP 陷阱信息。

事件 SNMP 模块的默认端口号是 11161,SNMPtraps 的默认端口是 11162。通过修改 Common Agent Container 属性文件 /etc/cacao/instances/default/private/cacao.properties 可以更改这些端口号。

创建、设置和管理 Oracle Solaris Cluster SNMP 事件 MIB 可能涉及以下任务。

表 9-2 任务列表:创建、设置和管理 Oracle Solaris Cluster SNMP 事件 MIB

任务
指导
启用 SNMP 事件 MIB
禁用 SNMP 事件 MIB
更改 SNMP 事件 MIB
将 SNMP 主机添加到要接收 MIB 陷阱通知的主机列表中
删除 SNMP 主机
添加 SNMP 用户
删除 SNMP 用户

如何启用 SNMP 事件 MIB

此过程说明了如何启用 SNMP 事件 MIB。

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

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

  1. 成为超级用户或承担可提供 solaris.cluster.modify RBAC 授权的角色。
  2. 启用 SNMP 事件 MIB。
    phys-schost-1# clsnmpmib enable [-n node] MIB
    [-n node]

    指定要启用的事件 MIB 所在的 node。您可以指定一个节点 ID 或节点名称。如果不指定此选项,默认情况下将使用当前节点。

    MIB

    指定要启用的 MIB 的名称。在本例中,MIB 的名称必须是 event

如何禁用 SNMP 事件 MIB

此过程说明了如何禁用 SNMP 事件 MIB。

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

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

  1. 成为超级用户或承担可提供 solaris.cluster.modify RBAC 授权的角色。
  2. 禁用 SNMP 事件 MIB。
    phys-schost-1# clsnmpmib disable -n node MIB
    -n node

    指定要禁用的事件 MIB 所在的 node。您可以指定一个节点 ID 或节点名称。如果不指定此选项,默认情况下将使用当前节点。

    MIB

    指定要禁用的 MIB 的类型。在本例中,必须指定 event

如何更改 SNMP 事件 MIB

此过程说明如何更改 SNMP 事件 MIB 的协议。

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

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

  1. 成为超级用户或承担可提供 solaris.cluster.modify RBAC 授权的角色。
  2. 更改 SNMP 事件 MIB 的协议。
    phys-schost-1# clsnmpmib set -n node -p version=value MIB
    -n node

    指定要更改的事件 MIB 所在的 node。您可以指定一个节点 ID 或节点名称。如果不指定此选项,默认情况下将使用当前节点。

    -p version=value

    指定要用于 MIB 的 SNMP 协议版本。您可以按如下方式指定 value

    • version=SNMPv2

    • version=snmpv2

    • version=2

    • version=SNMPv3

    • version=snmpv3

    • version=3

    MIB

    指定要应用子命令的一个或多个 MIB 的名称。在本例中,必须指定 event。如果不指定该操作数,子命令将使用表示所有 MIB 的默认加号 (+)。如果使用 MIB 操作数,请在所有其他命令行选项之后在空格分隔的列表中指定 MIB。

如何在节点上使 SNMP 主机能够接收 SNMP 陷阱

此过程说明如何将某个节点上的 SNMP 主机添加到将接收 MIB 陷阱通知的主机列表中。

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

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

  1. 成为超级用户或承担可提供 solaris.cluster.modify RBAC 授权的角色。
  2. 将主机添加到另一节点上某个团体的 SNMP 主机列表中。
    phys-schost-1# clsnmphost add -c SNMPcommunity [-n node] host
    -c SNMPcommunity

    指定与主机名配合使用的 SNMP 团体名称。

    如果将主机添加到除 public 以外的团体,必须指定 SNMP 团体名称 SNMPcommunity。如果使用不带 c 选项的 -add 子命令,该子命令会使用 public 作为默认团体名称。

    如果指定的团体名称不存在,此命令将创建该团体。

    -n node

    指定为访问群集中的 SNMP MIB 而提供的 SNMP 主机所在 node 的名称。您可以指定一个节点名称或节点 ID。如果不指定此选项,默认情况下将使用当前节点。

    host

    指定供访问群集中的 SNMP MIB 的主机的名称、IP 地址或 IPv6 地址。

如何在节点上禁止 SNMP 主机接收 SNMP 陷阱

此过程说明如何在节点上将一个 SNMP 主机从要接收 MIB 陷阱通知的主机列表中删除。

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

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

  1. 成为超级用户或承担可提供 solaris.cluster.modify RBAC 授权的角色。
  2. 在指定节点上将主机从某个团体的 SNMP 主机列表中删除。
    phys-schost-1# clsnmphost remove -c SNMPcommunity -n node host
    remove

    将指定 SNMP 主机从指定节点上删除。

    -c SNMPcommunity

    指定要从中删除 SNMP 主机的 SNMP 团体的名称。

    -n node

    指定要从配置中删除的 SNMP 主机所在 node 的名称。您可以指定一个节点名称或节点 ID。如果不指定此选项,默认情况下将使用当前节点。

    host

    指定要从配置中删除的主机的名称、IP 地址或 IPv6 地址。

    要删除指定 SNMP 团体中的所有主机,请使用加号 (+) 代替 host,并使用 -c 选项。要删除所有主机,请使用加号 (+) 代替 host

如何在节点上添加 SNMP 用户

此过程说明如何向节点上的 SNMP 用户配置中添加 SNMP 用户。

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

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

  1. 成为超级用户或承担可提供 solaris.cluster.modify RBAC 授权的角色。
  2. 添加 SNMP 用户。
    phys-schost-1# clsnmpuser create -n node -a authentication \ -f password user
    -n node

    指定要在其中添加 SNMP 用户的节点。您可以指定一个节点 ID 或节点名称。如果不指定此选项,默认情况下将使用当前节点。

    -a authentication

    指定用于对用户进行授权的验证协议。验证协议的值可以是 SHAMD5

    -f password

    指定包含 SNMP 用户密码的文件。如果在创建新用户时未指定该选项,则此命令会提示您输入一个密码。此选项仅对 add 子命令有效。

    必须按以下格式指定用户密码(每个密码占一行):

    user:password

    密码不能包含以下字符,也不能包含空格:

    • ;(分号)

    • :(冒号)

    • \(反斜杠)

    • \n(新行)

    user

    指定要添加的 SNMP 用户的名称。

如何从节点中删除 SNMP 用户

此过程说明如何从节点上的 SNMP 用户配置中删除 SNMP 用户。

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

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

  1. 成为超级用户或承担可提供 solaris.cluster.modify RBAC 授权的角色。
  2. 删除 SNMP 用户。
    phys-schost-1# clsnmpuser delete -n node user
    -n node

    指定要从中删除 SNMP 用户的节点。您可以指定一个节点 ID 或节点名称。如果不指定此选项,默认情况下将使用当前节点。

    user

    指定要删除的 SNMP 用户的名称。

配置负载限制

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

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

负载限制包含以下项:

可以使用一个命令同时设置硬限制和软限制。如果没有明确设置其中某一限制,则会使用默认值。可使用 clnode create-loadlimitclnode set-loadlimitclnode 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_COSTNO_COSTNEVER 选项的更多信息,请参见 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

    输出中包含在节点上定义的任何负载限制设置。

更改服务或管理代理的端口号

引导群集时,Common Agent Container 会自动启动。


注 - 如果在尝试查看关于节点的消息时收到系统错误消息,请检查 Common Agent Container network-bind-address 参数是否设置为了正确值 0.0.0.0

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

1. 显示 network-bind-address 参数的值。

# cacaoadm get-param network-bind-address network-bind-address=0.0.0.0

2. 如果参数值不是 0.0.0.0,请更改该参数值。

# cacaoadm stop # cacaoadm set-param network-bind-address=0.0.0.0 # cacaoadm start


如何使用 Common Agent Container 更改服务或管理代理的端口号

如果 Common Agent Container 服务的默认端口号与其他正在运行的进程冲突,则可以使用 cacaoadm 命令更改群集的每个节点上的冲突服务或管理代理的端口号。

  1. 在群集的所有节点上,停止 公共代理容器 管理守护进程。
    # /opt/bin/cacaoadm stop
  2. 使用 get-param 子命令检索 Common Agent Container 服务当前使用的端口号。
    # /opt/bin/cacaoadm get-param parameterName

    可以使用 cacaoadm 命令更改以下 Common Agent Container 服务的端口号。以下列表提供了可由 Common Agent Container 管理的服务和代理的一些示例,以及相应的参数名称。

    JMX 连接器端口

    jmxmp-connector-port

    SNMP 端口

    snmp-adapter-port

    SNMP 陷阱端口

    snmp-adapter-trap-port

    命令流端口

    commandstream-adapter-port


    注 - 如果在尝试查看关于节点的消息时收到系统错误消息,请检查 Common Agent Container network-bind-address 参数是否设置为了正确值 0.0.0.0

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

    1. 显示 network-bind-address 参数的值。

    # cacaoadm get-param network-bind-address network-bind-address=0.0.0.0

    2. 如果参数值不是 0.0.0.0,请更改该参数值。

    # cacaoadm stop # cacaoadm set-param network-bind-address=0.0.0.0 # cacaoadm start


  3. 更改端口号。
    # /opt/bin/cacaoadm set-param parameterName=parameterValue
  4. 在该群集的每个节点上重复执行步骤 3
  5. 在所有群集节点上重新启动 公共代理容器 管理守护进程。
    # /opt/bin/cacaoadm start