计算化学公社

标题: slurm安全设定 规避用户盗用资源 [打印本页]

作者
Author:
abin    时间: 2021-12-29 15:57
标题: slurm安全设定 规避用户盗用资源
本帖最后由 abin 于 2021-12-29 18:35 编辑

演示视频,
https://www.bilibili.com/video/BV15R4y137n8

适用于centOS 7.x, centOS 8.x, 8 Stream, Rocky Linux.


可以实现,
用户tom的计算任务在A节点运行, tom可以去A节点;
如无任何active jobs running, 用户tom无法访问任何计算节点.
可以有效防止计算资源被盗用.

以上方案仅供参考.


作者
Author:
abin    时间: 2021-12-30 16:32
本帖最后由 abin 于 2021-12-30 16:33 编辑

补充一下.

为什么我的演示视频都是强调从centOS 7, centOS 8最小安装开始处理呢?

玩过或者用过Linux的朋友都晓得,
安装组件, 最烦的事情就是“缺少依赖”.
手动安装A, 提示少B; 手动安装B, 又说缺少C......
这是十分常见的情形.

好在Linux系统有强大的yum/dnf/apt管理器.
只要看手册, 按照提示操作, 几乎都能搞定.
但是千万不要轻易使用 --force 这种操作.

最小安装, 也就意味着 缺少很多的包, 意味着, 随便安装一个东西, 都有可能碰到提示缺少必要的依赖.

如果一套解决方案, 在最小安装的系统上, 都能搞定的话,
那么面对任何其他安装模式, 肯定是可以搞定的.

yum/apt/dnf的聪明之处在于,
如果某个包已经安装了,
就会自动跳过, 不再重新安装.

因此, 如果网络正常,
我提供的方案, 实际操作下来, 整体耗时肯定比视频中耗时少很多的.

作者
Author:
胡说    时间: 2022-1-1 14:15
请教一个问题,如果有任务在run, 用户通过SSH到该计算节点后,是否就可以无限制的使用该节点的资源,比如在该节点运行一个多核的计算?
作者
Author:
abin    时间: 2022-1-1 15:30
本帖最后由 abin 于 2022-1-1 20:30 编辑
胡说 发表于 2022-1-1 14:15
请教一个问题,如果有任务在run, 用户通过SSH到该计算节点后,是否就可以无限制的使用该节点的资源,比如在 ...

你自己试试看呗……
slurm 可以自动锁定用户资源。
用户在36核心的机器上,要了4核心,
用户只能在这四个核心晃悠,
而且进程还是被锁死在这四个核心上的。

这就是开源的slurm调度器非常好用的一个地方。

openPBS等也支持……

这些调度器,并不仅仅是排队。
而是把所有的资源,放在一个池子中,
用户只能访问调度器分派的资源,
其他的,你就别想了。

如果这些都做不到,还算哪门子的调度器?

作者
Author:
牧生    时间: 2022-1-1 17:22
abin 发表于 2021-12-30 16:32
补充一下.

为什么我的演示视频都是强调从centOS 7, centOS 8最小安装开始处理呢?

我都是装GUI版本,并勾选所有可以勾选的。。
我觉得只要不是很旧的机子,多装那么点程序,不会拖慢机子。
作者
Author:
abin    时间: 2022-1-1 17:27
牧生 发表于 2022-1-1 17:22
我都是装GUI版本,并勾选所有可以勾选的。。
我觉得只要不是很旧的机子,多装那么点程序,不会拖慢机子 ...

装多了,会拖慢机器,这前后没有任何逻辑关系。

安装的时候,选的模块越多,等候时间越长。

谁想在机房多待一分钟?

只要安装完毕后,有ssh server 就可以了。

没有哪一个Linux发行版,安装完毕后,没有网络的。

完全网络隔离的地方,
当然需要DVD镜像了。

作者
Author:
monk1077    时间: 2022-1-2 08:49
胡说 发表于 2022-1-1 14:15
请教一个问题,如果有任务在run, 用户通过SSH到该计算节点后,是否就可以无限制的使用该节点的资源,比如在 ...

可以搞成无论有没有任务都禁止用户直接登陆计算节点
作者
Author:
abin    时间: 2022-1-2 08:56
本帖最后由 abin 于 2022-1-2 13:52 编辑
monk1077 发表于 2022-1-2 08:49
可以搞成无论有没有任务都禁止用户直接登陆计算节点

这个是最简单的。

不过你可以在你管理的机器上试试,
应该会有很多用户找你麻烦的。

因为你要合理的处理,用户查询计算进度的事情。



作者
Author:
abin    时间: 2022-1-3 00:34
补充更新了一个演示视频,
https://www.bilibili.com/video/BV1j3411e7xz/
可以自行围观.

大概意思就是:
1. Prevent users from sshing into nodes that they do not have a running job on
2. Track the ssh connection and any other spawned processes for accounting
3. Ensure complete job cleanup when the job is completed

具体原理看SLURM官方手册.

简单粗暴的理解就是:
如果资源池还有空闲资源; 你要我就给(当然不能超过你自己的额度, 也不能超过剩余资源上限),
你只能玩SLURM给你的资源, 别的资源, 就不用做梦了.

另外,
slurm可以很好的处理“资源绑定”.
比如52核心机器, 你要了8核心,
slurm会把你的资源固定在编号为0~7的CPU核心上(也可以能是其他的编号, 总之会给你8个核心).
你的8个MPI进程, 会和这8个CPU核心一一对应.

同时, 分派给你的8个核心, 也是固定过的, 不会来回切换.

总之, 用SLURM来做资源分派,
你就快乐的做计算的,
不要考虑什么CPU进程绑定呀, GPU绑定之类的破事了.

另, 既然CPU都能按核心来分配, 各种加速卡, 当然不在话下了....
这方面, 看SLURM手册, GRES部分.







欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3