リモート作業中にうっかり、
sudo nmcli con down eno1
sudo nmcli con up eno1
をやってしまって接続が切れたノード、物理ログインしてリブートしたら固定IPだけになった。そして、ypbindが走ってるので/homeでpermission denied。まず固定IPを指定してリブート、が最初の作業だな。
まずはNFSのマウント確認。
$ sudo mount -t nfs 192.168.1.20:/home /mnt/home_nfs
Created symlink /run/systemd/system/remote-fs.target.wants/rpc-statd.service → /usr/lib/systemd/system/rpc-statd.service.
この状態で、
$ cd
-bash: cd: /home/watanabe: 許可がありません
$ cd /mnt/home_nfs/watanabe/
$
NISでアカウント共有しているので、/homeはpermission deniedだが、/mnt/home_nfs/watanabe/はちゃんと見れる。正しくNIS共有+NFSできてますね。よしよし。
sudo umount /mnt/home_nfs/
sudo mount -t nfs 192.168.1.20:/home /home
cd
/home通った。dfで確認。
$ df | grep home
192.168.1.20:/home 46872928256 27035027456 19837900800 58% /home
よしよし。/etc/fstabを以下のように修正。
/dev/mapper/rl-root / xfs defaults 0 0
UUID=1a0defb8-f376-4254-8e56-3a9a9cbe949f /boot xfs defaults 0 0
UUID=DD5A-1F2D /boot/efi vfat umask=0077,shortname=winnt 0 2
#/dev/mapper/rl-home /home xfs defaults 0 0
/dev/mapper/rl-swap none swap defaults 0 0
192.168.1.20:/home /home nfs defaults,_netdev 0 0
リブート。ここまでで、
- ホストベース認証
- NIS共有
- NFS
まで通った。
次、slurmのインストール(クライアント)。
/etc/selinux/configで
SELINUX=disabled
にしてからreboot。
mungeのインストール
sudo dnf -y install munge
リブートしたら外に繋がらんくなった。なんでだよ・・・
yagami02のdefault gatewayが192.168.1.2なのに、yagami03が192.168.1.1になってた。コマンド履歴を見ると192.168.1.2を指定しているんだけどなぁ。
sudo ip route del default
sudo ip route add default via 192.168.1.2 dev eno1
により通ったので、
sudo nmcli con mod eno1 ipv4.gateway "192.168.1.2"
sudo nmcli con up eno1
で永続化。
あと、nameserverはNetworkManagerが自動生成するので、/etc/resolv.confを手で書いても上書きされてしまう。
sudo nmcli con mod eno1 ipv4.dns "1.1.1.1"
sudo systemctl restart NetworkManager
これで/etc/resolv.confが修正されていることを確認。
改めてmungeのインストール。
ログインノードから計算ノードにmunge.keyのコピーをする必要があるが、/homeを共有しているのでそこを経由して。
sudo cp /etc/munge/munge.key .
sudo cp munge.key /etc/munge/
sudo chown munge:munge /etc/munge/munge.key
追記:chownを忘れてた
sudo dnf install slurm slurm-slurmd munge
slurm.confにyagami03を追加。
ログインノードのslurm.confを/home経由でコピー。
sudo cp slurm.conf /etc/slurm/
計算ノードは6818をあける必要がある。
sudo firewall-cmd --permanent --add-port=6818/tcp
sudo systemctl restart firewalld
追記:firewallの再起動を忘れて、つながらなかった。
ディレクトリの作成と所有者の修正。
sudo mkdir -p /var/spool/slurm/d /var/log/slurm /var/run/slurm
sudo chown -R slurm:slurm /var/spool/slurm /var/log/slurm /var/run/slurm
sudo chmod 755 /var/spool/slurm /var/log/slurm /var/run/slurm
mungeとslurmdを起動。自動起動も追加。
sudo systemctl start munge
sudo systemctl start slurmd
sudo systemctl enable --now munge
sudo systemctl enable --now slurmd
ログインノードで、slurmdctldの再起動。
sudo systemctl restart slurmctld
sudo scontrol reconfigure
sinfoで確認。OK。
その後yagami03を再起動したらまた死んだ。
sudo systemctl enable --now munge
sudo systemctl enable --now slurmd
を設定して自動起動をONにしていなかったのが原因。起動してからログインノードで以下を実行したら復活。
sudo scontrol update nodename=yagami03.appi.keio.ac.jp state=resume
新たにyagami01をセットアップ。今度こそ手順完全版を作る。
USBでRockey Linux 9.6をインストール
/etc/hostsの内容をyagami02からコピー
ホスト名の設定。
sudo hostnamectl set-hostname yagami01
これでhostnameとhostname -fが想定通りになることを確認。
固定IPをふり、かつDNSやDefault GWを設定。
sudo nmcli connection modify eno1 ipv4.addresses 192.168.1.11/24
sudo nmcli connection modify eno1 ipv4.gateway 192.168.1.2
sudo nmcli connection modify eno1 ipv4.dns "1.1.1.1"
sudo nmcli connection modify eno1 ipv4.method manual
sudo nmcli connection modify eno1 ipv6.method ignore
sudo nmcli connection up eno1
を実行してから念のためreboot(NetworkManagerだけで良いかもしれないが、接続中だと変な設定が残ることがあるので)。
ホストベース認証。
まずはSELinuxを無効に。
sudo setenforce 0
sudo vim /etc/selinux/config
で、
SELINUX=disabled
に。
ログインノード側で
ssh-keyscan -t ed25519 yagami01 | sudo tee -a /etc/ssh/ssh_known_hosts
計算ノード側で、
ssh-keyscan -t ed25519 watanabe-login.appi.keio.ac.jp | sudo tee -a /etc/ssh/ssh_known_hosts
/etc/ssh/shosts.equivを以下の内容に。
watanabe-login.appi.keio.ac.jp
yagami01
yagami02
yagami03
yagami04
/etc/ssh/sshd_configを以下のように修正。
HostKey /etc/ssh/ssh_host_ed25519_key
IgnoreUserKnownHosts no
HostbasedAuthentication yes
UseDNS yes
計算ノードに2222を開けてsshdを2222で起動。
sudo firewall-cmd --add-port=2222/tcp
sudo /usr/sbin/sshd -d -p 2222
ログインノードから接続確認。
ssh -o PreferredAuthentications=hostbased yagami01 -p 2222
接続できたら、計算ノードでsshdをrestart。
sudo systemctl restart sshd
ログインノードから通常ポートで接続。
ssh -o PreferredAuthentications=hostbased yagami01
接続できたらホストベース認証完成。
次、NISの設定。
DNFのアップデート。
sudo dnf update -y
別ノードで作った以下の3つのRPMをコピーしてインストール。
mkdir build
cd build
scp yagami03:build/*.rpm .
sudo dnf localinstall -y ~/build/ypbind-2.7.2-2.el9.x86_64.rpm ~/build/nss_nis-3.2-8.el9.x86_64.rpm ~/build/yp-tools-4.2.3-2.el9.x86_64.rpm
/etc/yum.confに以下を追加。
exclude=ypbind nss_nis yp-tools authselect-libs autofs
sudo ypdomainname watanabe-group
/etc/yp.confを以下のように修正。
domain watanabe-group server watanabe-login
ypbind起動。
sudo systemctl start ypbind
$ ypwhich
watanabe-login
/etc/nsswitch.confをNISを先に見るように直接編集。
passwd: nis files sss systemd
group: nis files [SUCCESS=merge] sss [SUCCESS=merge] systemd
shadow: nis files
getentが通ることを確認。
getent passwd 適当なユーザ名
通った。
次、NFS。
sudo dnf install -y nfs-utils
sudo mkdir -p /mnt/home_nfs
sudo mount -t nfs 192.168.1.20:/home /mnt/home_nfs
これでマウントできることを確認。
sudo umount /mnt/home_nfs
/etc/fstabを以下のように修正。
/dev/mapper/rl-root / xfs defaults 0 0
UUID=d35febed-3269-4ca5-b494-27d11a2d387f /boot xfs defaults 0 0
UUID=9032-A23D /boot/efi vfat umask=0077,shortname=winnt 0 2
#/dev/mapper/rl-home /home xfs defaults 0 0
/dev/mapper/rl-swap none swap defaults 0 0
192.168.1.20:/home /home nfs defaults,_netdev 0 0
リブート。/home/が正しくマウントできた。
次、slurm。
mungeのインストール。
sudo dnf -y install munge
既に/homeにmunge.keyがあるので共有。
sudo cp munge.key /etc/munge/
sudo chown munge:munge /etc/munge/munge.key
Slurmのインストール。
sudo dnf groupinstall "Development Tools" -y
sudo dnf install -y epel-release
sudo dnf install -y slurm slurm-slurmd
ログインノードの/etc/slurm/slurm.confにyagami01を追加。
# COMPUTE NODES
NodeName=watanabe-login.appi.keio.ac.jp CPUs=20 State=UNKNOWN
NodeName=yagami01.appi.keio.ac.jp CPUs=20 State=UNKNOWN
NodeName=yagami02.appi.keio.ac.jp CPUs=20 State=UNKNOWN
NodeName=yagami03.appi.keio.ac.jp CPUs=20 State=UNKNOWN
PartitionName=main Nodes=ALL Default=YES MaxTime=1-00:00:00 State=UP
ログインノードで/homeにコピー。
sudo cp /etc/slurm/slurm.conf .
計算ノードでローカルにコピー。
sudo cp slurm.conf /etc/slurm/
6818をあける。
sudo firewall-cmd --permanent --add-port=6818/tcp
sudo systemctl restart firewalld
slurmユーザの作成。
sudo groupadd -g 64030 slurm
sudo useradd -u 64030 -g slurm -m -d /var/lib/slurm -s /sbin/nologin -r slurm
sudo mkdir -p /var/spool/slurm/d /var/log/slurm /var/run/slurm
sudo chown -R slurm:slurm /var/spool/slurm /var/log/slurm /var/run/slurm
sudo chmod 755 /var/spool/slurm /var/log/slurm /var/run/slurm
mungeとslurmdを起動。
sudo systemctl enable --now munge
sudo systemctl enable --now slurmd
sudo systemctl start munge
sudo systemctl start slurmd
計算ノードでslurmctldを再起動して再読み込み。
sudo systemctl restart slurmctld
sudo scontrol reconfigure
計算ノードを認識した。
あとはすべての計算ノードで、
sudo dnf install -y openmpi openmpi-devel
とかやってから、/etc/bashrcに
export PATH=/usr/lib64/openmpi/bin:$PATH
を追加しないとmpirunにパスが通らない。
export PATH=$PATH:/home/apps/lammps
mpirun -np 20 lmp < collision.input
が全てのノードで通ることを確認。 終わったぞ〜!!!
もう一つの懸案だった、学科ウェブに学生さんの受賞情報を掲載するのもやった。