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

从群集中删除节点

本节提供有关如何在全局群集或区域群集中删除节点的说明。您还可以从全局群集中删除特定的区域群集。下表列出了从现有群集中删除节点时所要执行的任务。请按照显示的顺序执行这些任务。


注意 – 注意 –

对于 RAC 配置,如果仅使用此过程删除某个节点,则该删除操作可能会导致该节点在重新引导期间出现紧急情况。有关如何从 RAC 配置中删除节点的说明,请参见《Sun Cluster Data Service for Oracle RAC Guide for Solaris OS》中的“How to Remove Sun Cluster Support for Oracle RAC From Selected Nodes”。完成该过程后,请执行下面相应的步骤。


表 8–2 任务图:删除节点

任务 

指导 

将所有资源组和设备组移出要删除的节点 

clnode evacuate node

通过检查允许的主机检验该节点是否可以删除 

如果该节点无法删除,请给予该节点访问群集配置的权限 

claccess show node

claccess allow -h node-to-remove

从所有设备组中删除该节点 

如何将节点从设备组中删除 (Solaris Volume Manager)

 

删除与要删除的节点连接的所有法定设备 

如果您要从双节点群集中删除节点,则此步骤是可选的。

如何删除法定设备

注意,尽管在下一步中删除存储设备之前,您必须先删除定额设备,但是可以在之后立即重新添加该定额设备。 

如何从集群中删除最后一个法定设备

将要删除的节点置于非群集模式 

如何使节点进入维护状态

从区域群集中删除节点 

如何从区域群集中删除节点

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

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

(可选)从群集节点卸载 Sun Cluster 软件 

如何从群集节点中卸载 Sun Cluster 软件

删除整个区域群集 

如何删除区域群集

Procedure如何从区域群集中删除节点

通过停止节点、卸载节点并从配置中删除节点,可从区域群集中删除节点。如果以后您决定将该节点添加回区域群集中,请按照表 8–1 中的说明操作。下面的大部分步骤都是从该全局群集节点中执行的。

  1. 成为全局群集中某个节点上的超级用户。

  2. 通过指定要删除的区域群集节点及其区域群集来关闭该节点。


    phys-schost# clzonecluster halt -n node zoneclustername
    

    还可以在区域群集内使用 clnode evacuateshutdown 命令。

  3. 卸载区域群集节点。


    phys-schost# clzonecluster uninstall -n node zoneclustername
    
  4. 从配置中删除该区域群集节点。

    使用以下命令:


    phys-schost# clzonecluster configure zoneclustername
    

    clzc:sczone> remove node physical-host=zoneclusternodename
    
  5. 检验该节点是否已从区域群集中删除。


    phys-schost# clzonecluster status
    

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

执行此过程可从全局群集中删除节点。

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

此过程提供了 Sun Cluster 命令的长格式。此外,大多数命令还有简短格式。这些命令除了名称长短的不同以外,其功能都是相同的。有关命令及其简短格式的列表,请参见附录 B

  1. 继续执行此过程之前,请确保已将节点从所有资源组、设备组和法定设备配置中删除,并将该节点置于维护状态。

  2. 在要删除的节点上,成为超级用户或使用一个可提供 solaris.cluster.modify RBAC 授权的角色。从全局群集中的某个节点执行此过程中的所有步骤。

  3. 将您要删除的全局群集节点引导到非群集模式下。对于区域群集节点,在执行此步骤之前,请按照如何从区域群集中删除节点中的说明操作。

    • 在基于 SPARC 的系统上,运行以下命令。


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


      shutdown -g -y -i0
      
      Press any key to continue
    1. 在 GRUB 菜单中,使用方向键选择适当的 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 选项添加到内核引导参数命令中。


      注 –

      如果要删除的节点不可用或者不再能够被引导,请在任何活动的群集节点上运行以下命令:clnode clear -F <node-to-be-removed>。通过运行 clnode status <nodename> 检验该节点是否已删除。


  4. 在要删除的节点上,从群集中删除该节点。


    phys-schost# clnode remove -F
    

    如果 clnode remove 命令失败,并且存在过时的节点引用,请在活动节点上运行 clnode clear -F nodename


    注 –

    如果您要删除群集中的最后一个节点,则该节点必须处于非群集模式下并且该群集中未剩下任何活动节点。


  5. 通过另一个群集节点检验是否已删除该节点。


    phys-schost# clnode status nodename
    
  6. 完成节点删除操作。


示例 8–2 从群集软件配置中删除节点

此示例说明了如何从群集中删除节点 phys-schost-2。应当在您要从群集中删除的节点 (phys-schost-2) 上以非群集模式运行 clnode remove 命令。


[Remove the node from the cluster:]
phys-schost-2# clnode remove
phys-schost-1# clnode clear -F phys-schost-2
[Verify node removal:]
phys-schost-1# clnode status
-- Cluster Nodes --
                    Node name           Status
                    ---------           ------
  Cluster node:     phys-schost-1       Online

另请参见

要从已删除的节点中卸载 Sun Cluster 软件,请参见如何从群集节点中卸载 Sun Cluster 软件

有关硬件操作过程,请参见《Sun Cluster 3.1 - 3.2 Hardware Administration Manual for Solaris OS》

有关删除群集节点的完整任务列表,请参见表 8–2

