Sun Cluster 软件安装指南(适用于 Solaris OS)

Procedure如何为群集做好升级(双分区)准备

要使群集做好进行双分区升级的准备,请执行以下过程。此过程将两组节点分别称为第一分区和第二分区。升级第一分区中的节点时,分配给第二分区的节点将继续运行群集服务。第一分区中的所有节点升级完成后,需将群集服务切换到第一分区,然后升级第二分区。第二分区中的所有节点升级完成后,应引导这些节点进入群集模式,使其重新加入第一分区中的节点。


注 –

如果要升级单节点群集,请不要使用此升级方法。而应转至如何为群集做好升级(标准)准备如何为群集做好升级(动态升级)准备


在 Solaris 10 OS 上,所有步骤只应在全局区域中执行。

开始之前

请执行以下任务:

  1. 确保群集运行正常。

    1. 从任一节点上运行以下命令,以查看群集的当前状态。


      % scstat
      

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

    2. 在位于同一节点的 /var/adm/messages 日志中搜索未解决的错误消息或警告消息。

    3. 检查卷管理器的状态。

  2. 如有必要,请通知用户群集服务在升级过程中可能会暂时中断。

    服务中断时间与正常情况下群集将服务切换至其他节点所花费的时间大致相当。

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

  4. 对于使用 Sun StorEdge Availability Suite 软件或 Sun StorageTek Availability Suite 软件的双节点群集,请确保可用性服务的配置数据驻留在法定磁盘上。

    配置数据必须驻留在法定磁盘上,以确保 Availability Suite 能够在您升级群集软件后正常运行。

    1. 在运行 Availability Suite 软件的群集中,成为某一节点上的超级用户。

    2. 确定 Availability Suite 配置文件所使用的设备 ID 和分片。


      phys-schost# /usr/opt/SUNWscm/sbin/dscfg
      /dev/did/rdsk/dNsS
      

      在此输出示例中,N 为设备 ID,S 为设备 N 的片。

    3. 确定现有的法定设备。


      phys-schost# scstat -q
      -- 按设备计算的法定选票 --
                           设备名称                 现有的    可能的    状态
                           -----------         ------- -------- ------
         设备选票:     /dev/did/rdsk/dQsS  1       1        联机

      在此输出示例中,dQsS 为现有的法定设备。

    4. 如果法定设备与 Availability Suite 配置数据所在设备不是同一设备,请将配置数据移到法定设备的某个可用分片上。


      phys-schost# dd if=`/usr/opt/SUNWesm/sbin/dscfg` of=/dev/did/rdsk/dQsS
      

      注 –

      必须使用原始 DID 设备的名称 /dev/did/rdsk/,而不能使用块 DID 设备的名称 /dev/did/dsk/


    5. 如果移动了配置数据,请配置 Availability Suite 软件以使用新位置。

      在运行 Availability Suite 软件的每个节点上,以超级用户的身份发出以下命令。


      phys-schost# /usr/opt/SUNWesm/sbin/dscfg -s /dev/did/rdsk/dQsS
      
  5. 如果将升级 Solaris OS,并且群集为 Solaris Volume Manager 软件使用了双串调解器,请取消这些调解器的配置。

    有关调解器的更多信息,请参见配置双串调解器

    1. 运行以下命令来检验不存在任何调解器数据问题。


      phys-schost# medstat -s setname
      
      -s setname

      指定磁盘集名称。

      如果“状态”字段中的值为 Bad,则修复受影响的调解器主机。请按照如何修正错误的调解器数据中的过程执行。

    2. 列出所有调解器。

      请保存此信息,以便在执行如何完成到 Sun Cluster 3.2 软件的升级过程期间用来恢复调解器。

    3. 对于使用调解器的磁盘组,如果任何节点都不具有拥有权,请获取磁盘组的拥有权。


      phys-schost# scswitch -z -D setname -h node
      
      -z

      更改控制权。

      -D devicegroup

      指定磁盘集的名称。

      -h node

      指定要成为磁盘集主节点的那个节点的名称。

    4. 取消配置用于磁盘集的所有调解器。


      phys-schost# metaset -s setname -d -m mediator-host-list
      
      -s setname

      指定磁盘集名称。

      -d

      从磁盘集删除。

      -m mediator-host-list

      指定要作为磁盘集的调解器主机进行删除的节点的名称。

      有关 metaset 命令特定于调解器的选项的详细信息,请参见 mediator(7D) 手册页。

    5. 对其余每个使用调解器的磁盘集重复执行步骤 c 至步骤 d。

  6. 如果正在通过版本不低于 4.4 的 Sun Java System Application Server EE (HADB) 软件运行 Sun Cluster HA for Sun Java System Application Server EE (HADB) 数据服务,请禁用 HADB 资源并关闭 HADB 数据库。

    如果正在运行的 Sun Java System Application Server EE (HADB) 软件版本低于 4.4,则可跳过此步骤。

    由于某个群集分区在升级过程中停止运行时,活动分区中的节点数不足以满足 HADB 的成员要求;因此,开始对群集进行分区之前,必须先停止 HADB 数据库并禁用 HADB 资源。


    phys-schost# hadbm stop database-name
    phys-schost# scswitch -n -j hadb-resource
    

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

  7. 如果要升级双节点群集,请跳至步骤 16

    否则,请继续执行步骤 8 以确定要使用的分区方案。首先确定每个分区将包含哪些节点,虽然这会中断分区进程。然后将所有资源组的节点列表与将使用的方案中各分区的节点成员进行比较。如果有任何资源组未包含各分区中的某一成员,则必须更改其节点列表。

  8. 将 Sun Java Availability Suite DVD-ROM 放入 DVD-ROM 驱动器。

    如果卷管理守护进程 vold(1M) 正在运行并且被配置为管理 CD-ROM 或 DVD 设备,则此守护进程会自动在 /cdrom/cdrom0/ 目录中挂载相应的介质。

  9. 切换到 Solaris_arch/Product/sun_cluster/Solaris_ver/Tools/ 目录,其中 archsparcx86 (仅用于 Solaris 10)以及 ver9 代表 Solaris 9 或 10 代表 Solaris 10。


    phys-schost# cd /cdrom/cdrom0/Solaris_arch/Product/sun_cluster/Solaris_ver/Tools
    
  10. 在交互模式下启动 scinstall 实用程序。


    phys-schost# ./scinstall
    

    注 –

    请不要使用节点上已安装的 /usr/cluster/bin/scinstall 命令。必须使用 Sun Java Availability Suite DVD-ROM 上的 scinstall 命令。


    将显示 scinstall 的“主菜单”。

  11. 键入与“管理双分区升级”选项对应的编号,然后按 Return 键。


    *** 主菜单 ***
    
        请选择以下某一带 (*) 的选项:
    
            1) 创建新群集或添加群集节点
            2) 将群集配置为从此安装服务器中快速启动
          * 3) 管理双分区升级
          * 4) 升级此群集节点
          * 5) 打印此群集节点的发行信息
     
          * ?) 菜单选项中的帮助
          * q) 退出
    
        选项:3
    

    将显示“管理双分区升级”菜单。

  12. 键入与“显示并选择可能的分区方案”选项对应的编号,然后按 Return 键。

  13. 根据提示执行以下任务:

    1. 显示可用于您的群集的分区方案。

    2. 选择一个分区方案。

    3. 选择要首先升级哪个分区。


      注 –

      当出现“是否要开始进行双分区升级?”的提示时,请停在此处暂响应,但也不要退出 scinstall 实用程序。将在此过程的步骤 18 中响应该提示。


  14. 记录分区方案中各分区所含的节点。

  15. 在群集中的其他节点上,成为超级用户。

  16. 确保所有重要的数据服务均可在分区之间进行切换。

    对于双节点群集,各节点将成为其分区中的唯一节点。

    当关闭某一分区中的节点以准备进行双分区升级时,在这些节点上托管的资源组将切换到另一分区中的某个节点上。如果一个资源组的节点列表中未包含各分区中的任何节点,则该资源组将无法进行切换。要确保成功切换所有重要的数据服务,请检验相关资源组的节点列表中是否包含各升级分区中的成员。

    1. 对于需要在整个升级过程中一直处于运行状态的每个资源组,显示其节点列表。


      phys-schost# scrgadm -pv -g resourcegroup | grep "Res Group Nodelist"
      
      -p

      显示配置信息。

      -v

      以详细模式显示。

      -g resourcegroup

      指定资源组的名称。

    2. 如果资源组的节点列表内未包含各分区中的成员(每个分区至少一个),请重新定义节点列表,以将各分区的成员作为潜在主节点包含在内。


      phys-schost# scrgadm -a -g resourcegroup -h nodelist
      
      -a

      添加新配置。

      -h

      指定以逗号分隔的节点名称列表。

  17. 确定下一步的操作。

    • 如果要升级双节点群集,请返回步骤 8步骤 13 以指定分区方案和升级顺序。

      当看到提示“是否要开始进行双分区升级?”时,请跳至步骤 18

    • 如果要升级具有三个或更多节点的群集,请返回到正在运行交互式 scinstall 实用程序的节点。

      继续执行步骤 18

  18. 当交互式 scinstall 显示“是否要开始进行双分区升级?”的提示时,请键入 Yes

    该命令将检验远程安装方法是否可用。

  19. 当出现提示时,请按 Enter 键继续进行双分区升级的各阶段准备工作。

    该命令会将资源组切换到第二分区中的节点上,然后关闭第一分区中的各个节点。

  20. 关闭第一分区中的所有节点之后,将该分区中的各节点引导进入非群集模式。

    • 在基于 SPARC 的系统中,执行以下命令:


      ok boot -x
      
    • 在运行 Solaris 9 OS 的基于 x86 的系统上,执行以下任一命令:


      phys-schost# reboot -- -xs
      
      ...
                            <<< Current Boot Parameters >>>
      Boot path: /pci@0,0/pci-ide@7,1/ata@1/cmdk@0,0:b
      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 -xs
      
    • 在基于 x86 且正在运行 Solaris 10 OS 的系统中,执行以下命令:

      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 进行引导的更多信息,请参见《System Administration Guide: Basic Administration》中的第 11  章 “GRUB Based Booting (Tasks)”

      2. 在引导参数屏幕中,使用方向键选择 kernel 条目,然后键入 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 选项添加到 kernel 引导参数命令中。


  21. 如果第二分区中正在运行的任何应用程序不受 资源组管理器 (RGM) 的控制,则在开始升级该分区的节点之前,请先创建脚本来停止这些应用程序。

    在进行双分区升级的过程中,应先调用这些脚本来停止诸如 Oracle RAC 之类的应用程序,然后再停止第二分区中的节点。

    1. 创建用于停止不受 RGM 控制的应用程序所需的脚本。

      • 对于受 RGM 控制的应用程序,请依据它们的停止时间,分别为要在此前停止的那些应用程序和要在此后停止的那些应用程序创建不同的脚本。

      • 要停止分区中多个节点上正在运行的应用程序,请编写相应的脚本。

      • 可根据个人意愿为脚本使用任何名称和目录路径。

    2. 确保群集中的每个节点本地上都有脚本副本。

    3. 在每个节点上,修改以下 Sun Cluster 脚本来调用在该节点上放置的脚本。

      • /etc/cluster/ql/cluster_pre_halt_apps - 此文件用于调用您希望在关闭受 RGM 控制的应用程序之前运行的那些脚本。

      • /etc/cluster/ql/cluster_post_halt_apps - 此文件用于调用您希望在关闭受 RGM 控制的应用程序之后运行的那些脚本。

      由于 Sun Cluster 脚本将在分区的升级后处理过程中从分区内的任意一个节点上发出,因此,必须确保分区中任一节点上的脚本都可以为分区中的所有节点执行必要的操作。

接下来的操作

升级第一分区中各节点上的软件。