系统管理指南:设备和文件系统

动态重新配置 IB 设备 (cfgadm)

只能使用 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 设备的信息都已截断,以便集中介绍相关信息。

Procedure如何显示 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 设备的信息。

  1. 成为超级用户。

  2. 显示 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
    
    #

    在前面的示例输出中,组件的描述如下:

    Ap_Id ib::1730000008072,0,sdp

    标识与端口 2 连接并且绑定至 sdp 服务的 IB 端口设备。

    Ap_Id ib::1730000008072,8001,ipib

    标识使用 p_key0x8001 与端口 2 连接并且绑定至 ibd 服务的 IB VPPA 设备。

    Ap_Id ib:: 1730000008070,0,hnfs

    标识绑定至 hnfs 服务的 IB HCA_SVC 设备。

    Ap_Id ib::1730000007F5198

    标识 IOC 设备。

    Ap_Id ib::ibgen,0

    标识伪设备。

  3. 显示特定 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。

Procedure如何取消配置 IOC 设备

可以取消配置仍然与系统物理连接的 IB 设备,但决不能向该设备附加驱动程序。

  1. 成为超级用户。

  2. 取消配置 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
    
    #
  3. 验证是否已取消配置该设备。

    例如:


    # cfgadm -a ib::1730000007F5198
    
    ib::1730000007F5198         IB-IOC     connected  unconfigured unknown
    
    #

Procedure如何配置 IOC 设备

  1. 成为超级用户。

  2. 配置 IB 设备。

    例如:


    # cfgadm -yc configure ib::1730000007F5198
    
  3. 验证是否已配置 IB 设备。

    例如:


    # cfgadm -al ib::1730000007F5198
    
    Ap_Id                Type    Receptacle  Occupant    Condition
    
    ib::1730000007F5198  IB-IOC  connected   configured  ok

Procedure如何取消配置 IB 端口、HCA_SVC 或 VPPA 设备

如果要从系统中删除 IB 端口、HCA_SVC 或 VPPA 设备,请执行以下步骤。

以下示例说明如何取消配置 VPPA 设备,但同样的过程也适用于端口设备和 HCA_SVC 设备。

  1. 成为超级用户。

  2. 取消配置 IB VPPA 设备。

    例如:


    # 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
    
    #
  3. 验证是否已断开该设备的连接。

    例如:


    # cfgadm -a ib::1730000007F51,8001,ipib
    
    Ap_Id                       Type    Receptacle Occupant     Condition
    
    ib::1730000007F51,8001,ipib IB-VPPA connected  unconfigured unknown
    
    #

Procedure如何配置 IB 端口、HCA_SVC 或 VPPA 设备

如果要在系统中配置 IB 端口、HCA_SVC 或 VPPA 设备,请执行以下步骤。

以下示例说明如何配置 VPPA 设备,但类似的步骤也可用于配置端口设备和 HCA_SVC 设备。

  1. 成为超级用户。

  2. 配置 IB VPPA 设备。

    例如:


    # cfgadm -c configure ib::1730000007F51,8001,ipib
    
  3. 验证是否已连接该设备。

    例如:


    # 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 设备示例类似。


Procedure如何取消配置 IB 伪设备

如果要从系统中删除 IB 伪设备,请执行以下步骤。

  1. 成为超级用户。

  2. 取消配置 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
    
    #
  3. 验证是否已断开该设备的连接。


    # cfgadm -a ib::ibgen,0
    
    Ap_Id                  Type      Receptacle Occupant     Condition
    
    ib::ibgen,0            IB-PSEUDO connected  unconfigured unknown

Procedure如何配置 IB 伪设备

执行以下步骤可配置 IB 伪设备。

  1. 成为超级用户。

  2. 配置 IB 伪设备。

    例如:


    # cfgadm -yc configure ib::ibgen,0
    
  3. 验证是否已连接该设备。

    例如:


    # cfgadm -a ib::ibgen,0
    
    Ap_Id                  Type       Receptacle Occupant   Condition
    
    ib::ibgen,0            IB-PSEUDO  connected  configured ok

Procedure如何显示 HCA 的内核 IB 客户机

