搭建实验室多人共用GPU服务器

本文详细介绍了如何在Ubuntu系统上搭建服务器环境,包括多用户管理、FTP与SSH配置、固定IP绑定及Anaconda虚拟环境创建,确保每位用户拥有独立的Python开发环境。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

配置方案

(1)初始需求

*首先每个用户的登陆是独立的,每个用户以各自的账号密码进行登陆,并进入到对应的文件空间中去。

*用户需要以一定方式进行要跑的程序的上传,并能够使用命令行的方式找到自己上传的文件,使用服务器上的python环境跑程序。

*在具体跑程序时,每个用户需要自己独立的python环境,也就是需要提前为每个用户创建一套python环境,自己环境中需要装的模块由自己维护。

(2)需求解决

*针对每个用户登陆方式独立和独自账号密码的需求,我们使用ubuntu下多用户管理的方式创建独自的账号密码,对Ftp或SSH里的配置协议来维护用户登陆方式。

*针对文件上传和使用命令行跑程序的需求,我们使用Ftp和SSH文件传输的方案,让用户使用两个传输方式根据ip使用账号密码登陆到服务器中。

*针对于python环境独立的需求,我们使用Anaconda用每个用户创建自己独立的python开发环境,并修改每个用户的环境变量文件.bashrc来让每个用户初始进入各自的虚拟python中。

*此外每个用户每次使用Ftp/ssh进行登陆时,使用的ip得是固定的,因为学校的校网是每次开机都会随机分配ip,因为这里是申请了一个固定的ip地址和绑定的校网账号,管理员需要将这个ip地址配置到网卡上,并使用绑定的校网账号进行网络的连接。

(3)搭建方案为:Ftp+SSH+多用户管理+Anaconda,其中:

*Ftp是用于为用户提供 往服务器上上传文件和使用命令行运行程序文件的文件传输协议

*SSH是另一种进行文件传输的方案,用途与FTP相同,用户可以选择使用Ftp或者SSH方式进行登陆。

*多用户管理是指我们可以在服务器上创建、删除用户,以及修改用户权限,这样我们会为实验室每个成员创建一个用于连接服务器进行跑文件的用户,并将用户名配置到FTP配置文件中去,使得用户可以使用FTP方式进行连接。

*Anaconda:是一个很强大的python环境管理集成平台,我们可以在安装Anaconda后,使用其下的conda命令进行多环境管理,环境下的模块管理。
具体实施

前提:以下搭建和维护是我们服务器上的方案,仅做参考,个人IP信息等已修改为全0,请有选择的修改为你自己服务器的方案。

可以按照以下的思路进行环境的搭建:

(1)绑定上固定的ip地址。在‘编辑连接’中往网卡上绑定上申请的IP地址(000.000.000.000)、子网掩码(000.000.000.0)、缺省网关(000.000.000.000)、DNS(000.000.00.0),并修改/etc/network/interfaces文件进行ip的设置。

(2)进行用户管理。在Terminal上使用useradd 等命令行形式进行用户的创建,我们这里为了有利于用户进行文件的访问,每个新建的用户都需要使用usermod -G root 新用户名 的命令方式将新用户放置到root组中,使得新用户具有root权限。

(3)设置远程协议。下载和安装FTP,并用sudo gedit /etc/vsftpd.conf命令在vsftpd.conf文件中进行FTP的内部协议信息配置(进行配置很重要,可以参照网上,将用户配置到ftp的配置文件中,曾经一直调不通,之后设置listen=True后才好的),SSH的话,直接下载、安装、启动SSH服务器即可,不需要进行协议配置,这样经过网络协议搭建之后,用户就可以按照ip地址进行文件访问和跑程序了。比如:

     *比如可以在浏览器上输入 ftp://fly@000.000.000.000(举例ftp 方式)进行指定用户的文件目录访问,可以往访问的目录中放置程序。

     *可以在cmd中输入ssh fly@000.000.000.000进行命令行方式的连接

(4)创建多人开发环境。首先安装Anaconda,这里我们选择将Anaconda安装到/home目录下(因为之后我们在很多配置文件中都配置了/home/anaconda3这一行环境变量),之后开始为每个用户创建虚拟环境,使用conda create -n your_env_name python=X.X(2.7、3.6等)命令创建python版本为X.X、名字为your_env_name的虚拟环境,这样我们为每个要远程连入的用户都创建一个虚拟环境,之后可以使用conda info -e命令查看现在有哪些虚拟环境,以及现在正在使用的虚拟环境(标识*号),使用source activate 用户名命令可以进行虚拟环境的切换,此时terminal下的默认python也就是所激活的python虚拟环境.
维护思路

管理的日常维护包括:

(1)创建和删除用户,创建的用户我们一般放置到root组中,让其有管理员权限,这样的话用户才能更顺畅的在自己的python虚拟环境中安装和卸载模型(因为有些模块的安装和删除需要管理员权限)。

