跳过导航链接 | |
退出打印视图 | |
Oracle Solaris 管理:设备和文件系统 Oracle Solaris 11 Information Library (简体中文) |
将 uDAPL 应用程序接口用于 InfiniBand 设备
15. 配置和管理 Oracle Solaris Internet 存储名称服务 (Internet Storage Name Service, iSNS)
只能使用 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 设备状态信息。
|
本节介绍的所有过程需要管理特权,一般不授予用户帐户。有关更多信息,请参见《Oracle Solaris 管理:安全服务》中的"如何获取管理权限"。
以下各节介绍如何使用 cfgadm 命令动态重新配置 (DR) IB 设备。这些小节中的所有样例 IB 设备的信息都已截断,以便集中介绍相关信息。
HCA 的实际动态重新配置 (DR) 超出了 IB cfgadm 插件的范围。尽管如此,仍可以使用底层总线的插件来实现 HCA 的 DR。例如,基于 PCI 的 HCA 可以使用 cfgadm_pci 命令。有关更多信息,请参见 cfgadm_pci(1M)。
注 - RDSv3 不支持取消配置 HCA。如果系统在动态重新配置 (DR) 时已经装有 RDSv3 驱动程序,取消配置 HCA 会失败,显示如下。
# cfgadm -c unconfigure ib::rdsv3,0 This operation will suspend activity on the IB device Continue (yes/no)? yes cfgadm: Hardware specific failure: unconfigure operation failed ap_id: /devices/ib:fabric::rdsv3,0 # cfgadm -c unconfigure PCI-EM0 cfgadm: Component system is busy, try again: unconfigure failed
解决方法:
在生产系统上,HCA 动态重新配置操作和重新引导系统之前,必须删除 RDSv3 驱动程序。
# rem_drv rdsv3 Device busy Cannot unload module: rdsv3 Will be unloaded upon reboot. # init 6
可以使用 prtconf 命令来显示有关 IB 设备的常规信息。例如:
$ prtconf . . . ib, instance #0 rpcib, instance #0 rdsib, instance #0 daplt, instance #0 rdsv3, instance #0 sdpib, instance #0 eibnx, instance #0 sol_umad, instance #0 sol_uverbs, instance #0 iser, instance #0 . . . pci15b3,673c, instance #0 ibport, instance #0 ibport, instance #1
在上面的示例中,pci15b3,673c 是指 IB HCA。
执行以下步骤可显示特定 IB 设备的信息。
例如:
# cfgadm -al Ap_Id Type Receptacle Occupant Condition ib IB-Fabric connected configured ok hca:21280001A0A478 IB-HCA connected configured ok ib::21280001A0A47A,0,ipib IB-PORT connected configured ok ib::21280001A0A479,0,ipib IB-PORT connected configured ok ib::1730000008070,0,hnfs IB-HCA_SVC connected configured ok ib::daplt,0 IB-PSEUDO connected configured ok ib::eibnx,0 IB-PSEUDO connected configured ok ib::iser,0 IB-PSEUDO connected configured ok ib::rdsib,0 IB-PSEUDO connected configured ok ib::rdsv3,0 IB-PSEUDO connected configured ok ib::rpcib,0 IB-PSEUDO connected configured ok ib::sdpib,0 IB-PSEUDO connected configured ok ib::sol_umad,0 IB-PSEUDO connected configured ok ib::sol_uverbs,0 IB-PSEUDO connected configured ok
在上面的示例输出中,组件的描述如下:
标识与端口 GUID 连接并且绑定至 ipib 服务的 IB 端口设备。
标识伪设备。
标识 HCA 设备。
标识绑定至 hnfs 服务的 IB HCA_SVC 设备。
标识伪设备。
例如,对于 IB 端口设备,将显示以下信息:
# cfgadm -al -s "cols=ap_id:info" ib::21280001A0A47A,0,ipib Ap_Id Information ib::21280001A0A47A,0,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 端口、HCA_SVC 或 VPPA 设备,请执行以下步骤。
以下示例说明如何取消配置 IB 端口设备,该过程也同样适用于 VPPA 和 HCA_SVC 设备。
例如:
# cfgadm -c unconfigure ib::1730000007F51,*0*,ipib Unconfigure the device: /devices/ib:fabric::1730000007F51,*0*,ipib This operation will suspend activity on the IB device Continue (yes/no)? Y
例如:
# cfgadm -a ib::1730000007F51,*0*,ipib Ap_Id Type Receptacle Occupant Condition ib::1730000007F51,*0*,ipib IB-VPPA connected unconfigured unknown
如果要在系统中配置 IB 端口、HCA_SVC 或 VPPA 设备,请执行以下步骤。
以下示例说明如何配置 VPPA 设备,类似的步骤也可用于 IB 端口设备和 HCA_SVC 设备。
例如:
# cfgadm -c configure ib::1730000007F51,*0*,ipib
例如:
# cfgadm -a ib::1730000007F51,*0*,ipib Ap_Id Type Receptacle Occupant Condition ib::1730000007F51,*0*,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,0,ipib ibd no ib::ibgen,0 ibgen no - ibdm no - ibmf no - nfs/ib no
尝试在系统中执行动态重新配置 (DR) 操作时,如果有 Connect-X 系列 IB HCA 用于活动 EoIB 接口(例如 EoIB 数据链路是活动的 (plumbed) 或 VNIC 是基于 HCA 的数据链路创建的),则在满足以下条件之一时,DR 操作可成功执行:
该 Connect-X 系列 IB HCA 是系统中唯一的 Connect-X 系列 HCA。
系统中有多个 Connect-X HCA,但该适配器是要取消配置的最后一个。
在有活动 EoIB 接口的情况下,如果不满足以上条件,对 IB HCA 的动态重新配置 (DR) 操作将失败,并显示 cfgadm 错误消息。
如果 DR 操作失败,必须对活动的 EoIB 接口进行取消激活 (unplumb) 并删除数据链路上的 VNIC,然后重试 DR 操作。此外,在这种情况下,如果在 DR 操作后更换了同一插槽中的 Connect-X 系列 HCA,并使用 cfgadm 或 hotplug 命令对其进行了配置,必须重新激活 (replumb) 之前取消激活 (unplumb) 的 EoIB 数据链路并重新创建之前删除的 VNIC。
请注意,在使用的 EoIB 接口要求在 Sun Network QDR Infiniband 网关交换机的相应配置文件中列出 HCA 端口 GUID。因此,在热移除之后和重新插入之前,需要以新的 HCA 端口 GUID 信息更新网关交换机配置文件。有关如何更新配置的信息,请参见《Sun Network QDR Infiniband Gateway Switch Administration Guide》。
# cfgadm -c unconfigure PCI-EM0 cfgadm: Component system is busy, try again: unconfigure failed
# dmesg | tail | grep 'failing HCA detach' Aug 23 12:37:20 eoib: [ID 530795 kern.warning] WARNING: eoib0 still in use, failing HCA detach
# ipadm show-if eoib0 ipadm: cannot get information for interface(s): No such interface
# dladm show-vnic LINK OVER SPEED MACADDRESS MACADDRTYPE VID evnic0 eoib0 10000 2:8:20:e5:56:99 random 0
# dladm delete-vnic evnic0
# cfgadm -c unconfigure PCI-EM0
# dladm show-link | grep eoib0 eoib0 phys 1500 unknown --
# dladm create-vnic -l eoib0 evnic0
# dladm show-vnic LINK OVER SPEED MACADDRESS MACADDRTYPE VID evnic0 eoib0 10000 2:8:20:e5:56:99 random 0
调用总线特定的 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 通信服务。