以下已知问题和错误会影响 Sun Cluster 3.2 发行版的运行。这些错误和问题分为以下几个类别:
问题摘要:-clnode remove --force 命令应该从元集中删除节点。《Sun Cluster 系统管理指南(适用于 Solaris OS)》中介绍了从群集中删除节点的过程。这些过程指示用户在运行 clnode remove 命令之前,先运行 metaset 命令来进行 Solaris Volume Manager 磁盘集的删除操作。
解决方法:如果不遵循这些过程,则可能需要按常规方式从 CCR 中清除过时的节点数据:即,从某个活动的群集节点上,使用 metaset 命令从 Solaris Volume Manager 磁盘集中清除该节点。然后运行 clnode clear --force obsolete_nodename 命令。
问题摘要:在安装有 Solaris 10 End User 软件组的 SUNWCuser 群集上运行 scsnapshot 命令可能会失败,并返回以下错误:
# scsnapshot -o … /usr/cluster/bin/scsnapshot[228]: /usr/perl5/5.6.1/bin/perl: not found |
解决方法:执行以下任意一项操作:
安装 Solaris Entire Distribution 软件组。
安装以下 Perl 软件包:SUNWpl5u、SUNWpl5v、SUNWpl5p。
问题摘要:共享地址资源的 Auxnodelist 属性在共享地址资源创建期间无法使用。这将导致在创建了依赖于此共享地址网络资源的可伸缩资源后,出现验证错误和 SEGV。可伸缩资源的验证错误消息具有如下格式:
由于收到信号 11,资源 resourcename 上的方法 methodname(可伸缩 svc)已停止或中断 |
此外,ssm_wrapper 还会生成核心转储文件。这样一来,用户将无法设置 Auxnodelist 属性,因而也就无法确定可以作为共享地址的宿主但永远不能充当主节点的群集节点。
解决方法:在一个节点上重新创建共享地址资源,但不要指定 Auxnodelist 属性。然后重新运行可伸缩资源创建命令,并将重新创建的共享地址资源用作网络资源。
问题摘要:Quorum Server 软件的 clquorumserver 命令没有为下一次重新引导正确设置启动机制的状态。
解决方法:执行以下任务来启动或停止 Quorum Server 软件。
显示 quorumserver 服务的状态。
# svcs -a | grep quorumserver |
如果此服务被禁用,则输出内容如下所示:
disabled 3:33:45 svc:/system/cluster/quorumserver:default |
启动 Quorum Server 软件。
如果 quorumserver 服务处于 disabled 状态,请使用 svcadm enable 命令。
# svcadm enable svc:/system/cluster/quorumserver:default |
如果 quorumserver 服务处于 online 状态,请使用 clquorumserver 命令。
# clquorumserver start + |
禁用 quorumserver 服务。
# svcadm disable svc:/system/cluster/quorumserver:default |
启动 Quorum Server 软件。
# clquorumserver start + |
将 /etc/rc2.d/.S99quorumserver 文件重命名为 /etc/rc2.d/S99quorumserver。
# mv /etc/rc2.d/.S99quorumserver /etc/rc2.d/S99quorumserver |
停止 Quorum Server 软件。
# clquorumserver stop + |
启动 Quorum Server 软件。
# mv /etc/rc2.d/S99quorumserver /etc/rc2.d/.S99quorumserver |
问题摘要:在 Sun Cluster HA for Application Server 中创建节点代理 (Node Agent, NA) 资源时,即使未设置对 DAS 资源的依赖性,仍然可以成功创建该 NA 资源。实际上,如果未设置依赖性,创建命令应该出现错误;因为要启动 NA 资源,DAS 资源必须处于联机状态。
解决方法:创建 NA 资源时,确保设置了对 DAS 资源的资源依赖性。
问题摘要:HA MySQL 修补程序在 mysql_config 文件中添加了一个名为 MYSQL_DATADIR 的新变量。此新变量必须指向存储 MySQL 配置文件 my.conf 的目录。如果未正确配置此变量,则使用 mysql_register 准备数据库将会失败。
解决方法:使 MYSQL_DATADIR 变量指向存储 MySQL 配置文件 my.conf 的目录。
问题摘要:如果使用 InfiniBand 作为群集传输技术,并且每个节点上有两个适配器(每个适配器有两个端口),同时,共有两台交换机,则 scinstall 实用程序的适配器自动搜索功能可能会在建议中给出两条使用同一适配器的传输路径。
解决方法:手动指定每个节点上的传输适配器。
问题摘要:默认情况下将不再启用针对互连的 IPv6 探测功能,但该功能对于转发 IPv6 可伸缩服务包而言是必需的。默认情况下将不再对互连适配器上的 IPv6 接口(使用 ifconfig 命令时可以看到)进行探测。
解决方法:手动启用 IPv6 可伸缩服务支持。
确保已使所有群集节点都做好了运行 IPv6 服务的准备。准备任务包括对网络接口、服务器/客户机应用程序软件、名称服务以及路由基础结构的正确配置。如果没有完成准备任务,则可能会导致网络应用程序发生意外故障。有关更多信息,请参见 Solaris 系统管理文档中有关 IPv6 服务的介绍。
在每个节点上,将以下条目添加到 /etc/system 文件中。
# set cl_comm:ifk_disable_v6=0 |
在每个节点上,启用针对互连适配器的 IPv6 探测功能。
# /usr/cluster/lib/sc/config_ipv6 |
config_ipv6 实用程序会在具有链路本地 (link-local) 地址的所有群集互连适配器上启动一个 IPv6 接口。使用该实用程序能够通过互连正确转发 IPv6 可伸缩服务包。
或者,您也可以重新引导每个群集节点以激活配置更改。
问题摘要:当尝试使用 XML 文件运行 clnode add 命令时,如果 XML 文件使用的是直接连接传输,则该命令会错误地解释电缆信息并添加错误的配置信息。结果会导致要加入的节点无法加入群集。
解决方法:当群集使用直接连接传输形式时,请使用 scinstall 命令向群集中添加节点。
问题摘要:scinstall 命令会更新 /etc/nsswitch.conf 文件,在其中添加对应于 hosts 和 netmasks 数据库的 cluster 条目。此项更改将会更新全局区域的 /net/nsswitch.conf 文件。但在创建和安装非全局区域时,非全局区域会收到它自己的 /etc/nsswitch.conf 文件副本。因此,非全局区域的 /etc/nsswitch.conf 文件将不具有对应于 hosts 和 netmasks 数据库的 cluster 条目。这样一来,每次尝试使用 getXbyY 查询在非全局区域内解析特定于群集的专用主机名和 IP 地址时,都将以失败告终。
解决方法:对非全局区域的 /etc/nsswitch.conf 文件进行手动更新,使其包含对应于 hosts 和 netmasks 数据库的 cluster 条目。这可确保特定于群集的专用主机名和 IP 地址能够在非全局区域内得到解析。
问题摘要:本地化的 Quorum Server 管理程序(如 clquorumserver)消息在核心翻译软件包中提供。因此,Quorum Server 消息将仅以英文显示。必须将 Quorum Server 翻译软件包从核心翻译软件包中分离出来,并将其安装在法定服务器系统上。
解决方法:在安装有 Quorum Server 软件的主机上安装以下软件包:
SUNWcsc(简体中文)
SUNWdsc(德文)
SUNWesc(西班牙文)
SUNWfsc(法文)
SUNWhsc(繁体中文)
SUNWjsc(日文)
SUNWksc(韩文)
如果需要在法定服务器上显示日文手册页,请安装 SUNWjscman(日文手册页)软件包。
问题摘要:安装 Sun Cluster 3.2 简体中文版软件时,Sun Cluster 3.2 安装程序将显示一条有关交换空间不足的警告消息。该安装程序会在“系统要求检验”屏幕上将交换空间大小错误地显示为 0.0 KB。
解决方法:如果交换空间的大小大于系统要求,则您可以放心地忽略此问题。您也可以在 C(即英文)语言环境中使用 SC 3.2 安装程序进行安装,此版本会正确检查交换空间的大小。
问题摘要:如果运行时链接环境中不包含 /sapmnt/SAPSID/exe 路径,则 cleanipc 实用程序将执行失败。
解决方法:以 Solaris 超级用户身份,将 /sapmnt/SAPSID/exe 路径添加到 ld.config 文件的默认库中。
要为 32 位应用程序配置运行时链接环境的默认库路径,请输入以下命令:
# crle -u -l /sapmnt/SAPSID/exe |
要为 64 位应用程序配置运行时链接环境的默认库路径,请输入以下命令:
# crle -64 -u -l /sapmnt/SAPSID/exe |
问题摘要:执行群集关闭过程时,如果有一个节点稍稍早于 UCMMD 脱离了群集,则在一个或多个节点上,UCMMD 会转入重新配置过程。出现这种情况时,关闭过程会在 UCMMD 尝试执行返回操作的同时停止节点上的 rpc.md 命令。在返回操作过程中,metaclust 命令会由于缺少 rpc.mdcommd 进程而发生 RPC 超时并退出该操作,同时返回一个错误。此错误将导致节点上的 UCMMD 中止,而 UCMMD 的中止则又可能导致节点发生紊乱。
解决方法:您可以放心地忽略此问题。当节点引导停滞时,Sun Cluster 软件会检测到这一情况,并允许 UCMMD 启动(尽管上一次重新配置时出现了错误)。
问题摘要:在逻辑主机名资源或共享地址资源的创建过程中,Sun Cluster 资源验证不接受 netiflist 属性中为 IPMP 组指定的主机名。
解决方法:创建逻辑主机名资源和共享地址资源时,请使用节点 ID 而不是节点名称来指定 IPMP 组的名称。
问题摘要:当使原始磁盘成为封装的根磁盘,并尝试从 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 |
这是一条无害的消息,可以安全地将其忽略。
为框架软件包和数据服务软件包运行了脚本后,将节点引导至群集模式下。
问题摘要:添加新群集节点时,如果不能确保该节点与现有群集节点具有相同的修补程序,则添加操作可能会导致群集节点发生紊乱。
解决方法:向群集中添加节点前,请确保事先已在新节点上安装了与现有群集节点相同级别的修补程序,否则将可能导致群集节点发生紊乱。