Re: opensm with multiple IB subnets

Ken Teague
2010-04-22T19:47:09Z

Thank you, Yevgeny. I've modified my init script accordingly and
restarted opensm. For anyone else that may find it useful, here is
the "start" portion of my init script:

start () {
echo -n "Starting opensm: "
for GUID in `${IBSTAT_BIN} ${IBSTAT_ARG}`
do
export OSM_TMP_DIR="/tmp/opensm/${GUID}"
export OSM_CACHE_DIR="/var/cache/opensm/${GUID}"
export OSM_LOG_DIR="/var/log/opensm/${GUID}"
[ -d ${OSM_TMP_DIR} ] || mkdir -p ${OSM_TMP_DIR}
[ -d ${OSM_CACHE_DIR} ] || mkdir -p ${OSM_CACHE_DIR}
[ -d ${OSM_LOG_DIR} ] || mkdir ${OSM_LOG_DIR}
${OPENSM_BIN} --log_file ${OSM_LOG_DIR}/opensm.log
${OPENSM_ARG} ${GUID} > /dev/null
done
if [[ $RETVAL -eq 0 ]]; then
touch /var/lock/subsys/opensm
success
else
failure
fi
echo
}

On Wed, Apr 21, 2010 at 7:56 AM, Yevgeny Kliteynik
<kliteyn-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org> wrote:
> Ken,
>
> On 4/21/2010 3:07 AM, Ken Teague wrote:
>>
>> On Tue, Apr 20, 2010 at 2:13 PM, Ken Teague<kteague-e+AXbWqSrlAAvxtiuMwx3w@public.gmane.org>  wrote:
>>>
>>> I have a 17-node cluster and each node has a single IB card that has
>>> 2x IB ports (ib0 and ib1).....
>>
>> After doing a little more research, I confirmed that my understanding
>> of the manual page is correct.  To run opensm for each GUID, I
>> modified my init script to run a for loop based on the information
>> returned from "ibstat -p".
>>
>>
>> I added this near the beginning of the script where the other
>> environment variables are located:
>> <snip>
>> OFA_HOME="/usr/local/sbin"
>> IBSTAT_BIN="${OFA_HOME}/ibstat"
>> IBSTAT_ARG="-p"
>> OPENSM_BIN="${OFA_HOME}/opensm"
>> OPENSM_ARG="-B -g"
>> <snip>
>>
>>
>> I replaced the single line which started opensm with this for loop:
>> for i in `${IBSTAT_BIN} ${IBSTAT_ARG}`
>> do
>>     ${OPENSM_BIN} ${OPENSM_ARG} ${i}
>> done
>> <snip>
>>
>> If anyone has a more elegant way to handle this, I'm open to
>> suggestions.  Many thanks.
>
> OpenSM dumps various files to /var/log and /var/cache/opensm folders.
> When you have more than one OpenSM process, they will all dump the
> same files, which is probably not a good idea.
>
> To change the output directories, set the OSM_TMP_DIR and
> OSM_CACHE_DIR env. variables to some other place.
> In addition, you need to make sure that each SM instance
> prints its log in a different place. You need to do
> something like this:
>
> foreach guid in guid_list
>        export OSM_TMP_DIR=/tmp/osm_dump_dir${guid}
>        export OSM_CACHE_DIR=/tmp/osm_dump_dir${guid}
>        opensm --log_file /tmp/osm_dump_dir${guid}/osm.log -g ${guid} [your
> other options]
>
> -- Yevgeny
>
>> Ken
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
>> the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>