实验室新买了一台4U的服务器,共320线程和6张Pro 6000,我作为管理员,该怎么拟一个章程呢

zmxj123 2026-02-05 19:50 1

先说一下实验室Bg:既有数学计算(吃U),又有GPU要求(训练、推理模型跑AI)。

之前实验室有一台小服务器,包括但不限于出现了以下问题:

1.环境混乱,装了某个版本的库但是从论文的GitHub扒下来的代码不适配,于是直接覆盖装回特定版本,别人又用不了了。

2.root权限混乱,每个人都有自己的代码要跑,要装很多东西,于是给他们root权限,由此带来的问题就是有些人权限过大,本科生不怎么会搞直接root一把梭哈。

3.存储空间吃紧,大量的数据集和模型直接放在SSD中,导致一共一个8T的固态直接塞满,有的时候剩余空间是0,还得一个个私聊删除。(我主要是做CPU方面的使用,不太懂,如果我们把数据集和模型放在16T机械里面,对于一个一跑就是一天的训练过程会有明显影响吗?最佳实践难不成是都放在SSD中?)

4.安全意识淡薄,之前某个本科生电脑被拿下,直接疯狂扫描服务器的port并且还进来了,虽然什么是都没干。最好是公钥登录ssh吗?这样交接起来会不会麻烦。

感谢各位佬的建议!!!!!!!!!!!!

