Sun Cluster 系统管理指南(适用于 Solaris OS)

群集管理概述

表 7–1 任务列表: 管理群集

任务  

有关说明,请转到  

更改群集的名称 

如何更改群集名称

列出节点的 ID 及其相应的节点名称 

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

允许或拒绝新节点添加到群集中 

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

使用网络时间协议 (NTP) 更改群集的时间 

如何在群集中重置时间

关闭节点,使其转到基于 SPARC 的系统上的 OpenBoot PROM ok 提示下或基于 x86 的系统的引导子系统上

SPARC: 如何在节点上进入 OpenBoot PROM (OBP)

更改专用主机名 

如何更改专用主机名

使群集节点进入维护状态 

如何使节点进入维护状态

使群集节点脱离维护状态 

如何使节点脱离维护状态

向群集添加节点 

如何将节点添加到授权的节点列表中

从群集中删除节点 

如何从群集软件配置中删除节点

如何更改群集名称

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

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

  2. 键入 scsetup 命令。


    # scsetup
    

    显示“Main Menu”。

  3. 要更改群集名称,键入 7(其他群集特性)。

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

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

示例 — 更改群集的名称

以下示例说明了由 scsetup (1M) 实用程序生成的 scconf( 1M) 命令可用于更改为新的群集名称 dromedary


# scconf -c -C cluster=dromedary

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

安装 Sun Cluster 时,会自动给每个节点指定唯一的节点 ID 号。 分配节点 ID 号时,将按照该节点首次加入群集的顺序进行分配。此号一经分配,就无法更改。 节点 ID 号经常在错误消息中使用,标识与消息有关的群集节点。 请遵照此过程来确定节点 ID 和节点名称之间的映射。

要列出配置信息,您不必成为超级用户。

  1. 使用 scconf(1M) 命令可以列出群集配置信息。


    % scconf -pv | grep "Node ID"
    

示例 — 将节点 ID 映射到节点名称

以下示例说明了节点 ID 的指定情况


% scconf -pv | grep “Node ID”
(phys-schost-1) Node ID:                    1
(phys-schost-2) Node ID:                    2
(phys-schost-3) Node ID:                    3

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

Sun Cluster 使您能够确定新节点能否添加到群集中以及使用何种类型的认证。 您可以允许任何新的节点通过公共网络加入群集、拒绝新节点加入群集或指定可以加入群集的具体节点。 新节点可以通过使用标准 UNIX 或者 Diffie-Hellman (DES) 认证来进行认证。 如果选择的是 DES 认证,还必须在节点加入前配置所有需要的加密键。 有关详细信息,请参阅 keyserv (1M)publickey(4) 手册页。

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

  2. 进入 scsetup(1M) 实用程序。


    # scsetup
    

    显示“Main Menu”。

  3. 要使用群集认证,请键入 6(新节点)。

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

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

示例 — 阻止将新机器添加到群集中

以下示例说明了由 scsetup 实用程序生成的scconf 命令。该命令可用于阻止将新机器添加到群集中。


# scconf -a -T node=.

示例 — 允许将所有新机器都添加到群集中

以下示例说明了由 scsetup 实用程序生成的 scconf 命令。该命令可将所有新机器都添加到群集中。


# scconf -r -T all

示例 — 指定要添加到群集中的新机器

以下示例说明了由 scsetup 实用程序生成的 scconf 命令。该命令可将单个新机器添加到群集中。


# scconf -a -T node=phys-schost-4

示例 — 将认证设置为标准 UNIX

以下示例说明了由 scsetup 实用程序生成的 scconf 命令。该命令可将加入到群集中的新节点的认证重置为标准 UNIX 认证。


# scconf -c -T authtype=unix

示例 — 将认证设置为 DES

以下示例说明了由 scsetup 实用程序生成的 scconf 命令。该命令对新加入到群集中的节点采用 DES 认证。


# scconf -c -T authtype=des

注意:

如果使用的是 DES 认证,还需要先配置所有必要的加密键。然后,节点才能加入到群集中。 有关详细信息,请参阅 keyserv(1M)publickey(4) 手册页。


如何在群集中重置时间

Sun Cluster 使用网络时间协议 (NTP) 来维护群集节点间的时间同步。 节点进行时间同步时,群集会根据需要进行自动调整。 有关详细信息,请参阅Sun Cluster 概念指南(适用于 Solaris OS)Network Time Protocol User's Guide


小心:小心:

如果使用的是 NTP,请不要在群集处于打开和运行状态时调整群集时间。 包括交互式使用或在 cron(1M) 脚本中使用 date(1)rdate(1M)xntpd(1M) 命令。


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

  2. 关闭群集。


    # scshutdown -g0 -y
    

  3. 检验节点是否显示 ok 提示或在“Current Boot Parameters”屏幕中显示 Select (b)oot or (i)nterpreter 提示。

  4. 使用 boot(1M) 或结合使用 b 命令和 -x 选项在非群集模式下引导节点。

    • SPARC:


      ok boot -x
      

    • x86:


                            <<< 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
      

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


    # date HHMM.SS
    

  6. 在其它机器上,通过运行 rdate(1M) 命令可以使其与该节点的时间同步。


    # rdate hostname
    

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


    # reboot
    

  8. 检验是否所有的群集节点均已相应更改。

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


    # date
    

