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

Procedure如何升级 Solaris OS 和 Sun Cluster 3.2 软件(动态升级)

要使用动态升级方法升级 Solaris OS、Java ES 共享组件、卷管理器软件和 Sun Cluster 软件,请执行以下过程。Sun Cluster 动态升级方法使用 Solaris Live Upgrade 功能。有关动态升级 Solaris OS 的信息,请参见您所用 Solaris 版本所对应的文档:


注 –

为了支持到 Sun Cluster 3.2 软件的升级,群集已运行的或将升级到的 Solaris OS 版本决不能低于所要求的最低级别。有关更多信息,请参见《Sun Cluster 3.2 发行说明(适用于 Solaris OS)》中的 "Supported Products"。


对群集中的每个节点执行该过程。


提示 –

可以使用 cconsole 实用程序在所有节点上同时执行此过程。有关更多信息,请参见如何在管理控制台上安装群集控制面板软件


开始之前

确保完成如何为群集做好升级(动态升级)准备介绍的所有步骤。

  1. 确保在每个节点上都安装了受支持的 Solaris Live Upgrade 软件版本。

    如果已将操作系统升级至 Solaris 9 9/05 软件或 Solaris 10 11/06 软件,则表示您已经具有了正确的 Solaris Live Upgrade 软件。如果操作系统版本较低,请执行以下步骤:

    1. 插入 Solaris 9 9/05 软件或 Solaris 10 11/06 软件介质。

    2. 成为超级用户。

    3. 安装 SUNWluu 软件包和 SUNWlur 软件包。


      phys-schost# pkgadd -d path SUNWluu SUNWlur
      
      path

      指定软件包的绝对路径。

    4. 检验是否已安装了这些软件包。


      phys-schost# pkgchk -v SUNWluu SUNWlur
      
  2. 如果将升级 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。

  3. 建立非活动引导环境 (Boot Environment, BE)。


    phys-schost# lucreate options-n BE-name
    
    -n BE-name

    指定要升级的引导环境的名称。

    有关 lucreate 命令重要选项的信息,请参见《Solaris 10 安装指南:Solaris Live Upgrade 和升级规划》lucreate(1M) 手册页。

  4. 如有必要,请升级非活动 BE 中的 Solaris OS 软件。

    如果群集已经运行在安装了正确的修补程序且支持 Sun Cluster 3.2 软件的 Solaris OS 版本上,则此步骤是可选操作。

    • 如果使用 Solaris Volume Manager 软件,请运行以下命令:


      phys-schost# luupgrade -u -n BE-name -s os-image-path
      
      -u

      在引导环境中升级操作系统映像

      -s os-image-path

      指定包含操作系统映像的目录的路径名。

    • 如果使用 VERITAS Volume Manager,请按照 VxVM 安装文档中介绍的动态升级过程进行操作。

  5. 使用 lumount 命令挂载非活动 BE。


    phys-schost# lumount -n BE-name -m BE-mount-point
    
    -m BE-mount-point

    指定 BE-name 的挂载点。

    有关更多信息,请参见《Solaris 10 安装指南:Solaris Live Upgrade 和升级规划》lumount(1M) 手册页。

  6. 确保 /BE-mount-point/usr/java/ 目录是指向 Java 软件最低或最新版本的符号链接。

    Sun Cluster 软件要求 Java 软件的版本不低于 1.5.0_06。如果升级后的 Solaris 版本安装的是较低的 Java 版本,则升级过程可能已将符号链接更改为指向不符合 Sun Cluster 3.2 软件最低要求的 Java 版本。

    1. 确定 /BE-mount-point/usr/java/ 目录是指向哪个目录的符号链接。


      phys-schost# ls -l /BE-mount-point/usr/java
      lrwxrwxrwx   1 root   other    9 Apr 19 14:05 /BE-mount-point/usr/java -> /BE-mount-point/usr/j2se/
    2. 确定安装了哪个或哪些版本的 Java 软件。

      下面是一些命令示例,这些命令可用于显示相关 Java 软件的版本。


      phys-schost# /BE-mount-point/usr/j2se/bin/java -version
      phys-schost# /BE-mount-point/usr/java1.2/bin/java -version
      phys-schost# /BE-mount-point/usr/jdk/jdk1.5.0_06/bin/java -version
      
    3. 如果作为符号链接的 /BE-mount-point/usr/java/ 目录未指向支持的 Java 软件版本,请重新创建该符号链接,以链接到支持的 Java 软件版本。

      以下示例显示了为包含 Java 1.5.0_06 软件的 /usr/j2se/ 目录创建符号链接的过程。


      phys-schost# rm /BE-mount-point/usr/java
      phys-schost# cd /mnt/usr
      phys-schost# ln -s j2se java
      
  7. 应用所有必要的 Solaris 修补程序。

    可能需要先为 Solaris 软件应用修补程序,然后才可以使用 Live Upgrade 功能。有关 Solaris OS 所需的修补程序及其下载站点的详细信息,请参见《Solaris 9 9/04 Installation Guide》中的“Managing Packages and Patches With Solaris Live Upgrade”《Solaris 10 安装指南:Solaris Live Upgrade 和升级规划》中的“使用软件包或修补程序升级系统”

  8. 如有必要并且如果所使用的 VERITAS Volume Manager (VxVM) 软件版本支持动态升级,请升级 VxVM 软件。

    要确定所使用的 VxVM 版本能否采用动态升级方法,请参阅 VxVM 软件的相关文档。

  9. (可选的)SPARC:升级 VxFS。

    按照 VxFS 文档中提供的过程进行操作。

  10. 如果群集中运行有需要升级且可以使用动态升级方法进行升级的软件应用程序,请对这些软件应用程序进行升级。

    如果群集中运行有无法使用动态升级方法的软件应用程序,则稍后将在步骤 25 中对它们进行升级。

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

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

  12. 更改到 DVD-ROM 的 安装向导 目录。

    • 如果是在 SPARC 平台上安装软件包,请键入以下命令:


      phys-schost# cd /cdrom/cdrom0/Solaris_sparc
      
    • 如果是在 x86 平台上安装软件包,请键入以下命令:


      phys-schost# cd /cdrom/cdrom0/Solaris_x86
      
  13. 启动 安装向导 程序以将输出定向到一个状态文件。

    指定要赋予该状态文件的名称以及文件创建位置的绝对或相对路径。

    • 要使用图形界面创建状态文件,请使用以下命令:


      phys-schost# ./installer -no -saveState statefile
      
    • 要使用基于文本的界面创建状态文件,请使用以下命令:


      phys-schost# ./installer -no -nodisplay -saveState statefile
      

    有关更多信息,请参见《Sun Java Enterprise System 5 Installation Guide for UNIX》中的“Generating the Initial State File”

  14. 按照屏幕上的说明在节点上选择并升级共享组件软件包。

    安装向导 程序将显示安装的状态。当安装完成时,程序会显示安装摘要和安装日志。

  15. 退出 安装向导 程序。

  16. 在无提示模式下运行 installer 程序,并将安装定向到备用引导环境。


    注 –

    installer 程序的版本必须与用来创建状态文件的那个版本相同。



    phys-schost# ./installer -nodisplay -noconsole -state statefile -altroot BE-mount-point
    

    有关更多信息,请参见《Sun Java Enterprise System 5 Installation Guide for UNIX》中的“To Run the Installer in Silent Mode”

  17. 切换到 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
    
  18. 使用 scinstall 命令升级 Sun Cluster 软件。


    phys-schost# ./scinstall -u update -R BE-mount-point
    
    -u update

    指定要执行 Sun Cluster 软件的升级。

    -R BE-mount-point

    指定备用引导环境的挂载点。

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

  19. 使用 scinstall 命令升级数据服务。


    phys-schost# BE-mount-point/usr/cluster/bin/scinstall -u update -s all  \
    -d /cdrom/cdrom0/Solaris_arch/Product/sun_cluster_agents -R BE-mount-point
    
  20. 从 DVD-ROM 驱动器中取出 Sun Java Availability Suite DVD-ROM。

    1. 要确保 DVD-ROM 不在使用,更改到属于 DVD-ROM 的目录。

    2. 弹出 DVD-ROM。


      phys-schost# eject cdrom
      
  21. 卸载非活动 BE。


    phys-schost# luumount -n BE-name
    
  22. 激活升级后的非活动 BE。


    phys-schost# luactivate BE-name
    
    BE-name

    步骤 3 中建立的备用 BE 的名称。

  23. 为群集中的每个节点重复执行步骤 1步骤 22


    注 –

    在非活动 BE 上完成对群集中所有节点的升级之前,请不要重新引导任何节点。


  24. 重新引导所有节点。


    phys-schost# shutdown -y -g0 -i6
    

    注 –

    请不要使用 reboothalt 命令。这些命令不能激活新 BE。只有使用 shutdowninit 才能重新引导进入新 BE。


    节点将使用升级后的新 BE 重新引导进入群集模式。

  25. (可选的)如果群集中运行有需要升级但无法使用动态升级方法进行升级的软件应用程序,请执行以下步骤。


    注 –

    在进行软件应用程序升级的整个过程中,请始终重新引导进入非群集模式,直到完成所有升级为止。


    1. 关闭该节点。


      phys-schost# shutdown -y -g0 -i0
      
    2. 将各个节点都引导成非群集模式。

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


        ok boot -x
        
      • 在基于 x86 的系统中,执行以下命令:

        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 引导参数命令中。


        如果指示您运行 init S 命令,请关闭系统,然后将 GRUB kernel 引导命令改为 /platform/i86pc/multiboot -sx

    3. 升级每个需要升级的软件应用程序。

      完成对所有应用程序的升级之前,请记住当系统指示您进行重新引导时要引导进入非群集模式。

    4. 将每个节点都引导到群集模式下。

      • 在基于 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.