要向现有的群集添加节点,请参见如何向授权节点列表添加节点

Procedure如何从全局群集中删除非投票节点(区域)

  1. 在创建非投票节点的全局群集节点上成为超级用户。

  2. 从系统中删除非投票节点。

    请按照《系统管理指南:Solaris Containers-资源管理和 Solaris Zones》中的“从系统中删除非全局区域”中的过程操作。

Procedure如何在节点连接多于两个的群集中删除阵列与单个节点之间的连接

使用此过程可在具有三节点或四节点连通性的群集中从单个群集节点分离存储阵列。

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

此过程提供了 Sun Cluster 命令的长格式。此外,大多数命令还有简短格式。这些命令除了名称长短的不同以外,其功能都是相同的。有关命令及其简短格式的列表,请参见附录 B

  1. 备份与要删除的存储阵列相关联的所有数据库表、数据服务和卷。

  2. 确定要断开连接的节点上正在运行的资源组和设备组。


    phys-schost# clresourcegroup status
    phys-schost# cldevicegroup status
    
  3. 如果需要,将所有资源组和设备组移出要断开连接的节点。


    Caution (SPARC only) – Caution (SPARC only) –

    如果群集正在运行 Oracle RAC 软件,请先关闭在节点上运行的 Oracle RAC 数据库实例,然后再将组从节点移出。有关说明,请参见《Oracle Database Administration Guide》。



    phys-schost# clnode evacuate node
    

    clnode evacuate 命令可将指定节点上的所有设备组切换到下一个首选节点。该命令还将指定节点上的投票或非投票节点中的所有资源组切换到下一个首选的投票或非投票节点。

  4. 使设备组处于维护状态。

    有关默许 Veritas 共享磁盘组具有 I/O 活动的过程,请参见 VxVM 文档。

    有关将设备组置于维护状态的过程,请参见如何使节点进入维护状态

  5. 从设备组中删除节点。

    • 如果使用 VxVM 或原始磁盘,请使用 cldevicegroup(1CL) 命令删除设备组。

    • 如果使用 Solstice DiskSuite,应使用 metaset 命令删除设备组。

  6. 对于每一个包含 HAStoragePlus 资源的资源组,请从该资源组的节点列表中删除该节点。


    phys-schost# clresourcegroup remove-node -z zone -n node + | resourcegroup
    
    node

    节点名称。

    zone

    可控制资源组的非投票节点的名称。只有在创建资源组时指定了非投票节点的情况下,才能指定 zone

    有关更改资源组的节点列表的更多信息,请参见《Sun Cluster Data Services Planning and Administration Guide for Solaris OS》


    注 –

    执行 clresourcegroup 命令时,资源类型、资源组和资源属性的名称均区分大小写。


  7. 如果要删除的存储阵列是节点上连接的最后一个存储阵列,应断开节点与该存储阵列连接的集线器或交换机之间的光缆(否则,应跳过此步骤)。

  8. 如果要从正在断开连接的节点上移除主机适配器,请关闭该节点的电源。如果要从将断开连接的节点上拆除主机适配器,请跳到步骤 11

  9. 从节点上拆下主机适配器。

    有关移除主机适配器的操作过程,请参见节点的相关文档。

  10. 打开节点的电源,但不引导该节点。

  11. 如果安装了 Oracle RAC 软件,请将 Oracle RAC 软件包从要断开连接的节点中删除。


    phys-schost# pkgrm SUNWscucm 
    

    Caution (SPARC only) – Caution (SPARC only) –

    如果不从已断开连接的节点上删除 Oracle RAC 软件,当该节点重新加入群集时,将出现紧急情况并可能导致失去数据可用性。


  12. 以群集模式引导节点。

    • 在基于 SPARC 的系统上,运行以下命令。


      ok boot
      
    • 在基于 x86 的系统上,运行以下命令。

      显示 GRUB 菜单后,选择相应的 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.
  13. 在节点上,通过更新 /devices/dev 条目来更新设备名称空间。


    phys-schost# devfsadm -C 
     cldevice refresh
    
  14. 使设备组重新联机。

    有关将 Veritas 共享磁盘组置于联机状态的过程,请参见 Veritas Volume Manager 的文档。

    有关将设备组置于联机状态的信息,请参见如何使节点脱离维护状态

Procedure如何纠正错误消息

要纠正尝试执行任何群集节点的删除过程时所产生的错误消息,请执行以下过程。

  1. 尝试将该节点重新加入全局群集。此操作过程仅适用于全局群集。


    phys-schost# boot
    
  2. 该节点是否成功加入群集?

    • 如果不是,则继续执行步骤 b

    • 如果是,请执行以下步骤从设备组中删除该节点。

    1. 如果该节点重新加入群集成功,请从其余的设备组中删除该节点。

      请按照如何将节点从所有设备组中删除中的过程操作。

    2. 从所有设备组中删除该节点后,请返回到如何从群集节点中卸载 Sun Cluster 软件,并重复执行其中的过程。

  3. 如果该节点未能重新加入群集,请将该节点的 /etc/cluster/ccr 文件重命名为您所选的任何其他名称,例如 ccr.old


    # mv /etc/cluster/ccr /etc/cluster/ccr.old
    
  4. 返回到如何从群集节点中卸载 Sun Cluster 软件,并重复执行其中的过程。