您的位置:首页 > 运维架构 > Linux

InfiniBand 技术及其在 Linux 系统中的配置简介(未完)

2009-09-16 16:10 281 查看
InfiniBand 技术架构简介

nfiniBand 是一种基于交换的串行 I/O 互连体系结构,运行速度为每方向 2.5Gb/s 或 10Gb/s(每端口)。和共享总线结构不同,InfiniBand 是一个针数很少的串行结构,可连接印刷电路板(PCB – Printed circuit board)上的设备,并支持箱外带宽(Bandwidth Out of the Box)。使用普通的双绞铜线,InfiniBand 支持的连接距离为 17m ;而如果使用光缆,其支持的距离则可达数公里甚至更远。此外,InfiniBand 还支持 QoS 和 RAS 。 RAS 特性在设计之初就被融入了 InfiniBand 的体系结构,这些特性对于 InfiniBand 有能力成为位于 Internet 核心的下一代服务器和存储系统的通用 I/O 基础架构具有非常重要的意义。 InfiniBand 终将从根本上改变系统和 Internet 互连体系,并促成一场伟大的技术变革。 也正因如此,InfiniBand 系统网络(如图一所示)受到各大工业公司的支持,其中包括了所有主要服务器厂商(如:戴尔,惠普,IBM,英特尔,微软等公司)。

图 1. InfiniBand 系统网络

从这张图中我们不难看出,InfiniBand 系统网络主要由两个核心部件组成:主机通道适配器(Host Channel Adapter)和 InfiniBand 交换机。其中,HCA 为主机设备提供一个接口用于支持所有 InfiniBand 定义的操作,而交换机则用于将一个端口接收到的 InfiniBand 报文转发到另一个端口,它支持单播和多播两种机制。

InfiniBand 在 Red Hat Enterprise Linux 5.3 系统中的配置

Red Hat 产品是从 Red Hat Enterprise Linux 5.3 开始正式在内核中集成对 InfiniBand 网卡的支持,并且将 InfiniBand 所需的驱动程序以及库文件打包到发行 CD 里, 所以对于有 InfiniBand 应用需求的 Red Hat 用户,我们推荐其采用 Red Hat Enterprise Linux 5.3 及其以后的系统版本。

安装 InfiniBand 驱动程序 在安装 InfiniBand 驱动程序之前,请确认 InfiniBand 网卡已经被正确地连接或分配到主机。然后,从 Red Hat Enterprise Linux 5.3 的发布 CD 中获得 Table1 中给出的 rpm 文件,并根据上层应用程序的需要选择安装相应的 32 位或 64 位软件包。

表 1. RedHatEL5.3 中 InfiniBand 库文件列表

openib-*. el5.noarch.rpm

32bit
libibcm-*.el5.ppc.rpm
libibcm-devel-*.el5.ppc.rpm
libibcm-static-*.el5.ppc.rpm
libibcommon-*.el5.ppc.rpm
libibcommon-devel-*.el5.ppc.rpm
libibcommon-static-*.el5.ppc.rpm
libibmad-*.el5.ppc.rpm
libibmad-devel-*.el5.ppc.rpm
libibmad-static-*.el5.ppc.rpm
libibumad-*.el5.ppc.rpm
libibumad-devel-*.el5.ppc.rpm
libibumad-static-*.el5.ppc.rpm
libibverbs-*.el5.ppc.rpm
libibverbs-devel-*.el5.ppc.rpm
libibverbs-static-*.el5.ppc.rpm
libibverbs-utils-*.el5.ppc.rpm

64bit
libibcm-*.el5.ppc64.rpm
libibcm-devel-*.el5.ppc64.rpm
libibcm-static-*.el5.ppc64.rpm
libibcommon-*.el5.ppc64.rpm
libibcommon-devel-*.el5.ppc64.rpm
libibcommon-static-*.el5.ppc64.rpm
libibmad-*.el5.ppc64.rpm
libibmad-devel-*.el5.ppc64.rpm
libibmad-static-*.el5.ppc64.rpm
libibumad-*.el5.ppc64.rpm
libibumad-devel-*.el5.ppc64.rpm
libibumad-static-*.el5.ppc64.rpm
libibverbs-*.el5.ppc64.rpm
libibverbs-devel-*.el5.ppc64.rpm
libibverbs-static-*.el5.ppc64.rpm
libibverbs-utils 64bit rpm is not available in RedHatEL5.3