示例 8–1 动态升级到 Sun Cluster 3.2 软件

以下示例显示了动态升级一个群集节点的过程。此示例在基于 SPARC 的节点上进行了到 Solaris 10 OS 和 Sun Cluster 3.2 框架的升级,还进行了到所有支持动态升级方法的 Sun Cluster 数据服务的升级。在此示例中,sc31u2 是原引导环境 (Boot Environment, BE)。而升级后的新 BE 的名称为 sc32,使用的挂载点为 /sc32/net/installmachine/export/solaris10/OS_image/ 目录中包含了一个 Solaris 10 OS 映像。Java ES 安装程序的状态文件名为 sc32state

以下命令一般都会生成许多输出信息。此示例只在有必要阐明的地方才显示此类输出信息。


phys-schost# lucreate sc31u2 -m /:/dev/dsk/c0t4d0s0:ufs -n sc32
…
lucreate: Creation of Boot Environment sc32 successful.

phys-schost# luupgrade -u -n sc32 -s /net/installmachine/export/solaris10/OS_image/
The Solaris upgrade of the boot environment sc32 is complete.
应用修补程序

phys-schost# lumount sc32 /sc32
phys-schost# ls -l /sc32/usr/java
lrwxrwxrwx   1 root   other    9 Apr 19 14:05 /sc32/usr/java -> /sc32/usr/j2se/

