地空系并行集群管理

创建或删除用户

先以命令 [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
2
-bash: /opt/ibm/lsfsuite/lsf/conf/profile.lsf: No such file or directory
-bash: /opt/ibm/lsfsuite/ext/ppm/conf/profile.js: 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 可以看到管理器读取的文件路径),保留该文件中以 SERVERDAEMON 起始的两行内容,以新 License 文件的内容替换掉该文件的余下内容。

最后,先以许可证管理器命令 lmdown 关闭 Matlab 许可证管理器,再以许可证管理器命令 lmstart 重启管理器即可完成 License 的更新。


一些疑问

zsh 启动时报错找不到 complete 命令,该如何解决?

这个命令是 bash 的内建命令,而调用该命令的脚本是用来收集系统管理信息的,若禁止加载该脚本,会导致部分管理功能的缺失。考虑到 zshell 的使用者不多,不建议禁止该脚本的加载。

LSF 系统在识别计算节点的 CPU 核数跟 htop 工具识别出来的核数有区别,这是为什么?

这应该是因为 LSF 系统识别出来的是物理核数,而 htop 识别出来的是逻辑核数,而有些节点可能没有开启超线程设置。不过无论如何,LSF 系统调用的核数皆以该系统自动识别出来的核数为准。

存储节点只连接一根网线会影响使用吗?

不影响使用,但会影响性能。在硬件允许的情况下,应把两根网线都连接上。

集群系统关机后存储节点指示灯依然常亮,此时若突然断电会对所存储的数据造成影响吗?

在集群系统已关机的情况下,已停止了所有节点对存储节点的读写操作,即断电不再会对数据安全构成威胁。另外,存储节点也没有单独的关机指令,也就没有其他可执行的额外操作了。

计算节点的硬盘可以利用起来吗?

计算节点的硬盘只能用来安装系统,无法共享出来供用户使用。

---------- 文结至此 静待下章 ----------