Kernel version: +2.6.32-400.26.2.el5uek+
Release:
Oracle Linux Server release 5.9
Problem:
SRP daemon does not load. This is (and has been in recent versions) been configured in +/etc/ofed/openib.conf+, e.g.
# Load SRP module
SRP_LOAD=yes
# Enable SRP High Availability daemon
SRPHA_ENABLE=yes
SRP_DAEMON_ENABLE=yes
With 5.9 (and possibly in versions after 5.4), the +/etc/init.d/srpd/+ daemon has the following code to check whether SRP has been configured for loading (checking file +/etc/rdma/rdma.conf+ and not <i>/etc/ofed/openib.conf</i>):
CONFIG=/etc/srp_daemon.conf
RDMA_CONFIG=/etc/rdma/rdma.conf
pidfile=/var/run/srp_daemon.sh.pid
subsys=/var/lock/subsys/srpd
prog=/usr/sbin/srp_daemon.sh
. /etc/rc.d/init.d/functions
SRP_LOADED=no
if [ -f $RDMA_CONFIG ]; then
. $RDMA_CONFIG
if [ "${SRP_LOAD}" == "yes" ]; then
SRP_LOADED=yes
fi
fi
This fails as config file +/etc/rdma/rdma.conf+ does not exist. Cannot recall ever seeing it either - as in my experience, the entire OFED driver stack has always been configured using +/etc/infiniband/openib.conf+ (older OFED versions) and +/etc/ofed/openib.conf+ (newer OFED versions).
I did a manual fix as follows (leaving the
rdma.conf file support in place):
RDMA_CONFIG=/etc/rdma/rdma.conf
[ ! -f $RDMA_CONFIG ] && RDMA_CONFIG=/etc/ofed/openib.conf # bug-fix - use default if RDMA config does not exist
It also seems that +/etc/init.d/srpd+ is not configured as a service - thus:
chkconfig --level 2345 srpd on
Not sure how clean these changes/hacks are, but it works for me (on 2 x 5.9 servers using scsi targets over SRP). And this note could be perhaps useful for someone else in a similar situation where the SRP daemon does not load and run.