本章介绍特定于 Sun 中型和高端服务器的问题。当前 Sun 服务器属于 Sun Fire 系统系列。旧服务器属于 Sun Enterprise 系统系列。
Sun 验证测试套件发行说明现在为单独文档,可以在 http://sun.com 上找到。
在后续的 Solaris 10 发行版中修复了本章中的某些问题和错误。如果升级了 Solaris 软件,本章中的某些问题和错误可能不再适用。要查看哪些错误和问题不再适用于您特定的 Solaris 10 软件,请参阅附录 A,Solaris 10 操作系统中的集成错误修复表。
本节介绍运行 Solaris 10 软件的下列 Sun Fire 高端系统上的主要域端 DR 错误:
Sun Fire 25K
Sun Fire 20K
Sun Fire 15K
Sun Fire 12K
有关 Sun 管理服务上的 DR 错误的信息,请参见系统上运行的 SMS 版本的《SMS 发行说明》。
此信息仅适用于在本节中所列出的服务器上运行的 DR。有关其他服务器上的 DR 的信息,请参见介绍这些服务器的发行说明或产品说明文档或章节。
下列软件和硬件错误适用于 Sun Fire 高端系统。
如果某进程使网络设备处于打开状态,则与该设备相关的任何 DR 操作都会失败。保存引用计数的守护进程和进程都会停止 DR 操作,使其无法完成。
解决方法:以超级用户身份执行以下步骤:
删除或重命名 /rplboot 目录。
关闭 NFS 服务。
# sh /etc/init.d/nfs.server stop |
关闭 Boot Server 服务。
# sh /etc/init.d/boot.server stop |
执行 DR 分离操作。
重新启动 NFS 服务。
# sh /etc/init.d/nfs.server start |
重新启动 Boot Server 服务。
# sh /etc/init.d/boot.server start |
在配置为使用 SunSwift PCI 卡(选项 1032)的系统上执行 DR 命令时,可能会显示警告。这些警告显示在运行 Solaris 8、Solaris 9 或 Solaris 10 软件的域上。例如,会显示以下警告:
Aug 12 12:27:41 machine genunix: WARNING: vmem_destroy('pcisch2_dvma'): leaked |
这些警告并没有什么影响。直接虚拟内存访问 (Direct Virtual Memory Access, DVMA) 空间在 DR 操作期间已正常刷新。实际上没有发生内核内存泄漏。
解决方法:要避免显示警告,请将以下行添加到 /etc/system:
set pcisch:pci_preserve_iommu_tsb=0 |
具有 Sun GigaSwift Ethernet MMF 选件 X1151A 的系统与某些 CISCO 交换机链接失败。尝试在连接到下列交换机之一的系统上运行 DR 操作时发生该故障:
CISCO WS-c4003 交换机(f/w: WS-C4003 软件,版本 NmpSW: 4.4(1))
CISCO WS-c4003 交换机(f/w: WS-C4003 软件,版本 NmpSW: 7.1(2))
CISCO WS-c5500 交换机(f/w: WS-C5500 软件,版本 McpSW: 4.2(1) 和 NmpSW: 4.2(1))
在 CISCO 6509 交换机上未出现此问题。
解决方法:使用另一个交换机。另外,可以向 Cisco 咨询以获得所列出交换机的修补程序。
本节介绍在下列 Sun Fire 中型系统中与 DR 相关的主要问题:
Sun Fire E6900
Sun Fire E4900
Sun Fire E6800
Sun Fire E4810
Sun Fire E4800
Sun Fire E3800
此信息仅适用于在本节中所列出的服务器上运行的 DR。有关其他服务器上的 DR 的信息,请参见介绍这些服务器的发行说明或产品说明文档或章节。
表 3–1 显示对于要运行 DR 的每个 Sun Fire 中型系统,可接受的 Solaris 软件和系统控制器 (System Controller, SC) 固件的组合。
要充分利用最新的固件功能和错误修复,请在 Sun Fire 中型系统上运行最新的 SC 固件。有关最新的修补程序信息,请参见 http://sunsolve.sun.com。
平台 |
Solaris 版本 |
SC 固件的最低版本 |
---|---|---|
带 UltraSPARC IV+ 的 Sun Fire E6900/E4900 |
Solaris 10 3/05 HW1(限制版本)或 Solaris 10 1/06 |
5.19.0 |
不带 UltraSPARC IV+ 的 E6900/E4900 |
Solaris 9 4/04 |
5.16.0 |
Sun Fire 6800/4810/4800/3800 |
Solaris 9 4/04 |
5.16.0 |
Sun Fire 6800/4810/4800/3800 |
Solaris 9 |
5.13.0 |
可通过连接到存储固件图像的 FTP 或 HTTP 服务器来升级 Sun Fire 中型系统的系统固件。有关更多信息,请参阅自述文件和 Install.info 文件。这些文件包含在您的域上运行的固件发行版中。可从 http://sunsolve.sun.com 下载 Sun 的修补程序。
本部分列出了重要的 DR 错误。
如果某进程使网络设备处于打开状态,则与该设备相关的任何 DR 操作都会失败。保存引用计数的守护进程和进程都会停止 DR 操作,使其无法完成。
解决方法:以超级用户身份执行以下步骤:
删除或重命名 /rplboot 目录。
关闭 NFS 服务。
# sh /etc/init.d/nfs.server stop |
关闭 Boot Server 服务。
# sh /etc/init.d/boot.server stop |
执行 DR 分离操作。
重新启动 NFS 服务。
# sh /etc/init.d/nfs.server start |
重新启动 Boot Server 服务。
# sh /etc/init.d/boot.server start |
在 Sun Fire 中型系统中,当 CompactPCI (cPCI) I/O 板上的端口 0 (P0) 已禁用时,无法取消配置该板。Solaris 10 和 Solaris 9 软件中存在此问题。在已安装下列一个或多个修补程序的 Solaris 8 软件中,也存在此问题:
修补程序 ID 108528–11 到 108528–29
修补程序 ID 111372–02 到 111372–04
同时,该错误仅在涉及 cPCI 板的 DR 操作期间发生。将显示一条类似以下示例的错误消息:
# cfgadm -c unconfigure NO.IB7 cfgadm: Hardware specific failure: unconfigure N0.IB7: Device busy:/ssm@0,0/pci@1b,700000/pci@1 |
NO.IB7 为 P0 已禁用的 CompactPCI I/O 板。
解决方法:禁用插槽而不禁用端口 0。
本节介绍有关 Sun Enterprise 10000 服务器上的下列功能的问题:
系统服务处理器要求
动态重新配置 (Dynamic Reconfiguration, DR)
域间网络 (InterDomain Network, IDN)
Sun Enterprise 10000 域上的 Solaris 操作系统
Solaris 10 软件可在 Sun Enterprise 10000 系统中的单独域上运行。不过,此发行版不支持 Sun Enterprise 10000 系统服务处理器。
系统服务处理器 (System Service Processor, SSP) 上需要 SSP 3.5 软件才能支持 Solaris 10 软件。首先在 SSP 上安装 SSP 3.5。然后,可以在 Sun Enterprise 10000 域上安装或升级到 Solaris 10 OS。
还需要 SSP 3.5 软件,以便正确配置域以使用 DR 模型 3.0。
本节介绍有关 Sun Enterprise 10000 域上的动态重新配置的不同问题。
在运行从 Solaris 9 12/03 发行版开始的 Solaris OS 的 Sun Enterprise 10000 域上,必须使用 DR 3.0。DR 模型 3.0 引用 SSP 上使用下列命令的功能,以执行域 DR 操作:
addboard
moveboard
deleteboard
showdevices
rcfgadm
可以在域上运行 cfgadm 命令以获得板状态信息。DR 模型 3.0 还与重新配置协调管理器 (Reconfiguration Coordination Manager, RCM) 连接,以便与域上运行的其他应用程序协调 DR 操作。
有关 DR 模型 3.0 的详细信息,请参阅《Sun Enterprise 10000 Dynamic Reconfiguration User Guide》。
对于此 Solaris 发行版,DR 不再自动从将要分离的 CPU 解除绑定用户进程。必须在启动分离序列前执行此操作。如果 CPU 上有未释放的进程,则隔离操作将失败。
如果某进程使网络设备处于打开状态,则与该设备相关的任何 DR 操作都会失败。保存引用计数的守护进程和进程都会停止 DR 操作,使其无法完成。
解决方法:以超级用户身份执行以下步骤:
删除或重命名 /rplboot 目录。
关闭 NFS 服务。
# sh /etc/init.d/nfs.server stop |
关闭 Boot Server 服务。
# sh /etc/init.d/boot.server stop |
执行 DR 分离操作。
重新启动 NFS 服务。
# sh /etc/init.d/nfs.server start |
重新启动 Boot Server 服务。
# sh /etc/init.d/boot.server start |
要正确配置域以用于 DR 3.0,需要 SSP 3.5 软件。将 SSP 升级至 SSP 3.5 后,在域上启用 DR 3.0 时,运行下列命令:
# devfsadm -i ngdr |
要使某域加入域间网络,该域中所有具有活动内存的板都必须至少具有一个活动 CPU。
在 OpenBoot PROM 提示符 (OK) 下发出 boot net 命令之前,请验证 local-mac-address?变量是否已设置为 false。此设置为出厂缺省设置。如果该变量设置为 true,则必须确保该值为适当的本地配置。
local-mac-address?设置为 true 可能导致域无法成功通过网络进行引导。
在 netcon 窗口中,可以在 OpenBoot PROM 提示符处使用下列命令显示 OpenBoot PROM 变量的值:
OK printenv |
将 local-mac-address?变量复位为缺省设置。使用 setenv 命令:
OK setenv local-mac-address? false |
本节包含有关运行 Solaris 10 软件的下列中型服务器的动态重新配置 (dynamic reconfiguration, DR) 功能的最新信息:
Sun Enterprise 6x00
Sun Enterprise 5x00
Sun Enterprise 4x00
Sun Enterprise 3x00
有关 Sun Enterprise Server Dynamic Reconfiguration 的更多信息,请参阅《Dynamic Reconfiguration User's Guide for Sun Enterprise 3x00/4x00/5x00/6x00 Systems》。Solaris 10 发行版支持上述列表中提到的系统中的所有 CPU/内存板以及大多数 I/O 板。
继续操作前,请确保系统支持动态重新配置。如果系统为旧设计,则控制台或控制台日志中会显示下列消息。这类系统不适合进行动态重新配置。
Hot Plug not supported in this system |
当前不支持下列 I/O 板:
类型 2(图形)
类型 3 (PCI)
类型 5(图形和 SOC+)
本节提供有关 DR 的一般软件信息。
要启用动态重新配置,必须在 /etc/system 文件中设置两个变量。还必须设置一个额外变量,才能删除 CPU/内存板。请执行以下步骤:
以超级用户身份登录。
通过添加下列行,编辑 /etc/system 文件:
set pln:pln_enable_detach_suspend=1 set soc:soc_enable_detach_suspend=1 |
要启用 CPU/内存板的删除,请将以下行添加到文件:
set kernel_cage_enable=1 |
设置此变量将启用对内存的取消配置操作。
重新引导系统以应用更改。
使用以下命令开始停顿测试:
# cfgadm -x quiesce-test sysctr10:slot number |
在大型系统上,停顿测试的运行时间可能会长达一分钟。在这段时间内,如果 cfgadm 未发现不兼容的驱动程序,则不显示任何消息。
试图连接禁用板列表中的板可能生成以下错误消息:
# cfgadm -c connect sysctrl0:slotnumber cfgadm: Hardware specific failure: connect failed: board is disabled: must override with [-f][-o enable-at-boot] |
要改写禁用条件,可以使用下面两种方法:
使用强制标志 (-f)
# cfgadm -f -c connect sysctrl0:slot number |
使用启用选项 (-o enable-at-boot)
# cfgadm -o enable-at-boot -c connect sysctrl0:slot number |
要从禁用板列表中删除所有板,请根据发出命令时所在的提示符,选择下面的两种操作之一:
在超级用户提示符下,键入:
# eeprom disabled-board-list= |
在 OpenBoot PROM 提示符下,键入:
OK set-default disabled-board-list |
有关 disabled-board-list 设置的详细信息,请参阅《Platform Notes: Sun Enterprise 3x00, 4x00, 5x00, and 6x00 Systems》手册中的 "Specific NVRAM Variables" 一节。该手册包含在此发行版的文档集中。
此发行版发布有关 OpenBoot PROM disabled-memory-list 设置的信息。请参阅 Solaris on Sun Hardware 文档中《Platform Notes: Sun Enterprise 3x00, 4x00, 5x00, and 6x00 Systems》中的 "Specific NVRAM Variables"。
如果需要卸载无法安全分离的驱动程序,请使用 modinfo 行命令查找相应驱动程序的模块 ID。然后,可在 modunload 命令中使用相应模块 ID 以卸载无法安全分离的驱动程序。
如果在 DR 连接期间显示以下错误消息,请尽快从系统中卸下该板:
cfgadm: Hardware specific failure: connect failed: firmware operation error |
该板未通过自检,将其卸下可以避免下次重新引导时发生重新配置错误。
在自检失败状态下,不允许执行其他操作。所以,如果希望立即重试失败的操作,必须首先卸下该板,然后重新插入它。
以下列表中的内容可能会随时改变。
如果某进程使网络设备处于打开状态,则与该设备相关的任何 DR 操作都会失败。保存引用计数的守护进程和进程都会停止 DR 操作,使其无法完成。
解决方法:以超级用户身份执行以下步骤:
删除或重命名 /rplboot 目录。
关闭 NFS 服务。
# sh /etc/init.d/nfs.server stop |
关闭 Boot Server 服务。
# sh /etc/init.d/boot.server stop |
执行 DR 分离操作。
重新启动 NFS 服务。
# sh /etc/init.d/nfs.server start |
重新启动 Boot Server 服务。
# sh /etc/init.d/boot.server start |
在致命复位后重新引导 Sun Enterprise5 x500 服务器时,内存交错处于不正确状态。随后的 DR 操作失败。该问题仅在系统的内存交错设置为 min 时发生。
解决方法:选择下列选项之一:
要解决该问题,请在 OK 提示符下手动复位系统。
要避免该问题,请将 NVRAM memory-interleave 属性设置为 max。
第二个选项导致只要引导系统就出现内存交错的问题。不过,由于无法动态取消对包含交错内存的内存板的配置,因此该选项可能是不可接受的。请参见无法取消配置具有交错内存的 CPU/内存板 (4210234)。
要取消配置并随后断开具有内存的 CPU 板或仅内存板,请首先取消配置内存。然而,如果板上的内存与其他板上的内存交错,则目前还不能动态取消对该内存的配置。
可使用 prtdiag 或 cfgadm 命令显示内存交错。
解决方法:维修该板之前关闭系统,之后重新引导系统。要允许今后在 CPU/内存板上执行 DR 操作,请将 NVRAM memory-interleave 属性设置为 min。有关交错内存的相关讨论,另请参见致命复位后内存交错的设置不正确 (4156075)。
要取消配置并随后断开具有内存的 CPU 板或仅内存板,请首先取消配置内存。然而,目前有些内存无法重定位。这种内存可视为常驻内存。
板上的常驻内存在 cfgadm 状态显示中标记为 "permanent":
# cfgadm -s cols=ap_id:type:info Ap_Id Type Information ac0:bank0 memory slot3 64Mb base 0x0 permanent ac0:bank1 memory slot3 empty ac1:bank0 memory slot5 empty ac1:bank1 memory slot5 64Mb base 0x40000000 |
在上例中,插槽 3 中的板带有常驻内存,因此不能删除。
解决方法:维修该板之前关闭系统,之后重新引导系统。
如果正在一块板上运行 cfgadm 进程,则同时断开另一块板的尝试失败。将显示以下错误消息:
cfgadm: Hardware specific failure: disconnect failed: nexus error during detach:address |
解决方法:一次仅运行一个 cfgadm 操作。允许一块板上运行的 cfgadm 操作完成后,再在第二块板上开始 cfgadm 断开操作。