SHA256
1
0
forked from pool/slurm

Accepting request 1031255 from network:cluster

- Test Suite fixes:
  * Update README_Testsuite.md.
  * Clean up left over files when de-installing test suite.
  * Adjustment to test suite package: for SLE mark the openmpi4
    devel package and slurm-hdf5 optional.
  * Add -ffat-lto-objects to the build flags when LTO is set to
    make sure the object files we ship with the test suite still
    work correctly.
  * Improve setup-testsuite.sh: copy ssh fingerprints from all nodes.

- set environment variable SUSE_ZNOW to 0 in %build to avoid module load
  failures due to unresolved symbols as module take advantage of lazy
  bindings (bsc#1200030).

OBS-URL: https://build.opensuse.org/request/show/1031255
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/slurm?expand=0&rev=80
This commit is contained in:
Dominique Leuenberger 2022-10-26 10:32:00 +00:00 committed by Git OBS Bridge
commit 30dd030610
4 changed files with 56 additions and 29 deletions

View File

@ -22,12 +22,8 @@ For tests involving MPI this test suite currently uses OpenMPI version 4.
## Install and set up the Base System
1. Prepare image with a minimal minimal text mode installation.
2. Add NFS kernel server support:
```
# zypper install nfs-kernel-server
```
3. Install, enable and start sshd and make sure root is able to log in
1. Prepare image with a minimal text mode installation.
2. Install, enable and start sshd and make sure root is able to log in
without password across all nodes.
```
# zypper install openssh-server openssh-clients
@ -35,18 +31,18 @@ For tests involving MPI this test suite currently uses OpenMPI version 4.
# ssh-keygen -t rsa -f .ssh/id_rsa -N
# cat .ssh/id_rsa.pub >> .ssh/authorized_keys
```
4. Create a test user 'auser' allow ssh from/to root:
3. Create a test user 'auser' allow ssh from/to root:
```
# useradd -m auser
# cp -r /root/.ssh /home/auser
```
5. Set up a persistent network if to obtain the network address and
4. Set up a persistent network if to obtain the network address and
hostname thru DHCP:
```
# echo 'SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", '\
'ATTR{address}=="?*", ATTR{dev_id}=="0x0", ATTR{type}=="1",'\
' KERNEL=="?*", NAME="lan0"
# cat > root/etc/sysconfig/network/ifcfg-lan0 <<EOF
' KERNEL=="?*", NAME="lan0" >> /etc/udev/rules.d/70-persistent-net.rules
# cat > /etc/sysconfig/network/ifcfg-lan0 <<EOF
BOOTPROTO='dhcp'
MTU=''
REMOTE_IPADDR=''
@ -59,21 +55,20 @@ For tests involving MPI this test suite currently uses OpenMPI version 4.
## Install and set up the Slurm specific Environment
1. Install package slurm-testsuite.
2. Set up, enable mariadb, add slurm accounting database:
2. Set up, enable & start mariadb, add slurm accounting database:
```
# sed -i -e "/^bind-address/s@\(^.*$\)@# \1@" /etc/my.cnf
# systemctl start maridb
# systemctl start mariadb
# mysql -uroot -e "create user 'slurm'@'node01' identified by 'linux';"
# mysql -uroot -e "create database slurm_acct_db;"
# mysql -uroot -e "grant all on slurm_acct_db.* TO 'slurm'@'node01';"
```
3. Set up shared home, testsuite and slurm config directories, enable
NFS server:
3. Set up shared home, testsuite and slurm config directories, install and
enable NFS kernel server.
```
# mkdir -p /srv/home
# mv /home/auser /srv/home
# mkdir /home/slurm-testsuite
# chown slurm:slurm /home/slurm-testsuite
# cat >> /etc/exports <<EOF
/srv/home *(rw,no_subtree_check,sync,no_root_squash)
/srv/slurm-testsuite *(rw,no_subtree_check,sync,no_root_squash)
@ -85,9 +80,16 @@ For tests involving MPI this test suite currently uses OpenMPI version 4.
node01:/srv/slurm-testsuite/config /etc/slurm nfs sync,hard,rw 0 0
node01:/srv/slurm-testsuite/shared /var/lib/slurm/shared nfs sync,hard,rw 0 0
node01:/srv/slurm-testsuite /home/slurm-testsuite nfs sync,hard,rw 0 0
EOF
# zypper install nfs-kernel-server
# systemctl enable nfs-server
```
4. Enable munge and slurmd:
```
# systemctl enable munge
# systemctl enable slurmd
```
# Clone Nodes and bring up Test System
1. Now halt the system and duplicate it 3 times.
@ -95,13 +97,8 @@ For tests involving MPI this test suite currently uses OpenMPI version 4.
2. Set up the dhcp server and make sure the nodes receive the hostnames
``node01```,..., ```node04```.
3. Enable munge and slurmd:
```
# systemctl enable munge
# systemctl enable slurmd
```
4. Boot all 4 nodes (start with ```node01```).
5. On ```node01```, log in as ```root``` and run ```setup-testsuite.sh```:
```
# ./setup-testsuite.sh
@ -110,7 +107,7 @@ For tests involving MPI this test suite currently uses OpenMPI version 4.
```
# sudo -s -u slurm
$ module load gnu openmpi
$ cd /home/test/home/slurm-testsuite/testsuite/expect
$ cd /home/slurm-testsuite/testsuite/expect
$ ./regression.py
```

View File

@ -1,3 +1,16 @@
-------------------------------------------------------------------
Fri Oct 21 15:14:30 UTC 2022 - Egbert Eich <eich@suse.com>
- Test Suite fixes:
* Update README_Testsuite.md.
* Clean up left over files when de-installing test suite.
* Adjustment to test suite package: for SLE mark the openmpi4
devel package and slurm-hdf5 optional.
* Add -ffat-lto-objects to the build flags when LTO is set to
make sure the object files we ship with the test suite still
work correctly.
* Improve setup-testsuite.sh: copy ssh fingerprints from all nodes.
-------------------------------------------------------------------
Fri Oct 14 08:49:24 UTC 2022 - Christian Goll <cgoll@suse.com>
@ -106,6 +119,9 @@ Tue May 31 12:56:05 UTC 2022 - Christian Goll <cgoll@suse.com>
"bf_licenses" option in SchedulerParameters.
- removed file slurm-2.4.4-init.patch as sysvinit is now realy deprecated
- removed file load-pmix-major-version.patch as fixed upstream
- set environment variable SUSE_ZNOW to 0 in %build to avoid module load
failures due to unresolved symbols as module take advantage of lazy
bindings (bsc#1200030).
-------------------------------------------------------------------
Tue May 10 10:26:02 UTC 2022 - Egbert Eich <eich@suse.com>

View File

@ -576,6 +576,9 @@ Group: Productivity/Clustering/Computing
Plugins for specific cray hardware, includes power and knl node management.
Contains also cray specific documentation.
# Certain packages are not shipped with SLE.
%define ts_depends %{?sle_version:Recommends}%{!?sle_version:Requires}
%package testsuite
Summary: Regression tests from Slurm sources
Group: Productivity/Clustering/Computing
@ -583,7 +586,7 @@ Requires: %{name} = %version
Requires: %{name}-auth-none = %version
Requires: %{name}-cray = %version
Requires: %{name}-devel = %version
Requires: %{name}-hdf5 = %version
%{?have_hdf5:%ts_depends: %{name}-hdf5 = %version}
Requires: %{name}-lua = %version
Requires: %{name}-munge = %version
Requires: %{name}-node = %version
@ -596,11 +599,12 @@ Requires: %{name}-sql = %version
Requires: %{name}-torque = %version
Requires: mariadb
%{?with_pmix:Requires: pmix-devel}
Requires: bind-utils
Requires: bzip2
Requires: expect
Requires: gcc-c++
Requires: libnuma-devel
Requires: openmpi4-gnu-hpc-devel
%ts_depends: openmpi4-gnu-hpc-devel
Requires: pdsh
Requires: perl-%{name} = %version
Requires: sudo
@ -641,6 +645,14 @@ mkdir -p mybin; ln -s /usr/bin/python2 mybin/python3
# needed as slurm works that way bsc#1200030
export SUSE_ZNOW=0
# To make stripped object files work which we ship in the
# testsuite package we need to build with -ffat-lto-objects.
# This should not affect anything as we do not ship static
# libraries and object files - except for the testsuite.
%if "%{?_lto_cflags}" != ""
%global _lto_cflags %{_lto_cflags} -ffat-lto-objects
%endif
autoreconf
[ -e $(pwd)/mybin ] && PATH=$(pwd)/mybin:$PATH
%configure --enable-shared \
@ -1055,7 +1067,9 @@ rm -rf /srv/slurm-testsuite/src /srv/slurm-testsuite/testsuite /srv/slurm-testsu
runuser -u %slurm_u -- tar --same-owner -C /srv/slurm-testsuite -xjf %{_datadir}/%{name}/slurmtest.tar.bz2
%preun testsuite
rm -rf /srv/slurm-testsuite/src /srv/slurm-testsuite/testsuite /srv/slurm-testsuite/config.h
rm -rf /srv/slurm-testsuite/src /srv/slurm-testsuite/testsuite \
/srv/slurm-testsuite/slurm /srv/slurm-testsuite/shared \
/srv/slurm-testsuite/config.h
%{!?nil:
# On update the %%postun code of the old package restarts the

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:981cd56a0203f88f65ff762b6ab09655d7f529bc383e5ffc7f5d0a034001a9ea
size 3104
oid sha256:ecf47b27b894b01e983e0fc5ad1b782f475d6dcd51408c47aea1b491186289ec
size 3136