C H A P T E R  3

InfiniBand Software Overview

InfiniBand is a network architecture that is designed for the large-scale interconnection of computing and I/O nodes through a high-speed switched fabric. To operate InfiniBand on a Sun Blade 6048 Series Modular System, you need an InfiniBand HCA (provided by the IB NEM) and an InfiniBand software stack.

This chapter provides an overview and installation instructions for the InfiniBand software stack for the Linux and Windows operating systems.

Consult the Sun Blade 6048 Series Product Notes for the most recent information about supported operating systems, firmware and software updates, and other issues not covered in the main product documentation.

This chapter contains the following sections:


3.1 InfiniBand Software for Linux

If you have installed CentOS 4.4 (Final), RHEL4 u4, RHEL4 u5 or RHEL5 u1on a Sun Blade Server Module and you have installed the bundled drivers, you do not need to install or configure additional drivers to support the IB NEM. The bundled drivers support basic IB NEM operation.

Specifically, CentOS 4.4 contains support in the kernel for HCA hardware produced by Mellanox (mthca driver). The kernel also includes core InfiniBand modules, which provide the interface between the lower-level hardware driver and the upper-layer InfiniBand protocol drivers and provide user space access to InfiniBand hardware.

The kernel also includes the Sockets Direct Protocol (SDP) driver, IP over Infiniband (IPoIB), and the SCSI RDMA Protocol (SRP) driver.

CentOS 4.4 includes the following user space packages:

The packages selected to support any given configuration will vary. TABLE 3-1 lists the packages considered the absolute minimum needed to support the environment described in this guide.


TABLE 3-1 Required Packages for InfiniBand Support

Package

Command Enabled

Description

kernel-ib

openibd

IB master control script

openib-diags

ibstat

IB utility to display HCAs

openib-diags

ibnetdiscover

IB utility to probe and show the fabric

mstflint

mstflint

Mellanox utility to update HCA FLASHRAM

libibcommon

NA

IB support package

libibmad

NA

IB support package

libibumad

NA

IB support package


If you elected not to install these packages when installing CentOS 4.4, or if you want to upgrade your drivers, you can install these packages at any time from the OS distribution source or by downloading the required files from OpenFabrics.org. For information on both of these procedures, see Section 3.1.2, Installing the InfiniBand Drivers on Linux.

3.1.1 OpenFabrics Enterprise Distribution for Linux

As the popularity of InfiniBand technology increases, the number of Linux distributions and open source organizations producing drivers and tools will increase. For up-to-date information, check with open source organizations and your current vendors.

The OpenFabrics organization is the Open Software solution in the InfiniBand software space and OpenFabrics Enterprise Distribution (OFED) is the InfiniBand suite of software produced by this organization. Various vendors contribute their drivers (and other software components) to OFED.

TABLE 3-2 lists the tested Linux platforms and the corresponding OFED release.


TABLE 3-2 Linux Platform OFED Release

Linux Platform

OFED Release

CentOS Release 4.4 (Final)

Sun has tested OFED Release 1.2.5.


OFED contains the following components:

3.1.2 Installing the InfiniBand Drivers on Linux

If you did not install the InfiniBand drivers when installing the Linux OS, you can install them at any time from the OS distribution source or by downloading the necessary files from OpenFabrics.org.

To do so, choose one of the following procedures:

If you need to determine whether or not the drivers are already installed, see Section 3.1.2.3, Verify Driver Installation on Linux.

3.1.2.1 Install IB Drivers From Linux Distribution Source

To install the InfiniBand drivers, you need access to the Red Hat Package Manager (RPM) files. Access to these files is dependent on your individual installation configuration (net boot, CD/DVD boot, .iso files, and so on). When you decide on the appropriate access method and package selection, you can add the packages to the KickStart configuration file for automatic inclusion in future installations.



Note - All packages have a .i386.rpm extension (as shown in the following procedure). On a 64-bit system, all packages have a .x86_64.rpm extension instead.


1. Enter the rpm -ivh command for each InfiniBand package that you need to install.

Packages must be installed in the following order:

The following example shows the installation of one package (libibcommon) and the resulting dialog:


 > rpm -ivh libibcommon-1.0-1.i386.rpm
 warning: libibcommon-1.0-1.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
 Preparing...     ##################################### [100%]
1:libibcommon  ########################################### [100%]
> rpm -ivh libibumad-1.0-1.i386.rpm
.
.
.

2. If you are running the CSH or TCSH shell, enter the rehash command to rebuild the shell’s view of available executables.

3. Enter the ibstat command to verify that the OS sees the IB NEM.