SPARC: 如何在节点上进入 OpenBoot PROM (OBP)

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

  1. 连接到终端集中器端口。


    # telnet tc_name tc_port_number
    

    tc_name

    指定终端集中器的名称。

    tc_port_number

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

  2. 通过使用 scswitch (1M) 命令清空所有资源组或磁盘设备组,然后使用 shutdown 正常关闭群集节点。


    # scswitch -S -h node[,...]
    # shutdown -g0 -y -i0
    


    小心:小心:

    不要在群集控制台上用 send brk 来关闭群集节点。


  3. 执行 OBP 命令。

如何更改专用主机名

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

在第一次安装群集时会指定缺省的专用主机名。 缺省专用主机名的格式为 clusternode<nodeid>-priv,例如: clusternode3-priv. 只有在专用主机名已经在域中使用的情况下,才能更改它。


小心:小心:

请勿为新的专用主机名指定 IP 地址。 群集软件将进行分配。


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


    # scswitch -n -j resource1, resource2
    

    禁用的应用程序应包括:

    • HA-DNS 和 HA-NFS 服务(如果已配置)。

    • 经定制配置为使用专用主机名的任何应用程序。

    • 客户机通过专用互连使用的任何应用程序。

    有关使用 scswitch 命令的信息,请参阅 scswitch(1M) 手册页和Sun Cluster 数据服务规划和管理指南(适用于 Solaris OS)

  2. 关闭群集中每个节点上的网络时间协议 (NTP) 守护程序。

    有关 NTP 守护程序的详细信息,请参阅 xntpd(1M) 手册页。


    # /etc/initd./xntpd.cluster stop
    

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

    只需在群集中的一个节点上进行这一操作。


    注意:

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


  4. 从“Main Menu”上选择 5, Private Hostnames

  5. 从 “Private Hostnames Menu” 上选择 1, Change a Private Hostname

    按照提示回答问题。 将询问您正在更改其专用主机名的节点的名称 (clusternode<nodeid>-priv),以及新的专用主机名。

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

    在群集中的每个节点上进行这一操作。 这样可以避免群集应用程序和数据服务访问旧的专用主机名。


    # nscd -i hosts
    

  7. 编辑每个节点上的 ntp.conf.cluster 文件可将专用主机名更改为新的专用主机名。

    使用任意一种编辑工具均可。

    如果在安装时执行了该过程,也要记得删除已配置的节点的名称;缺省模板预配置十六个节点。 通常,每个群集节点上的 ntp.conf.cluster 文件都相同。

  8. 检验是否能成功地从所有群集节点 ping 新的专用主机名。

  9. 重新启动 NTP 守护程序。

    在群集中的每个节点上执行此操作。


    # /etc/initd./xntpd.cluster start
    

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


    # scswitch -e -j resource1, resource2
    

    有关使用 scswitch 命令的信息,请参阅 scswitch 手册页和Sun Cluster 数据服务规划和管理指南(适用于 Solaris OS)

示例 — 更改专用主机名

以下示例说明了在 phys-schost-2 节点上将专用主机名从 clusternode2-priv 更改为 clusternode4-priv 的过程。


[根据需要,禁用所有应用程序和数据服务。]
phys-schost-1# /etc/init.d/xntpd stop
phys-schost-1# scconf -p | grep node
 ...
 Cluster nodes:                  phys-schost-1 phys-schost-2 phys-
 schost-3
 Cluster node name:                                 phys-schost-1
  Node private hostname:                           clusternode1-priv
 Cluster node name:                                 phys-schost-2
  Node private hostname:                           clusternode2-priv
 Cluster node name:                                 phys-schost-3
  Node private hostname:                           clusternode3-priv
 ...
phys-schost-1# scsetup
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
[在此过程开始时启用所有被禁用的应用程序和数据服务。]

如何使节点进入维护状态

如果节点需要较长时间脱离服务,请将其置于维护状态。 这样,在维护节点时,该节点不参与定额计数。 要使群集节点进入维护状态,必须使用 scswitch(1M)shutdown(1M) 关闭节点。


注意:

使用 Solaris shutdown 命令关闭单个节点。 只有要关闭整个群集时,才能使用 scshutdown 命令。


关闭一个群集节点并使之进入维护状态后,配置了到该节点的端口的所有定额设备的定额选票计数均减去 1。 当该节点脱离维护模式并返回联机状态后,节点和定额设备选票计数就会增加 1。