最新回复 (19)
  • erkw 02-05 19:57
    1

    搞个虚拟化,一人分一个账号,像vps那种感觉不错

  • Ma1onezhang 02-05 19:57
    2

    1/2. 需要用 root 装环境的全部走 docker/podman,需要开 trace or kernel config的找管理员统一开就好。

    3. 默认不要让/home 放在 SSD 上面,很多人没有这个需求就无需让他知道这是不是 SSD,需要的人自然而然会来找你。

    4. 安全的话只允许密钥登录就可以了,交接还是安全重要,你自己心里也有数。

  • Ma1onezhang 02-05 19:58
    3

    这是我组里的最佳实践,一年多没出过事故了

  • Jysir 02-05 20:09
    4

    我们也差不多,普通用户不要给root权限,需要root的包联系管理员安装,或者使用替代方案,比如自己去编译什么的,能不用root的尽量不用(事实上没有那么多需要root的场景)


    对于存储,最好对代码、环境、数据集分开挂载,或者说放到不同的目录下,其实我感觉代码在工作站/服务器中的机械和固态的差距没有那么大,训练的速度感觉还是在显卡推理速度上。目前我们使用的实践是环境部分比如conda或者其他可执行部分放在默认的home,之后在挂载的机械上创建分目录,分别授予权限,在分用户的home下创建一个code的软链接指向挂载的机械,之后让大家把代码放到code里,之后在机械硬盘上创建一个dataset用来放数据集,/home/datasets软链接到机械硬盘,因为有些人的数据集可以复用,所以这是一个公共文件夹,大家都可以进行修改,但是会建议上传者上传或者下载之后设置权限为555


    最后在登录这部分,其实最安全的方法我觉得只允许密钥肯定是最好的,但是看你的理解了…我觉得怪麻烦的,因为有的时候可能需要在不同的地方使用ssh,不方便来回下载密钥什么的…但是这样确实不是很安全,有可能会被暴力出子用户密码之类的


    最后的话,我觉得守好root权限更重要一些,比如root不要开ssh登录之类的权限控制,这个我也不好说了,因为我们服务器之前也被挂过挖矿,目前的方案是使用宝塔面板,禁止root直接登录,可以开一个ClamAV,然后还放了一个阿里云监控,可以定时上报cpu、gpu占用以及进程等信息~

  • 龙云李 02-05 20:40
    5

    用LXD如何?可以隔离环境的同时共享硬件资源。每人一个LXD容器(你可以给每个用户新建一个ubuntu或者其他linux发行版),只要不给修改内核的相关权限,他们可以在各自的文件系统中随便造,还可以指定哪个用户只能用哪几张卡。代价是每个人都有自己的文件系统,因此硬盘容量也会增加。

  • zmxj123 楼主 02-05 20:56
    6

    我们算上本科生大概有10多个用户,LXD相当于要存很多东西十次,现在这SSD价格也不好加。Apptainer咋说?

  • イレイナ👁️‍🗨️ 02-05 21:14
    7

    我的管理方式也和上一楼的差不多。不给普通用户 root,因为很多人都是跟着 csdn 的教程去配环境,他们自己又不知道运行的指令会带来什么后果,而且也不去尝试一下非 root 安装。


    我实操下来是,我会让他们自己先尝试不用 root 的安装方法(除非是真的缺了一些依赖库,那就由我来装),其他一律自己的解决。因为我们是每个用户用自己的账号,不会共用一个账号,然后在机械盘上来也会有自己名字对应的文件夹,自己只能把东西放在自己的文件夹,也只有自己文件夹的权限,其他文件夹不可写入,这样他们就可以在自己的范围里面随便搞,也不是我的事情了(只要硬盘没坏)。


    目前运行状态良好,2年没有出过问题。

  • GGbang 02-05 21:18
    8

    我们是docker+conda用户组+jupyterhub+nis管理的集群,这样比较方便。

  • 龙云李 02-05 21:40
    9

    Apptainer我没用过所以不作评价。不过LXD里是可以将宿主机的指定文件夹挂载到LXD容器里,实现共享文件夹。因此只要LXD容器们都将同一个宿主机文件夹挂载到自己的容器中,就可以实现不同容器间的数据共享(当然也需要注意正确设置好文件夹的权限)

  • ℒ𝓊𝓂𝑒𝓃 02-05 21:43
    10

    我们实验室

    不给root权限,开启公钥登录

    让每位用户用conda、容器


    数据好像塞机械硬盘问题也不大?

    至少我们主要是看内存和cpu的 ^-^

  • purr 02-05 21:47
    11

    两种方案

    虚拟机 就如前面说的lxc lxd 或者 kvm 等

    但是该方案不清楚对于GPU的支持

    或者就是 linux 原生的用户管理

    每个用户有自己的账户 然后用原生的权限管理

    绝大多数情况下都没问题 需要安装包的时候让他们联系root 不要给sudo


    两种方案都见过

    第一种是复杂些的 但是host比较干净 不怕用户乱搞 但是前期需要看看怎么配

    第二种是简单些的 但是系统后面会乱七八糟 因为一堆用户目录 但是配置起来基本没啥 起个用户的事情

  • zyzy 02-05 21:59
    12

    PVE LXC 特权容器 配置好环境 作为模板, 链接拷贝lxc 分发

  • gamecrafters 02-05 22:00
    13

    你搭个vpn,要用的自己接vpn到机子里用电脑,你给他们建几个user不就好了,区分自己的工作空间

  • oneclickvirt 02-05 22:53
    14



    适合你,跟着步骤走吧

  • Clancy Wang 02-05 22:54
    15

    切小鸡抽了

  • Clancy Wang 02-05 22:55
    16

    docker是个好东西

  • oneclickvirt 02-05 22:55
    17

    区别在于你不需要双系统,直接擦盘写Ubuntu系统就行了,还有换个版本新一点的Ubuntu

  • 季嵩 02-05 22:57
    19

    没有搞过这么高级的用法,之前看过一些相关帖子经常看到一个东西叫slurm,不知道适不适合

  • oneclickvirt 02-05 22:59
    20

    分配完毕后每个人单独自己的容器环境,拿AI写个小东西每日自动快照,如果你硬盘够大的话,然后有问题那个同学直接快照写回就好了,环境炸不了一点,宿主机环境完全隔离


    缺点就是显存使用的话没法约定死每个人的使用量,如果要精细化管理,你得找类似 bocloud 那种计算资源管理平台部署了,上K8s管理整个机房的集群了(开源的平台就没啥国产软件没中文界面,要中文的似乎只有商业公司开发的平台,一句话,这种平台要用得爽得额外掏钱)

* 帖子来源Linux.do
返回