2


命令行界面

本章论述以下过程:



注 - 没有必要在 Sun Fire 中型系统上专门启用动态重新配置功能,因为缺省情况下已启用 DR。但是,要在运行 Solaris 8 软件的系统上完全实现 DR 功能,还需安装后来发行的内核更新和一些修补程序。有关更多信息,请访问以下 Sun 网站:

http://www.sun.com/sunsolve

http://www.sun.com/servers/midrange/dr_sunfire



 

 


cfgadm 命令

cfgadm(1M)命令提供了可动态重新配置的硬件资源上的配置管理操作。下表列出了 DR 板状况。


表 2-1 系统控制器 (SC) 上显示的 DR 板状况

板状况

说明

Available

插槽未分配给任何一个域。

Assigned

板属于某个域,但未配置使用该板的硬件。底盘端口还可重新分配板,或板所分配到的域会将板释放。

Active

板正由其分配到的域使用。不能重新分配一个活动的板。


 

显示基本的板状态

cfgadm 命令会显示板和插槽的信息。有关此命令的选项,请参阅 cfgadm(1)手册页。

多数操作需要您指定系统板名称。为获取这些系统名称,请键入不带选项的 cfgadm 命令。执行上述操作将显示所有已知附加点的信息,包括板插槽、SCSI 总线和 cPCI 插槽信息。下例就是一个典型的输出实例。


代码实例 2-1 基本的 cfgadm 命令输出


Ap_Id         Type         Receptacle   Occupant     Condition
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
c0            scsi-bus     connected    configured   unknown
c1            scsi-bus     connected    unconfigured unknown
c2            scsi-bus     connected    unconfigured unknown
c3            scsi-bus     connected    configured   unknown

 

显示详细的板状态

如需获得详细的状态报告,可使用 cfgadm -av 命令。使用 -a 选项可以列出附加点,-v 选项可以列出详尽的描述。

代码实例 2-2 是 cfgadm -av 命令的部分 输出显示。由于显示折行,此输出显得有些杂乱。(此状态报告适用于与实例系统相同的系统,并提供了每个显示项的详细信息。)


代码实例 2-2 cfgadm -av 命令的输出
# cfgadm -av
Ap_Id            Receptacle    Occupant       Condition  Information
When          Type          Busy       Phys_Id
N0.IB6           connected     configured     ok        powered-on, assigned
Apr 3 18:04  PCI_I/O_Boa   n          /devices/ssm@0,0:N0.IB6
N0.IB6::pci0     connected     configured     ok        device /ssm@0,0/pci@19,70000
Apr 3 18:04 io             n          /devices/ssm@0,0:N0.IB6::pci0
N0.IB6::pci1     connected     configured     ok        device /ssm@0,0/pci@19,600000
Apr 3 18:04 io             n          /devices /ssm@0,0:N0.IB6::pci1
N0.IB6::pci2     connected    configured      ok        device /ssm@0,0/pci@18,700000
Apr 3 18:04 io             n          /devices/ssm@0,0:N0.IB6::pci2
N0.IB6::pci3     connected     configured     ok        device /ssm@0,0/pci@18,600000
Apr 3 18:04 io             n          /devices/ssm@0,0:N0.IB6::pci3
N0.IB7           connected     configured     ok        powered-on, assigned
Apr 3 18:04 PCI_I/O_Boa    n          /devices/ssm@0,0:N0.IB7
N0.IB7::pci0     connected     configured     ok        device /ssm@0,0/pci@1b,700000
Apr 3 18:04 io             n          /devices/ssm@0,0:N0.IB7::pci0
N0.IB7::pci1     connected     configured     ok        device /ssm@0,0/pci@1b,600000
Apr 3 18:04 io             n          /devices/ssm@0,0:N0.IB7::pci1
N0.IB7::pci2     connected     configured     ok        device /ssm@0,0/pci@1a,700000
Apr 3 18:04 io             n          /devices/ssm@0,0:N0.IB7::pci2
N0.IB7::pci3     connected     configured     ok        device /ssm@0,0/pci@1a,600000
Apr 3 18:04 io             n          /devices/ssm@0,0:N0.IB7::pci3
N0.IB8           connected     configured     ok        powered-on, assigned
Apr 3 18:04 PCI_I/O_Boa    n          /devices/ssm@0,0:N0.IB8
N0.IB8::pci0     connected     configured     ok        device /ssm@0,0/pci@1d,700000
Apr 3 18:04 io             n         /devices/ssm@0,0:N0.IB8::pci0
N0.IB8::pci1     connected     configured     ok        device /ssm@0,0/pci@1d,600000
Apr 3 18:04 io             n         /devices/ssm@0,0:N0.IB8::pci1
N0.IB8::pci2     connected     configured     ok        device /ssm@0,0/pci@1c,700000, referenced
Apr 3 18:04 io             n        /devices/ssm@0,0:N0.IB8::pci2
N0.IB8::pci3     connected     configured     ok        device /ssm@0,0/pci@1c,600000, referenced
Apr 3 18:04 io             n        /devices/ssm@0,0:N0.IB8::pci3
N0.IB9           disconnected  unconfigured   unknown  powered-on, assigned
Apr 3 18:04 PCI_I/O_Boa    n        /devices/ssm@0,0:N0.IB9
N0.SB0           connected     configured     unknown  powered-on, assigned
Apr 3 18:04 CPU_Board      n        /devices/ssm@0,0:N0.SB0
N0.SB0::cpu0     connected     configured     ok        cpuid 0, speed 750 MHz, ecache 8 MBytes
Apr 3 18:04 cpu            n       /devices/ssm@0,0:N0.SB0::cpu0
N0.SB0::cpu1     connected     configured     ok        cpuid 1, speed 750 MHz, ecache 8 MBytes
Apr 3 18:04 cpu            n       /devices/ssm@0,0:N0.SB0::cpu1
N0.SB0::cpu2     connected     configured     ok        cpuid 2, speed 750 MHz, ecache 8 MBytes
Apr 3 18:04 cpu            n       /devices/ssm@0,0:N0.SB0::cpu2

 

