[Ocfs2-test-devel] [PATCH 1/2] Ocfs2-test: Update inline-data tests to make it compatible with openmpi-1.3.2
Tristan
tristan.ye at oracle.com
Mon Oct 12 18:25:19 PDT 2009
Marcos E. Matsunaga wrote:
> Tristan,
>
> Using "-mca btl_tcp_if_include eth0", you are assuming all nodes in
> the cluster use eth0 as public or private network. That may not be
> true. Some nodes in my cluster use eth1 or eth2 too.
>
> Other than that, it all looks good to me.
Cool, thank you for pointing this out, I remembered I changed it in
o2tf.py that way, but forgot here.
Tristan.
>
> Regards,
>
> Marcos Eduardo Matsunaga
>
> Oracle USA
> Linux Engineering
>
> “The statements and opinions expressed here are my own and do not
> necessarily represent those of Oracle Corporation.”
>
>
>
> Tristan Ye wrote:
>> This patch first update o2tf.sh(openmpi_run() func) since 1.3.2 openmpi deprecated
>> one mca parameter which we used for specifying the remote connection method(rsh or ssh)
>>
>> Secondly, it fixes a bug in multi-inline-tests which may bite us with 1.3.2 openmpi if we
>> use 'sudo' before mpi binary.
>>
>> Signed-off-by: Tristan Ye <tristan.ye at oracle.com>
>> ---
>> programs/inline-data/multi-inline-data.c | 4 +-
>> programs/inline-data/multi-inline-dirs.c | 4 +-
>> programs/inline-data/multi-inline-run.sh | 70 +++++-------------------------
>> programs/python_common/o2tf.py | 8 ++--
>> 4 files changed, 19 insertions(+), 67 deletions(-)
>>
>> diff --git a/programs/inline-data/multi-inline-data.c b/programs/inline-data/multi-inline-data.c
>> index d30b283..7a6b929 100755
>> --- a/programs/inline-data/multi-inline-data.c
>> +++ b/programs/inline-data/multi-inline-data.c
>> @@ -119,7 +119,7 @@ extern int is_file_inlined(char *dirent_name, unsigned long *i_size,
>>
>> static void usage(void)
>> {
>> - printf("Usage: inline-data [-i <iteration>] "
>> + printf("Usage: multi-inline-data [-i <iteration>] "
>> "<-d <device>> <mount_point>\n"
>> "Run a series of tests intended to verify I/O to and from\n"
>> "files/dirs with inline data.\n\n"
>> @@ -156,7 +156,7 @@ static int parse_opts(int argc, char **argv)
>> {
>> int c;
>> while (1) {
>> - c = getopt(argc, argv, "D:d:I:i:C:c:M:m:");
>> + c = getopt(argc, argv, "D:d:I:i:");
>> if (c == -1)
>> break;
>> switch (c) {
>> diff --git a/programs/inline-data/multi-inline-dirs.c b/programs/inline-data/multi-inline-dirs.c
>> index 047b14f..e3be06b 100644
>> --- a/programs/inline-data/multi-inline-dirs.c
>> +++ b/programs/inline-data/multi-inline-dirs.c
>> @@ -127,7 +127,7 @@ static inline char rand_char(void)
>>
>> static void usage(void)
>> {
>> - printf("Usage: inline-dirs [-i <iteration>] [-s operated_entries] "
>> + printf("Usage: multi-inline-dirs [-i <iteration>] [-s operated_entries] "
>> "<-d <device>> <mount_point>\n"
>> "Run a series of tests intended to verify I/O to and from\n"
>> "dirs with inline data.\n\n"
>> @@ -165,7 +165,7 @@ static int parse_opts(int argc, char **argv)
>> {
>> int c;
>> while (1) {
>> - c = getopt(argc, argv, "D:d:I:i:C:c:M:m:S:s:");
>> + c = getopt(argc, argv, "D:d:I:i:S:s:");
>> if (c == -1)
>> break;
>> switch (c) {
>> diff --git a/programs/inline-data/multi-inline-run.sh b/programs/inline-data/multi-inline-run.sh
>> index bc77573..6b18903 100755
>> --- a/programs/inline-data/multi-inline-run.sh
>> +++ b/programs/inline-data/multi-inline-run.sh
>> @@ -41,8 +41,8 @@ REMOTE_MOUNT_BIN="${BINDIR}/remote_mount.py"
>> UMOUNT_BIN="`which sudo` -u root `which umount`"
>> REMOTE_UMOUNT_BIN="${BINDIR}/remote_umount.py"
>> MKFS_BIN="`which sudo` -u root `which mkfs.ocfs2`"
>> -INLINE_DATA_BIN="`which sudo` -u root ${BINDIR}/multi-inline-data"
>> -INLINE_DIRS_BIN="`which sudo` -u root ${BINDIR}/multi-inline-dirs"
>> +INLINE_DATA_BIN="${BINDIR}/multi-inline-data"
>> +INLINE_DIRS_BIN="${BINDIR}/multi-inline-dirs"
>> DEFAULT_LOG="multiple-inline-data-test-logs"
>> LOG_OUT_DIR=
>> DATA_LOG_FILE=
>> @@ -56,14 +56,13 @@ CLUSTERSIZE=
>> BLOCKNUMS=
>>
>> TMP_DIR=/tmp
>> -DEFAULT_HOSTFILE=".openmpi_hostfile"
>> DEFAULT_RANKS=4
>>
>> declare -i MPI_RANKS
>> MPI_HOSTS=
>> MPI_HOSTFILE=
>> MPI_ACCESS_METHOD="ssh"
>> -MPI_PLS_AGENT_ARG="-mca pls_rsh_agent ssh:rsh"
>> +MPI_PLS_AGENT_ARG="-mca plm_rsh_agent ssh:rsh"
>>
>> set -o pipefail
>>
>> @@ -161,38 +160,13 @@ f_getoptions()
>>
>> }
>>
>> -f_create_hostfile()
>> -{
>> - MPI_HOSTFILE="${TMP_DIR}/${DEFAULT_HOSTFILE}"
>> - TMP_FILE="${TMP_DIR}/.tmp_openmpi_hostfile_$$"
>> -
>> - echo ${MPI_HOSTS}|sed -e 's/,/\n/g'>$TMP_FILE
>> -
>> - if [ -f "$MPI_HOSTFILE" ];then
>> - ${RM} -rf ${MPI_HOSTFILE}
>> - fi
>> -
>> - while read line
>> - do
>> - if [ -z $line ];then
>> - continue
>> - fi
>> -
>> - echo "$line">>$MPI_HOSTFILE
>> -
>> - done<$TMP_FILE
>> -
>> -
>> - ${RM} -rf $TMP_FILE
>> -}
>> -
>> f_setup()
>> {
>>
>> f_getoptions $*
>>
>> if [ "$MPI_ACCESS_METHOD" = "rsh" ];then
>> - MPI_PLS_AGENT_ARG="-mca pls_rsh_agent rsh:ssh"
>> + MPI_PLS_AGENT_ARG="-mca plm_rsh_agent rsh:ssh"
>> REMOTE_SH_BIN=${RSH_BIN}
>> fi
>>
>> @@ -225,10 +199,7 @@ f_setup()
>>
>> if [ -z "$MPI_HOSTS" ];then
>> f_usage
>> - else
>> - f_create_hostfile
>> - fi
>> -
>> + fi
>> }
>>
>> f_do_mkfs_and_mount()
>> @@ -241,14 +212,6 @@ f_do_mkfs_and_mount()
>> echo_status ${RET} |tee -a ${RUN_LOG_FILE}
>> exit_or_not ${RET}
>>
>> -# while read node_line ; do
>> -# host_node=`echo ${node_line}|${AWK_BIN} '{print $1}'`
>> -# echo -n "Mounting device to ${MOUNT_POINT} on ${host_node}:"|tee -a ${RUN_LOG_FILE}
>> -# RET=$(${REMOTE_SH_BIN} -n ${host_node} "sudo /bin/mount -t ocfs2 -o rw,nointr ${OCFS2_DEVICE} ${MOUNT_POINT};echo \$?" 2>>${RUN_LOG_FILE})
>> -# echo_status ${RET} |tee -a ${RUN_LOG_FILE}
>> -# exit_or_not ${RET}
>> -#
>> -# done<${MPI_HOSTFILE}
>> echo -n "Mounting device ${OCFS2_DEVICE} to nodes(${MPI_HOSTS}):"|tee -a ${RUN_LOG_FILE}
>> ${REMOTE_MOUNT_BIN} -l ocfs2-inline-test -m ${MOUNT_POINT} -n ${MPI_HOSTS}>>${RUN_LOG_FILE} 2>&1
>> RET=$?
>> @@ -262,24 +225,13 @@ f_do_mkfs_and_mount()
>>
>> f_do_umount()
>> {
>> -# while read node_line;do
>> -# host_node=`echo ${node_line}|awk '{print $1}'`
>> -# echo -ne "Unmounting device from ${MOUNT_POINT} on ${host_node}:"|tee -a ${RUN_LOG_FILE}
>> -# RET=$(${REMOTE_SH_BIN} -n ${host_node} "sudo /bin/umount ${MOUNT_POINT};echo \$?" 2>>${RUN_LOG_FILE})
>> -# echo_status ${RET} |tee -a ${RUN_LOG_FILE}
>> -# exit_or_not ${RET}
>> -#
>> -# done<${MPI_HOSTFILE}
>> -
>> echo -n "Umounting device ${OCFS2_DEVICE} from nodes(${MPI_HOSTS}):"|tee -a ${RUN_LOG_FILE}
>> ${REMOTE_UMOUNT_BIN} -m ${MOUNT_POINT} -n ${MPI_HOSTS}>>${RUN_LOG_FILE} 2>&1
>> RET=$?
>> echo_status ${RET} |tee -a ${RUN_LOG_FILE}
>> exit_or_not ${RET}
>> -
>> }
>>
>> -
>> f_run_data_test()
>> {
>> echo >>${DATA_LOG_FILE}
>> @@ -290,7 +242,7 @@ f_run_data_test()
>> echo "==========================================================">>${DATA_LOG_FILE}
>> echo -e "Testing Binary:\t\t${INLINE_DATA_BIN} -i 1 -d ${OCFS2_DEVICE} ${MOUNT_POINT}">>${DATA_LOG_FILE}
>>
>> - ${SUDO} ${MPIRUN} ${MPI_PLS_AGENT_ARG} -mca btl tcp,self -mca btl_tcp_if_include eth0 -np ${MPI_RANKS} --hostfile ${MPI_HOSTFILE} ${INLINE_DATA_BIN} -i 1 -d ${OCFS2_DEVICE} ${MOUNT_POINT}>>${DATA_LOG_FILE} 2>&1
>> + ${SUDO} ${MPIRUN} ${MPI_PLS_AGENT_ARG} -mca btl tcp,self -mca btl_tcp_if_include eth0 -np ${MPI_RANKS} --host ${MPI_HOSTS} ${INLINE_DATA_BIN} -i 1 -d ${OCFS2_DEVICE} ${MOUNT_POINT}>>${DATA_LOG_FILE} 2>&1
>> RET=$?
>> echo_status ${RET} |tee -a ${RUN_LOG_FILE}
>> exit_or_not ${RET}
>> @@ -302,9 +254,9 @@ f_run_data_test()
>> echo -ne "Stress Test For Regular File Among Nodes:">> ${DATA_LOG_FILE}
>> echo >>${DATA_LOG_FILE}
>> echo "==========================================================">>${DATA_LOG_FILE}
>> - echo -e "Testing Binary:\t\t${INLINE_DATA_BIN} -i 50 -d ${OCFS2_DEVICE} ${MOUNT_POINT}">>${DATA_LOG_FILE}
>> + echo -e "Testing Binary:\t\t${INLINE_DATA_BIN} -i 200 -d ${OCFS2_DEVICE} ${MOUNT_POINT}">>${DATA_LOG_FILE}
>>
>> - ${SUDO} ${MPIRUN} ${MPI_PLS_AGENT_ARG} -mca btl tcp,self -mca btl_tcp_if_include eth0 -np ${MPI_RANKS} --hostfile ${MPI_HOSTFILE} ${INLINE_DATA_BIN} -i 200 -d ${OCFS2_DEVICE} ${MOUNT_POINT}>>${DATA_LOG_FILE} 2>&1
>> + ${SUDO} ${MPIRUN} ${MPI_PLS_AGENT_ARG} -mca btl tcp,self -mca btl_tcp_if_include eth0 -np ${MPI_RANKS} --host ${MPI_HOSTS} ${INLINE_DATA_BIN} -i 200 -d ${OCFS2_DEVICE} ${MOUNT_POINT}>>${DATA_LOG_FILE} 2>&1
>> RET=$?
>> echo_status ${RET} |tee -a ${RUN_LOG_FILE}
>> exit_or_not ${RET}
>> @@ -321,7 +273,7 @@ f_run_dirs_test()
>> echo "==========================================================">>${DIRS_LOG_FILE}
>> echo -e "Testing Binary:\t\t${INLINE_DIRS_BIN} -i 1 -s 20 -d ${OCFS2_DEVICE} ${MOUNT_POINT}">>${DIRS_LOG_FILE}
>>
>> - ${SUDO} ${MPIRUN} ${MPI_PLS_AGENT_ARG} -mca btl tcp,self -mca btl_tcp_if_include eth0 -np ${MPI_RANKS} --hostfile ${MPI_HOSTFILE} ${INLINE_DIRS_BIN} -i 1 -s 20 -d ${OCFS2_DEVICE} ${MOUNT_POINT}>>${DIRS_LOG_FILE} 2>&1
>> + ${SUDO} ${MPIRUN} ${MPI_PLS_AGENT_ARG} -mca btl tcp,self -mca btl_tcp_if_include eth0 -np ${MPI_RANKS} --host ${MPI_HOSTS} ${INLINE_DIRS_BIN} -i 1 -s 20 -d ${OCFS2_DEVICE} ${MOUNT_POINT}>>${DIRS_LOG_FILE} 2>&1
>> RET=$?
>> echo_status ${RET} |tee -a ${RUN_LOG_FILE}
>> exit_or_not ${RET}
>> @@ -335,7 +287,7 @@ f_run_dirs_test()
>> echo "==========================================================">>${DIRS_LOG_FILE}
>> echo -e "Testing Binary:\t\t${INLINE_DIRS_BIN} -i 1 -s 100 -d ${OCFS2_DEVICE} ${MOUNT_POINT}">>${DIRS_LOG_FILE}
>>
>> - ${SUDO} ${MPIRUN} ${MPI_PLS_AGENT_ARG} -mca btl tcp,self -mca btl_tcp_if_include eth0 -np ${MPI_RANKS} --hostfile ${MPI_HOSTFILE} ${INLINE_DIRS_BIN} -i 1 -s 100 -d ${OCFS2_DEVICE} ${MOUNT_POINT}>>${DIRS_LOG_FILE} 2>&1
>> + ${SUDO} ${MPIRUN} ${MPI_PLS_AGENT_ARG} -mca btl tcp,self -mca btl_tcp_if_include eth0 -np ${MPI_RANKS} --host ${MPI_HOSTS} ${INLINE_DIRS_BIN} -i 1 -s 100 -d ${OCFS2_DEVICE} ${MOUNT_POINT}>>${DIRS_LOG_FILE} 2>&1
>> RET=$?
>> echo_status ${RET} |tee -a ${RUN_LOG_FILE}
>> exit_or_not ${RET}
>> @@ -349,7 +301,7 @@ f_run_dirs_test()
>> echo "==========================================================">>${DIRS_LOG_FILE}
>> echo -e "Testing Binary:\t\t${INLINE_DIRS_BIN} -i 5 -s 20 -d ${OCFS2_DEVICE} ${MOUNT_POINT}">>${DIRS_LOG_FILE}
>>
>> - ${SUDO} ${MPIRUN} ${MPI_PLS_AGENT_ARG} -mca btl tcp,self -mca btl_tcp_if_include eth0 -np ${MPI_RANKS} --hostfile ${MPI_HOSTFILE} ${INLINE_DIRS_BIN} -i 1 -s 20 -d ${OCFS2_DEVICE} ${MOUNT_POINT}>>${DIRS_LOG_FILE} 2>&1
>> + ${SUDO} ${MPIRUN} ${MPI_PLS_AGENT_ARG} -mca btl tcp,self -mca btl_tcp_if_include eth0 -np ${MPI_RANKS} --host ${MPI_HOSTS} ${INLINE_DIRS_BIN} -i 5 -s 20 -d ${OCFS2_DEVICE} ${MOUNT_POINT}>>${DIRS_LOG_FILE} 2>&1
>> RET=$?
>> echo_status ${RET} |tee -a ${RUN_LOG_FILE}
>> exit_or_not ${RET}
>> diff --git a/programs/python_common/o2tf.py b/programs/python_common/o2tf.py
>> index 5e68aaf..df060cb 100644
>> --- a/programs/python_common/o2tf.py
>> +++ b/programs/python_common/o2tf.py
>> @@ -212,9 +212,9 @@ so just do a sanity check here to test if all nodes are available.
>> nodelen = len(nodelist)
>>
>> if remote_sh == '' or remote_sh == 'ssh':
>> - shopt = '-mca pls_rsh_agent ssh:rsh'
>> + shopt = '-mca plm_rsh_agent ssh:rsh'
>> else:
>> - shopt = '-mca pls_rsh_agent rsh:ssh'
>> + shopt = '-mca plm_rsh_agent rsh:ssh'
>>
>> fd = open(config.MPIHOSTS,'w',0)
>> for i in range(nodelen):
>> @@ -252,9 +252,9 @@ def openmpi_run(DEBUGON, nproc, cmd, nodes, remote_sh, logfile, w_flag):
>> nprocopt='-np ' + str(nproc)
>>
>> if remote_sh == '' or remote_sh == 'ssh':
>> - shopt = '-mca pls_rsh_agent ssh:rsh'
>> + shopt = '-mca plm_rsh_agent ssh:rsh'
>> else:
>> - shopt = '-mca pls_rsh_agent rsh:ssh'
>> + shopt = '-mca plm_rsh_agent rsh:ssh'
>> try:
>> if DEBUGON:
>> printlog('o2tf.mpi_run: MPIRUN = %s' % config.MPIRUN,
>>
More information about the Ocfs2-test-devel
mailing list