新しいサーバマシンが導入されたため、環境をセットアップする。
これまでサーバはCentOS7を並列クラスタ、データベース用に使用し、AlphaFold2用GPUサーバに限ってUbuntu20.04をインストールしていた。
CentOS7のサポート期限が来年ということで、5年はあまり環境をいじらず使いたいので、バージョンを上げたいのだが、CentOS8はすでにサポートを切られてしまった。
そもそもCentOSの存在意義が変わってしまったので、いっそ他のディストリビューションに移行しようと思う。
候補としてUbuntuも考えたが、あんまり安定志向でないし、yumからaptに移るのもなんだかなあ、というわけでやめた。
RHELにすりゃいいっちゃあいいが、サブスクで使うならそもそもハードウェアもAWSでいいんじゃん、ってなわけで却下。
となるとRPM系でいくならOpenSUSE、Rocky Linux、AlmaLinux辺りだろう。で、今回AlmaLinuxを採用することにした。
バージョンはすでに9系まで行っているが、安定志向なので、あえての8系にとどめておくことにする。
- サーバの構成
INSPUR NF3280A6 (AMD EPYC 7413 24C/48T)
memory: 256G
storage: 64TB RAID5
INSPUR NF3180A6 (AMD EPYC 7413 24C/48T)
memory: 256G
storage: 480 G SSD
INSPUR NF3180A6 (AMD EPYC 7413 24C/48T)
memory: 256G
storage: 480 G SSD
NF3280A6をヘッドノード兼用とした3ノードクラスタ。ネットワークは10Gイーサネットで構築。
- OSのインストール
インストールは普通にDVDに焼いたインストーラで実施。(AlmaLinux 8.7)
ヘッドノードはサーバー版(GUI)をインストール。計算ノードは最小インストールを選択。
インストーラーはCentOS7のときと何ら変わっていないので間違いようがない。
RAIDの構成は別途必要。
klab.kuro.jp(仮)
- ネットワーク構成
IPv4 hostname 10.0.1.90 k1-inspur-a6 10.0.1.89 k2-inspur-a6 10.0.1.88 k3-inspur-a6
ヘッドノードはHDDでRAIDを組んでおり、ファイルサーバも兼ねてもらう。
NISはRHEL8系では非推奨だが、ジョブスケジューラを使ったクラスタを構築する上で、設定が容易なので、当面はこれを使用することにする。
一般ユーザもこのヘッドノードサーバのみに作成する。
## SELINUXを無効化しておく # nano /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. ## 下行を変更 SELINUX=disabled # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted ## 再起動して変更を有効にする # reboot # NFS サーバーの設定 # dnf -y install nfs-utils rpcbind # nano /etc/idmapd.conf ## 5行目:コメント解除して自ドメイン名に変更 Domain = klab.kuro.jp ## NFS 共有に設定 # nano /etc/exports /usr/local 10.0.1.0/24(rw,no_root_squash) /home 10.0.1.0/24(rw,no_root_squash) # systemctl enable --now rpcbind nfs-server ## FirewalldにNFSサービスを許可 # firewall-cmd --add-service=nfs --permanent # firewall-cmd --reload ## Ypserv をインストールして NIS サーバーを設定 # dnf -y install ypserv # ypdomainname klab.kuro.jp # nano /etc/sysconfig/network NISDOMAIN=klab.kuro.jp YPSERV_ARGS="-p 944" YPXFRD_ARGS="-p 945" #NIS関連サービスのポートを固定 ## アクセス許可する NIS クライアントの範囲を指定 # nano /var/yp/securenets 255.0.0.0 127.0.0.0 255.255.255.0 10.0.1.0 ## NIS ドメインに属するホストを登録 (サーバー/クライアント) # nano /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 10.0.1.90 k1-inspur-a6.klab.kuro.jp k1-inspur-a6 10.0.1.89 k2-inspur-a6.klab.kuro.jp k2-inspur-a6 10.0.1.88 k3-inspur-a6.klab.kuro.jp k3-inspur-a6 # systemctl enable --now rpcbind ypserv ypxfrd yppasswdd nis-domainname ## NIS データベース更新 # /usr/lib64/yp/ypinit -m At this point, we have to construct a list of the hosts which will run NIS servers. k1-inspur-a6. klab.kuro.jp is in the list of NIS server hosts. Please continue to add the names for the other hosts, one per line. When you are done with the list, type a <control D>. next host to add: k1-inspur-a6.klab.kuro.jp next host to add: # Ctrl + D キーを入力 The current list of NIS servers looks like this: k1-inspur-a6. klab.kuro.jp Is this correct? [y/n: y] y We need a few minutes to build the databases... Building /var/yp/srv.world/ypservers... Running /var/yp/Makefile... gmake[1]: Entering directory '/var/yp/klab.kuro.jp' Updating passwd.byname... Updating passwd.byuid... Updating group.byname... Updating group.bygid... Updating hosts.byname... Updating hosts.byaddr... Updating rpc.byname... Updating rpc.bynumber... Updating services.byname... Updating services.byservicename... Updating netid.byname... Updating protocols.bynumber... Updating protocols.byname... Updating mail.aliases... gmake[1]: Leaving directory '/var/yp/klab.kuro.jp' k1-inspur-a6. klab.kuro.jp has been set up as a NIS master server. Now you can run ypinit -s k1-inspur-a6.klab.kuro.jp on all slave server. ## [/etc/hosts] へ登録した新規ホストをNISデータベースへ反映する # cd /var/yp # make ## Firewalldに許可設定 # nano /etc/sysconfig/yppasswdd ## 該当行に追記 YPPASSWDD_ARGS="--port 950" # systemctl restart rpcbind ypserv ypxfrd yppasswdd # firewall-cmd --add-service=rpc-bind --permanent # firewall-cmd --add-port={944-951/tcp,944-951/udp} --permanent # firewall-cmd --reload
## NFSクライアントをインストール・設定 # dnf -y install nfs-utils # nano /etc/idmapd.conf ## 5行目:コメント解除して自ドメイン名に変更 Domain = klab.kuro.jp ## 起動時にマウントするように設定 # nano /etc/fstab /dev/mapper/almalinux-root / xfs defaults 0 0 UUID=****************** /boot xfs defaults 0 0 UUID=************* /boot/efi vfat umask=0077,shortname=winnt 0 2 /dev/mapper/almalinux-home /home xfs defaults 0 0 /dev/mapper/almalinux-swap none swap defaults 0 0 ## 以下に追記 k1-inspur-a6:/usr/local /usr/local nfs defaults 0 0 k1-inspur-a6:/home /home nfs defaults 0 0 ## マウントポイントへのアクセス時に、動的に NFS 共有をマウントする # dnf -y install autofs # nano /etc/auto.master ## 最終行に追記 /- /etc/auto.mount # nano /etc/auto.mount ## 新規作成 : [マウントポイント] [オプション] [ロケーション] /home -fstype=nfs,rw k1-inspur-a6:/home ## NISクライアントのインストールと設定 # dnf -y install ypbind rpcbind oddjob-mkhomedir # ypdomainname klab.kuro.jp # nano /etc/sysconfig/network NISDOMAIN= klab.kuro.jp # nano /etc/yp.conf ## 最終行に追記 # [domain (NIS ドメイン) server (NIS サーバー)] domain klab.kuro.jp server k1-inspur-a6. klab.kuro.jp # authselect select nis --force Backup stored at /var/lib/authselect/backups/2019-10-17-01-18-26.zBmEkS Profile "nis" was selected. The following nsswitch maps are overwritten by the profile: - aliases - automount - ethers - group - hosts - initgroups - netgroup - networks - passwd - protocols - publickey - rpc - services - shadow Make sure that NIS service is configured and enabled. See NIS documentation for more information. # systemctl enable --now rpcbind ypbind nis-domainname oddjobd # exit
- Slurmのインストール
NF3280A6 (k1-inspur-a6)を管理ノード、ジョブ投入ノード兼計算ノードとし、
NF3180A6 (k2-inspur-a6、k3-inspur-a6)を計算ノードとする。
続く。