此处给出了上面的屏幕显示的一些详细信息:


图 2-1 cfgadm -av 命令显示的详细信息


命令选项

下面列出了 cfgadm(1M) -c 命令的选项:


表 2-2 cfgadm -c 命令选项

cfgadm -c 选项

功能

connect

插槽为板供电并开始监视板。如果之前未分配插槽,此时将分配插槽。

disconnect

系统停止对板的监视,同时切断对插槽的供电。

configure

操作系统为板分配功能角色并加载板及其连接设备所需的设备驱动程序。

unconfigure

系统从逻辑上将板与操作系统分离,并将相关的设备驱动程序置于脱机状态。虽然环境监视仍在进行,但板上的设备还不能为系统所用。


 

下面列出了 cfgadm -x 命令提供的选项。


表 2-3 cfgadm -x 命令选项

cfgadm -x 选项

功能

assign

将板添加(分配)到域。

unassign

从域中删除(取消分配)板。

poweron

为系统板通电。

poweroff

切断系统板电源。


 

cfgadm_sbd (1M) 手册页提供了有关 cfgadm -ccfgadm -x 选项的其他信息。sbd 库通过 cfgadm 框架为 sbd 类提供热插拔系统板的功能。


测试板和部件


procedure icon  测试 CPU/内存板

必须先将 CPU/内存板分配给域、通电,然后断开连接,之后才能测试 CPU/内存板。如果不能满足所有这些条件,则板测试失败。

可以使用 Solaris cfgadm 命令测试 CPU/内存板。以超级用户身份键入:


# cfgadm -t ap-id

 

要改变 cfgadm 运行的诊断级别,需为 cfgadm 命令提供诊断级别,如下所示。


# cfgadm -o platform=diag=<level> -t ap-id

 

其中,level 是诊断级别,而 ap-id 是附加点标识符。

如果未提供级别,则由 setupdomain 命令设置缺省的诊断级别,在《Sun Fire 中型系统平台管理手册》《Sun Fire Midrange System Controller Command Reference Manual》中对此均有论述。诊断级别如下:


表 2-4 诊断级别

诊断级别

说明

init

只运行系统板初始化代码。不执行任何测试。在开机自检过程中快速执行。

quick

对所有的系统板组件进行极少次数的测试,应用的测试模式也很少。

default

除内存和 Ecache 模块外,对所有的系统板组件进行所有的测试,应用所有的测试模式。注意对 max 和 default 的定义是相同的。

max

除内存和 Ecache 模块外,对所有的系统板组件进行所有的测试,应用所有的测试模式。注意对 max 和 default 的定义是相同的。

mem1

运行 default 级别上的所有测试,另加更为详尽的 DRAM 和 SRAM 测试算法。对于内存和 Ecache 模块,所有的地址都经过多种模式的测试。在此级别上,不运行更大范围的耗时的算法。

mem2

与 mem1 相同,外加对 DRAM 数据进行明确比较操作的 DRAM 测试。


 

procedure icon  测试 I/O 部件

