问题摘要:当使原始磁盘成为封装的根磁盘,并尝试从 Solaris 9 8/03 OS 上的 VxVM 3.5 动态升级为 Solaris 10 6/06 OS 上的 VxVM 5.0 时,便会出现此问题。vxlufinish 脚本将执行失败,并返回以下错误。
#./vslufinish -u 5.10 VERITAS Volume Manager VxVM 5.0 Live Upgrade finish on the Solairs release <5.10> Enter the name of the alternate root diskgroup: altrootdg ld.so.1: vxparms: fatal: libvxscsi.so: open failed: No such file or directory ld.so.1: vxparms: fatal: libvxscsi.so: open failed: No such file or directory Killed ld.so.1: ugettxt: fatal: libvxscsi.so: open failed: No such file or directory ERROR:vxlufinish Failed: /altroot.5.10/usr/lib/vxvm/bin/vxencap -d -C 10176 -c -p 5555 -g -g altrootdg rootdisk=c0t1d0s2 Please install, if 5.0 or higher version of VxVM is not installed on alternate bootdisk. |
解决方法:改为使用标准升级方法或双分区升级方法。
请与 Sun 支持部门或您的 Sun 代表联系,以了解日后是否会提供对 VxVM 5.0 的 Sun Cluster 3.2 动态升级支持。
问题摘要:在动态升级期间,lucreate 和 luupgrade 命令无法在对应于 /global/.devices/node@N 条目的备用引导环境中更改 DID 名称。
解决方法:开始进行动态升级之前,在每个群集节点上执行以下步骤。
成为超级用户。
备份 /etc/vfstab 文件。
# cp /etc/vfstab /etc/vfstab.old |
打开 /etc/vfstab 文件进行编辑。
定位 /global/.device/node@N 对应的行。
编辑全局设备条目。
将 DID 名称更改为物理名称。
将 /dev/did/{r}dsk/dYsZ 更改为 /dev/{r}dsk/cNtXdYs Z。
从条目中删除 global。
以下示例显示了将对应于 /global/.devices/node@N 的 DID 设备的名称 d3s3 更改为其物理设备名称并从条目中删除 global 之前和之后的变化:
原条目: /dev/did/dsk/d3s3 /dev/did/rdsk/d3s3 /global/.devices/node@2 ufs 2 no global 更改后的条目: dev/dsk/c0t0d0s3 /dev/rdsk/c0t0d0s3 /global/.devices/node@2 ufs 2 no - |
在所有群集节点上修改了 /etc/vfstab 文件后,执行群集的动态升级,但应在从已升级的备用引导环境重新引导之前停止进一步的操作。
在每个节点上,从当前未升级的引导环境恢复初始 /etc/vfstab 文件。
# cp /etc/vstab.old /etc/vfstab |
在备用引导环境中打开 /etc/vfstab 文件进行编辑。
定位对应于 /global/.devices/node@N 的行,将条目结尾的短划线 (-) 替换为 global。
/dev/dsk/cNtXdYsZ /dev/rdsk/cNtXdYsZ /global/.devices/node@N ufs 2 no global |
从已升级的备用引导环境重新引导节点。
/etc/vfstab 文件中的 DID 名称将被自动替换。
问题摘要:在 Sun Cluster 动态升级过程中升级 VERITAS Volume Manager (VxVM) 时会出现此问题。vxlustart 脚本用于从以前的 Solaris OS 和 VxVM 版本进行升级。该脚本将执行失败,并返回如下错误消息:
# ./vxlustart -u 5.10 -d c0t1d0 -s OSimage VERITAS Volume Manager VxVM 5.0. Live Upgrade is now upgrading from 5.9 to <5.10> … ERROR: Unable to copy file systems from boot environment <sorce.8876> to BE <dest.8876>. ERROR: Unable to populate file systems on boot environment <dest.8876>. ERROR: Cannot make file systems for boot environment <dest.8876>. ERROR: vxlustart: Failed: lucreate -c sorce.8876 -C /dev/dsk/c0t0d0s2 -m -:/dev/dsk/c0t1d0s1:swap -m /:/dev/dsk/c0t1d0s0:ufs -m /globaldevices:/dev/dsk/c0t1d0s3:ufs -m /mc_metadb:/dev/dsk/c0t1d0s7:ufs -m /space:/dev/dsk/c0t1d0s4:ufs -n dest.8876 |
解决方法:如果要将群集升级到 VxVM 5.0,请使用标准升级方法或双分区升级方法。
请与 Sun 支持部门或您的 Sun 代表联系,以了解日后是否会提供对 VxVM 5.0 的 Sun Cluster 3.2 动态升级支持。
问题摘要:对于运行 VERITAS Volume Manager (VxVM) 的群集,如果根磁盘已被封装,则对以下任何软件进行标准升级或双分区升级都将失败:
将 Solaris OS 升级到其他版本
升级 VxVM
升级 Sun Cluster 软件
升级完成后,群集节点将发生紊乱,从而无法进行引导。这是由于 VxVM 在升级期间更改了主设备号或从设备号。
解决方法:开始进行升级之前,请取消对根磁盘的封装。
如果没有按照上述过程正确操作,则进行升级的所有节点上均有可能会发生严重的意外问题。此外,每次取消封装和封装根磁盘均会使节点再一次自动重新引导,从而增加了升级期间所需的重新引导次数。
问题摘要:从 Solaris 9 上的 Sun Cluster 版本 3.1 动态升级到 Solaris 10 上的版本 3.2 后,无法在群集软件中正确使用区域。原因是没有为 Sun Cluster 软件包创建相应的 pspool 数据。因此无法正确传播那些必须传播到非全局区域的软件包(如 SUNWsczu)。
解决方法:使用 scinstall -R 命令升级 Sun Cluster 软件包后,在将群集引导至群集模式之前,运行以下脚本两次:
一次是为了 Sun Cluster 框架软件包
一次是为了 Sun Cluster 数据服务软件包
可通过以下方法之一来准备和运行此脚本:
为 Sun Cluster 框架软件包设置变量,并运行脚本。然后修改数据服务软件包的 PATHNAME 变量,并重新运行脚本。
创建两个脚本,一个脚本中为框架软件包设置了变量,另一个脚本中为数据服务软件包设置了变量。然后运行这两个脚本。
成为超级用户。
创建具有以下内容的脚本。
#!/bin/ksh typeset PLATFORM=${PLATFORM:-`uname -p`} typeset PATHNAME=${PATHNAME:-/cdrom/cdrom0/Solaris_${PLATFORM}/Product/sun_cluster/Solaris_10/Packages} typeset BASEDIR=${BASEDIR:-/} cd $PATHNAME for i in * do if pkginfo -R ${BASEDIR} $i >/dev/null 2>&1 then mkdir -p ${BASEDIR}/var/sadm/pkg/$i/save/pspool pkgadd -d . -R ${BASEDIR} -s ${BASEDIR}/var/sadm/pkg/$i/save/pspool $i fi done
设置变量 PLATFORM、PATHNAME 和 BASEDIR。
将这些变量设置为环境变量,或者在脚本中直接修改其值。
平台的名称。例如,它可以是 sparc 或 x86。默认情况下,PLATFORM 变量被设置为 uname -p 命令的输出。
从中安装 Sun Cluster 框架软件包或数据服务软件包的设备的路径。此值对应于 pkgadd 命令中的 -d 选项。
例如,对于 Sun Cluster 框架软件包,此值的形式如下:
/cdrom/cdrom0/Solaris_${PLATFORM}/Product/sun_cluster/Solaris_10/Packages |
对于数据服务软件包,此值的形式如下:
/cdrom/cdrom0/Solaris_${PLATFORM}/Product/sun_cluster_agents/Solaris_10/Packages |
用作根路径的目录完整路径名,对应于 pkgadd 命令中的 -R 选项。要进行动态升级,请将此值设置为 scinstall 命令中的 -R 选项使用的根路径。默认情况下,BASEDIR 变量被设置为根 (/) 文件系统。
运行脚本,针对 Sun Cluster 框架软件包运行一次,针对数据服务软件包运行一次。
运行脚本后,应在命令提示符中看到针对每个软件包的以下消息:
Transferring pkgname package instance |
如果某个软件包的 pspool 目录已存在,或者针对同一组软件包运行了两次脚本,则命令提示符中将显示以下错误:
Transferring pkgname package instance pkgadd: ERROR: unable to complete package transfer - identical version of pkgname already exists on destination device |
这是一条无害的消息,可以安全地将其忽略。
为框架软件包和数据服务软件包运行了脚本后,将节点引导至群集模式下。
问题摘要:添加新群集节点时,如果不能确保该节点与现有群集节点具有相同的修补程序,则添加操作可能会导致群集节点发生紊乱。
解决方法:向群集中添加节点前,请确保事先已在新节点上安装了与现有群集节点相同级别的修补程序,否则将可能导致群集节点发生紊乱。