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 ## Install and set up the Base System
1. Prepare image with a minimal minimal text mode installation. 1. Prepare image with a minimal text mode installation.
2. Add NFS kernel server support: 2. Install, enable and start sshd and make sure root is able to log in
```
# zypper install nfs-kernel-server
```
3. Install, enable and start sshd and make sure root is able to log in
without password across all nodes. without password across all nodes.
``` ```
# zypper install openssh-server openssh-clients # 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 # ssh-keygen -t rsa -f .ssh/id_rsa -N
# cat .ssh/id_rsa.pub >> .ssh/authorized_keys # 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 # useradd -m auser
# cp -r /root/.ssh /home/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: hostname thru DHCP:
``` ```
# echo 'SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", '\ # echo 'SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", '\
'ATTR{address}=="?*", ATTR{dev_id}=="0x0", ATTR{type}=="1",'\ 'ATTR{address}=="?*", ATTR{dev_id}=="0x0", ATTR{type}=="1",'\
' KERNEL=="?*", NAME="lan0" ' KERNEL=="?*", NAME="lan0" >> /etc/udev/rules.d/70-persistent-net.rules
# cat > root/etc/sysconfig/network/ifcfg-lan0 <<EOF # cat > /etc/sysconfig/network/ifcfg-lan0 <<EOF
BOOTPROTO='dhcp' BOOTPROTO='dhcp'
MTU='' MTU=''
REMOTE_IPADDR='' 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 ## Install and set up the Slurm specific Environment
1. Install package slurm-testsuite. 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 # 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 user 'slurm'@'node01' identified by 'linux';"
# mysql -uroot -e "create database slurm_acct_db;" # mysql -uroot -e "create database slurm_acct_db;"
# mysql -uroot -e "grant all on slurm_acct_db.* TO 'slurm'@'node01';" # mysql -uroot -e "grant all on slurm_acct_db.* TO 'slurm'@'node01';"
``` ```
3. Set up shared home, testsuite and slurm config directories, enable 3. Set up shared home, testsuite and slurm config directories, install and
NFS server: enable NFS kernel server.
``` ```
# mkdir -p /srv/home # mkdir -p /srv/home
# mv /home/auser /srv/home # mv /home/auser /srv/home
# mkdir /home/slurm-testsuite
# chown slurm:slurm /home/slurm-testsuite
# cat >> /etc/exports <<EOF # cat >> /etc/exports <<EOF
/srv/home *(rw,no_subtree_check,sync,no_root_squash) /srv/home *(rw,no_subtree_check,sync,no_root_squash)
/srv/slurm-testsuite *(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/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/shared /var/lib/slurm/shared nfs sync,hard,rw 0 0
node01:/srv/slurm-testsuite /home/slurm-testsuite 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 # systemctl enable nfs-server
``` ```
4. Enable munge and slurmd:
```
# systemctl enable munge
# systemctl enable slurmd
```
# Clone Nodes and bring up Test System # Clone Nodes and bring up Test System
1. Now halt the system and duplicate it 3 times. 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 2. Set up the dhcp server and make sure the nodes receive the hostnames
``node01```,..., ```node04```. ``node01```,..., ```node04```.
3. Enable munge and slurmd:
```
# systemctl enable munge
# systemctl enable slurmd
```
4. Boot all 4 nodes (start with ```node01```). 4. Boot all 4 nodes (start with ```node01```).
5. On ```node01```, log in as ```root``` and run ```setup-testsuite.sh```: 5. On ```node01```, log in as ```root``` and run ```setup-testsuite.sh```:
``` ```
# ./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 # sudo -s -u slurm
$ module load gnu openmpi $ module load gnu openmpi
$ cd /home/test/home/slurm-testsuite/testsuite/expect $ cd /home/slurm-testsuite/testsuite/expect
$ ./regression.py $ ./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> 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. "bf_licenses" option in SchedulerParameters.
- removed file slurm-2.4.4-init.patch as sysvinit is now realy deprecated - removed file slurm-2.4.4-init.patch as sysvinit is now realy deprecated
- removed file load-pmix-major-version.patch as fixed upstream - 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> 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. Plugins for specific cray hardware, includes power and knl node management.
Contains also cray specific documentation. Contains also cray specific documentation.
# Certain packages are not shipped with SLE.
%define ts_depends %{?sle_version:Recommends}%{!?sle_version:Requires}
%package testsuite %package testsuite
Summary: Regression tests from Slurm sources Summary: Regression tests from Slurm sources
Group: Productivity/Clustering/Computing Group: Productivity/Clustering/Computing
@ -583,7 +586,7 @@ Requires: %{name} = %version
Requires: %{name}-auth-none = %version Requires: %{name}-auth-none = %version
Requires: %{name}-cray = %version Requires: %{name}-cray = %version
Requires: %{name}-devel = %version Requires: %{name}-devel = %version
Requires: %{name}-hdf5 = %version %{?have_hdf5:%ts_depends: %{name}-hdf5 = %version}
Requires: %{name}-lua = %version Requires: %{name}-lua = %version
Requires: %{name}-munge = %version Requires: %{name}-munge = %version
Requires: %{name}-node = %version Requires: %{name}-node = %version
@ -596,11 +599,12 @@ Requires: %{name}-sql = %version
Requires: %{name}-torque = %version Requires: %{name}-torque = %version
Requires: mariadb Requires: mariadb
%{?with_pmix:Requires: pmix-devel} %{?with_pmix:Requires: pmix-devel}
Requires: bind-utils
Requires: bzip2 Requires: bzip2
Requires: expect Requires: expect
Requires: gcc-c++ Requires: gcc-c++
Requires: libnuma-devel Requires: libnuma-devel
Requires: openmpi4-gnu-hpc-devel %ts_depends: openmpi4-gnu-hpc-devel
Requires: pdsh Requires: pdsh
Requires: perl-%{name} = %version Requires: perl-%{name} = %version
Requires: sudo Requires: sudo
@ -641,6 +645,14 @@ mkdir -p mybin; ln -s /usr/bin/python2 mybin/python3
# needed as slurm works that way bsc#1200030 # needed as slurm works that way bsc#1200030
export SUSE_ZNOW=0 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 autoreconf
[ -e $(pwd)/mybin ] && PATH=$(pwd)/mybin:$PATH [ -e $(pwd)/mybin ] && PATH=$(pwd)/mybin:$PATH
%configure --enable-shared \ %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 runuser -u %slurm_u -- tar --same-owner -C /srv/slurm-testsuite -xjf %{_datadir}/%{name}/slurmtest.tar.bz2
%preun testsuite %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: %{!?nil:
# On update the %%postun code of the old package restarts the # 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 version https://git-lfs.github.com/spec/v1
oid sha256:981cd56a0203f88f65ff762b6ab09655d7f529bc383e5ffc7f5d0a034001a9ea oid sha256:ecf47b27b894b01e983e0fc5ad1b782f475d6dcd51408c47aea1b491186289ec
size 3104 size 3136