可以调用以下 IB cfgadm 插件命令来列出使用此 HCA 的内核 IB 客户机。请注意,如果内核 IB 客户机使用其他 HCA,则最后一列会显示 "yes"。不使用 HCA 的 IB 管理器和内核客户机以 Ap_Id “-”显示。

    显示 HCA 的内核 IB 客户机。

    例如:


    $ 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
    
    $

Procedure如何取消配置与 HCA 连接的 IB 设备

HCA 的实际 DR 超出了 IB cfgadm 插件的范围。尽管如此,仍可以使用基础总线的插件来实现 HCA 的 DR。例如,基于 PCI 的 HCA 可以使用 cfgadm_pci 命令。有关更多信息,请参见 cfgadm_pci(1M)

但是,IB cfgadm 插件通过按以下步骤说明列出其内核 IB 客户机,可协助执行 HCA DR。

  1. 成为超级用户。

  2. 列出 HCA 的内核 IB 客户机。

    例如:


    # 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
  3. 取消配置不存在备用 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
    
  4. 验证是否已取消配置 HCA 的内核 IB 客户机。


    # cfgadm -x list_clients hca:173000007F50   
    
    Ap_Id                       IB Client         Alternate HCA
    
    -                              ibdm               no
    
    -                              ibmf               no
    
    -                              nfs/ib             no
    
    #

配置 IB HCA

调用总线特定的 cfgadm 插件可配置 HCA。确切的详细信息超出了本章的范围。

Procedure如何更新 IB p_key

如果 HCA 端口的 p_key 表信息发生更改(例如,启用或禁用了其他 p_key),则需要通知 InfiniBand 传输框架 (InfiniBand Transport Framework, IBTF) 和 IBDM,以便更新其内部 p_key 数据库。cfgadm 命令可帮助更新 IBTF 和 IBDM 的 p_key 数据库。有关更多信息,请参见 ibtl(7D)ibdm(7D)

  1. 成为超级用户。

  2. 更新 p_key 表。

    例如:


    # cfgadm -x update_pkey_tbls -y ib
    

Procedure如何显示 IB 通信服务

执行以下步骤可显示当前由 IBTF 使用的通信服务。

  1. 成为超级用户。

  2. 显示 IB 通信服务。

    例如:


    # cfgadm -x list_services ib
    
    Port communication services:
    
                    srp
    
    VPPA communication services:
    
                    ibd
    
    HCA_SVC communication services:
    
                    hnfs

Procedure如何添加 VPPA 通信服务

执行以下步骤可添加新的 VPPA 通信服务。

可以使用类似的步骤来添加新的 HCA_SVC 或端口通信服务。

  1. 成为超级用户。

  2. 添加新的 VPPA 通信服务。

    例如:


    # cfgadm -o comm=vppa,service=new -x add_service ib
    
  3. 验证是否已添加新的服务。

    例如:


    # cfgadm -x list_services ib
    
    Port communication services:
    
                    srp
    
    VPPA communication services:
    
                    ibd
    
                    new
    
    HCA_SVC communication services:
    
                    nfs_service
    
    #

Procedure如何删除现有的 IB 端口、HCA_SVC 或 VPPA 通信服务

执行以下步骤可删除现有的 IB 端口、HCA_SVC 或 VPPA 通信服务。

  1. 成为超级用户。

  2. 删除 VPPA 通信服务。

    例如:


    # cfgadm -o comm=vppa,service=new -x delete_service ib
    
  3. 验证是否已删除该通信服务。

    例如:


    # cfgadm -x list_services ib
    
    Port communication services:
    
                    srp
    
    VPPA communication services:
    
                    ibd
    
    HCA_SVC communication services:
    
                    hnfs
    
    #

Procedure如何更新 IOC 配置

执行以下步骤可更新所有 IOC 设备节点或特定 IOC Ap_Id 的属性。可更新的属性如下:

有关这些属性的更多信息,请参见 ib(7D)

请注意,如果配置没有更改,则这些属性可能不会更新。以下示例说明如何更新特定 IOC 的配置。如果需要更新所有 IOC 的配置,请指定静态的 ib Ap_Id,而不是特定的 IOC Ap_Id

  1. 成为超级用户。

  2. 更新 IOC 的配置。

    例如:


    # cfgadm -x update_ioc_conf ib::1730000007F5198
    
    This operation can update properties of IOC devices.
    
    Continue (yes/no)? y
    
    #
  3. 通过运行 prtconf -v 验证是否已更新这些属性。