实验室一台服务器大概有 10 多个人用,以前都是使用一个账号,大家合理分配时间。
现在老师要求各自建立自己的账号,但是有一个问题,因为大家的运行环境不一样,包括 cuda/python 版本等。
所以我想建立一个隔离环境,大家有一定的 sudo apt 权限,但是又不会因为环境冲突装坏系统。
目前看到的是有的用 docker/LCX ,感觉有些臃肿,求问有没有更好的方式?
如果有管理器就更好了,方便及时添加/删除用户。
另外我们有多台机器,有什么好的方法可以智能分配账号/算力资源吗?
1
dododada 254 天前
docker 。
我记得站里有个这种帖子的。 |
2
jiny2048 254 天前
装好必要的软件,不给 sudo 权限,每个人自己用 conda
多台服务器用 ansible 分发/管理帐号 gpu 没必要做分配/虚拟化,抢占式/商量着来就行了 |
3
litguy 254 天前
docker 或者 lxd
个人更喜欢后面这个,因为和虚拟机用起来差不多 |
4
hallDrawnel 254 天前
和 2 楼差不多,不给 sudo 权限,每个人自己用 conda 管理自己的环境就行,驱动管理员负责更新。
然后大家去抢就好了 10 个人。 |
5
retanoj 254 天前
要是想在操作系统级别支持自定义安装软件,那还是 docker / LCX 吧。
不是臃肿的问题,是你给了 sudo 一定滥用和冲突。 |
6
CheckTime 254 天前
硬盘够大就行,每个人登录在自己目录下面安装自己的 conda 环境。不用给 sudo 权限,有必须要装的系统包打申请
|
7
steveway 254 天前
https://github.com/shenuiuin/LXD_GPU_SERVER
目前在用是这个方案,确实如楼上朋友所说,需要硬盘够大。 但其实用下来,除了 lxc 完全隔离之外,小问题还是有不少的,如果实验室对 linux 都比较熟悉,直接分帐号使用就好了。 |
8
happyxhw101 254 天前
cuda 统一版本
每个人建自己的账户,/home/xxx ,用 conda 安装自己的 python 环境 不给 sudo 权限,需要安装软件的统一一个人负责 |
9
Busby 254 天前
Docker 大法好。非计算机专业很难保证每个人的水平,还是各玩各的好。
|
10
guoyijun163 254 天前
用 pve+container(LXC),pve 宿主机上装显卡的 kernel 驱动,container 里装运行时(不过这样驱动版本是需要一致匹配的)
大家各自拿着一个 container 有 root 权限,除了动不了 kernel ,换不了驱动版本外其他都能自己装 |
11
bjtujtonlyone 254 天前
CUDA 就装一个,包括一些臃肿的数据集都是在管理员目录,有命令可以软链接;其他的 python 环境用户自己 conda 虚拟。
|
12
bthulu 254 天前
一人买一台服务器不久好了
|
13
binarywizard 254 天前
可以使用英伟达的 MIG 方案,切分 GPU 卡
|
14
jacy 254 天前
hyper-v 开小鸡分给大家,虽然臃肿,但大家想怎么搞怎么搞
|
15
Woolaman 254 天前
不太理解。既然是服务器,当然每个人有自己的账号啊,不然怎么写代码、debug 、看数据?
至于计算资源的分配,用专门的资源调度软件管理不就行了吗,例如 slurm 、htcondor 。 你把作业提交上去,别人的作业结束了,你的任务就开始了啊,大家协商一下最大作业时间就行了,例如 48h 、72h 。 我是做物理的,蒙卡模拟啥的,要是说错了,勿喷! |
16
dode 254 天前
Docker ,每个用户独立使用私钥登录,都加入到 docker 组
|
17
hiphooray 254 天前
遇到了同样的情况,4 个人用,而且并没有专人负责服务器的维护工作。
因此为了方便起见,每个人都申请自己独立的拥护,自己维护自己的开发环境,然后配上了足够大容量的硬盘。 GPU 分配就更粗暴了,在微信群里喊一声,用了哪张卡,要用多久,就行了。 |
18
Huelse 254 天前
不要给 sudu 权限,遇到不懂非要硬来的直接给你搞崩
|
19
Argon 254 天前 1
我这边用下来有个提醒。楼上说的 Docker 方案,假如 Docker 自身不是 rootless 的,那么有权限使用 docker 的用户实质上都能提权到 root 。我这边就遇到挂载 / 然后搞事的同学。
该帖其它楼的方案,比如 Proxmox VE 用 CT 共享 GPU 或者 LXD 共享,相比 Docker 的坏处是,对于缺少虚拟化经验的同学而言容易接触的资料不如 docker pull 来得多。但是话又说回来,写不明白 Dockerfile 只会连进容器内部敲命令的大有人在。搞不好他还会想装个 openssh-server ,这时候有着完整 systemd 支持的 LXC 容器,比 docker container 那就阳间太多了。 对于 LXD 有一个挺漂亮的 Web 面板,可以试试: https://lxdware.com/ |
20
kangyue9999 254 天前 via Android
几种办法
1.设备独享型,使用 openlava 配置一下,没人按需按时间抓机器丢任务去跑,优点:应用兼容性好。缺点:容易造成资源浪费(比如一个人跑的任务可能只用很少的 GPU ,但是整个机器都归他了) 2.vgpu 共享型,去买个 NVIDIA vgpu 的授权,然后每台服务器可以去配置资源分割。优点:不浪费 GPU ,缺点:应用程序支持可能有限。 3 VGPU+调度器型:算是 1,2 的合体,用 vgpu+opennebula 。缺点是一二缺点的集合体,再加上配置估计不简单。 |
21
debuggerx 254 天前 via Android
把服务器部署成 runner 你们提交任务上去 排队执行
|
22
skies457 254 天前 1
目前实验室正在使用的方案:
- Kubernetes 作为集群基础架构 - GitLab 提供单点登录服务 - Harbor 提供自定义环境的镜像托管 - JupyterLab ( https://z2jh.jupyter.org/en/stable/)为每个人提供可选配置的独立执行环境 |
23
ruimz 254 天前 via iPhone
open ondemand ,开源 HPC 管理
https://github.com/OSC/ondemand |
24
flyqie 254 天前
这类环境最好不要用 docker 。。
docker 在这类环境下隔离不太好做。 要上的话建议 lxc 或者它的上层 lxd 。 |
25
ruimz 254 天前 via iPhone
@ruimz 这个 ondemond 可以分账号,一个账号搞坏不破坏系统,cuda python 不同版本环境隔离,有网页管理,支持多机集群,支持网页直接开 Jupyter notebook 。
一开始是给学校用超算开发的,所以和楼主描述的实验室环境的需求几乎完全一致 |
27
xudong 254 天前 via iPhone
kubeflow
|
28
good4you 253 天前 1
鄙人有五年 HPC 使用经验,推荐使用:slurm
这个已经是很完善的体系,在北美非常常见,从高校到美国国防部都在使用。由于系统发展比较成熟,部署难度很可能远小于自己捣鼓 docker 之类的。具体的我没有了解,还请楼主移步: https://slurm.schedmd.com/documentation.html |
29
terencelau 253 天前
只有一台服务器的话就 Docker 部署 JupyterHub 吧,文件上传下载还可以部署一个 file browser ,如果能多几台服务器再考虑 K8S 或者 SLURM 。我现在用的方案是 K8S 底座 + Kubeflow
|
30
ttyhtg 253 天前 via Android
看了楼上诸位回复,受益良多,哈哈
|
31
totoroyyw 253 天前
SLURM 或者 Docker 挂显卡
|
32
stevenshum 253 天前
看到很多人推荐 HPC ,想问一下单台服务器怎么部署和使用 HPC ?
|
33
dayeye2006199 253 天前 via Android
多账号 ssh 和 conda
conda 可以管理 cuda 版本的吧? |
34
Sayuri 253 天前
用 nvidia-container-runtime 来在 docker 里面跑 GPU 。
大家约定好一个固定的 cuda 版本,硬性要求环境用容器部署就行了。 |
35
Famio 253 天前
我的想法是 lsf ,虚拟化都不用做,大家的任务都丢队列,顺序处理,架构上来说很省事,原生 linux os 该咋用咋用,没有虚拟化、容器化的运维负载。
|
36
ZedRover 253 天前
cuda 不统一版本最好用 docker ,宿主机上用最新的 nvdriver ,容器内 cuda 版本随意。用 conda 只能解决 python 环境,很多上古代码需要很低的 cuda 版本才能跑起来,很多 torch 2 的新功能需要新的 cuda ,不是说一句统一版本就能解决的
|
38
doublebu 253 天前
用 LXD ,有大佬已经写过教程了: https://zhuanlan.zhihu.com/p/421271405
目前白嫖朋友的工作站就是这样的,除了 GPU 外,自己装 tailscale 这种组网工具也可以,而且有 systemd 的支持. |