插入 Sun Java Availability Suite DVD-ROM。
phys-schost# cd /cdrom/cdrom0/Solaris_sparc
phys-schost# ./installer -no -saveState sc32state
phys-schost# ./installer -nodisplay -noconsole -state sc32state -altroot /sc32
phys-schost# cd /cdrom/cdrom0/Solaris_sparc/sun_cluster/Sol_9/Tools
phys-schost# ./scinstall -u update -R /sc32
phys-schost# /sc32/usr/cluster/bin/scinstall -u update -s all -d /cdrom/cdrom0 -R /sc32
phys-schost# cd /
phys-schost# eject cdrom

phys-schost# luumount sc32
phys-schost# luactivate sc32
Activation of boot environment sc32 successful.
升级其他所有节点

引导所有节点
phys-schost# shutdown -y -g0 -i6
ok boot

可在此时升级那些无法使用动态升级方法的数据服务应用程序,然后再将节点重新引导至群集模式。


故障排除

DID 设备名称错误 - 在创建非活动 BE 的过程中,如果收到一个错误,指出您使用其 DID 设备名称 /dev/dsk/did/dNsX 指定的文件系统不存在,但此设备名称又的的确确是存在的,则您必须通过其物理设备名称来指定相应的设备。然后,将备用 BE 中的 vfstab 条目更改为使用 DID 设备名称。执行以下步骤:

