3


使用 DR 的准备

本章以及第 1 和 2 章介绍了成功使用 DR 所必须了解的一些信息和过程。



caution icon

注意 - DR 操作执行不当可能会导致 DR 操作失败,在某些情况下还可能损坏系统组件。



本章包含以下主题:


cfgadm(1M) 命令

cfgadm(1M) 命令可用于在域上执行 DR 操作。执行 DR 操作时,先将它传递给 libcfgadm(3LIB) 库接口,库接口动态地装入与硬件有关的库插件,最终由该插件执行 DR 操作。



注 - 如果执行 DR 操作期间 cfgadm(1M) 命令失败,则该板不会返回至其初始状况。如果该错误是可恢复的,则可以重试该命令。如果该错误是不可恢复的,则必须重新引导域才能再次使用该板。



与硬件有关的 sbd.so.1 插件提供的 DR 功能有:连接、配置、取消配置以及断开系统板的连接,这些功能使您不必重新引导系统就可从正在运行的系统上连接或断开系统板。

cfgadm(1M) 命令位于 /usr/sbin 目录下。(有关详细信息,请参阅 cfgadm(1M) 手册页。)

在设备树中,每个板插槽即为一个连接点。您可以使用 cfgadm(1M) 命令的 -a 选项查看每个组件的类型、状况和情况,以及每个板插槽的状况和情况。

以下为上述功能所支持的选项和操作,其中 ap_id 指定系统板或组件的连接点:


表 3-1 cfgadm 选项

选项和操作

指定

-c connect ap_id

将插口状况更改为 connected。

-c disconnect ap_id

将插口状况更改为 disconnected。

-c configure ap_id

将插卡状况更改为 configured。

-c unconfigure ap_id

将插卡状况更改为 unconfigured。

-x assign ap_id

将插卡状况更改为 assigned。

-x unassign ap_id

将插卡状况更改为 unassigned。

-x poweron ap_id

将插卡状况更改为 poweron。

-x poweroff ap_id

将插卡状况更改为 poweroff。

-l ap_id

显示系统板和组件的状况、状态以及情况。

-h [ap_id]

显示帮助消息文本。如果已指定 ap_id,则系统会调用与硬件有关的库帮助路径,其中该库路径用于由参数指定的连接点。

-v

以详细模式执行。

-n

对所有的提示均自动回答“否”,而不显示它们。

-y

对所有的提示均自动回答“是”,而不显示它们。

-s 列表选项

