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

Procedure如何应用需重新引导的修补程序(节点)

一次仅向群集中的一个节点应用修补程序可使该群集本身在修补过程中保持可操作状态。执行此过程时,您必须先关闭节点,使用 boot -sx shutdown -g -y -i0 命令将节点引导至单用户模式,然后再应用修补程序。

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

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

  1. 在应用修补程序之前,请查看 Sun Cluster 产品 Web 站点中是否有关于安装前或安装后的特殊说明。

  2. 在要应用修补程序的节点上,成为超级用户或使用一个可提供 solaris.cluster.admin RBAC 授权的角色。

  3. 列出所要修补的节点上的资源组和设备组。


    # clresourcegroup status -n node
    # cldevicegroup status -n node
    
  4. 将所有资源组、资源和设备组从要修补的节点切换到其他群集成员。


    # clnode evacuate -n node
    
    evacuate

    撤离所有设备组和资源组,包括所有全局群集非投票节点。

    -nnode

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

  5. 关闭该节点。


    # shutdown -g0 [-y]
     [-i0]
  6. 将节点引导到非群集单用户模式。

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


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


      phys-schost# 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. 向命令中添加 -sx 以指定将系统引导至非群集模式。


      [ 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 -sx
    4. 按 Enter 键接受所做更改,并返回到引导参数屏幕。

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


      GNU GRUB version 0.95 (615K lower / 2095552K upper memory)
      +----------------------------------------------------------------------+
      | root (hd0,0,a)                                                       |
      | kernel /platform/i86pc/multiboot -sx                                  |
      | 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 将节点引导至非群集模式。


      注 –

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


  7. 应用软件或固件的修补程序。


    # patchadd -M patch-dir patch-id
    
    patch-dir

    指定修补程序的目录位置。

    patch-id

    指定给定修补程序的修补程序号。


    注 –

    请始终遵循修补程序目录中的说明进行操作。如果与本章介绍的过程不符,应以修补程序目录中的说明为准。


  8. 检验该修补程序是否已成功安装。


    # showrev -p | grep patch-id
    
  9. 重新引导节点,进入群集。


    # reboot
    
  10. 检验修补程序是否有效,以及该节点和群集是否正常运行。

  11. 对于所有剩余群集节点,重复从步骤 2步骤 10 的操作。

  12. 根据需要切换资源组和设备组。

    重新引导所有节点后,最后一个重新引导的节点的资源组和设备组不会联机。


    # cldevicegroup switch -n node   + | devicegroup ...
    # clresourcegroup switch -n node[:zone][,...] + | resource-group ...
    
    node

    正在将资源组和设备组切换到的节点的名称。

    zone

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

  13. 查看是否需要使用 scversions 命令来升级修补程序软件。


    # /usr/cluster/bin/scversions
    

    您将会看见以下结果之一:


    Upgrade commit is needed.
    
    Upgrade commit is NOT needed. All versions match.
  14. 如果需要升级,请升级修补程序软件。


    # scversions -c
    

    注 –

    运行 scversions 将导致 CMM 进行一次或多次重新配置,这取决于具体情况。



示例 11–1 应用需重新引导节点的修补程序

以下示例说明了将一个需重新引导的 Sun Cluster 修补程序应用到一个节点的过程。


# clresourcegroup status -n rg1
...Resource Group     Resource
--------------     --------
rg1                rs-2
rg1                rs-3
...
# cldevicegroup status -n nodedg-schost-1
...
Device Group Name:											dg-schost-1
...
# clnode evacuate  phys-schost-2
# shutdown -g0 -y -i0
...

将节点引导到非群集单用户模式。


# patchadd -M /var/tmp/patches 234567-05
...
# showrev -p | grep 234567-05

...
# reboot
...
# cldevicegroup switch -n  phys-schost-1 dg-schost-1
# clresourcegroup switch -n  phys-schost-1 schost-sa-1
# scversions
Upgrade commit is needed.
# scversions -c

另请参见

如果需要取消修补程序,请参见更改 Sun Cluster 修补程序