在将 I/O 部件添加到域之前,应对其进行测试。此测试要求具有一个备用域,该域应至少具有一个 CPU/内存板,并且没有运行操作系统。

1. 进入备用域 (A-D) 的域 shell。

2. 按下 ] 键的同时按住 CTRL 键以启动 telnet> 提示符,然后键入 send break 显示系统控制器的域 shell。



注 - 此实例中,域 A 是当前活动的域;域 B 是备用域。



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


SC 主机名:B> addboard IBx

 

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

4. 将备用域上的虚拟钥匙开关设置为 on(打开)。


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

 

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

5. 键入:


SC 主机名:B> setkeyswitch standby

 

6. 要删除板,请输入下面的命令:


SC 主机名:B> deleteboard ibx

 

7. 在活动域 (A) 上使用下面的命令添加板:


# cfgadm -c configure N0.IBx

 


安装或更换板


procedure icon 在域中安装新板



caution icon

注意 - 有关从物理上拆除和更换板的信息,请参阅《Sun Fire Midrange Systems Service Manual》。若不按所述步骤操作,则会损坏系统板和其他组件。有关拆除和更换板和组件的软件步骤的更多信息,也可以参阅《Sun Fire 中型系统平台管理手册》





注 - 更换板时,有时需要使用填充面板。完全配置的 Sun Fire 中型系统带有三种不同的填充面板:一个系统板填充面板、一个 CompactPCI 填充面板、一个 L2 Repeater Board 填充面板。



如果不熟悉如何将板插入系统,请在开始此步骤前参阅《Sun Fire Midrange Systems Service Manual》。

1. 要确定域上可用的空插槽,请以超级用户身份键入以下命令:


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

 

2. 佩带腕带,以正确接地。

3. 找到空插槽后,从此插槽上拆除系统板填充面板。

4. 在一分钟内将板插入插槽,以免系统变得过热。

有关插入板的完整步骤,请参阅《Sun Fire Midrange Systems Service Manual》。

5. 使用 cfgadm -c configure 命令为板通电、测试并进行配置。


# cfgadm -c configure ap_id

 

其中, ap_id 是附加点的 ID,是由 cfgadm -l -s "select=class(sbd)" 命令返回的。


procedure icon 热交换 CPU/内存板



caution icon

注意 - 有关从物理上拆除和更换板的信息,请参阅《Sun Fire Midrange Systems Service Manual》。若不按所述步骤操作,则会损坏系统板和其他组件。同时请参考特定于 CompactPCI 的限制





注 - 用户在插入卡的同时按下卡上的弹出杆即可启动热交换;也可以通过在拆除卡前使弹出杆部分分离来进行启动。操作员不需要发出任何命令来执行热交换。另一方面,热插拔是通过使用 cfgadm 命令实现的。



1. 如果板正由操作系统使用,请以超级用户身份确定要拆除的板。

您必须知道插槽号(附加点 ID)。


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

 

2. 佩带腕带,以正确接地。

3. 将板从域中分离并使用 cfgadm 命令切断板电源。


# cfgadm -c disconnect ap_id

 

其中, ap_id 是附加点的 ID。

此命令将资源从操作系统和 OpenBoot PROM 中删除,将板从域中分离并切断板的电源。

4. 检查电源 LED 指示灯和热插拔正常 LED 指示灯的状况。


一旦 CPU/内存板冷却下来,绿色的电源 LED 指示灯将立即闪烁。要安全地将板从系统拆除,绿色的电源 LED 指示灯必须是不亮的,琥珀色的热插拔正常 LED 指示灯必须是点亮的。 

5. 完成板的硬件拆除和安装。有关更多信息,请参阅《Sun Fire Midrange Systems Service Manual》。

6. 拆除和安装板之后,请执行 cfgadm 命令将该板设置回操作系统内


# cfgadm -c configure ap_id

 

其中,ap_id 是附加点的 ID。

使用此命令可以将板分配给域、为其通电、测试、连接板以及将其所有资源设置回操作系统内。


7. 检查绿色的电源 LED 指示灯 是否已点亮。

procedure icon  热交换 I/O 部件

有两种类型的 I/O 部件:CompactPCI (cPCI) 和标准 PCI。这些指导对这两种类型都适用。但是请注意,虽然可以热交换、热插拔和动态重新配置 cPCI 卡,但不能热交换、热插拔或动态重新配置 PCI 卡和标准 I/O 部件。

用户在插入卡的同时按下卡上的弹出杆即可启动热交换;也可以通过在拆除卡前使弹出杆部分分离来进行启动。操作员不需要发出任何命令来执行热交换。另一方面,热插拔是通过使用 cfgadm 命令实现的。



caution icon

注意 - 有关从物理上拆除和更换板的信息,请参阅《Sun Fire Midrange Systems Service Manual》。若不按所述步骤操作,则会损坏系统板和其他组件。



1. 如果 I/O 部件正由操作系统使用,请以域超级用户身份确定要拆除的 I/O 部件。

您必须知道插槽号(附加点 ID)。


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

 

2. 使用 cfgadm 命令将板从域中分离并切断板电源:


# cfgadm -c disconnect ap_id

 

其中:ap_id 是附加点的 ID。

此命令将资源从操作系统和 OpenBoot PROM 中删除,将板从域中分离并切断 I/O 部件电源。

3. 使用 cfgadm 命令将板从域中拆除:


# cfgadm -x unassign 附加点 ID

 

4. 检查 I/O 部件上的状态 LED 指示灯的状况。


为安全地将 I/O 部件从系统拆除,I/O 部件上的绿色电源 LED 指示灯必须处于非活动状况(不亮),并且琥珀色的热插拔正常 LED 指示灯必须已点亮。 

5. 完成 I/O 部件的硬件拆除和安装。有关更多信息,请参阅《Sun Fire Midrange Systems Service Manual》



注 - 在开始进行 I/O 部件的硬件拆除和安装前,确保您已正确接地。



为了测试 I/O 部件,在将板设置回操作系统之前,需要输入一个备用域,该域当前没有运行操作系统并且至少具有一块 CPU/内存板。

输入备用域 (A-D) 的域 shell,该域当前没有运行操作系统,并且至少 具有一个 CPU/内存板。

6. 在按下 ] 键的同时按住 CTRL 键,显示 telnet> 提示符。键入 send break 显示系统控制器域 shell。



注 - 此例中,域 A 是当前活动的域;域 B 是作为备用域使用的。



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


SC 主机名:B> addboard ibx

 

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

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

将虚拟钥匙开关设为 on 时,域上会运行开机自检。


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

 

其中,x 表示 CPU。如果您看到 ok 提示符,则表明 I/O 部件工作正常。

9. 在按下 ] 键的同时按住 CTRL 键,显示 telnet> 提示符。键入 send break 连接到系统控制器域 shell。

根据不同的 telnet 连接类型,您也许需要在 send break 命令后键入 send esc 以便连接到系统控制器域 shell。

10. 键入:


SC 主机名:B> setk standby

 

11. 要删除板,请输入下面的命令:


SC 主机名:B> deleteboard ibx

 

12. 在域 A 的提示符下配置 I/O 部件:


# cfgadm -c configure N0.IBx

 

热交换 CompactPCI 卡

您可以在插入卡的同时按下卡上的弹出杆启动热交换;也可以通过在拆除卡前使弹出杆部分分离来进行启动。不需要发出任何命令来执行热交换。另一方面,要执行热插拔操作,请使用 cfgadm 命令。

为热交换 CompactPCI (cPCI) 卡,您必须在 cPCI 卡 I/O 部件所在的域中引导操作系统。在域中引导操作系统后,所有的 cPCI 卡都处于自动配置模式,不需执行 cfgadm 命令即可执行所有配置和取消配置操作。

用热交换的方式插入 cPCI 卡时,卡会自动通电和得到配置。用热交换的方式拆除 cPCI卡时,卡自动取消配置并断电。



caution icon

注意 - 有关从物理上拆除和更换板的信息,请参阅《Sun Fire Midrange Systems Service Manual》。若不按所述步骤操作,则会损坏系统板和其他组件。




procedure icon  插入 CompactPCI 卡

1. 以超级用户身份,确定要将卡插入到的插槽。

2. 插入卡并完全按下弹出杆以使其插入牢靠。卡会自动通电和配置。卡上的蓝色热交换正常 LED 指示灯应熄灭,I/O 部件上的绿色电源 LED 指示灯应点亮,琥珀色的热插拔正常 LED 指示灯应熄灭。使用热交换的插入方式相当于键入下面的命令:cfgadm -c configure ap_id


procedure icon  拆除 CompactPCI 卡



注 - 在热交换 CompactPCI (cPCI) 卡前,确保卡上没有 I/O 活动。



1. 轻轻分离弹出杆以取消卡的活动。


2. 确保卡上的蓝色热交换正常 LED 指示灯点亮,I/O 部件上的琥珀色热插拔正常 LED 指示灯 点亮,部件上的绿色电源 LED 指示灯熄灭。

