Wednesday, July 8, 2015

Installing Mellanox InfiniBand Driver on RHEL 6.5

Message Passing Interface
Clustered Parallel File SystemsInfiniband HOWTOLoopback filesystemBurning CD and DVD on LinuxLinux Swap filesystemRHEL6 registration on proxy protected network
NetworkingNTP configurationManaging Disks by UUIDLinux MultipathLinux Software RAIDudev
Booting from DVD problemMove config files from one server to anotherModifying ISO imageOracle Linux InstallationLinux Disk ManagementInstallation of Red Hat from a USB drive
Etc
By default, the Mellanox ConnectX-3 card is not natively supported by CentOS 6.x or RHEL 6.x
Mellanox offers  set of protocol software and driver for Linux with the ConnectX®-2 / ConnectX®-3 EN NICs with Ethernet.
-rw-r--r--.  1 root root 194222080 Feb  7 17:20 MLNX_OFED_LINUX-2.1-1.0.0-rhel6.5-x86_64.tar
NOTE:
RHEL 6.5 support is provided with version 2.1 of MLNX OFED 
IMPORTANT: Register and patch OS before install of  MLNX OFED 

Two issues:

  • Deinstallation of RHEL native Infiniband stack. This is an optional step as MLNX_OFED can do it automatically in the process of installation
    • [Optional] use command yum groupremove Infiniband See YUM
  • Installation
    • Run install command. If you box has paching configured you will see missing RPM and suggest them to you.  In typical installation you need to install two packages. FOr RHEL 6.5 there are two of them:
      • tk
      • libnl-devel