挂载点错误 - 在创建非活动引导环境的过程中,如果收到一个错误指出您提供的挂载点尚未挂载,请挂载该挂载点,然后重新运行 lucreate 命令。

新 BE 引导错误 - 如果在引导新升级的环境时遇到问题,可以恢复原来的 BE。有关具体信息,请参见《Solaris 9 9/04 Installation Guide》中的“Failure Recovery: Falling Back to the Original Boot Environment (Command-Line Interface)”《Solaris 10 安装指南:Solaris Live Upgrade 和升级规划》中的第 10  章 “故障恢复:回退到初始引导环境(任务)”

全局设备文件系统错误 - 在升级已封装根磁盘的群集之后,初次重新引导升级后的 BE 时,您可能会在群集控制台上看到以下某一错误消息:

mount: /dev/vx/dsk/bootdg/node@1 is already mounted or /global/.devices/node@1 is busy Trying to remount /global/.devices/node@1 mount: /dev/vx/dsk/bootdg/node@1 is already mounted or /global/.devices/node@1 is busy

WARNING - Unable to mount one or more of the following filesystem(s):     /global/.devices/node@1 If this is not repaired, global devices will be unavailable. Run mount manually (mount filesystem...). After the problems are corrected, please clear the maintenance flag on globaldevices by running the following command: /usr/sbin/svcadm clear svc:/system/cluster/globaldevices:default

Dec 6 12:17:23 svc.startd[8]: svc:/system/cluster/globaldevices:default: Method "/usr/cluster/lib/svc/method/globaldevices start" failed with exit status 96. [ system/cluster/globaldevices:default misconfigured (see 'svcs -x' for details) ] Dec 6 12:17:25 Cluster.CCR: /usr/cluster/bin/scgdevs: Filesystem /global/.devices/node@1 is not available in /etc/mnttab. Dec 6 12:17:25 Cluster.CCR: /usr/cluster/bin/scgdevs: Filesystem /global/.devices/node@1 is not available in /etc/mnttab.

这些消息表明 vxio 从设备号在每个群集节点上都一样。重新指定每个节点上根磁盘组的从设备号,使每个编号在群集内保持唯一。请参见如何给设备组分配新的从设备号

接下来的操作

请转至如何检验 Sun Cluster 3.2 软件的升级

另请参见

只要需要,便可以选择一直保留原(现为非活动)引导环境。如果您对升级结果感到满意,则可以选择删除旧的环境,也可以选择将其保留并加以维护。

还可以维护非活动 BE。有关如何维护该环境的信息,请参见《Solaris 9 9/04 Installation Guide》中的第 37  章 “Maintaining Solaris Live Upgrade Boot Environments (Tasks)”《Solaris 10 安装指南:Solaris Live Upgrade 和升级规划》中的第 11  章 “维护 Solaris Live Upgrade 引导环境(任务)”