创建或删除用户
先以命令 [root@mn01 ~]$ adduser username
创建新用户 username 生成相应的用户信息,或以命令 [root@mn01 ~]$ userdel -rf username
删除原用户 username 并删除该用户的用户信息,再以命令 [root@mn01 ~]$ make -C /var/yp
将管理节点(mn01)的用户信息发送到所有计算节点。
修改用户密码
先以命令 [root@mn01 ~]$ passwd username
修改管理节点的用户密码,再以命令 [root@mn01 ~]$ make -C /var/yp
将新的用户信息发送到所有计算节点。
修改用户公共数据访问权限
以中国地震台网中心地震数据(/share/data/CENC 目录)为例,该数据所属用户组为 cenc,该数据目录访问权限为 rwxr-xr-x,目录下数据文件的访问权限为 rw-r—– 。
先以命令 [root@mn01 ~]$ usermod -G cenc username
为用户添加附加用户组 cenc,再以命令 [root@mn01 ~]$ make -C /var/yp
将修改后的用户信息发送到所有计算节点。至此,用户即可在任一节点读取该数据目录下的所有数据文件。
集群系统关机
[root@mn01 ~]$ psh compute poweroff
关闭所有计算节点;[root@mn01 ~]$ mmshutdown -N io01,io02,mn01
关闭 io 节点和管理节点的 GPFS 服务;[root@mn01 ~]$ psh io poweroff
关闭 io 节点;[root@mn01 ~]$ poweroff
关闭管理节点。
重新启动集群
启动顺序
启动时,先启动管理节点(mn01),再启动 io 节点(io*),最后启动计算节点(c0* 和 s0*)。为保险起见,不同类型节点启动适当间隔一段时间,以等待相应的依赖服务启动完成。
重启检查
先以命令 [user@mn01 ~]$ lnodes
查看各计算节点连接情况,保证无异常状态(unavail 或 unreach)节点。
若上述命令长时间无响应,说明 LSF 作业系统未完成启动,尝试以如下命令完成启动:
[root@mn01 ~]$ mmstartup -a
确保 GPFS 服务已经启动;[root@mn01 ~]$ source /share/lsf/lsf/conf/profile.lsf
导入 LSF 系统配置;[root@mn01 ~]$ systemctl restart lsfd
启动管理节点的 LSF 服务;[root@mn01 ~]$ psh compute "systemctl restart lsfd"
启动计算节点的 LSF 服务。
待所有节点连接正常后,再以 test 身份登录至管理节点,以命令 [test@mn01 ~]$ /share/apps/matlab/etc/lmstart
启动 matlab 的 License 管理器,激活该软件的正版授权。
排查错误
集群启动完成后,登录管理节点,若出现告错
1 | -bash: /opt/ibm/lsfsuite/lsf/conf/profile.lsf: No such file or directory |
则说明 GPFS 服务没有启动,以命令 [root@mn01 ~]$ mmstartup -a
启动该服务即可。
集群启动完成后,若以命令 [user@mn01 ~]$ lnodes
查看节点连接情况,发现部分节点为 unavil 状态,则先以命令 [root@mn01 ~]$ mmstartup -N nodename
启动该节点的 GPFS 服务后,再以命令 [root@mn01 ~]$ psh nodename "systemctl restart lsfd"
启动该节点的 LSF 服务即可。或者以 root 身份登录至相应节点,分别以命令 [root@A ~]$ mmstartup
和 [root@A ~]$ systemctl restart lsfd
重启这两个系统服务也可。
LSF 队列管理
队列状态
通过命令 [user@mn01 ~]$ bqueues
可查看各个队列的当前状态。队列状态描述的是队列接收和派发作业的能力,有如下组合:
状态 | 描述 |
---|---|
Open: Active | 接收并派发作业,正常处理中 |
Open: Inactive | 只接收但不派发作业,正在收集作业 |
Closed: Active | 只派发但不接收作业,正在排空队列 |
Closed: Inactive | 既不接收也不派发作业,停止所有活动 |
队列控制
LSF 管理员或 root 用户可以通过以下命令来控制队列 queuename:
以命令
[root@mn01 ~]$ badmin qopen queuename
开启队列,该队列开始接收新的作业;以命令
[root@mn01 ~]$ badmin qclose queuename
关闭队列,该队列不再接收新的作业;以命令
[root@mn01 ~]$ badmin qact queuename
激活队列,该队列开始派发作业;以命令
[root@mn01 ~]$ badmin qinact queuename
阻塞队列,该队列停止派发作业。
LSF 作业系统的配置
LSF 作业系统的主要配置文件位于 /share/lsf/lsf/conf 目录下,该目录已软链接到 LSF 的安装目录下,修改配置并重新启动相应的 LSF 服务后,新的配置参数即可生效。具体地,
- 用户群组配置文件为
/share/lsf/lsf/conf/lsbatch/sustc_ess/configdir/lsb.users
; - 主机群组配置文件为
/share/lsf/lsf/conf/lsbatch/sustc_ess/configdir/lsb.hosts
; - 调度参数配置文件为
/share/lsf/lsf/conf/lsbatch/sustc_ess/configdir/lsb.params
; - 队列配置文件为
/share/lsf/lsf/conf/lsbatch/sustc_ess/configdir/lsb.queues
; - LSF 主配置文件为
/share/lsf/lsf/conf/lsf.conf
。
LSF 系统动态优先级的计算
LSF 作业系统会根据用户作业的作业槽数、运行时间和累积核时等资源占用情况,实时调整用户在队列的优先级,即动态优先级。
LSF 系统默认的动态优先级计算公式为:
dynamic_priority = number_shares / (cpu_time * CPU_TIME_FACTOR + run_time * RUN_TIME_FACTOR + (1 + job_slots) * RUN_JOB_FACTOR + fairshare_adjustment * FAIRSHARE_ADJUSTMENT_FACTOR)
其中,cpu_time、run_time 和 job_slots 是 LSF 系统收集的用户总资源消耗;CPU_TIME_FACTOR、RUN_TIME_FACTOR 和 RUN_JOB_FACTOR 为权重因子,默认值分别为 0.7、0.7 和 3,可在 lsb.queues 或 lsb.params 中设置。
另外,lsb.queues 或 lsb.params 中的 HIST_HOURS 参数为 LSF 系统收集资源消耗历史的时间间隔,默认值为 5。
GPFS 文件系统磁盘配额
在创建新的 GPFS 文件系统时,可在 mmcrfs 命令中加入 -Q yes
选项,以激活该文件系统的磁盘配额设置。对于原有的 GPFS 文件系统,可以命令 [root@mn01 ~]$ mmchfs -Q yes
重新激活该系统的磁盘配额设置。若想针对目录进行磁盘配额,需指定 –perfileset-quota 选项。
GPFS 文件系统可以 mmsetquota 命令设置磁盘配额,具体可根据该命令的帮助(以命令 [user@mn01 ~]$ man mmsetquota
查看)来进行详细的配置。
当前 fs01 文件系统的用户默认磁盘配额是由 stanza 文件 /share/system/conf/quoatesetting 设置的(设置命令为 [root@mn01 ~]$ mmsetquota -F /share/system/conf/quotasetting
)。
通过命令 [root@mn01 ~]$ mmsetquota filesystemname --user username --block 2T:2560G
,可对 username 用户单独设置 filesystemname 文件系统的磁盘配额。
在设置软硬限制时,指定 0:
即为无任何限制,可用于取消原有限制。
通过命令行执行命令生效的 GPFS 文件系统的磁盘配置,即永久生效,即使重启集群系统也不会失效。
注意,当针对整个文件系统进行配额设置(即 mmcrfs 或 mmchfs 命令中不指定 –perfileset-quota 选项)时,则不可在 mmsetquota 命令中指定 fileset 选项,否则该命令不会生效。
Matlab 软件 License 更新
首先,登录服务器通过命令 ip a
获取服务器的 Host ID,在该命令的输出中第一个以太网设备(本服务器上为 eno4 网络端口)对应的 MAC 地址(在前述端口详情中,link/ether
字段对应的内容,应是以冒号连接的六个双字符组成的字段)即为 Host ID。
其后,登录 License 管理员的 MathWorks 网站个人主页,打开 MATLAB (Concurrent)
对应的许可证主页面,进入 “安装和激活” 子页面,点击 “激活服务器”,在相应对话框中分别选择操作系统、填入主机 ID 和激活标签后选择 “继续”,进入许可证文件下载页面,下载新的 License 文件,并上传至服务器。
再者,找到服务器上 Matlab 许可证管理器所读取的 License 文件(以许可证管理器命令 lmdiag
可以看到管理器读取的文件路径),保留该文件中以 SERVER
和 DAEMON
起始的两行内容,以新 License 文件的内容替换掉该文件的余下内容。
最后,先以许可证管理器命令 lmdown
关闭 Matlab 许可证管理器,再以许可证管理器命令 lmstart
重启管理器即可完成 License 的更新。
一些疑问
zsh 启动时报错找不到 complete 命令,该如何解决?
这个命令是 bash 的内建命令,而调用该命令的脚本是用来收集系统管理信息的,若禁止加载该脚本,会导致部分管理功能的缺失。考虑到 zshell 的使用者不多,不建议禁止该脚本的加载。
LSF 系统在识别计算节点的 CPU 核数跟 htop 工具识别出来的核数有区别,这是为什么?
这应该是因为 LSF 系统识别出来的是物理核数,而 htop 识别出来的是逻辑核数,而有些节点可能没有开启超线程设置。不过无论如何,LSF 系统调用的核数皆以该系统自动识别出来的核数为准。
存储节点只连接一根网线会影响使用吗?
不影响使用,但会影响性能。在硬件允许的情况下,应把两根网线都连接上。
集群系统关机后存储节点指示灯依然常亮,此时若突然断电会对所存储的数据造成影响吗?
在集群系统已关机的情况下,已停止了所有节点对存储节点的读写操作,即断电不再会对数据安全构成威胁。另外,存储节点也没有单独的关机指令,也就没有其他可执行的额外操作了。
计算节点的硬盘可以利用起来吗?
计算节点的硬盘只能用来安装系统,无法共享出来供用户使用。