Components of 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.
OFED contains the following components:
  • OpenFabrics core and Upper Layer Protocols (ULPs):
    • HCA drivers
    • Core
    • ULPs, including: IPoIB, SDP, SRP Initiator, iSER Host, RDS and uDAPL
  • OpenFabrics utilities:
    • OpenSM (InfiniBand subnet manager)
    • Diagnostic tools
    • Performance tests 
       
  • Message Passing Interface (MPI):
    • OSU MPI stack supporting the InfiniBand interface
    • Open MPI stack supporting the InfiniBand interface
    • MPI benchmark tests (OSU BW/LAT, Pallas, Presta)
  • Sources of all software modules (under conditions mentioned in the modules' LICENSE files)
  • Documentation

Installing the InfiniBand OFED Package Linux

View the matrix of MLNX_OFED driver versions vs. supported hardware and firmware for Mellanox products.
Warning: this is an old info extracted form Sun documentation. Despite discrepancies with version 2.1 it is still useful... See MLNX_OFED 2.1-X Release Notes
1. Verify what card you have:
lspci |grep -i Mellanox 
03:00.0 Network controller [0207]: Mellanox Technologies MT27500 Family [ConnectX-3]
2. From root, extract the files by typing:
tar -zxvf MLNX_OFED_LINUX-2.1-1.0.0-rhel6.5-x86_64.tar
3. From the create by tar  directory initiate the installation process by typing ./mlnxofedinstall - This is the MLNX_OFED_LINUX installation script.
# ./mlnxofedinstall
Logs dir: /tmp/MLNX_OFED_LINUX-2.1-1.0.0.3038.logs
Error: One or more required packages for installing MLNX_OFED are missing.
Please install the following packages using your Linux distribution Package Management tool:
tk
libnl-devel
 
# yum install tk
Loaded plugins: product-id, refresh-packagekit, rhnplugin, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
This system is receiving updates from RHN Classic or RHN Satellite.
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package tk.x86_64 1:8.5.7-5.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

========================================================================================================================
 Package             Arch                    Version                        Repository                             Size
========================================================================================================================
Installing:
 tk                  x86_64                  1:8.5.7-5.el6                  rhel-x86_64-server-6                  1.4 M

Transaction Summary
========================================================================================================================
Install       1 Package(s)

Total download size: 1.4 M
Installed size: 0
Is this ok [y/N]: y
Downloading Packages:
tk-8.5.7-5.el6.x86_64.rpm                                                                        | 1.4 MB     00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : 1:tk-8.5.7-5.el6.x86_64                                                                              1/1
  Verifying  : 1:tk-8.5.7-5.el6.x86_64                                                                              1/1

Installed:
  tk.x86_64 1:8.5.7-5.el6

Complete!
 
# yum install libnl-devel
Loaded plugins: product-id, refresh-packagekit, rhnplugin, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
This system is receiving updates from RHN Classic or RHN Satellite.
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package libnl-devel.x86_64 0:1.1.4-2.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

========================================================================================================================
 Package                    Arch                  Version                     Repository                           Size
========================================================================================================================
Installing:
 libnl-devel                x86_64                1.1.4-2.el6                 rhel-x86_64-server-6                707 k

Transaction Summary
========================================================================================================================
Install       1 Package(s)

Total download size: 707 k
Installed size: 0
Is this ok [y/N]: y
Downloading Packages:
libnl-devel-1.1.4-2.el6.x86_64.rpm                                                               | 707 kB     00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : libnl-devel-1.1.4-2.el6.x86_64                                                                       1/1
  Verifying  : libnl-devel-1.1.4-2.el6.x86_64                                                                       1/1

Installed:
  libnl-devel.x86_64 0:1.1.4-2.el6

Complete!
---: /home/bezroun/IB
[0]root@lustwzb1: # yum install libnl-devel
Loaded plugins: product-id, refresh-packagekit, rhnplugin, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
This system is receiving updates from RHN Classic or RHN Satellite.
Setting up Install Process
Package libnl-devel-1.1.4-2.el6.x86_64 already installed and latest version
Nothing to do
 
# ./mlnxofedinstall
Logs dir: /tmp/MLNX_OFED_LINUX-2.1-1.0.0.3995.logs
This program will install the MLNX_OFED_LINUX package on your machine.
Note that all other Mellanox, OEM, OFED, or Distribution IB packages will be removed.
Do you want to continue?[y/N]:y


/bin/rpm --nosignature -e --allmatches --nodeps libibverbs librdmacm infinipath-psm libibverbs librdmacm compat-opensm-libs infinipath-psm compat-openmpi compat-openmpi-psm

Starting MLNX_OFED_LINUX-2.1-1.0.0 installation ...

Installing mlnx-ofa_kernel RPM
Preparing...                ##################################################
mlnx-ofa_kernel             ##################################################
Installing kmod-mlnx-ofa_kernel 2.1 RPM
Preparing...                ##################################################
kmod-mlnx-ofa_kernel        ##################################################
Installing mlnx-ofa_kernel-devel RPM
Preparing...                ##################################################
mlnx-ofa_kernel-devel       ##################################################
Installing kmod-kernel-mft-mlnx any RPM
Preparing...                ##################################################
kmod-kernel-mft-mlnx        ##################################################
Installing knem-mlnx RPM
Preparing...                ##################################################
knem-mlnx                   ##################################################
Installing kmod-knem-mlnx 1.1.90mlnx2 RPM
Preparing...                ##################################################
kmod-knem-mlnx              ##################################################
Installing ummunotify-mlnx RPM
Preparing...                ##################################################
ummunotify-mlnx             ##################################################
Installing kmod-ummunotify-mlnx 1.0 RPM
Preparing...                ##################################################
kmod-ummunotify-mlnx        ##################################################
Installing mpi-selector RPM
Preparing...                ##################################################
mpi-selector                ##################################################
Installing user level RPMs:
Preparing...                ##################################################
ofed-scripts                ##################################################
Preparing...                ##################################################
libibverbs                  ##################################################
Preparing...                ##################################################
libibverbs-devel            ##################################################
Preparing...                ##################################################
libibverbs-devel-static     ##################################################
Preparing...                ##################################################
libibverbs-utils            ##################################################
Preparing...                ##################################################
libmlx4                     ##################################################
Preparing...                ##################################################
libmlx4-devel               ##################################################
Preparing...                ##################################################
libmlx5                     ##################################################
Preparing...                ##################################################
libmlx5-devel               ##################################################
Preparing...                ##################################################
libcxgb3                    ##################################################
Preparing...                ##################################################
libcxgb3-devel              ##################################################
Preparing...                ##################################################
libcxgb4                    ##################################################
Preparing...                ##################################################
libcxgb4-devel              ##################################################
Preparing...                ##################################################
libnes                      ##################################################
Preparing...                ##################################################
libnes-devel-static         ##################################################
Preparing...                ##################################################
libipathverbs               ##################################################
Preparing...                ##################################################
libipathverbs-devel         ##################################################
Preparing...                ##################################################
libibcm                     ##################################################
Preparing...                ##################################################
libibcm-devel               ##################################################
Preparing...                ##################################################
libibumad                   ##################################################
Preparing...                ##################################################
libibumad-devel             ##################################################
Preparing...                ##################################################
libibumad-static            ##################################################
Preparing...                ##################################################
libibmad                    ##################################################
Preparing...                ##################################################
libibmad-devel              ##################################################
Preparing...                ##################################################
libibmad-static             ##################################################
Preparing...                ##################################################
ibsim                       ##################################################
Preparing...                ##################################################
ibacm                       ##################################################
Preparing...                ##################################################
librdmacm                   ##################################################
Preparing...                ##################################################
librdmacm-utils             ##################################################
Preparing...                ##################################################
librdmacm-devel             ##################################################
Preparing...                ##################################################
opensm-libs                 ##################################################
Preparing...                ##################################################
opensm                      ##################################################
Preparing...                ##################################################
opensm-devel                ##################################################
Preparing...                ##################################################
opensm-static               ##################################################
Preparing...                ##################################################
infiniband-diags            ##################################################
Preparing...                ##################################################
fca                         ##################################################
INFO: updating ...

IMPORTANT NOTE:
===============

- The FCA Manager and FCA MPI Runtime library are installed in /opt/mellanox/fca directory.
- The FCA Manager will not be started automatically.
- To start FCA Manager now, type:
    /etc/init.d/fca_managerd start

- There should be single process of FCA Manager running per fabric.

- To start FCA Manager automatically after boot, type:
    /etc/init.d/fca_managerd install_service

- Check /opt/mellanox/fca/share/doc/fca/README.txt for quick start instructions.

Preparing...                ##################################################
dapl                        ##################################################
Preparing...                ##################################################
dapl-devel                  ##################################################
Preparing...                ##################################################
dapl-devel-static           ##################################################
Preparing...                ##################################################
dapl-utils                  ##################################################
Preparing...                ##################################################
perftest                    ##################################################
Preparing...                ##################################################
mstflint                    ##################################################
Preparing...                ##################################################
mft                         ##################################################
Preparing...                ##################################################
srptools                    ##################################################
Preparing...                ##################################################
rds-tools                   ##################################################
Preparing...                ##################################################
rds-devel                   ##################################################
Preparing...                ##################################################
ibutils2                    ##################################################
Preparing...                ##################################################
ibutils                     ##################################################
Preparing...                ##################################################
cc_mgr                      ##################################################
Preparing...                ##################################################
dump_pr                     ##################################################
Preparing...                ##################################################
ar_mgr                      ##################################################
Preparing...                ##################################################
ibdump                      ##################################################
Preparing...                ##################################################
infiniband-diags-compat     ##################################################
Preparing...                ##################################################
qperf                       ##################################################
Preparing...                ##################################################
mxm                         ##################################################
Preparing...                ##################################################
openmpi                     ##################################################
Preparing...                ##################################################
openmpi                     ##################################################
Preparing...                ##################################################
bupc                        ##################################################
Preparing...                ##################################################
infinipath-psm              ##################################################
Preparing...                ##################################################
infinipath-psm-devel        ##################################################
Preparing...                ##################################################
mvapich2                    ##################################################
Preparing...                ##################################################
openshmem                   ##################################################
Preparing...                ##################################################
hcoll                       ##################################################
Preparing...                ##################################################
libibprof                   ##################################################
Preparing...                ##################################################
libvma                      ##################################################
- Changing max locked memory to unlimited (in /etc/security/limits.conf)
  Please log out from the shell and login again in order to update this change
  Read more about this topic in the VMA's User Manual

- VMA README.txt is installed at: /usr/share/doc/libvma-6.5.9-0/README.txt
- Please refer to VMA journal for the latest changes: /usr/share/doc/libvma-6.5.9-0/journal.txt
Preparing...                ##################################################
mlnxofed-docs               ##################################################
Preparing...                ##################################################
mpitests_mvapich2__1_9      ##################################################
Preparing...                ##################################################
mpitests_openmpi__1_6_5     ##################################################
Preparing...                ##################################################
mpitests_openmpi__1_7_4     ##################################################
Device (03:00.0):
        03:00.0 Network controller [0207]: Mellanox Technologies MT27500 Family [ConnectX-3]
        Link Width: 8x
        PCI Link Speed: Unknown

Device (03:00.0):
        03:00.0 Network controller [0207]: Mellanox Technologies MT27500 Family [ConnectX-3]
        WARNING - device 03:00.0 The MaxReadRequest size is set too low (512 bytes) and will affect performance.
        Please consult your server's vendor and if possible change BIOS settings or use setpci to configure MaxReadReq to 4096 bytes.
        # /sbin/setpci -s 03:00.0 68.W
        2xxx
        Change to 4096 bytes:
        # /sbin/setpci -s 03:00.0 68.W=5xxx


Installation finished successfully.

Attempting to perform Firmware update...
Querying Mellanox devices firmware ...

Device #1:
----------

  Device:        0000:03:00.0
  Part Number:
  Description:
  PSID:          DEL0A40000028

  Versions:      Current        Available
     FW          2.11.0550      N/A
     PXE         3.4.0000       N/A

  Status:        No matching image found


Log File: /tmp/MLNX_OFED_LINUX-2.1-1.0.0.3995.logs/fw_update.log
Failed to update Firmware.
See /tmp/MLNX_OFED_LINUX-2.1-1.0.0.3995.logs/fw_update.log
Please reboot your system for the changes to take effect.
 
IMPORTANT: After a successful installation, reboot the Server
IMPORTANT: After a successful installation, reboot the Server
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 option 
where option can be start, stop, or status.

After the reboot, the Server Module should come up as a functional member of the InfiniBand fabric.

To Verify Driver Installation on Linux

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

Note - When using the openibd command, type 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, type the ibstat command.
The following example shows one operational IB channel into the IB fabric (or network). The LinkUp state indicates active participation in an IB fabric. It 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 will list 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 Express Module
[1]     "S-0008f10400411ef8"[7]     # lid 68 lmc 0n

No comments:

Post a Comment