(2)在服务器初始开机后,进行网络连接的工作,先尝试直接使用校网验证平台登陆账号XXXX 密码XXXX,看是否能够连接成功网络,如果无法连接的话,在右上角网络图标下,尝试点击ifupdown(enp5s0)手动进行连接,这样能否连接上网络,或者还不行时,点击‘启动联网’关闭联网,再点击‘启动联网’进行重启联网,看是否可以连接上。

(3)在已经连好网的情况下,当ssh不起作用不可登陆时,使用sudo service ssh restart命令对ssh服务器进行重启(因为ssh服务器一般是不需要修改配置的),当ftp方式连接不上时,一方面可以尝试修改 /etc/vsftpd.conf配置文件进行一些配置上修改的尝试,另一方面可以使用service vsftpd start命令记性重启的尝试。

(4)服务器创建新用户和anaconda中创建对应虚拟环境是配套的,每次创建新用户后,需要使用conda create.....创建新用户的虚拟环境,并在创建好虚拟环境后执行sudo chmod 777 -R /home/anaconda3命令来让每个用户都有对/home/anaconda3的访问权限(注意这个命令很重要,因为每个用户默认登陆是无法访问上级文件的,这样的设置是令其能进行访问),另外需要修改新用户内的./bashrc文件,方法是:

      *在用户大环境下(你可以先cd到用户的目录中),输入命令‘vi  .bashrc’进入当前用户的环境变量文件,在最后加入如下的代码(可以从其他用户的环境变量中复制过来),注意对虚拟环境名进行替换。

export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:/usr/local/cuda-8.0/extras/CUPTI/lib64:$LD_LIBRARY_PATH

export CUDA_HOME=/usr/local/cuda-8.0

export PATH=/usr/local/cuda-8.0/bin:$PATH

# added by Anaconda3 installer

export PATH="/home/anaconda3/bin:$PATH"

. /home/anaconda3/etc/profile.d/conda.sh

conda activate 虚拟环境名

举例下面的形式

这样设置之后每个用户初始登陆默认就会进入自己的python虚拟环境中,用户自己在里面安装模块即可。

     注意:对于新建立的用户的python虚拟环境,一方面可以使用自己一个个为其安装需要的模块,另一方面可以使用克隆的方式,将其他用户的虚拟环境克隆过去,克隆命令为如下,使用如下方法直接创建一个新的即可。

    (5)不要随便在ubuntu下安装软件(曾经因为安装teamview、LDA等软件导致出现了多网卡,导致混乱),在安装软件时可以先在左侧进行查询哪些软件可以安装,在安装python模块时,可以先使用语句conda search  模块名进行模块的查找,使用这样的方法。
---------------------  
作者:马飞飞  
来源:优快云  
原文:https://blog.youkuaiyun.com/maqunfi/article/details/82903155  
版权声明:本文为博主原创文章,转载请附上博文链接!

### 设置和配置用户共享GPU服务器 为了使团队成员能够有效地共同使用一台GPU服务器,需要考虑个方面来确保系统的稳定性和资源的有效分配。以下是关于设置和配置用户访问GPU服务器的方法: #### 1. 用户隔离与权限管理 通过创建独立的Linux用户账户并赋予适当的权限,可以实现不同开发员之间的有效隔离。这不仅有助于保护个工作空间的安全性,也便于追踪各个用户的活动记录。 对于每个新加入项目的成员,在服务器上为其建立专属账号,并设定密码或SSH密钥认证方式登录[^1]。 ```bash sudo adduser username ``` 接着调整文件夹读写权限,确保每位研究员仅能操作自己目录下的数据集及训练模型。 #### 2. 资源调度工具部署 采用专业的作业管理系统如Slurm、Kubernetes等来进行任务排队管理和计算节点分配是非常必要的。这些平台支持复杂的依赖关系处理以及动态调整优先级等功能特性,从而提高整体效率。 特别是当涉及到大规模分布式学习场景时,合理规划集群内的硬件设施显得尤为重要。例如,可以通过修改CUDA_VISIBLE_DEVICES环境变量控制程序可见的具体显卡编号;或者利用NVIDIA提供的nvidia-docker容器化解决方案简化跨机器迁移过程中的兼容性问题解决难度。 #### 3. 配置远程桌面/终端连接服务 为了让不在同一地理位置的研究员也能顺利开展实验研究,安装VNC Server/Xfce4图形界面或是基于Web浏览器的操作面板(比如Jupyter Notebook/Lab)成为不可或缺的选择之一。这类应用允许使用者直观便捷地操控远端计算机上的各类软件包而无需担心本地电脑性能不足带来的困扰。 另外值得注意的是,出于安全性的考量建议开启防火墙防护措施并对开放端口做最小化暴露原则限制外部非法入侵风险。 #### 4. 文档编写与培训指导手册制定 最后但同样重要的一环就是准备详尽的新手入门指南文档和技术交流群组维护。前者应该涵盖从基础命令行指令到高级脚本编程技巧在内的广泛知识点介绍;后者则提供了一个即时沟通解决问题的良好渠道,促进内部协作氛围形成和发展壮大。 以上便是有关于搭建适合使用GPU工作站所需采取的主要步骤概述。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值