根据列表选项显示连接点的状况。提供 -l) 标记列表选项。列表选项参数必须遵循 getsubopt(3C) 手册页的语法约定,并指定:

  • 连接点选择标准(即 select=select_string
  • 需要的匹配类型(即 match=match_type
  • 列表顺序(即 sort=field_spec
  • 要显示的数据(即 cols=field_speccols2=field_spec
  • 列分界符(即 delim=string
  • 列标题抑制(即 noheadings

-o 硬件选项

给主命令选项提供与硬件有关的选项。硬件选项字符串的格式和内容完全与硬件有关,并且该字符串必须遵循 getsubopt(3C) 手册页中的语法约定。

-t ap_id

对一个或多个连接点执行测试。该测试功能用于重新评估连接点的情况。如果硬件选项中不带测试级别说明符,则使用最快的测试识别硬件故障。


 


rcfgadm(1M) 命令(仅适用于高端系统)

SMS 命令 rcfgadm(1M) 在 SC 上执行,它所具有的选项和操作数与 cfgadm(1M) 相同,只是通常还需再附加一个 -d 域 ID 选项。请参见 rcfgadm(1M)


检查设备类型、状况和情况

在试图对域中的板或组件执行任何 DR 操作之前,请必须先确定其状况和情况。


procedure icon  显示状况、类型和情况

single-step bullet使用 cfgadm(1M) 命令的 -la 选项。


# cfgadm -la

 

procedure icon  显示板插槽和组件的信息

single-step bullet使用 prtdiag(1M) 命令。


# prtdiag 

 

prtdiag(1M) 命令将显示板的数目。


准备在域上使用 DR

引导域之后,首次在域上执行 DR 操作之前,请必须保证板对该域上是可用的。


procedure icon  显示对域可用的板

single-step bullet使用 cfgadm(1M) 命令的 -l 选项。


# cfgadm -l

 

在高端系统上,每个域维护一个可用的组件列表。在中型系统上,域维护相应的访问控制列表。这两种列表均被称作 ACL

如果试图对以下情况之一的板执行 DR 操作,则可能出现错误:

这两种情况下,该板对域而言都不可用。有关如何查看高端系统可用组件列表的详细信息,请参阅《System Management Services (SMS) Administrator Guide》。有关中型系统 ACL 的详细信息,请参阅《Sun Fire 中型系统平台管理手册》


显示系统板状态


procedure icon  显示系统板状态

single-step bullet使用 cfgadm(1M) 命令。


# cfgadm -a -s "select=class(sbd)"

 

cfgadm(1M) 命令显示了有关板的信息,板已分配给该域,或者在 ACL 中列出但未分配给其他域。-a 选项指示该命令列出所有已知的连接点,其中包括板插槽、SCSI 总线,以及 PCI 插槽。

下表显示了中型系统域上的典型输出。


表 3-2 系统板状态范例显示

Ap_Id

类型

插口

插卡

情况

N0.IB6
PCI_I/O_Boa
connected
configured
ok
N0.IB7
PCI_I/O_Boa
connected
configured
ok
N0.IB8
PCI_I/O_Boa
connected
configured
ok
N0.IB9
PCI_I/O_Boa
disconnected
unconfigured
unknown
N0.SB0
CPU_Board
connected
configured
unknown
N0.SB1
CPU_Board
disconnected
unconfigured
failed
N0.SB2
CPU_Board
connected
configured
ok
N0.SB3
unknown
empty
unconfigured
unknown
N0.SB4
unknown
empty
unconfigured
unknown
N0.SB5
unknown
empty
unconfigured
unknown

 

要显示更详细的信息,请使用 cfgadm(1M) 命令的 -v 选项。


测试板


procedure icon  测试系统板

single-step bullet使用 cfgadm(1M) 命令的 -t 选项。


# cfgadm -t ap_id

 

其中 ap_id 是连接点标识符。

single-step bullet使用 cfgadm(1M) 命令的 -t-o 选项可以在指定的诊断级别上进行测试(仅适用于中型系统)。


# cfgadm -o platform=diag=<级别> -t ap_id

 

其中级别为诊断级别,ap_id 为连接点标识符。

如果在中型系统上未指定级别,则 setupdomain 命令将设置默认的诊断级别,如《Sun Fire 中型系统平台管理手册》《Sun Fire Midrange System Controller Command Reference Manual》中所述。诊断级别如下:


表 3-3 诊断级别

诊断级别

说明

init

运行但不对系统板初始代码进行测试,以便快速完成开机自检。

quick

测试所有的系统板组件,但进行的测试,以及使用的测试模式很少。

default 或 max

对除内存模块和 Ecache 模块以外的所有系统板组件进行测试,其中进行所有的测试,并使用所有的测试模式。

mem1

运行默认级别的所有测试,以及比较详尽的 DRAM 和 SRAM 测试算法。对于内存模块和 Ecache 模块,则使用多种模式测试所有位置。在此级别上,不便运行较大范围、耗时的算法。

mem2

在 mem1 级别上,运行所有的测试,以及对 DRAM 数据进行精确比较操作的 DRAM 测试。


 

procedure icon  测试 I/O 板(仅适用于中型系统)



注 - 如果单分区中型系统的域中配置有一个或多个 UltraSPARC IV+ 系统板,则您无法通过使用 DR 连接和配置操作将 I/O 板添加到该域中。该限制源自缺少可测试 I/O 板的另一个域。不过您可以在所述系统中对 I/O 板执行 DR 取消配置和取消连接命令。有关更多信息,请参见《Sun Fire 中型系统平台管理手册》(用于固件版本 5.19.0)。



1. 进入备用域 (B) 的域 shell。

2. 在按下 ] 键的同时按住 CTRL 键,以显示 telnet> 提示符。

3. 出现 telnet> 提示符时,请键入 send break 显示系统控制器域 shell。

4. 在备用域 (B) shell 中,将 I/O 部件添加到域中。


SC 主机名:B> addboard IBx

 

其中 x 为 6、7、8 或 9。

5. 将备用域上的虚拟钥匙开关设置为 on。


SC 主机名:B> setkeyswitch on
.
.
{x} ok

 

其中 x 表示 CPU。将虚拟钥匙开关设为 on 时,域上会运行开机自检。如果看到 ok 提示符,则表明 I/O 板或 I/O 部件工作正常。

6. 将模式设置为待机。


SC 主机名:B> setkeyswitch standby

 

7. 删除板。


SC 主机名:B> deleteboard ibx

 

8. 将板添加到活动的域中 (A)。


# cfgadm -c configure N0.IBx

 

procedure icon  为 DR 操作准备 I/O 板(仅适用于高端系统)

在试图对高端系统域中的 I/O 板执行 DR 操作之前,请检验以下各项是否均准确无误。

有关绑定进程的详细信息,请参阅 pbind(1M) 手册页。

当您使用 DR 将 I/O 板配置到域中(或使用 cfgadm(1M) 命令的 -t 选项明确地测试 I/O 板)时,系统将选择同一域中位于系统板插卡上的 CPU 来测试该板。此外,该 CPU 上未绑定任何进程,且域上至少还有一个连接的 CPU。如果域上无此类可用来执行该测试的 CPU,则系统显示一条如下所示的消息:


WARNING: No CPU available for I/O cage test

 

将从测试过的域和 I/O 板取消 CPU 的配置。完成测试后,系统会将 CPU 配置回该域。成功地重新配置 CPU 后,其时间戳(如 psrinfo(1M) 命令显示)将与域中其他 CPU 的时间戳不同。