@LDISKFS_ENABLED_FALSE@BUILD_OSD_LDISKFS = false
@ZFS_ENABLED_TRUE@BUILD_OSD_ZFS = true
@ZFS_ENABLED_FALSE@BUILD_OSD_ZFS = false
+@BUILD_LUSTREIOKIT_TRUE@BUILD_LUSTREIOKIT = true
+@BUILD_LUSTREIOKIT_FALSE@BUILD_LUSTREIOKIT = false
AUTOMAKE_OPTIONS = foreign
endif # MODULES
dist-hook:
- $(RM) $(distdir)/lustre-iokit/*.spec
find $(distdir) -name .deps -o \
-name CVS -o \
-name .svn -o \
if [[ "X$(BUILD_OSD_ZFS)" = Xtrue ]]; then \
RPMARGS="$$RPMARGS --with zfs"; \
fi; \
+ if [[ "X$(BUILD_LUSTREIOKIT)" = Xfalse ]]; then \
+ RPMARGS="$$RPMARGS --without lustre_iokit"; \
+ fi; \
echo "Building Lustre RPM with $$RPMARGS"; \
eval rpmbuild $$RPMARGS -ta $(distdir).tar.gz
if [[ "X$(BUILD_TESTS)" = Xfalse ]]; then \
RPMARGS="--without lustre_tests"; \
fi; \
+ if [[ "X$(BUILD_LUSTREIOKIT)" = Xfalse ]]; then \
+ RPMARGS="$$RPMARGS --without lustre_iokit"; \
+ fi; \
eval rpmbuild $$RPMARGS -ts $(distdir).tar.gz
rpms:
echo "Checking for a complete tree..."
REQUIRED_DIRS="libcfs lnet lustre"
OPTIONAL_DIRS="snmp portals"
-CONFIGURE_DIRS="libsysio lustre-iokit"
+CONFIGURE_DIRS="libsysio"
for dir in $REQUIRED_DIRS ; do
test -d "$dir" || \
#
# LB_PATH_LUSTREIOKIT
#
-# Handle internal/external lustre-iokit
+# We no longer handle external lustre-iokit
#
AC_DEFUN([LB_PATH_LUSTREIOKIT],
-[AC_ARG_WITH([lustre-iokit],
- AC_HELP_STRING([--with-lustre-iokit=path],
- [set path to lustre-iokit source (default is included lustre-iokit)]),
+[AC_ARG_ENABLE([iokit],
+ AC_HELP_STRING([--disable-iokit],
+ [disable iokit (default is enable)]),
[],[
- with_lustre_iokit='yes'
+ enable_iokit='yes'
])
-AC_MSG_CHECKING([location of lustre-iokit])
-enable_lustre_iokit="$with_lustre_iokit"
-case x$with_lustre_iokit in
- xyes)
- AC_MSG_RESULT([internal])
- LB_CHECK_FILE([$srcdir/lustre-iokit/ior-survey/ior-survey],[],[
- AC_MSG_ERROR([A complete internal lustre-iokit was not found.])
- ])
- LUSTREIOKIT_SUBDIR="lustre-iokit"
- LUSTREIOKIT="$PWD/lustre-iokit"
- ;;
- xno)
- AC_MSG_RESULT([disabled])
- ;;
- *)
- AC_MSG_RESULT([$with_lustre_iokit])
- LB_CHECK_FILE([$with_lustre_iokit/ior-survey/ior_survey],[],[
- AC_MSG_ERROR([A complete (built) external lustre-iokit was not found.])
- ])
- LUSTREIOKIT="$with_lustre_iokit"
- ;;
-esac
+AC_MSG_CHECKING([whether to build iokit])
+AC_MSG_RESULT([$enable_iokit])
+AS_IF([test "x$enable_iokit" = xyes], [LUSTREIOKIT_SUBDIR="lustre-iokit"], [LUSTREIOKIT_SUBDIR=""])[]dnl
AC_SUBST(LUSTREIOKIT_SUBDIR)
-# We have to configure even if we don't build here for make dist to work
-AC_CONFIG_SUBDIRS([lustre-iokit])
-AM_CONDITIONAL(BUILD_LUSTREIOKIT, [test "x$with_lustre_iokit" != xno])
+AM_CONDITIONAL(BUILD_LUSTREIOKIT, [test "x$enable_iokit" = xyes])
])
# Define no libcfs by default.
contrib/scripts/Makefile
ldiskfs/Makefile
ldiskfs/autoMakefile
+ lustre-iokit/Makefile
+ lustre-iokit/obdfilter-survey/Makefile
+ lustre-iokit/ost-survey/Makefile
+ lustre-iokit/sgpdd-survey/Makefile
+ lustre-iokit/mds-survey/Makefile
+ lustre-iokit/ior-survey/Makefile
+ lustre-iokit/stats-collect/Makefile
)
])
}
-build_iokit() {
- local rpmbuildopt="$1"
-
- pushd lustre-iokit > /dev/null || return 255
-
- if ! ./configure; then
- echo "failed to configure in lustre-iokit"
- popd >/dev/null # pushd lustre-iokit
- return 255
- fi
-
- if ! make dist; then
- echo "failed to make dist in lustre-iokit"
- popd >/dev/null # pushd lustre-iokit
- return 255
- fi
-
- if ! $RPMBUILD $rpmbuildopt lustre-iokit*.tar.gz \
- --define "_tmppath /var/tmp" \
- --define "_topdir $TOPDIR" 2>&1; then
- popd >/dev/null # pushd lustre-iokit
- return 255
- fi
-
- if $DO_SRC && ! $RPMBUILD -ts lustre-iokit*.tar.gz \
- --define "_tmppath /var/tmp" \
- --define "_topdir $TOPDIR" 2>&1; then
- popd >/dev/null # pushd lustre-iokit
- return 255
- fi
- popd >/dev/null # pushd lustre-iokit
-}
-
build_lustre() {
local linux="$1"
local linuxobj="$2"
fi
fi
- if $IOKITRPM; then
- if ! build_iokit $rpmbuildopt; then
- echo "failed to build lustre-iokit"
- popd >/dev/null # pushd lustre
- return 255
- fi
- fi
-
# convert the $PATCHLESS boolean to an empty/not-empty boolean
# as silly as this seems, it makes the syntax of the rpmbuild command
# simpler and not need an eval to deal with the quotes in the quotes
lustre_tests="no"
fi
+ local lustre_iokit=""
+ if ! $IOKITRPM; then
+ lustre_iokit="no"
+ fi
+
local osd_zfs=""
if $OSDZFSRPM; then
osd_zfs="yes"
$RPMBUILD $targets $rpmbuildopt "$LUSTRE" \
${is_patchless:+--without servers} \
${lustre_tests:+--without lustre_tests} \
+ ${lustre_iokit:+--without lustre_iokit} \
${osd_zfs:+--with zfs} \
${osd_ldiskfs:+--with ldiskfs} \
${FIND_REQUIRES:+--define "__find_requires $FIND_REQUIRES"} \
if ! $RPMBUILD -ts "$LUSTRE" \
${is_patchless:+--without servers} \
${lustre_tests:+--without lustre_tests} \
+ ${lustre_iokit:+--without lustre_iokit} \
${FIND_REQUIRES:+--define "__find_requires $FIND_REQUIRES"} \
--define "configure_args $confoptions ${CONFIGURE_FLAGS}" \
--define "kdir $linux" \
SUBDIRS = obdfilter-survey sgpdd-survey ost-survey ior-survey
SUBDIRS += mds-survey stats-collect
-
-EXTRA_DIST = lustre-iokit.spec
-
-rpms rpm: dist
- rpmbuild -ta $(PACKAGE)-$(VERSION).tar.gz
-
-srpm: dist
- rpmbuild -ts $(PACKAGE)-$(VERSION).tar.gz
+++ /dev/null
-#!/bin/sh
-
-fatal() {
- local msg="$1"
-
- echo "FATAL: $msg"
- exit 1
-}
-
-run_cmd() {
- local cmd="$1"
-
- echo "Running $cmd..."
- $cmd || fatal "$cmd failed!"
-}
-
-run_cmd ${ACLOCAL:-aclocal}
-run_cmd "${AUTOMAKE:-automake} -a -c"
-run_cmd autoconf
-
-echo "Finished. Ready for ./configure ..."
+++ /dev/null
-AC_PREREQ([2.57])
-AC_INIT([lustre-iokit],[2.3.65], [http://bugs.hpdd.intel.com/])
-AC_CONFIG_AUX_DIR([.])
-AM_INIT_AUTOMAKE
-AC_PATH_PROGS(BASH, bash)
-AC_PATH_PROGS(PERL, perl)
-RELEASE="1"
-AC_SUBST(RELEASE)
-
-AC_OUTPUT(
-lustre-iokit.spec
-Makefile
-sgpdd-survey/Makefile
-obdfilter-survey/Makefile
-ost-survey/Makefile
-ior-survey/Makefile
-mds-survey/Makefile
-stats-collect/Makefile
-)
+++ /dev/null
-# lustre-iokit.spec
-%define name @PACKAGE@
-%define version @VERSION@
-%define release @RELEASE@
-
-Summary: The Lustre IO-Kit is a collection of benchmark tools for a cluster with the Lustre file system.
-Name: %{name}
-Version: %{version}
-Release: %{release}
-License: GPL
-Group: Applications/System
-Source: %{name}-%{version}.tar.gz
-URL: http://wiki.whamcloud.com/
-BuildRoot: /var/tmp/%{name}-%{version}-root
-Provides: %{name} = %{version}
-BuildArch: noarch
-Requires: python > 2.2, sg3_utils
-
-%description
-This package includes five tools:
-sgpdd-survey:
-A test of the 'bare metal' performance, bypassing as much of the kernel as we can. Uses the sgp_dd utility.
-
-obdfilter-survey
-This survey can be run in 3 modes to test disk I/O including the filesystem,
-network I/O, and disk I/O via the network. The script does sequential I/O
-with varying numbers of threads and objects (files) by using lctl::test_brw
-to drive the echo_client connected to local or remote obdfilter instances,
-or remote obdecho instances.
-
-ost-survey
-This survey tests the client-to-disk performance of individual OSTs, and
-ranks then for comparison.
-
-stats-collect
-This script will collect IO stats on a defined set of nodes.
-
-ior-survey:
-A script to run the IOR benchmark. The latest version can be downloaded from http://www.llnl.gov/asci/purple/benchmarks/limited/ior/
-
-mds-survey:
-This survey tests the local metadata performance using the echo_client to drive
-the MDD layer to perform operations. It is run with multiple threads (to
-simulate MDT service threads) locally on the MDS node, and does not need Lustre
-clients in order to run
-
-%prep
-%setup -qn %{name}-%{version}
-
-%build
-rm -fr $RPM_BUILD_ROOT
-./configure --prefix=/usr
-make
-
-%install
-make install DESTDIR=$RPM_BUILD_ROOT
-
-%files
-/usr/bin/ior-survey
-/usr/bin/parse-ior
-/usr/bin/libecho
-/usr/bin/obdfilter-survey
-/usr/bin/plot-obdfilter
-/usr/bin/plot-ost
-/usr/bin/ost-survey
-/usr/bin/sgpdd-survey
-/usr/bin/plot-sgpdd
-/usr/bin/lstats.sh
-/usr/bin/gather_stats_everywhere.sh
-/usr/bin/config.sh
-/usr/bin/mds-survey
-%doc obdfilter-survey/README.obdfilter-survey
-%doc ior-survey/README.ior-survey
-%doc ost-survey/README.ost-survey
-%doc mds-survey/README.mds-survey
-%doc sgpdd-survey/README.sgpdd-survey
-%doc stats-collect/README.lstats.sh
-
-
-%changelog
-* Fri Jan 13 2012 Minh Diep
-- Added mds-survey
-* Fri Dec 30 2011 Minh Diep
-- WhamCloud release for bug fixes
-* Tue Jul 24 2007 Cliff White
-- Added stats-collect
-* Mon Apr 9 2007 Cliff White
-- Merged with existing, changed to .in format.
-* Thu Oct 4 2006 Kalpak Shah
-- Created the spec file.
%bcond_without ldiskfs
%bcond_with zfs
%bcond_without lustre_tests
+%bcond_without lustre_iokit
%if %{without servers}
# --without servers overrides --with {ldiskfs|zfs}
Summary: Lustre testing framework
Group: Development/Kernel
Provides: %{name}-tests = %{version}
-Requires: %{name} = %{version}, %{name}-modules = %{version}
+Requires: %{name} = %{version}, %{name}-modules = %{version}, lustre-iokit
%description tests
This package contains a set of test binaries and scripts that are intended
to be used by the Lustre testing framework.
+%if %{with lustre_iokit}
+%package -n lustre-iokit
+Summary: The Lustre IO-Kit is a collection of benchmark tools for a cluster with the Lustre file system.
+Group: Applications/System
+Requires: python > 2.2, sg3_utils
+
+%description -n lustre-iokit
+This package includes five tools:
+sgpdd-survey:
+A test of the 'bare metal' performance, bypassing as much of the kernel as we can. Uses the sgp_dd utility.
+
+obdfilter-survey
+This survey can be run in 3 modes to test disk I/O including the filesystem,
+network I/O, and disk I/O via the network. The script does sequential I/O
+with varying numbers of threads and objects (files) by using lctl::test_brw
+to drive the echo_client connected to local or remote obdfilter instances,
+or remote obdecho instances.
+
+ost-survey
+This survey tests the client-to-disk performance of individual OSTs, and
+ranks then for comparison.
+
+stats-collect
+This script will collect IO stats on a defined set of nodes.
+
+ior-survey:
+A script to run the IOR benchmark. The latest version can be downloaded from
+http://www.llnl.gov/asci/purple/benchmarks/limited/ior/
+
+mds-survey:
+This survey tests the local metadata performance using the echo_client to drive
+the MDD layer to perform operations. It is run with multiple threads (to
+simulate MDT service threads) locally on the MDS node, and does not need Lustre
+clients in order to run
+%endif
+
%if 0%{?suse_version}
%debug_package
%endif
%else
CONFIGURE_ARGS="$CONFIGURE_ARGS --disable-tests --disable-liblustre-tests"
%endif
+%if %{without lustre_iokit}
+CONFIGURE_ARGS="$CONFIGURE_ARGS --disable-iokit"
+%endif
# if %%kdir was given, make sure it's not in the configure arguments
if [ -n "%kdir" ]; then
cat >lustre.files <<EOF
%attr(-, root, root) %{?rootdir}/sbin/mount.lustre
%attr(-, root, root) %{_sbindir}/*
-%attr(-, root, root) %{_bindir}/*
+%attr(-, root, root) %{_bindir}/lfs
+%attr(-, root, root) %{_bindir}/lfs_migrate
+%attr(-, root, root) %{_bindir}/llbackup
+%attr(-, root, root) %{_bindir}/llobdstat
+%attr(-, root, root) %{_bindir}/llstat
+%attr(-, root, root) %{_bindir}/lustre_req_history
+%attr(-, root, root) %{_bindir}/mcreate
+%attr(-, root, root) %{_bindir}/munlink
+%attr(-, root, root) %{_bindir}/plot-llstat
+%attr(-, root, root) %{_bindir}/req_layout
%attr(-, root, root) %{_libdir}/libptlctl.a
%attr(-, root, root) %{_libdir}/liblustreapi.a
%attr(-, root, root) %{_libdir}/liblustreapi.so
%files tests -f lustre-tests.files
%endif
+%if %{with lustre_iokit}
+%files -n lustre-iokit
+%attr(-, root, root) %{_bindir}/ior-survey
+%attr(-, root, root) %{_bindir}/parse-ior
+%attr(-, root, root) %{_bindir}/libecho
+%attr(-, root, root) %{_bindir}/obdfilter-survey
+%attr(-, root, root) %{_bindir}/plot-obdfilter
+%attr(-, root, root) %{_bindir}/plot-ost
+%attr(-, root, root) %{_bindir}/ost-survey
+%attr(-, root, root) %{_bindir}/sgpdd-survey
+%attr(-, root, root) %{_bindir}/plot-sgpdd
+%attr(-, root, root) %{_bindir}/lstats.sh
+%attr(-, root, root) %{_bindir}/gather_stats_everywhere.sh
+%attr(-, root, root) %{_bindir}/config.sh
+%attr(-, root, root) %{_bindir}/mds-survey
+%doc lustre-iokit/obdfilter-survey/README.obdfilter-survey
+%doc lustre-iokit/ior-survey/README.ior-survey
+%doc lustre-iokit/ost-survey/README.ost-survey
+%doc lustre-iokit/mds-survey/README.mds-survey
+%doc lustre-iokit/sgpdd-survey/README.sgpdd-survey
+%doc lustre-iokit/stats-collect/README.lstats.sh
+%endif
+
%if %{defined rpm_post_base}
%post
if [ -x %{rpm_post_base}.sh ]; then