> ibstat
CA 'mlx4_0'
     CA type: MT25418
     Number of ports: 2
     Firmware version: 2.2.0
     Hardware version: 0
     Node GUID: 0x00144fa435cc0004 
     System image GUID: 0x00144fa435cc0007
     Port 1
         State: Active
         Physical state: LinkUp
         Rate: 20
         Base lid: 7
         LMC: 0 
         SM lid: 17
         Capability mask: 0x02510868
         Port GUID: 0x00144fa435cc0005
     Port 2
         State: Active
         Physical state: LinkUp
         Rate: 20
         Base lid: 8
         LMC: 0 
         SM lid: 17
         Capability mask: 0x02510868
         Port GUID: 0x00144fa435cc0006
#

4. (Optional) You can enter the ibnetdiscover command to verify the presence of an operational IB fabric.

For an example of the output of this command, see Section 3.1.2.3, Verify Driver Installation on Linux.

5. (Optional) You can check the status of the ib0 network interface to determine whether the ib_ipoib driver is installed.

For details on this step, see Section 4.1.1, Install IPoIB Driver.

3.1.2.2 Install the OFED Package

1. On the Sun Blade Server Module, log in as root and copy the required files (OFED1.2.5.tgz in this example) from the following location:

http://www.openfabrics.org/downloads.html



Note - You need write access to the files to execute the install script.


2. From root, extract the files by entering the following command:

> tar -zxvf /OFED-1.2.5.tgz

3. From the OFED-1.2.5 directory, initiate the installation process by entering the following command:

> ./install.sh

4. When the InfiniBand OFED Distribution Software Installation menu appears, enter option 2 (Install OFED Software).

5. When the Select OFED Software menu appears, enter option 3 (All packages).

6. When you are asked if you wish to create/install an MPI RPM with gcc,
enter Y.


The following compilers on your system can be used to build/install MPI:  gcc 
Do you wish to create/install an MPI RPM with gcc? [Y/n]:

7. When you are asked if you wish to create/install an openmpi RPM with gcc, enter Y.


The following compilers on your system can be used to build/install openmpi:  gcc 
Do you wish to create/install an openmpi RPM with gcc? [Y/n]:

The installation script then lists the OFED packages that it will build. See the following sample output.


Following is the list of OFED packages that you have chosen (some may have been added by the installation program due to package dependencies):
ib_ipath
ib_ipoib
...
mpitests
ibutils
 
WARNING: This installation program will remove any previously installed IB packages on your machine.
 
Do you want to continue? [Y/n]:

8. Enter Y to continue.

You are prompted to configure InfiniBand IP support.

9. Enter Y when asked if you want to include IPoIB configuration files.

Do you want to include IPoIB configuration files (ifcfg-ib*)? [Y/n]:

10. Press Enter to accept the default when prompted to enter a temporary directory for OFED.


RPM build process requires a temporary directory.
Please enter the temporary directory [/var/tmp/OFED]:

11. Press Enter to accept the default when prompted for the OFED installation directory.

Please enter the OFED installation directory [/usr/local/ofed]:

At this point, the installer begins compiling InfiniBand packages. The process of building packages takes approximately 15-20 minutes.

The system displays output like the following:


The MPI_COMPILER_openmpi variable is not defined. Trying the default compiler: gcc 
 
The following compilers will be used to build the openmpi RPMs: gcc
 
Checking dependencies. Please wait ...
 
Building InfiniBand Software RPMs. Please wait...
 
Building openib RPMs. Please wait... 
.
.
.
33 packages were built
 
Build process finished ...

Installation then begins. You see the following message.


Removing previous InfiniBand Software installation
Running /bin/rpm -e libibverbs libibverbs-devel libibverbs-utils...

The actual installation takes about one minute.

Assuming the IB NEM hardware is installed (and, therefore, an InfiniBand HCA is present), you are prompted to configure InfiniBand IP support.

12. Enter Y in response to the following prompt:

Do you want to configure IPoIB interfaces [Y/n]?

The default IPoIB interface configuration is based on DHCP. A special patch for DHCP is required for supporting IPoIB. The patch is available under:

OFED-1.0/docs/dhcp

If you do not have DHCP, you must change this configuration in the following steps.

The system next displays the current configuration.

13. When asked if you want to change the configuration as displayed, enter y.


The current IPOIB configuration for ib0 is:
DEVICE=ib0
BOOTPROTO=dhcp
ONBOOT=yes
Do you want to change this configuration? [y/N]:

The configuration script guides you through the changes one at a time. See the following as an example.


Enter an IP Address:10.0.0.52
Enter the Netmask: 255.255.255.0
Enter the Network:10.0.0.0
Enter the Broadcast Address:10.0.0.255
Start Device On Boot? [Y/n]:Y
 
Selected configuration:
 
IPADDR=10.0.0.52
NETMASK=255.255.255.0
NETWORK=10.0.0.0
BROADCAST=10.0.0.255
ONBOOT=yes
 
Do you want to save the selected configuration? [Y/n]:

14. Enter Y to save the configuration.

If you have entered a valid IP configuration for ib0, you are now properly configured for IPoIB operations.

15. Iterate the InfiniBand configuration over all InfiniBand interfaces.