需要使用 scconf(1M) 命令使群集节点进入维护状态。 scsetup(1M) 实用程序不具备使定额设备进入维护状态的功能。

  1. 成为要进入维护状态的节点的超级用户。

  2. 清空该节点中的任何资源组和磁盘设备组。


    # scswitch -S -h node[,...]
    

    -S

    从指定的节点抽出所有的设备服务和资源组。

    -h node[,...]

    指定切换资源组和设备组所在的节点。

  3. 关闭已抽出的节点。


    # shutdown -g0 -y -i0
    

  4. 成为群集中另一节点上的超级用户,并使在步骤 3 中关闭的节点进入维护状态。


    # scconf -c -q node=node,maintstate
    

    -c

    指定 scconf 命令的更改形式。

    -q

    管理定额选项。

    node=node

    指定要更改的节点名称或节点 ID。

    maintstate

    使节点进入维护状态。

  5. 检验该群集节点当前是否处于维护状态。


    # scstat -q
    

    如果节点已进入维护状态,则其定额选票 PresentPossibleStatus 应该分别是 offline0(零)。

示例 — 使群集节点进入维护状态

以下示例将群集节点置于维护状态并检验了操作结果。 scstat -q 的输出信息显示 phys-schost-1 的 Node votes0(零),并且其状态为 OfflineQuorum Summary 也应显示选票计数已减少。 Quorum Votes by Device 的输出信息也可能表明某些定额磁盘设备已脱机,这取决于您的配置。


[在将被置入维护状态的节点上:]
phys-schost-1# scswitch -S -h phys-schost-1
phys-schost-1# shutdown -g0 -y -i0

[在群集中的另一个节点上:]
phys-schost-2# scconf -c -q node=phys-schost-1,maintstate
phys-schost-2# scstat -q

-- Quorum Summary --
  Quorum votes possible:      3
  Quorum votes needed:        2
  Quorum votes present:       3

-- Quorum Votes by Node --
                    Node Name           Present Possible Status
                    ---------           ------- -------- ------
  Node votes:       phys-schost-1       0        0       Offline
  Node votes:       phys-schost-2       1        1       Online
  Node votes:       phys-schost-3       1        1       Online

-- Quorum Votes by Device --
                    Device Name         Present Possible Status
                    -----------         ------- -------- ------
  Device votes:     /dev/did/rdsk/d3s2  0        0       Offline
  Device votes:     /dev/did/rdsk/d17s2 0        0       Offline
  Device votes:     /dev/did/rdsk/d31s2 1        1       Online

从此处可转到何处

要使节点返回联机状态,请参阅如何使节点脱离维护状态

如何使节点脱离维护状态

遵照以下过程,可使节点返回联机状态并将定额选票计数重置为缺省值。 对于群集节点,缺省定额计数为 1。 对于定额设备,缺省定额计数为 N-1,其中 N 为具有定额设备端口的非零选票计数的节点的数目。

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

只要要使处于维护状态的节点脱离维护状态,就应该运行此过程。


小心:小心:

如果不指定 globaldev 选项或 node 选项,整个群集的定额计数将被重置。


  1. 成为群集中的任一节点(该处于维护状态的节点除外)的超级用户。

  2. 是否要使双节点群集中的一个节点脱离维护状态?

  3. 如果使用定额,则从一个不处于维护状态的节点重置群集定额计数。

    必须在重新引导节点之前从不处于维护状态的节点重置定额计数, 否则计数可能挂起等待定额。


    # scconf -c -q node=node,reset
    

    -c

    指定 scconf 命令的更改形式。

    -q

    管理定额选项。

    node=node

    指定要重置的节点的名称,例如 phys-schost-1。

    reset

    用于重置定额的更改标志。

  4. 引导要使之脱离维护状态的节点。

  5. 检验定额选票计数。


    # scstat -q
    

    已脱离维护状态的节点应处于 online 状态并显示 PresentPossible 定额选票的相应选票计数。

示例 — 使群集节点脱离维护状态并重置定额选票计数

以下示例将群集节点及其定额设备的定额计数重置为缺省值并检验结果。 scstat -q 的输出信息显示 phys-schost-1 的 Node votes1,并且其状态为 onlineQuorum Summary 也应显示选票计数增加了。


phys-schost-2# scconf -c -q node=phys-schost-1,reset

在 phys-schost-1 上:


phys-schost-1# scstat -q

-- Quorum Summary --

  Quorum votes possible:      6
  Quorum votes needed:        4
  Quorum votes present:       6

-- Quorum Votes by Node --

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

-- Quorum Votes by Device --

                    Device Name         Present Possible Status
                    -----------         ------- -------- ------
  Device votes:     /dev/did/rdsk/d3s2  1        1       Online
  Device votes:     /dev/did/rdsk/d17s2 1        1       Online
  Device votes:     /dev/did/rdsk/d31s2 1        1       Online