1、为 AIX 配置 Infiniband为 AIX 配置 InfinibandPuja Leekha(puleekha), 经理 - Regression and Integrated FVT,AIX 印度, IBM简介:Infiniband 是一项互连技术,它通过将传统的共享总线体系结构转换到交换光纤体系结构来打破 PCI 总线的带宽和扇出限制。这是一项将服务器、存储设备和网络设备捆绑在一起的交换光纤 I/O 技术。与 PCI 发送数据所采用的并联方式不同,Infiniband 以串联方式发送数据,并且通过多路复用信号可以同时承载多个通道。IBM AIX 610 支持 Infiniband 硬
2、件和在 Infiniband 上运行的多种协议。本文介绍如何配置 Infiniband 和在 AIX 上设置 IP over Infiniband 接口 (IpoIB)。本文还说明了如何使用可靠数据报套接字(Reliable Datagram Sockets,RDS),该协议与 UDP 类似,设计用于在 Infiniband 上使用套接字来发送和接收数据。配置 Infiniband通过使用 IP over IB (IPoIB),可以在 Infiniband (IB) 网络接口上发送 Internet 协议 (IP) 数据包。IPoIB 将 IP 数据包封装到 IB 数据包中,并通过 IB 接口
3、发送。为了使用 IPoIB,您必须在系统中安装和配置 ICM(Infiniband Communication Manager)驱动程序和至少一个 IB 设备。需要执行下列步骤以配置 IB 设备,然后使用 ICM 配置 IPoIB。1. 在配置 Infiniband 之前,您需要检查在您的 AIX 主机上是否配置了 IB 设备(例如,Infiniband HCA - Infiniband 主通道适配器)并且其处于“可用 (Available)”状态。若要检查状态,请执行以下命令: # lsdev -Cc adapter | grep host channeliba0 Available Inf
4、iniBand host channel adapter 或者# lsdev -Cc adapter | grep HCAiba0 Available 01-00 PCIE Dual Port HCA (b3157862)2. 配置 ICM (Infiniband Communication Manager)。若要配置 ICM,请执行下列步骤: smit icm - Add an Infiniband Communication Manager - Add an Infiniband Communication Manager - 选择ICM(为“Name of IB Communicatio
5、n manager to Add”),随后将看到如图 1 所示的屏幕。图 1. 配置 ICM按Enter为各个字段使用缺省值。下个屏幕将显示“Command:OK”和“icm Available”。ICM 配置已完成。若要检查 ICM 是否已配置完成,请执行以下命令:# lsdev -l icmicm Available Infiniband Communication Manager3. 配置 Infiniband 网络接口。可以使用命令行接口或 SMIT 用户界面来配置 IB 接口。 若要使用 SMIT 配置 IB 接口,请执行下列步骤:smit inet - Change / Show
6、Characteristics of a Network interface - 选择 ib0 (IP over Infiniband Network Interface)。您将看到如图 2 所示的屏幕。图 2.配置 IB 接口为下列字段输入值:o Internet Address(例如,1.2.3.92)o Network mask(例如,255.255.255.0)o HCA adapter(我们在步骤 1 中配置的 iba0)o Adpaters port number。有两个端口:端口 1 和端口 2。使用命令ibstat检查哪个端口处于“活动 (Active)”状态。如果两个端口都是
7、活动的,则根据您的网络配置选择希望使用的端口。o Current state up在其余字段使用缺省值。下个屏幕将显示“Command:OK”和“ib0 changed”。IB 接口配置已完成。若要检查 IB 接口状态,请运行ifconfig命令。# ifconfig ib0ib0: flags=e3a0063inet 1.2.3.92 netmask 0xffffff00 broadcast 1.2.3.255tcp_sendspace 131072 tcp_recvspace 131072 rfc1323 1使用命令行接口配置 IB 接口。步骤 1 和步骤 2 与上例相同。对于步骤 3,请
8、执行下列命令:# /usr/sbin/mkiba -a 1.2.3.92 -i ib0 -A iba0 -p 2 -P 0xFFFF -S up -m 255.255.255.0 -M 2044 ib0 changedmkiba命令的语法如下: /usr/bin/mkiba -a address -i interface -A ib_adapter -p ib_port -P P_KEY -m subnet_mask -S state -M mtu -q queue_pair_size -Q Q_KEY -k superpacket 其中:-a address由 i 指定的接口的 IP 地址(
9、必须采用以点分隔的十进制表示法)-i interface与 -a IP 地址相关联的接口-A ib_adapter与接口相关联的 IB 适配器-p ib_port与 IB 适配器关联的 IB 端口。(缺省值为 1)-P p_key与 IB 端口相关联的分区键。键(请注意,分区键在配置后即无法更改。在进行配置之前,用户必须从网络管理员处获得分区键)。-m subnet_mask子网掩码(点分十进制或 0x 表示法)-S statedown、up、detach:IB 接口的状态。-M ib_mtu必需的 HCA MTU-q srq_size发送和接收队列的大小-Q Q_KEY与多播组相关联的 Q_
10、Key-k superpacketSuperpacket 功能关或开请记住以下事项: Superpacket 的 k 选项在 AIX 61B 和 53N 以上的版本中可用,较低的版本不包含 superpacket 功能。同样,当启用此功能时,可以显著地提高性能。它允许 TCP/IP 向接口发送 64KB 数据报,其可以提高性能。请注意,该功能在 AIX 中仅在 AIX 主机到 AIX 主机的情况下受支持,前提是两个主机上的接口都启用此功能。 HCA MTU 大小的 M 选项。在交换机和适配器支持的情况下,AIX 支持 4K 物理 MTU。接口首次要求用户在交换机中创建广播多播组。如果组不存在,
11、则始终缺省创建 2K 多播组。因此,如果您拥有支持 4K 物理 MTU 的适配器和交换机,并且您没有在交换机中创建广播组,则接口将创建 2K 多播组,从而使 MTU 降低到 2K。运行ifconfig以检查 IB 接口状态。# ifconfig ib0ib0: flags=e3a0063 inet 1.2.3.92 netmask 0xffffff00 broadcast 1.2.3.255 tcp_sendspace 131072 tcp_recvspace 131072 rfc1323 1工作已完成!IB 接口已配置完毕。若要验证是否一切工作正常,请使用上述步骤配置两个节点,并在两个节点之
12、间运行 ping 命令。如果 ping 成功,则 IB 配置正确。回页首配置 RDSRDS 使用 IB 网络接口进行通信。因而,应当配置 IpoIB 和 IB 网络接口以使用 RDS 协议。在您希望使用 RDS 进行通信的系统上加载 RDS 驱动程序之前,请检查这些系统上的 IB 网络接口是否能够彼此 ping 通。加载 RDS运行下列命令以加载 RDS:# bypassctrl load rds如果您接收到错误消息Exec format error .,则表示未配置 IB 接口。请参阅配置 Infiniband并配置 IB 接口,然后尝试使用bypassctrl命令加载 RDS。如果已加载了
13、 RDS,将显示错误消息/usr/lib/drivers/rds already loaded。若要检查 RDS 驱动程序是否已成功加载,请运行下列命令:# genkex | grep rds47e1000 53770 /usr/lib/drivers/rds如果创建了套接字以使用 RDS 协议并返回错误socket: Addr family not supported by protocol,则未加载 RDS 驱动程序,并且您需要加载它。同样,请注意在重新启动时,RDS 驱动程序将被卸载,因此在每次重新启动后需要使用bypassctrl实用工具重新加载它。回页首rdsctrl 实用工具加载
14、RDS 后,使用rdsctrl(/usr/sbin/rdsctrl) 实用工具获取用于修改可调节参数和用于诊断的 RDS 统计数据。# rdsctrl stats命令显示各种 RDS 统计数据。可以使用以下命令重置统计数据:# rdsctrl stats reset. 优化参数在加载 RDS 后和运行任何 RDS 应用程序之前,可以优化下列 RDS 参数。若要设置任何参数,请使用语法:# rdsctrl set = rds_sendspace参数引用基于流的发送缓冲区的高水位标记 (high-water mark)。(每个套接字可能有多个流。) 缺省值为 524288 字节 (512KB)。使
15、用以下命令设置该值: # rdsctrl set rds_sendspace= rds_recvspace引用基于套接字的接收缓冲区的基于流的高水位标记 (per-flow high-water mark)。对于该套接字的每个附加流,该值将提高接收高水位标记。 缺省值为 524288 字节 (512 KB)。使用以下命令设置该值:# rdsctrl set rds_recvspace=为了实现好的 RDS 流性能,rds_sendspace和rds_recvspace参数的值必须至少设置为最大 RDS sendmsg 大小的四倍。RDS 为接收的每四条消息发送一个 ACK,如果rds_recv
16、space没有设置为消息大小的 4 倍以上,那么吞吐量将非常低。 rds_mclustsize引用各个内存集群的大小,它也是消息片段的大小。缺省大小为 16384 字节 (16KB)。使用以下命令设置该值(通常为 4096 的倍数):# rdsctrl set rds_mclustsize=rds_mclustsize值在集群中的所有计算机(节点)上必须相同。更改该值也会影响性能。可以使用以下命令获取为可调节参数设置的当前值: # rdsctrl get 如果在没有任何可调节参数的情况下运行该命令,则给出可调节参数的完整列表。# rdsctrl get提供可调节参数的列表并包含其当前值。 # rdsctrl get rds_conn_block_limit = 100 rds_acksz = 180 rds_txqsz = 1024 rds_rxqsz = 1024 rds_mclustsize = 16384 rds_recvspace = 524288 rds_sendspace = 524288数据结构转储为了排除故障,可以转储各种 RDS 结构。使用的命令为# rdsctrl dump 可以是以下任意值: IBC(IB 可靠连接细节) sendcb(流细节) Pcb(RDS 套接字 PCB 细节)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1