You must enter a valid IP configuration for each network interface.

Once all IPoIB interfaces have been configured, you are prompted as follows to configure OpenSM for the blade.

Do you want to configure OpenSM [Y/n]?

16. Enter n to complete this part of the installation.

You should see a message like the following:


Installation finished successfully...
Press Enter to continue...

For information on OpenSM, see Section 3.2, Running OpenSM.

17. Press Enter.

The InfiniBand OFED Distribution Software Installation Menu is displayed.

18. Enter Q to exit.

The Sun Blade Server Module is configured now to start up the InfiniBand software on reboot (ONBOOT=yes).

If this is not the desired behavior, you can edit the /etc/infiniband/openib.conf file, changing ONBOOT to equal no. You can also manually control basic InfiniBand behavior by entering the following command:

/etc/init.d/openibd { start | stop | status }

After successful installation, reboot the Server Module. After reboot, the Server Module should appear as a functional member of the InfiniBand fabric.

3.1.2.3 Verify Driver Installation on Linux

1. Verify that the Linux software driver is installed and attached to the IB NEM by entering the openibd status command.



Note - When using the openibd command, enter the entire path as shown in the example.


The following example shows the IB driver installed, running, and presenting one IB HCA channel or network device (ibn) to the OS. In the example, the Linux network device appears as ib0.


> /etc/init.d/openibd status
     HCA driver loaded
Configured devices:
ib0
Currently active devices:
ib0
     The following modules are also loaded: 
ib_cm
ip_ipoib
.
.
.

2. To view details of operational status, enter the ibstat command.

The following example shows one operational IB port into the IB fabric (or network). The LinkUp state indicates active participation in an IB fabric. The port is present as lid 69 and it is being managed by lid 2.


> ibstat
CA 'mthca0'
     CA type: MT25204
     Number of ports: 1
     Firmware version: 1.1.0
     Hardware version: a0
     Node GUID: 0x001b00000ca72620 
     System image GUID: 0x001b00000ca72623
     Port 1
         State: Active
         Physical state: LinkUp
         Rate: 20
         Base lid: 69
         LMC: 0 
         SM lid: 2
         Capability mask: 0x02510a68
         Port GUID: 0x001b00000ca72621

You can also verify that the InfiniBand fabric is operational by entering the ibnetdiscover command. The output from this command lists all the nodes, as shown in the following sample output.


> ibnetdiscover
#
# Topology file: generated on Thu Jan 11 15:19:59 2007
#
# Max of 4 hops discovered
# Initiated from node 001b00000ca72620 port 001b00000ca72621 
 
vendid=0x8f1
devid=0x5a31
sysimgguid=0x8f10400411ef9
switchguid=0x8f10400411ef8
 
Switch  24 "S-0008f10400411ef8"    # Switch port 0 lid 9
[21]       "H-0002c90109761ea0"[2]
[12]       "S-0005ad00000161ba"[5]
[7]        "H-001b00000ca72630"[1]
[6]        "H-001b00000ca72620"[1]
vendid=0x5ad
devid=0xa87c
sysimgguid=0x5ad01010161b6
switchguid=0x5ad00000161ba 
 
Switch  8 "S-0005ad00000161ba"    # Switch - U3 port 0 lid 3
[4]"       H-0005ad0000011310"[1]
[3]       "S-0005ad00000161b6"[1]
[2]       "S-0005ad00000161b6"[2] 
[1]       "S-0005ad00000161b8"[3]
[5]       "S-0008f10400411ef8"[12]
.
.
.
vendid=0x2c9
devid=0x6274
sysimgguid=0x1b00000ca72633
caguid=0x1b00000ca72630 
Ca  1 "H-001b00000ca72630"  # 4x DDR IB 10-Port PCIe Network ExpressModule
[1]     "S-0008f10400411ef8"[7]     # lid 68 lmc 0n



Note - The output from ibnetdiscover can be lengthy in a large IB fabric.



3.2 Running OpenSM

In the InfiniBand architecture, a subnet manager (SM) is required for the InfiniBand fabric to function properly. The SM discovers all the nodes on the fabric and assigns the local identifiers (LIDs) in the HCAs. The subnet manager also sets up the routing tables in the switches to support routing packets between nodes.

To meet these needs, OFED and the CentOS supply OpenSM, an open source subnet manager. OpenSM can initialize and configure the subnet as well as keep the subnet operational when the network topology and nodes change. OpenSM runs as a system daemon on at least one of the host machines in the InfiniBand fabric.

The OpenSM application also contains the subnet administrator (SA), an associated component that acts like a database and can be affected by end node requests. OpenSM supports querying as well as event forwarding. Applications send queries to the SA to discover the path records for remote nodes, which are needed to establish connections between endpoints on the fabric.



Note - Two instances of OpenSM running concurrently on the same port will result in a system crash.


For more information on OpenSM, see the README file for OFED on CentOS.