另外,对于不同类型的 InfiniBand 网卡,我们还需要安装一些特殊的驱动程序,例如Galaxy1/Galaxy2类型的 InfiniBand 网卡,就需要安装 ehca 相关的驱动。在这里我们给出三种常见 InfiniBand 网卡及其所需驱动的对应关系供您参考,见表二。

表 2. 常见 InfiniBand 网卡类型及所需驱动对应表

libehca
(for Galaxy1/Galaxy2 support)
32bitlibehca-*.el5.ppc.rpm
libehca-static-*.el5.ppc.rpm
64bitlibehca-*.el5.ppc64.rpm
libehca-static-*.el5.ppc64.rpm
libmthca
(for Mellanox InfiniHost support)
32bitlibmthca-*.el5.ppc.rpm
libmthca-static-*.el5.ppc.rpm
64bitlibmthca-*.el5.ppc64.rpm
libmthca-static-*.el5.ppc64.rpm
libmlx4
(for Mellanox ConnectX support)
32bitlibmlx4-*.el5.ppc.rpm
libmlx4-static-*.el5.ppc.rpm
64bitlibmlx4-*.el5.ppc64.rpm
libmlx4-static-*.el5.ppc64.rpm
启动 openibd 服务

在 Red Hat Enterprise Linux 5.3 系统中,openibd 服务在默认情况下是不打开的,所以在安装完驱动程序之后,配置 IPoIB 网络接口之前,我们需要先使能 openibd 服务以保证相应的驱动被加载到系统内核。具体方法如下:

# /etc/init.d/openibd start
Loading OpenIB kernel modules:[ OK ]

启动openibd 服务后,可用以下命令检查相应的驱动是否已加载,以 Galaxy2 网卡为例应得到以下输出。

清单 2. Openibd 服务状态示例 # /etc/init.d/openibd status

Low level hardware support loaded:
ib_ehca
Upper layer protocol modules:
ib_iser ib_srp ib_sdp ib_ipoib
User space access modules:
rdma_ucm ib_ucm ib_uverbs ib_umad
Connection management modules:
rdma_cm ib_cm iw_cm
Configured IPoIB interfaces: none
Currently active IPoIB interfaces: none

此时,用 ifconfig 命令已经可以看到待配置的 ib 接口, 例如:

清单 3. Ifconfig 命令输出

# ifconfig -a

ib0 Link encap:InfiniBand HWaddr
80:00:00:2C:FE:80:00:00:00:00:00:00:00:00:00:00:00:00:00:00
BROADCAST MULTICAST MTU:4092 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:256
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

ib1 Link encap:InfiniBand HWaddr
80:00:00:2E:FE:80:00:00:00:00:00:00:00:00:00:00:00:00:00:00
BROADCAST MULTICAST MTU:4092 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:256
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

但这种使能 openibd 服务的方法只在本次启动中生效,如果用户需要在系统重新启动后仍保持 openibd 使能,则需要使用 chkconfig 命令将其添加到系统服务列表中,如:
# chkconfig --level 235 openibd on
# chkconfig --list|grep openibd
openibd         0:off   1:off   2:on    3:on    4:off   5:on    6:off

配置 IPoIB 网络接口

在 Red Hat Enterprise Linux 5.3 中配置 IPoIB 网络接口的方法与配置以太接口方法类似,即
/etc/sysconfig/network-scripts 路径下创建相应的 IB 接口配置文件,如 ifcfg-ib0,
ifcfg-ib1 等。这里我们给出一个对接口 ib0 做简单 IPoIB 配置的例子以供参考。
清单 5. 接口配置文件示例
# cat /etc/sysconfig/network-scripts/ifcfg-ib0
DEVICE=ib0
BOOTPROTO='static'
IPADDR=10.0.0.5
NETMASK=255.255.255.0
BROADCAST=10.0.0.255
NETWORK=10.0.0.0
TARTMODE='onboot'
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: