/usr/sbin/cfgadm -f [-y | -n] [-v] -c function ap_id...
/usr/sbin/cfgadm [-f] [-y | -n] [-v] [-o hardware_options] -x hardware_function ap_id...
/usr/sbin/cfgadm -v [-a] [-s listing_option] [-] [ap_id | ap_type...]
/usr/sbin/cfgadm -v -h [ap_id]...
InfiniBand 硬件专用库 /usr/lib/cfgadm/ib.so.1 提供通过 cfgadm(1M) 实用程序管理光纤网络的功能。cfgadm 在连接点上运行。请参见 cfgadm(1M)。
基于 IB 设备管理器 (IB Device Manager, IBDM) 提供的服务,InfiniBand (IB) 设备由 IB nexus 驱动程序 ib(7D) 进行枚举。
IB nexus 驱动程序创建并初始化五种类型的子设备节点。
IB 端口设备
IB HCA 服务 (HCA-SVC) 设备
IB 虚拟物理 (Virtual Physical Point of Attachment, VPPA) 设备
I/O 控制器 (I/O Controller, IOC)
IB 伪设备
有关枚举 IB 端口、IB VPPA 以及 IB HCA-SVC 设备的详细信息,请参见 ib(7D)。有关 IBDM 的其他信息,请参见 ibdm(7D)。有关 IB 伪设备的详细信息,请参见 ib(4)。
对于 IB 管理,为光纤网络管理创建两种类型的静态连接点,如在给定主机中所显示的。一种静态连接点是 ib,且该光纤网络中的所有 IB 设备(IOC、端口、VPPA、HCA-SVC 或伪设备)表示为基于该静态连接点的动态连接点。另一种静态连接点是基于其节点的全局唯一标识符 (Globally Unique Identifier, GUID) 值为主机中的每个主机通道适配器 (Host Channel Adapter, HCA) 创建的。
连接点通过 ap_id 命名。ap_id 包括逻辑 ap_id 和物理 ap_id。物理 ap_id 基于物理路径名。对于 IB 光纤网络,物理 ap_id 为 /devices/ib:fabric。逻辑 ap_id 为更短、更加用户友好的名称。
IB 光纤网络的静态 ap_id 为 ib。IB 设备为动态连接点,没有物理 ap_id。IOC 的逻辑 ap_id 包含其 GUID,ib::IOC-GUID。 ib::80020123456789a 就是 IOC ap_id 的一个示例。伪设备的逻辑 ap_id 的格式为 ib::driver_name,unit-address。有关详细情况,请参见 ib(4)。ib::sdp,0 就是伪 ap_id 的一个示例,其中 "sdp" 是驱动程序的名称,"0" 是相应的 unit-address 属性。端口、VPPA 以及 HCA-SVC 设备的逻辑 ap_id 包含其分区键 (P_Key)、端口 GUID/节点 GUID 以及通信服务名称。ap_id 的格式如下:
ib::PORT_GUID,0,service-name
ib::PORT_GUID,P_Key,service-name
ib::HCA_GUID,0,servicename
端口和 HCA-SVC 设备的分区键 (P_Key) 为 0。P_Key 有助于确定 VPPA 设备节点的端口所属的分区。一个端口可能有多个 P_Key。ib::80245678,ffff,ipib 就是 VPPA 设备的逻辑 ap_id 点的一个示例。在该示例中,port-GUID 为 80245678,P_Key 为 0xffff,服务名称为 ipib。服务名称信息可从 /etc/driver/drv/ib.conf 文件中获取,该文件包含服务名称字符串。HCA 的逻辑 ap_id 包含其节点的 GUID 值:hca:HCA-GUID。例如,hca:21346543210a987。
IB 连接点列表包含有关该光纤网络中的所有 IB 设备(包含在 IBDM 以及 IB nexus 驱动程序上显示的 IOC 设备、VPPA 设备、HCA-SVC 设备、伪设备以及端口设备)的信息,即使这些 IB 设备在主机上未显示且未配置用于使用,也如此。
以下显示包含五个 IB 设备(两个 IOC 设备、一个 VPPA 设备、一个端口设备以及一个 HCA-VC 设备)的列表和一个 HCA。
example# cfgadm -al Ap_Id Type Receptacle Occupant Condition hca:21346543210a987 IB-HCA connected configured ok ib IB-FABRIC connected configured ok ib::80020123456789a IB-IOC connected configured ok ib::802abc9876543 IB-IOC connected unconfigured unknown ib::80245678,ffff,ipib IB-VPPA connected configured ok ib::12245678,0,nfs IB-PORT connected configured ok ib::21346543,0,hnfs IB-HCA-SVC connected configured ok ib::sdp,0 IB-PSEUDO connected configured ok
ap_id ib::802abc9876543 表示没有被主机配置为用于使用的 IOC 设备或者之前通过显式
cfgadm –c unconfigure
操作脱机的 IOC 设备。Condition(状态)列中显示的信息可以区分这两种情况。如果 IB 设备的 P_Key 为 0 且具备 HCA GUID,该 IB 设备为 HCA-SVC 设备。有关连接点列表的更多信息,请参见 cfgadm(1M)。
连接点插口状态含义如下:
对于 IOC 设备、VPPA 设备、端口设备、伪设备以及 HCA-SVC 设备,connected(已连接)表示设备在主机上显示。相应设备可能还未配置为由 Solaris 使用。
对于 HCA 连接点,connected(已连接)表示该连接点已配置并处于使用状态。
所有的 IB ap_id 总是显示为 connected(已连接)状态。
连接点插卡状态含义如下:
IB 设备以及 HCA ap_id 已配置并且可供 Solaris 使用。
如果 IB 设备的 ap_id 通过 cfgadm –c unconfigure 显式脱机,该设备将不能成功配置。这种情况是可能的,因为该 IB 设备并没有成功配置为由 Solaris(没有驱动器或设备有问题)使用或者该设备没有配置为由 IB nexus 驱动程序使用。
unconfigured(未配置)操作不支持 HCA 连接点。如果系统中不存在 IB 硬件,则 IB 静态 ap_id ib 显示为 unconfigured(未配置)。
连接点状态含义如下:
未使用。
未使用。
正常状态。可供使用。
该状态只对那些已经由 IBDM 进行探测但尚未被 Solaris 配置为使用的 IB 设备有效。通过 cfgadm –c unconfigure 操作显式脱机的设备也显示为 unknown(未知)状态。该状态不适用于 HCA 连接点。
未使用。
支持以下选项:
IB 硬件专用库支持两个通用命令 (function)。静态连接点(即 HCA ap_id 和 IB 静态 ib ap_id)不支持这两个命令。
支持以下两个通用命令:
配置 IB 设备由 Solaris 使用。
取消配置 IB 设备。如果成功取消配置 IB 设备,cfgadm 报告 ap_id 的 condition(状态)为 unknown(未知)。
不支持。
为 IB 连接点获取 IB 专用帮助。
列出 IB 连接点的状态和状况。按照 cfgadm(1M) 中的描述使用 –l 选项。
如果该选项与 –a 选项一起使用,还显示动态连接点(包含 IOC 设备、VPPA 设备、端口设备、伪设备以及 HCA-SVC 设备)。
如果该选项与 –v 选项一起使用,显示有关 ap_id 的详细数据。对于一个 IOC,输出中的 Info(信息)字段
cfgadm –avl
显示 IOC 控制器配置文件如下信息:供应商 ID、IOC 设备 ID、设备版本、子系统供应商 ID、子系统 ID、类、子类、协议、协议版本以及 ID 字符串。如果 ID 字符串没有提供,该字段不会显示任何信息。这些字段在《InfiniBand Specification Volume 1》(http://www.infinibandta.org) 中进行了定义。
对于 VPPA 设备、端口设备或 HCA-SVC 设备,cfgadm -lav 中的 Info(信息)字段显示相应设备绑定的服务名称信息。如果相应设备没有绑定服务名称,该字段不显示任何信息。
对于伪设备,cfgadm -alv 显示驱动程序名称及其 unit-address 信息。对于 HCA,详细列表显示该 HCA 的供应商 ID、产品 ID、端口数量以及端口 PortGUID 值。请参见“示例”部分。
该选项当前未定义。
可以通过 select 子选项列出 ib 类的连接点。有关更多信息,请参见 cfgadm(1M) 手册页。
执行硬件专用函数。请注意,name 长度不能超过 4 个字符。
所支持的硬件专用函数如下:
静态 IB 连接点支持该硬件专用函数。该函数可用于在 /etc/driver/drv/ib.conf 文件中添加一个新服务并更新 ib(7D) 驱动程序。
必须使用 service=name 选项标识要添加的新服务。必须使用 comm=[port|vppa|hca-svc] 选项将 name 服务添加到 port-svc-list 或 /etc/driver/drv/ib.conf 文件中的 hca-svc-list。请参见“示例”部分。
只有静态 IB 连接点才支持该硬件专用函数。该函数用于将现有服务从 /etc/driver/drv/ib.conf 文件以及 ib(7D) 驱动程序的数据库中删除。必须使用 service=name 选项标识要删除的服务。必须使用 comm=[port|vppa|hca-svc] 选项将该服务从 port-svc-list、vppa-svc-list 或 /etc/driver/drv/ib.conf 文件中的 vppa-svc-list 中删除。请参见“示例”部分。
HCA 连接点支持该函数。显示所有使用该 HCA 的内核 IB 客户机。如果内核 IB 客户机已经打开了备用的 HCA 设备,该选项也显示这些内核 IB 客户机的相应 ap_id。请参见“示例”部分。
.
如果一个给定的内核 IB 客户机没有一个有效的 ap_id,该列显示 -。
只有静态 IB 连接点才支持该硬件专用函数。该函数列出从 /etc/driver/drv/ib.conf 文件中读取的所有端口以及 VPPA 服务。请参见“示例”部分。
只有静态 HCA 连接点才支持该硬件专用函数。该函数用于取消配置给定的 HCA 的所有 IB 内核客户机。只有不具备备用 HCA 的 IB 内核客户机才被取消配置。请参见“示例”部分。
静态 ib 连接点以及 IOC 连接点支持该硬件专用函数。对于 ib APID,该函数更新所有 IOC 设备节点的属性。对于 IOC APID,该函数更新指定的 IOC 设备节点的属性。该命令更新 port-list、port-entries、service-id 以及 service-name IOC 节点属性。
请参见 ib(7D)。
静态 ib 连接点支持该函数。该函数更新 IBTL 中的 PKEY 信息。IBTL 重新读取主机上显示的每个 HCA 上的所有端口的 P_Key 表。
请参见 ibtl(7D)。
以下命令列出系统中的 IB 设备的状态和状况。该命令只显示了静态连接点。
example# cfgadm hca:21346543210a987 IB-HCA connected configured ok ib IB-FABRIC connected configured ok
–a 选项列出所有连接点。以下示例使用 –a 选项列出所有连接点:
example# cfgadm -a hca:21346543210a987 IB-HCA connected configured ok ib IB-FABRIC connected configured ok ib::80020123456789a IB-IOC connected unconfigured ok ib::80245678,ffff,ipib IB-VPPA connected configured ok ib::21346543,0,hnfs IB-hca-svc connected configured ok ib::12245678,0,nfs IB-PORT connected configured ok ib::sdp,0 IB-PSEUDO connected configured ok示例 2 列出 IB VPPA 设备的详细状态
以下命令列出 IB VPPA 设备的详细状态:
example# cfgadm -alv ib::80245678,ffff,ipib Ap_Id Receptacle Occupant Condition Information When Type Busy Phys_Id ib::80245678,ffff,ipib connected configured ok ipib unavailable IB-VPPA n /devices/ib:fabric::80245678,ffff,ipib
IOC 的详细列表显示其他信息。以下命令显示详细列表:
example# cfgadm -alv ib::80020123456789a Ap_Id Receptacle Occupant Condition Information When Type Busy Phys_Id ib::80020123456789a connected configured ok VID: 0xeaea DEVID: 0xeaea VER: 0x5 SUBSYS_VID: 0x0 SUBSYS_ID: 0x0 CLASS: 0xffff SUBCLASS: 0xff PROTO: 0xff PROTOVER: 0x1 ID_STRING: Sample Host Adapter unavailable IB-IOC n /devices/ib:fabric::80020123456789a
伪设备的详细列表显示如下信息:
example# cfgadm -alv ib::sdp,0 Ap_Id Receptacle Occupant Condition Information When Type Busy Phys_Id ib::sdp,0 connected configured ok Driver = "sd p" Unit-address = "0" unavailable IB-PSEUDO n /devices/ib:fabric::sdp,0
HCA 的详细列表显示如下信息:
example# cfgadm -alv hca:21346543210a987 Ap_Id Receptacle Occupant Condition Information When Type Busy Phys_Id hca:21346543210a987 connected configured ok VID: 0x15b3, PID: 0x5a44, #ports: 0x2, port1 GUID: 0x80245678, port2 GUID: 0x80245679 unavailable IB-HCA n /devices/ib:21346543210a987
如果指定以下 cfgadm 类以及字段选择选项,可以获取更多的用户友好的输出:–s "select=class(ib),cols=ap_id:info"。
以下命令只显示 IB 的 ap_id。该命令的输出只包含 ap_id 和 Information(信息)字段。
# cfgadm -al -s "cols=ap_id:info" ib::80245678,ffff,ipib Ap_Id Information ib::80245678,ffff,ipib ipib示例 3 取消配置现有的 IB IOC
以下命令取消配置 ib::80020123456789a 连接的 IB IOC 并显示 ap_id 的状态。
# cfgadm -c unconfigure ib::80020123456789a Unconfigure the device: /devices/ib:fabric::80020123456789a This operation will suspend activity on the IB device Continue (yes/no)?
输入 y
IB device unconfigured successfully. # cfgadm -al ib::80020123456789a Ap_Id Type Receptacle Occupant Condition ib::80020123456789 IB-IOC connected unconfigured unknown #
如果 condition(状态)显示为 unknown(未知),表示该设备节点不存在并且只有 IB 设备管理器知道该 IB 设备的存在。
示例 4 配置 IB IOC以下一系列命令配置 ib::80020123456789a 连接的 IB 设备。
# cfgadm -yc configure ib::80020123456789a # cfgadm -al ib::80020123456789a Ap_Id Type Receptacle Occupant Condition ib::80020123456789a IB-IOC connected configured ok示例 5 列出 HCA 的所有内核 IB 客户机
以下命令列出 hca:21346543210a987 连接的 HCA 中的所有内核 IB 客户机。
# cfgadm -x list_clients hca:21346543210a987 Attachment Point Clients Alternate HCA ib::80020123456789a ioc1 Yes ib::80245678,ffff,ipib ipib No ib::21346543,0,hnfs hnfs No - ibdm No - ibmf No示例 6 添加端口服务
以下命令添加一个名为 srp 的新端口服务:
# cfgadm -o comm=port,service=srp -x add_service ib示例 7 删除 VPPA 服务
以下命令删除 ibd VPPA 服务 ibd:
# cfgadm -o comm=vppa,service=ipib -x delete_service ib示例 8 列出端口服务、VPPA 服务以及 HCA-SVC 服务
以下命令列出所有的端口服务、VPPA 服务以及 HCA-SVC 服务:
# cfgadm -x list_services ib Port communication services: srp VPPA communication services: ipib nfs HCA-SVC communication services: hnfs示例 9 重新探测 IOC 设备
以下命令重新探测所有的 IOC 设备节点:
# cfgadm -x update_ioc_config ib This operation can update properties of IOC devices. Continue (yes/no)? Enter: y #示例 10 取消配置 HCA 的所有内核客户机
以下命令取消配置 HCA 的所有内核客户机:
# cfgadm -x unconfig_clients hca:21346543 This operation will unconfigure clients of this HCA. Continue (yes/no)? Enter: y
通用 InfiniBand 设备管理的硬件专用库
有关下列属性的说明,请参见 attributes(5):
|
cfgadm(1M)、config_admin(3CFGADM)、libcfgadm(3LIB)、ib(4)、attributes(5)、ib(7D)、ibdm(7D)、ibtl(7D)
《InfiniBand Specification Volume 1》(http://www.infinibandta.org)
除列出(cfgadm –l 或 cfgadm –x list_clients)外,只有超级用户才能在连接点执行任意函数。