老板新到了一个服务器,我应该如何配置,并做一个优秀的管理员?

308 天前
 rjagge

如题,老板拿了一个全新的服务器给我管理,有四张 4090 给组内的同学使用。我们主要是搞机器学习,所以 conda 这些就够了。

那么问题来了:

  1. 如何最干净地装 conda 然后管理 python 环境呢?

以及以前用服务器都是以 user 身份,或者一台机器就我一个人 root 随便用,我不太清楚如何才能做好不同用户的权限管理和数据管理。对此,有没有相关经验的老哥传授给小弟一些经验呀?

  1. 如何做到 user 们的权限和数据空间分配?

最后,有其他任何关于服务器运维有用的小建议也希望老哥们不吝赐教~小弟在这里先谢谢了🙏

6035 次点击
所在节点    程序员
43 条回复
evalfun
308 天前
装 pve 开虚拟机直通显卡,一人分配一个虚拟机。环境玩坏了直接重置虚拟机
my3157
308 天前
人多的话 pve 可以开 sriov
LeegoYih
308 天前
容器沙盒
Chipmunker
308 天前
装 SLURM
GoodRui
308 天前
容器不就是干这个的吗?
ysc3839
308 天前
建议用 Docker 开容器给下面的人用,这样对主系统来说是最干净的,也不用担心 CUDA 版本问题
lithiumii
308 天前
公用服务器就 slurm 呗,一般的集群都用这个。Conda 装到 /opt ,每个普通用户自己的环境可以放各人的 home 。

Docker 只是隔离一个个应用而已,而且万一不同人用的镜像不一样,难道都加到 Docker 用户组吗。不过如果大家都是 Python ,也可以 Docker 部署 JupyterHub ,每人分发 jupyter 的账号。
dayeye2006199
308 天前
jupyterhub 把
tin3w5
308 天前
第一步,配置好带外管理,正经服务器都是有带外管理的,比如 HPE 的 iLO ,Dell 的 iDrac 。配置好之后就可以远程安装系统或紧急救援了,只要硬件不坏,人就不用往机房里跑。
第二步,硬件服务器装系统之前一定要好好查查服务器操作系统的支持 matrix ,发行版、大小版本号一点都不能差。相信我,千万别听某些脑残粉让你无脑装什么 Debian 、Gentoo 、Arch 之类的。选择操作系统支持列表里有的,除非你做好了坏了一块硬盘、电源这种屁大点事的小故障或者升级个板卡固件都要被硬件厂商客服强制要求把系统重装回操作系统支持列表中的系统的准备(是啊,要不人家就不给你换硬件,如果升级固件失败导致板卡无法使用,且当时不匹配的操作系统信息被记录到硬件日志里,某些厂商会直接认为是人为损坏,不予保修)。当然,如果你们公司就是有钱,能买得起硬件服务器的大客户支持账号,由硬件厂商给你定制你想要的发型版,那就随你喜欢。
第三步,在操作系统安装好之后安装虚拟化服务,具体用什么你根据自己的喜好定。Windows Server 可以选择 Hyper-V 、VirtualBox ,或者直接无脑上 ESXi (毕竟是服务器,完全不用考虑驱动兼容问题),我是比较喜欢直接用 KVM 的。当然,如果你 Virsh 命令不熟,可以考虑 Proxmox VE 。
第四步,给四个人分别创建创建虚拟机,创建好之后 ssh key 分配给他们,给他们配置好 sudo 权限,root 的账号密码自己管理。把对应的 GPU 挂到他们对应的虚拟机里,这样就算他们玩上天,顶多就是把自己的虚拟机玩炸了,理论上不会影响其他人正常用。记住,宿主机的 ssh private key ,谁也不要给。如果老板跟你要权限,给他加新的 ssh key ,之后就老老实实的做好备份工作(永远不要在脑子里存在这样的概念“我的老板不会在上面乱搞”、“我的老板不会给喜欢乱搞/容易犯错的白痴加权限”)。
第五步,做好初始的 snapshot ,然后写一个 cron job ,每周 snapshot 一次,面的哪天谁玩脱了过来找麻烦。
第六步,记得把 sar 启动起来,或者给自己也开一台虚拟机用来监控宿主机的运行状况,如果发现有搞事情的(比如疯狂读写硬盘、疯狂吃 CPU 等、疯狂占网络资源),就用 cgroup 、tc 之类的做好限制。
第七步,一切业务稳定了,记得给线标好号,包括电源线和网线。你可以保证你不会做傻事、拔错线,但是你不能阻止其他人脑子不抽,你要做的是尽可能防止别人在你管理的资源上做傻事。
行了,做到这七步,估计能应付 95%以上的问题。
ltkun
308 天前
pve 加 vgpu 不过 4090 民用显卡还不支持 vgpu
defunct9
307 天前
开 ssh ,让我上去看看
catsoul
307 天前
@defunct9 ssh 哥神出鬼没弹无虚发
blankmiss
307 天前
@ltkun 要分配的话就只能直通使用
liantian
307 天前
不支持 vGPU ,分配虚拟机用就太低效率了...而且万一第五个人要用咋整。

卡死了不给 sudo 不给 root ,其实靠 linux 的权限隔离,每个人一个用户也够了。
Gunslinger
307 天前
D O C K E R
Chipmunker
307 天前
@tin3w5 看 OP 的描述,可能是学校科研用的机器。这种机器用虚拟机不是一个好的方案。虚拟机的计算资源一般是固定的(可能有自适应分配计算资源的技术?)。学生科研一般适合抢占式的任务分配系统,例如 SLURM 和 OpenPBS 。这样做的好处是,如果这几天其他三个同学摸鱼,剩下的一个同学可以同时使用 4 张卡快速完成计算,使 GPU 的利用率最大化。

基于我对以上应用场景的猜测。我有以下一些建议:

1. 建议安装 Environment Modules ( https://github.com/cea-hpc/modules) 来管理 conda/python 版本,可以提前配置好常用软件的最近几个版本,便于使用者选择调用;
2. 建议安装 SLURM 调度计算资源;
3. 建议再购一台 NFS 服务器存储用户数据和一部分公用数据,这样一方面数据的安全性更有保障,另一方面在后续添置新机器时数据更容易迁移或互通。

4. 配置仅内网访问,锁死内核,没有必要千万不要升级内核,一个修订号更新都可能搞出兼容性问题。
alteremliu
307 天前
先挖几天回本再说
rjagge
307 天前
@tin3w5 谢谢老哥,很有帮助很细致啊!!我们应该是直接在你说的第三步上进行操作。我们只是收到了一个有 root 权限的账号,物理上面的运维是学校在管。
rjagge
307 天前
@Chipmunker 谢谢老哥, 我先研究研究。我目前在看是用虚拟机的路线,还是你说的这种路线
rjagge
307 天前
@my3157
@evalfun
@ltkun 目前估计不超过五个人,所以有必要用 pve 吗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/954410

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX