只能使用 cfgadm CLI 配置或取消配置正在运行的系统中的 IB 设备。此命令还提供了显示 IB 光纤结构、管理通信服务以及更新 p_key 表数据库的方法。有关更多信息,请参见 cfgadm_ib(1M)。
cfgadm CLI 可以管理被主机视为整个 IB 光纤结构的动态重新配置(在本指南中称为 DR)。cfgadm 操作在端口、VPPA、HCA_SVC、IOC 和伪设备等所有 IB 设备上都受支持。
cfgadm 命令可以显示有关附着点 (Ap_Id) 的信息,附着点是指系统中可以进行 DR 操作的位置。有关 cfgadm 支持的 Ap_Id 的详细信息,请参见 cfgadm_ib.1M。请注意,所有IB Ap_Id 都显示为 connected。
cfgadm 命令提供了以下 IB 设备状态信息。
插座状态 |
说明 |
---|---|
connected/configured/ok |
设备已连接并且可用。存在 devinfo 节点。 |
connected/unconfigured/unknown |
设备不可用,并且不存在与设备对应的任何 devinfo 节点或设备驱动程序。或者,设备从未配置为供 ib 结点驱动程序使用。设备可能会由 IB 设备管理器识别。 |
以下各节介绍如何使用 cfgadm 命令动态重新配置 (DR) IB 设备。这些小节中的所有的样例 IB 设备的信息都已截断,以便集中介绍相关信息。
可以使用 prtconf 命令来显示有关 IB 设备的常规信息。例如:
$ prtconf pci, instance #0 pci15b3,5a44, instance #0 ibport, instance #253 ibport, instance #254 ibport, instance #255 . . . ib, instance #0 ioc, instance #243 ioc, instance #244 ioc, instance #245 ioc, instance #246 ioc, instance #247 ioc, instance #248 ibgen, instance #249 |
在前面的示例中,pci15b3,5a44 是指 IB HCA。
执行以下步骤可显示特定 IB 设备的信息。
成为超级用户。
显示 IB 光纤结构信息。
例如:
# cfgadm -a Ap_Id Type Receptacle Occupant Condition ib IB-Fabric connected configured ok hca:1730000008070 IB-HCA connected configured ok ib::1730000007F5198 IB-IOC connected configured ok ib::1730000007F5199 IB-IOC connected configured ok ib::1730000008070,0,hnfs IB-HCA_SVC connected configured ok ib::1730000008071,0,sdp IB-PORT connected configured ok ib::1730000008072,0,sdp IB-PORT connected configured ok ib::1730000008071,8001,ipib IB-VPPA connected configured ok ib::1730000008072,8001,ipib IB-VPPA connected configured ok ib::ibgen,0 IB-PSEUDO connected configured ok # |
在前面的示例输出中,组件的描述如下:
标识与端口 2 连接并且绑定至 sdp 服务的 IB 端口设备。
标识使用 p_key 值 0x8001 与端口 2 连接并且绑定至 ibd 服务的 IB VPPA 设备。
标识绑定至 hnfs 服务的 IB HCA_SVC 设备。
标识 IOC 设备。
标识伪设备。
显示特定 IB 设备的信息。
例如,对于 IB VPPA 设备,将显示以下信息:
# cfgadm -al -s "cols=ap_id:info" ib::1730000008072,8001,ipib Ap_Id Information ib::1730000008072,8001,ipib ipib # |
例如,对于 IB HCA 设备,将显示以下信息:
# cfgadm -al -s "cols=ap_id:info" hca::1730000008070 Ap_Id Information hca::1730000008070 VID: 0x15b3, PID: 0x5a44, #ports: 0x2, port1 GUID: 0x1730000008071, port2 GUID: 0x1730000008072 # |
前面的输出显示了端口号和端口的 GUID。
可以取消配置仍然与系统物理连接的 IB 设备,但决不能向该设备附加驱动程序。
成为超级用户。
例如:
# cfgadm -c unconfigure ib::1730000007F5198 Unconfigure the device: /devices/ib:fabric::1730000007F5198 This operation will suspend activity on the IB device Continue (yes/no)? y # |
验证是否已取消配置该设备。
例如:
# cfgadm -a ib::1730000007F5198 ib::1730000007F5198 IB-IOC connected unconfigured unknown # |
成为超级用户。
例如:
# cfgadm -yc configure ib::1730000007F5198 |
验证是否已配置 IB 设备。
例如:
# cfgadm -al ib::1730000007F5198 Ap_Id Type Receptacle Occupant Condition ib::1730000007F5198 IB-IOC connected configured ok |
如果要从系统中删除 IB 端口、HCA_SVC 或 VPPA 设备,请执行以下步骤。
以下示例说明如何取消配置 VPPA 设备,但同样的过程也适用于端口设备和 HCA_SVC 设备。
成为超级用户。
例如:
# cfgadm -c unconfigure ib::1730000007F51,8001,ipib Unconfigure the device: /devices/ib:fabric::1730000007F51,8001,ipib This operation will suspend activity on the IB device Continue (yes/no)? Y # |
验证是否已断开该设备的连接。
例如:
# cfgadm -a ib::1730000007F51,8001,ipib Ap_Id Type Receptacle Occupant Condition ib::1730000007F51,8001,ipib IB-VPPA connected unconfigured unknown # |
如果要在系统中配置 IB 端口、HCA_SVC 或 VPPA 设备,请执行以下步骤。
以下示例说明如何配置 VPPA 设备,但类似的步骤也可用于配置端口设备和 HCA_SVC 设备。
成为超级用户。
例如:
# cfgadm -c configure ib::1730000007F51,8001,ipib |
验证是否已连接该设备。
例如:
# cfgadm -a ib::1730000007F51,8001,ipib Ap_Id Type Receptacle Occupant Condition ib::1730000007F51,8001,ipib IB-VPPA connected configured ok |
IB 端口设备和 HCA_SVC 设备的基于 cfgadm 的配置或取消配置操作与前面的 IB VPPA 设备示例类似。
如果要从系统中删除 IB 伪设备,请执行以下步骤。
成为超级用户。
例如:
# cfgadm -c unconfigure ib::ibgen,0 Unconfigure the device: /devices/ib:fabric::ibgen,0 This operation will suspend activity on the IB device Continue (yes/no)? Y # |
验证是否已断开该设备的连接。
# cfgadm -a ib::ibgen,0 Ap_Id Type Receptacle Occupant Condition ib::ibgen,0 IB-PSEUDO connected unconfigured unknown |
执行以下步骤可配置 IB 伪设备。
成为超级用户。
例如:
# cfgadm -yc configure ib::ibgen,0 |
验证是否已连接该设备。
例如:
# cfgadm -a ib::ibgen,0 Ap_Id Type Receptacle Occupant Condition ib::ibgen,0 IB-PSEUDO connected configured ok |
可以调用以下 IB cfgadm 插件命令来列出使用此 HCA 的内核 IB 客户机。请注意,如果内核 IB 客户机使用其他 HCA,则最后一列会显示 "yes"。不使用 HCA 的 IB 管理器和内核客户机以 Ap_Id “-”显示。
例如:
$ cfgadm -x list_clients hca:173000007F50 Ap_Id IB Client Alternate HCA ib::1730000007F51D0 ibgen no ib::1730000007F51D1 ibgen no ib::1730000007F51,8001,ipib ibd no ib::ibgen,0 ibgen no - ibdm no - ibmf no - nfs/ib no $ |
HCA 的实际 DR 超出了 IB cfgadm 插件的范围。尽管如此,仍可以使用基础总线的插件来实现 HCA 的 DR。例如,基于 PCI 的 HCA 可以使用 cfgadm_pci 命令。有关更多信息,请参见 cfgadm_pci(1M)。
但是,IB cfgadm 插件通过按以下步骤说明列出其内核 IB 客户机,可协助执行 HCA DR。
成为超级用户。
例如:
# cfgadm -x list_clients hca:173000007F50 Ap_Id IB Client Alternate HCA ib::1730000007F51D0 ibgen no ib::1730000007F51D1 ibgen no ib::1730000007F51,8001,ipib ibd no ib::ibgen,0 ibgen no - ibdm no - ibmf no - nfs/ib no |
取消配置不存在备用 HCA 的内核 IB 客户机,如端口设备、VPPA 设备、HCA_SVC 设备或 IOC 设备。
例如:
# cfgadm -x unconfig_clients hca:1730000008070 Unconfigure Clients of HCA /devices/ib:1730000008070 This operation will unconfigure IB clients of this HCA Continue (yes/no)? y |
验证是否已取消配置 HCA 的内核 IB 客户机。
# cfgadm -x list_clients hca:173000007F50 Ap_Id IB Client Alternate HCA - ibdm no - ibmf no - nfs/ib no # |
调用总线特定的 cfgadm 插件可配置 HCA。确切的详细信息超出了本章的范围。
如果 HCA 端口的 p_key 表信息发生更改(例如,启用或禁用了其他 p_key),则需要通知 InfiniBand 传输框架 (InfiniBand Transport Framework, IBTF) 和 IBDM,以便更新其内部 p_key 数据库。cfgadm 命令可帮助更新 IBTF 和 IBDM 的 p_key 数据库。有关更多信息,请参见 ibtl(7D) 和 ibdm(7D)。
执行以下步骤可显示当前由 IBTF 使用的通信服务。
成为超级用户。
例如:
# cfgadm -x list_services ib Port communication services: srp VPPA communication services: ibd HCA_SVC communication services: hnfs |
执行以下步骤可添加新的 VPPA 通信服务。
可以使用类似的步骤来添加新的 HCA_SVC 或端口通信服务。
成为超级用户。
例如:
# cfgadm -o comm=vppa,service=new -x add_service ib |
验证是否已添加新的服务。
例如:
# cfgadm -x list_services ib Port communication services: srp VPPA communication services: ibd new HCA_SVC communication services: nfs_service # |
执行以下步骤可删除现有的 IB 端口、HCA_SVC 或 VPPA 通信服务。
成为超级用户。
例如:
# cfgadm -o comm=vppa,service=new -x delete_service ib |
验证是否已删除该通信服务。
例如:
# cfgadm -x list_services ib Port communication services: srp VPPA communication services: ibd HCA_SVC communication services: hnfs # |
执行以下步骤可更新所有 IOC 设备节点或特定 IOC Ap_Id 的属性。可更新的属性如下:
port-list
port-entries
service-id
service-name
有关这些属性的更多信息,请参见 ib(7D)。
请注意,如果配置没有更改,则这些属性可能不会更新。以下示例说明如何更新特定 IOC 的配置。如果需要更新所有 IOC 的配置,请指定静态的 ib Ap_Id,而不是特定的 IOC Ap_Id。