3. 拆除卡。

如果域控制台可用,会显示一条消息确认已取消卡的配置。


procedure icon  热插拔 CompactPCI 卡

热插拔是使用 cfgadm 命令实现的。换句话说,您通过在插入卡时完全按下卡上的弹出杆来执行热交换操作;也可以通过在拆除卡之前使弹出杆部分分离来执行热交换操作。您不需要发出任何命令来执行热交换。

1. 以超级用户身份,确定要拆除的 cPCI 卡。

您必须知道插槽号(附加点 ID)。


# cfgadm -s "select=class(pci)"

 

2. 分离(取消配置)要拆除的 cPCI 卡:


# cfgadm -c unconfigure ap_id

 

其中,ap_id 是附加点的 ID。卡会自动取消配置并断电。

3. 确认卡已分离。


# cfgadm -s "select=class(pci)" ap_id

 

4. 检查 I/O 部件上的绿色电源 LED 指示灯和琥珀色热插拔正常 LED 指示灯 以及 cPCI 卡上的蓝色热交换正常 LED 指示灯。

当 I/O 部件上的绿色电源 LED 指示灯熄灭,I/O 部件上的琥珀色热插拔正常 LED 指示灯 点亮,cPCI 卡上的蓝色热交换正常 LED 指示灯点亮时,才可以安全地拆除 cPCI 卡。

5. 确保佩戴防静电腕带以正确接地后,就可以拆除和更换 cPCI 卡了。



caution icon

注意 - 有关从物理上拆除和更换板的信息,请参阅《Sun Fire Midrange Systems Service Manual》。若不按所述步骤操作,则会损坏系统板和其他组件。



6. 安装了卡后,连接(配置)该卡:


# cfgadm -c configure ap_id

 

当一个域中的操作系统进行引导时,缺省情况下,域中所有的 cPCI 插槽都处于自动配置模式。在自动配置模式下,每个插槽都启用了热交换功能。



注 - 要禁用自动配置功能,请使用以下命令:cfgadm -x disable_autoconfig ap_id。要重新启用自动配置功能,请使用以下命令: cfgadm -x enable_autoconfig ap_id



7. 检查绿色电源 LED 指示灯。


I/O 部件上的绿色电源 LED 指示灯将点亮,cPCI 卡上的蓝色热交换正常 LED 指示灯将熄灭。

8. 检验已附加的卡。


# cfgadm -s "select=class(pci)" ap_id

 

procedure icon  将板从系统拆除



注 - 开始此步骤前,确保已经准备好一个系统板填充面板以便更换您将从系统中拆除的系统板。系统板填充面板是一块金属板,它上面的插槽有利于冷却空气进行流通。



1. 确定要拆除的板。

您必须知道插槽号。


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

 

2. 通过使用 cfgadm -c disconnect 命令将板从域中分离并切断电源。


# cfgadm -c disconnect ap_id

 

其中,ap_id 是附加点的 ID,是由 cfgadm -al -s "select=class(sbd)" 命令返回的。



caution icon

注意 - 有关从物理上拆除和更换板的信息,请参阅《Sun Fire Midrange Systems Service Manual》。若不按所述步骤操作,则会损坏系统板和其他组件。



3. 将板从系统拆除。

有关拆除板的完整步骤,请参阅《Sun Fire Midrange Systems Service Manual》。

4. 拆除板后的一分钟内,将系统板填充面板插入插槽以免系统过热。


procedure icon  在域间移动板

1. 确定待移动的板的插槽号。


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

 

2. 取消配置板但保留电源通电以保持测试状态:


# cfgadm -o unassign,nopoweroff -c disconnect ap_id

 

其中,ap_id 是附加点的 ID,是由 cfgadm -l -s "select=class(sbd)" 命令返回的。

此时,插槽未分配给任何域,在所有的域中,都可见到此插槽。

3. 在要移动板的域中,检查板现在是否显示为断开连接。


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

 

4. 在新的域中使用 cfgadm -c configure 命令配置板,其中隐含了分配板的操作。


# cfgadm -c configure ap_id

 

procedure icon  暂时断开板的连接

可以使用 DR 来切断板的电源并将其留在原处。例如,在板出现故障而又无可用的替代板或系统板填充面板时,您可能要这样做。

1. 确定要拆除的板。

您必须知道插槽号。


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

 

2. 通过使用 cfgadm -c disconnect 命令将板从域中分离并切断电源。


# cfgadm -c disconnect ap_id

 

其中,ap_id 是附加点的 ID,是由 cfgadm -l -s "select=class(sbd)" 命令返回的。