实验室新到了一台 A100 四卡机,记录一下装机和运维过程。
好像成了实验室的网管(

配置:

CPU : Intel Xeon Gold 6248R 3GHz 96核
内存 1T
8T HDD

预装 ubuntu 18.04

10.20

在 tuna 下载 debian 11.5 netinst 镜像
https://mirrors.tuna.tsinghua.edu.cn/debian-cd/11.5.0/amd64/iso-cd/
用 balenaEtcher 烧到 u盘

折腾了大半天,主要问题来源于校园网
实验室里有线网只有校园网,但 debian netinst 版本没有 GUI,没法搞校园网验证
命令行版本的校园网验证一直有问题
无线网卡没有,即使有也需要装驱动之类的

所以尝试搞 debian 的离线版,带有 GUI
但推测是由于没有显卡驱动的原因,GNOME 桌面环境起不来,表现是 系统初始化之后完全黑屏, ctrl+alt+F1 也切不到命令行
rescue 模式可以切进命令行,但没啥卵用
grub 看不懂也不会写
总之卡住了

cinnamon 救我狗命
抛弃 GNOME 装了 cinnamon ,终于有了 GUI,搞校园网登录
有了网问题基本就解决了

总之还是要思考一下怎么路由校园网

10.21

今日新坑: apt-getapt 并不完全一样

请使用 apt-get purge 而非 apt purge

新建账号:sudo useradd -m [username]

安装 nvidia driver :
在 nvidia 官网 https://www.nvidia.com/en-us/drivers/unix/
下载了 515.76 版本 production branch 的 driver

禁用原来的开源驱动 nouveau:
编辑 /etc/modprobe.d/blacklist-nouveau.conf 写入如下内容

blacklist nouveau
options nouveau modeset=0

运行 update-initramfs -u

为了防止 GUI 占用显卡驱动,将登录方式换为命令行 systemctl set-default multi-user.target

然后 reboot

之前装过 debian 官方的 apt 驱动,但版本太低
使用 sudo apt-get purge nvidia. 卸载所有 nvidia 相关组件

运行安装下载的 nvidia 驱动

使用 nvidia-smi 测试驱动安装情况

安装 spack:
首先创建一个 spack 账户:sudo useradd -m spack
把默认 shell 修改为 bash : chsh -s /bin/bash
clone spack 的 github 仓库,并 checkout 到一个 release
然后用 root 把整个 spack 拷到 /opt

debian 执行 /etc/update-motd.d 目录下所有可执行文件更新 /var/run/motd.dynamic
https://wiki.debian.org/motd

sudo usermod -a -G [group] [user] 用户加入组

ssh

ssh 配置文件位于 /etc/ssh/ssd_config
公钥登录需要保证用户 .ssh 目录权限 700
.ssh 目录下:
authorized_keysconfig, id_rsa 权限 600

学校 DNS :
166.111.8.8

2024.10

配置新机房的整套集群

将 apt 换成 tuna源

修改 fstab,开机 mount 存储

# /etc/fstab
UUID=[uuid] /home           ext4    defaults        0       2

配网络

配置登录节点网络:
网口1 eno1 接入校园网

sudo nmcli con add type ethernet ifname eno1 con-name eno1-dhcp
sudo nmcli con up eno1-dhcp

网口2

sudo nmcli con add type ethernet ifname eno2 con-name eno2-static ip4 192.168.0.1/16
sudo nmcli con up eno2-static

设置 active on boot :

sudo nmcli con mod eno1-dhcp connection.autoconnect yes
sudo nmcli con mod eno2-static connection.autoconnect yes

配置其他节点局域网网络:

sudo nmcli con add type ethernet ifname eno1 con-name eno1-static ip4 192.168.0.21/16
sudo nmcli con mod eno1-static ipv4.dns 192.168.0.1
sudo nmcli con mod eno1-static ipv4.gateway 192.168.0.1
sudo nmcli con up eno1-static

systemctl start ssh
systemctl enable ssh

dns 配得不太对,应该配成公网 dns

sudo nmcli connection modify eno1-static ipv4.dns "101.6.6.6 166.111.8.28 166.111.8.29"
sudo nmcli connection down eno1-static
sudo nmcli connection up eno1-static

登录节点配置网络转发:
/etc/sysctl.conf 中添加 net.ipv4.ip_forward=1

sudo sysctl -p

sudo iptables -t nat -A POSTROUTING -o eno1 -j MASQUERADE
sudo iptables -A FORWARD -i eno2 -o eno1 -j ACCEPT
sudo iptables -A FORWARD -i eno1 -o eno2 -m state --state RELATED,ESTABLISHED -j ACCEPT

sudo apt install iptables-persistent
sudo netfilter-persistent save

update: 登录节点配固定 ip

sudo nmcli con add type ethernet ifname eno1 con-name eno1-static ip4 166.111.236.24/16
sudo nmcli con up eno1-static

配置 IB

#安装 IB 相关包
sudo apt install rdma-core infiniband-diags ibverbs-utils perftest
#查看 IB 设备
sudo ibv_devices
sudo ibstat
# 安装 subnet manager 
sudo apt install opensm
sudo systemctl start opensm
sudo systemctl enable opensm

sudo modprobe mlx5_ib
sudo modprobe ib_umad
sudo modprobe ib_uverbs
sudo echo -e "mlx5_ib\nib_umad\nib_uverbs" | sudo tee -a /etc/modules

配置 IP over IB :

sudo modprobe ib_ipoib
sudo echo -e "ib_ipoib" | sudo tee -a /etc/modules
sudo nmcli con add type infiniband ifname ibp134s0 con-name ib-static 
sudo nmcli connection modify ib-static ipv4.addresses 10.0.0.21/16
sudo nmcli connection modify ib-static ipv4.method manual
sudo nmcli con up ib-static
sudo nmcli con mod ib-static connection.autoconnect yes

配 nfs

nfs server:

sudo apt update
sudo apt install nfs-kernel-server

修改 /etc/exports 192.168.0.1(rw,sync,no_root_squash)

sudo systemctl restart nfs-kernel-server

配 nfs client :

sudo apt update
sudo apt install nfs-common
sudo mount -t nfs 192.168.0.21:/home /home

修改 fstab

配 LDAP

/etc/pam.d/common-auth
/etc/pam.d/common-account
/etc/ldap/ldap.conf
/etc/ssh/sshd_config
/etc/nsswitch.conf

sudo systemctl restart nscd
sudo systemctl restart sshd

配 LDAP server :

sudo apt update
sudo apt install slapd ldap-utils
sudo dpkg-reconfigure slapd

配 LDAP client :

sudo apt update
sudo apt install libnss-ldap libpam-ldap ldap-utils nscd
sudo pam-auth-update
# edit /etc/nsswitch.conf 
sudo systemctl restart nscd

/etc/pam.d/common-session 中增加 session required pam_mkhomedir.so skel=/etc/skel/ umask=0022

同时作为 client 和 server 的服务器需要将 /etc/nslcd.conf 中 uri 设为 ldapi:///

ldap 操作:

ldapsearch -x -LLL -H ldap://192.168.0.21 -b "dc=hpcas" "uid=fujy"
ldapsearch -x -LLL -H ldap://192.168.0.21 -D "cn=admin,dc=hpcas" -W -b "dc=hpcas" "(uid=fujy1)"
ldapdelete -x -H ldap://192.168.0.21 -D "cn=admin,dc=hpcas" -W "uid=fujy2,ou=lab,dc=hpcas"
ldapdelete -x -D "cn=admin,dc=hpcas" -W "uid=jdoe,ou=People,dc=hpcas"
ldapadd -x -D "cn=admin,dc=hpcas" -W -f users.ldif
sudo slappasswd # 生成密码 hash
sudo ldapsearch -Y EXTERNAL -H ldapi:/// -b "cn=config" -LLL dn # query 所有 database
ldapmodify -x -D "cn=admin,dc=hpcas" -y [passwdfile] -f modify_password.ldif

change root passwd : 修改 /etc/ldap/slapd.d/cn\=config/'olcDatabase={1}mdb.ldif' 中 olcRootPW 项

安装spack

安装 mpi :

spack install openmpi fabrics=ucx ^ucx+cma+dc+dm+ib_hw_tm+mlx5_dv+rc+rdmacm+ud+verbs

spack env 配置文件位置:/home/spack/spack/var/spack/environments/umi/spack.yaml

安装 slurm

sudo useradd -r -s /bin/false slurm
sudo mkdir -p /home/slurm
sudo chown -R slurm:slurm /home/slurm

../configure --prefix=/home/slurm --with-pmix=[pmix dir] --with-ucx=[ucx dir]

修改 /etc/pam.d/sshd 限制只有有 active job 的 user 才能 ssh,从而避免用户直接 ssh 节点:

account [default=ignore success=1] pam_succeed_if.so user ingroup sudo
account required pam_slurm.so

创建分组

sudo groupadd lab
sudo getent group lab
sudo groupdel [group]

同时配置多台服务器:

cssh ares1 ares2 ares3 ares4 ares5 ares6 ares7 ares8

标签: none

添加新评论