|
| 1 | +# Slrum Installation with source code |
| 2 | +## Prerequisite |
| 3 | +``` |
| 4 | +apt-get install git gcc make ruby ruby-dev libpam0g-dev libmariadb-dev mariadb-server build-essential libssl-dev -y |
| 5 | +apt install libcgroup-dev libpam-cgroup libdbus-1-dev |
| 6 | +``` |
| 7 | +## Steps |
| 8 | +1. install mysql |
| 9 | +``` |
| 10 | +apt install mysql-server |
| 11 | +``` |
| 12 | + |
| 13 | +2. build and install libjwt |
| 14 | +dependency: apt install openssl libjansson-dev -y |
| 15 | +``` |
| 16 | +git clone --depth 1 --single-branch -b v1.12.0 https://gitee.com/mirrors_benmcollins/libjwt libjwt |
| 17 | +cd libjwt |
| 18 | +autoreconf --force --install |
| 19 | +./configure --prefix=/usr/local |
| 20 | +make -j |
| 21 | +make install |
| 22 | +``` |
| 23 | +3. install json-c http-parser |
| 24 | +``` |
| 25 | +git clone --depth 1 --single-branch -b json-c-0.15-20200726 https://github.com/json-c/json-c.git json-c |
| 26 | +mkdir json-c-build |
| 27 | +cd json-c-build |
| 28 | +cmake ../json-c |
| 29 | +make |
| 30 | +sudo make install |
| 31 | +cd .. |
| 32 | +git clone --depth 1 --single-branch -b v2.9.4 https://gitee.com/xzgan/http-parser http_parser |
| 33 | +cd http_parser |
| 34 | +make |
| 35 | +sudo make install |
| 36 | +``` |
| 37 | + |
| 38 | +4. install munge |
| 39 | +reference: https://www.cnblogs.com/liwanliangblog/p/9194032.html |
| 40 | +``` |
| 41 | +git clone -b munge-0.5.15 https://gitee.com/xzgan/munge |
| 42 | +cd munge |
| 43 | +./bootstrap |
| 44 | +./configure --prefix=/usr/local/munge --sysconfdir=/usr/local/munge/etc --localstatedir=/usr/local/munge/local --with-runstatedir=/usr/local/var/run --libdir=/usr/local/munge/lib64 |
| 45 | +make -j 4 |
| 46 | +make install |
| 47 | +export PATH=/usr/local/munge/sbin/:$PATH |
| 48 | +useradd -s /sbin/nologin -u 601 munge |
| 49 | +sudo -u munge mkdir -p /usr/local/var/run/munge |
| 50 | +chmod g-w /usr/local/munge/run/munge |
| 51 | +chown -R munge.munge /usr/local/munge/ |
| 52 | +chmod 700 /usr/local/munge/etc/ |
| 53 | +chmod 711 /usr/local/munge/local/ |
| 54 | +chmod 755 /usr/local/var/run/munge/ |
| 55 | +chmod 711 /usr/local/munge/lib |
| 56 | +
|
| 57 | +#create key |
| 58 | +sudo -u munge /usr/local/munge/sbin/mungekey --verbose |
| 59 | +chmod 600 /usr/local/munge/etc/munge/munge.key |
| 60 | +#create service |
| 61 | +ln -s /usr/local/munge/lib/systemd/system/munge.service /usr/lib/systemd/system/munge.service |
| 62 | +systemctl daemon-reload |
| 63 | +systemctl start munge |
| 64 | +systemctl status munge |
| 65 | +``` |
| 66 | + |
| 67 | +5. Install slurm |
| 68 | +wget https://download.schedmd.com/slurm/slurm-23.02.6.tar.bz2 |
| 69 | +Configure Slurm |
| 70 | +``` |
| 71 | +./configure -sysconfdir=/etc/slurm/ --libdir=/usr/local/lib --with-munge=/usr/local/munge --with-jwt=/usr/local/ --with-http-parser=/usr/local/ --enable-slurmrestd |
| 72 | +CORES=$(grep processor /proc/cpuinfo | wc -l) |
| 73 | +make -j $CORES |
| 74 | +make install |
| 75 | +``` |
| 76 | + |
| 77 | +5. check |
| 78 | +/usr/sbin/slurmd |
| 79 | +plugin so: |
| 80 | +/usr/local/lib/slurm |
| 81 | + |
| 82 | +6. slurm auth |
| 83 | +``` |
| 84 | +mkdir -p /var/spool/slurm |
| 85 | +chown slurm: /var/spool/slurm |
| 86 | +mkdir -p /var/log/slurm |
| 87 | +chown slurm: /var/log/slurm |
| 88 | +mkdir /var/spool/slurmctld |
| 89 | +chown slurm.slurm /var/spool/slurm/ctld |
| 90 | +mkdir -p /var/spool/slurm/ctld/ |
| 91 | +cp $llm-scheduler-api/slurm/jwt_hs256.key /var/spool/slurm/ctld/ |
| 92 | +``` |
| 93 | + |
| 94 | +7. refer $llm-scheduler-api/slurm/conf and configure /etc/slurm/slurm.conf, /etc/slurm/slurmdbd.conf, /etc/slurm/slurmrestd.conf |
| 95 | +6. start slrum daemon on every node |
| 96 | +``` |
| 97 | +slurmdbd |
| 98 | +slurmd |
| 99 | +slurmctrl |
| 100 | +``` |
| 101 | + |
| 102 | +7. config ldap for all nodes: https://computingforgeeks.com/how-to-configure-ubuntu-as-ldap-client/ |
| 103 | + |
| 104 | +8. start slurm slurmrestd in head node and configure slurm api to .env |
| 105 | +``` |
| 106 | +slurmrestd -f /etc/slurm/slurmrestd.conf -a rest_auth/jwt 0.0.0.0:3000 -vvvv 2>&1 >> slurm.log & |
| 107 | +``` |
0 commit comments